Revert "Merge pull request #2330 from ShabbyX/optimize_for_angle"
This reverts commit 1ee5d1c0bb683daea245e8329fd619940a35a5b4, reversing
changes made to 906d48a7e828701e25487c9cf34418ded831c814.
diff --git a/BUILD.gn b/BUILD.gn
index dc3eb06..7242b6f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -109,6 +109,7 @@
"SPIRV/SpvBuilder.cpp",
"SPIRV/SpvBuilder.h",
"SPIRV/SpvPostProcess.cpp",
+ "SPIRV/SpvTools.cpp",
"SPIRV/SpvTools.h",
"SPIRV/bitutils.h",
"SPIRV/disassemble.cpp",
@@ -155,7 +156,7 @@
"glslang/MachineIndependent/attribute.cpp",
"glslang/MachineIndependent/attribute.h",
"glslang/MachineIndependent/gl_types.h",
- "glslang/MachineIndependent/glslang_angle_tab.cpp.h",
+ "glslang/MachineIndependent/glslang_tab.cpp",
"glslang/MachineIndependent/glslang_tab.cpp.h",
"glslang/MachineIndependent/intermOut.cpp",
"glslang/MachineIndependent/iomapper.cpp",
@@ -206,25 +207,9 @@
}
defines = []
- if (invoker.is_angle) {
- sources += [
- "glslang/MachineIndependent/glslang_angle_tab.cpp",
- ]
- defines += [ "GLSLANG_ANGLE" ]
- }
- else {
- sources += [
- "glslang/MachineIndependent/glslang_tab.cpp",
- ]
- }
-
if (invoker.enable_opt) {
- sources += [ "SPIRV/SpvTools.cpp" ]
defines += [ "ENABLE_OPT=1" ]
}
- if (invoker.is_angle) {
- defines += [ "GLSLANG_ANGLE" ]
- }
if (is_win) {
sources += [ "glslang/OSDependent/Windows/ossource.cpp" ]
@@ -272,13 +257,11 @@
glslang_sources_common("glslang_lib_sources") {
enable_opt = !glslang_angle
enable_hlsl = !glslang_angle
- is_angle = glslang_angle
}
glslang_sources_common("glslang_sources") {
enable_opt = true
enable_hlsl = true
- is_angle = false
}
source_set("glslang_default_resource_limits_sources") {
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index ba60b82..5a70914 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -283,8 +283,6 @@
{
#ifdef GLSLANG_WEB
return spv::SourceLanguageESSL;
-#elif defined(GLSLANG_ANGLE)
- return spv::SourceLanguageGLSL;
#endif
switch (source) {
@@ -8688,7 +8686,7 @@
// Write SPIR-V out to a text file with 32-bit hexadecimal words
void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName)
{
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
std::ofstream out;
out.open(baseName, std::ios::binary | std::ios::out);
if (out.fail())
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 174937a..78eacac 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -147,10 +147,6 @@
#ifdef GLSLANG_WEB
const Versioning* Es300Desktop130 = nullptr;
const Versioning* Es310Desktop420 = nullptr;
-#elif defined(GLSLANG_ANGLE)
- const Versioning* Es300Desktop130 = nullptr;
- const Versioning* Es310Desktop420 = nullptr;
- const Versioning* Es310Desktop450 = nullptr;
#else
const Versioning Es300Desktop130Version[] = { { EEsProfile, 0, 300, 0, nullptr },
{ EDesktopProfile, 0, 130, 0, nullptr },
@@ -419,7 +415,7 @@
// See if the tabled versioning information allows the current version.
bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */)
{
-#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
+#ifdef GLSLANG_WEB
// all entries in table are valid
return true;
#endif
@@ -503,7 +499,7 @@
prefixes[EbtFloat] = "";
prefixes[EbtInt] = "i";
prefixes[EbtUint] = "u";
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
prefixes[EbtFloat16] = "f16";
prefixes[EbtInt8] = "i8";
prefixes[EbtUint8] = "u8";
@@ -520,9 +516,7 @@
dimMap[Esd3D] = 3;
dimMap[EsdCube] = 3;
#ifndef GLSLANG_WEB
-#ifndef GLSLANG_ANGLE
dimMap[Esd1D] = 1;
-#endif
dimMap[EsdRect] = 2;
dimMap[EsdBuffer] = 1;
dimMap[EsdSubpass] = 2; // potentially unused for now
@@ -547,9 +541,6 @@
#ifdef GLSLANG_WEB
version = 310;
profile = EEsProfile;
-#elif defined(GLSLANG_ANGLE)
- version = 450;
- profile = ECoreProfile;
#endif
addTabledBuiltins(version, profile, spvVersion);
@@ -595,7 +586,6 @@
"vec4 fwidthCoarse(vec4 p);"
);
-#ifndef GLSLANG_ANGLE
TString derivativesAndControl16bits (
"float16_t dFdx(float16_t);"
"f16vec2 dFdx(f16vec2);"
@@ -1183,7 +1173,6 @@
"\n"
);
}
-#endif // !GLSLANG_ANGLE
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 430)) {
@@ -1221,7 +1210,6 @@
"\n");
}
-#ifndef GLSLANG_ANGLE
if (profile != EEsProfile && version >= 440) {
commonBuiltins.append(
"uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);"
@@ -1271,8 +1259,7 @@
"void atomicStore(coherent volatile out int64_t, int64_t, int, int, int);"
"\n");
}
-#endif // !GLSLANG_ANGLE
-#endif // !GLSLANG_WEB
+#endif
if ((profile == EEsProfile && version >= 300) ||
(profile != EEsProfile && version >= 150)) { // GL_ARB_shader_bit_encoding
@@ -1312,7 +1299,6 @@
"\n");
}
-#ifndef GLSLANG_ANGLE
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
commonBuiltins.append(
"double fma(double, double, double);"
@@ -1321,7 +1307,6 @@
"dvec4 fma(dvec4, dvec4, dvec4 );"
"\n");
}
-#endif
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 400)) {
@@ -1339,7 +1324,6 @@
"\n");
}
-#ifndef GLSLANG_ANGLE
if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
commonBuiltins.append(
"double frexp(double, out int);"
@@ -1358,7 +1342,6 @@
"\n");
}
#endif
-#endif
if ((profile == EEsProfile && version >= 300) ||
(profile != EEsProfile && version >= 150)) {
@@ -1467,7 +1450,6 @@
}
#ifndef GLSLANG_WEB
-#ifndef GLSLANG_ANGLE
//
// Original-style texture functions existing in all stages.
// (Per-stage functions below.)
@@ -1616,7 +1598,6 @@
"\n");
}
}
-#endif // !GLSLANG_ANGLE
// Bitfield
if ((profile == EEsProfile && version >= 310) ||
@@ -1759,7 +1740,6 @@
"\n");
}
-#ifndef GLSLANG_ANGLE
// GL_ARB_shader_ballot
if (profile != EEsProfile && version >= 450) {
commonBuiltins.append(
@@ -3080,7 +3060,6 @@
"bool textureFootprintGradClampNV(sampler2D, vec2, vec2, vec2, float, int, bool, out gl_TextureFootprint2DNV);"
"\n");
}
-#endif // !GLSLANG_ANGLE
if ((profile == EEsProfile && version >= 300 && version < 310) ||
(profile != EEsProfile && version >= 150 && version < 450)) { // GL_EXT_shader_integer_mix
@@ -3100,7 +3079,6 @@
"\n");
}
-#ifndef GLSLANG_ANGLE
// GL_AMD_gpu_shader_half_float/Explicit types
if (profile != EEsProfile && version >= 450) {
commonBuiltins.append(
@@ -3951,30 +3929,28 @@
"f64vec3 log2(f64vec3);"
"f64vec4 log2(f64vec4);"
"\n");
- }
+ }
+ if (profile != EEsProfile && version >= 450) {
+ stageBuiltins[EShLangFragment].append(derivativesAndControl64bits);
+ stageBuiltins[EShLangFragment].append(
+ "float64_t interpolateAtCentroid(float64_t);"
+ "f64vec2 interpolateAtCentroid(f64vec2);"
+ "f64vec3 interpolateAtCentroid(f64vec3);"
+ "f64vec4 interpolateAtCentroid(f64vec4);"
- if (profile != EEsProfile && version >= 450) {
- stageBuiltins[EShLangFragment].append(derivativesAndControl64bits);
- stageBuiltins[EShLangFragment].append(
- "float64_t interpolateAtCentroid(float64_t);"
- "f64vec2 interpolateAtCentroid(f64vec2);"
- "f64vec3 interpolateAtCentroid(f64vec3);"
- "f64vec4 interpolateAtCentroid(f64vec4);"
+ "float64_t interpolateAtSample(float64_t, int);"
+ "f64vec2 interpolateAtSample(f64vec2, int);"
+ "f64vec3 interpolateAtSample(f64vec3, int);"
+ "f64vec4 interpolateAtSample(f64vec4, int);"
- "float64_t interpolateAtSample(float64_t, int);"
- "f64vec2 interpolateAtSample(f64vec2, int);"
- "f64vec3 interpolateAtSample(f64vec3, int);"
- "f64vec4 interpolateAtSample(f64vec4, int);"
+ "float64_t interpolateAtOffset(float64_t, f64vec2);"
+ "f64vec2 interpolateAtOffset(f64vec2, f64vec2);"
+ "f64vec3 interpolateAtOffset(f64vec3, f64vec2);"
+ "f64vec4 interpolateAtOffset(f64vec4, f64vec2);"
- "float64_t interpolateAtOffset(float64_t, f64vec2);"
- "f64vec2 interpolateAtOffset(f64vec2, f64vec2);"
- "f64vec3 interpolateAtOffset(f64vec3, f64vec2);"
- "f64vec4 interpolateAtOffset(f64vec4, f64vec2);"
-
- "\n");
+ "\n");
}
-#endif // !GLSLANG_ANGLE
//============================================================================
//
@@ -3990,7 +3966,6 @@
if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion))
stageBuiltins[EShLangVertex].append("vec4 ftransform();");
-#ifndef GLSLANG_ANGLE
//
// Original-style texture Functions with lod.
//
@@ -4050,7 +4025,6 @@
"\n");
}
}
-#endif // !GLSLANG_ANGLE
if ((profile != EEsProfile && version >= 150) ||
(profile == EEsProfile && version >= 310)) {
@@ -4071,7 +4045,7 @@
"void EndPrimitive();"
"\n");
}
-#endif // !GLSLANG_WEB
+#endif
//============================================================================
//
@@ -4131,7 +4105,6 @@
commonBuiltins.append("void debugPrintfEXT();\n");
-#ifndef GLSLANG_ANGLE
if (profile != EEsProfile && version >= 450) {
// coopMatStoreNV perhaps ought to have "out" on the buf parameter, but
// adding it introduces undesirable tempArgs on the stack. What we want
@@ -4255,7 +4228,6 @@
"\n");
}
-#endif // !GLSLANG_ANGLE
// GL_ARB_derivative_control
if (profile != EEsProfile && version >= 400) {
@@ -4293,7 +4265,6 @@
"bool helperInvocationEXT();"
"\n");
-#ifndef GLSLANG_ANGLE
// GL_AMD_shader_explicit_vertex_parameter
if (profile != EEsProfile && version >= 450) {
stageBuiltins[EShLangFragment].append(
@@ -4428,14 +4399,12 @@
"void executeCallableEXT(uint, int);"
"\n");
}
-#endif // !GLSLANG_ANGLE
//E_SPV_NV_compute_shader_derivatives
if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) {
stageBuiltins[EShLangCompute].append(derivativeControls);
stageBuiltins[EShLangCompute].append("\n");
}
-#ifndef GLSLANG_ANGLE
if (profile != EEsProfile && version >= 450) {
stageBuiltins[EShLangCompute].append(derivativesAndControl16bits);
stageBuiltins[EShLangCompute].append(derivativesAndControl64bits);
@@ -4448,8 +4417,7 @@
"void writePackedPrimitiveIndices4x8NV(uint, uint);"
"\n");
}
-#endif // !GLSLANG_ANGLE
-#endif // !GLSLANG_WEB
+#endif
//============================================================================
//
@@ -4486,7 +4454,7 @@
"\n");
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
//
// Matrix state. p. 31, 32, 37, 39, 40.
@@ -4604,7 +4572,7 @@
"\n");
}
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif
//============================================================================
//
@@ -4635,7 +4603,6 @@
}
#ifndef GLSLANG_WEB
-#ifndef GLSLANG_ANGLE
//============================================================================
//
// Define the interface to the mesh/task shader.
@@ -4723,7 +4690,6 @@
"\n");
}
}
-#endif // !GLSLANG_ANGLE
//============================================================================
//
@@ -5394,15 +5360,6 @@
#ifndef GLSLANG_WEB
- if ((profile != EEsProfile && version >= 140) ||
- (profile == EEsProfile && version >= 310)) {
- stageBuiltins[EShLangFragment].append(
- "flat in highp int gl_DeviceIndex;" // GL_EXT_device_group
- "flat in highp int gl_ViewIndex;" // GL_EXT_multiview
- "\n");
- }
-
-#ifndef GLSLANG_ANGLE
// GL_ARB_shader_ballot
if (profile != EEsProfile && version >= 450) {
const char* ballotDecls =
@@ -5433,6 +5390,14 @@
stageBuiltins[EShLangTaskNV] .append(ballotDecls);
}
+ if ((profile != EEsProfile && version >= 140) ||
+ (profile == EEsProfile && version >= 310)) {
+ stageBuiltins[EShLangFragment].append(
+ "flat in highp int gl_DeviceIndex;" // GL_EXT_device_group
+ "flat in highp int gl_ViewIndex;" // GL_EXT_multiview
+ "\n");
+ }
+
// GL_KHR_shader_subgroup
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 140)) {
@@ -5636,7 +5601,6 @@
stageBuiltins[EShLangCallable].append(callableDecls);
}
-
if ((profile != EEsProfile && version >= 140)) {
const char *deviceIndex =
"in highp int gl_DeviceIndex;" // GL_EXT_device_group
@@ -5649,6 +5613,12 @@
stageBuiltins[EShLangMiss].append(deviceIndex);
}
+ if (version >= 300 /* both ES and non-ES */) {
+ stageBuiltins[EShLangFragment].append(
+ "flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2
+ "\n");
+ }
+
if ((profile != EEsProfile && version >= 420) ||
(profile == EEsProfile && version >= 310)) {
commonBuiltins.append("const int gl_ScopeDevice = 1;\n");
@@ -5672,15 +5642,7 @@
commonBuiltins.append("const int gl_StorageSemanticsImage = 0x800;\n");
commonBuiltins.append("const int gl_StorageSemanticsOutput = 0x1000;\n");
}
-
-#endif // !GLSLANG_ANGLE
-
- if (version >= 300 /* both ES and non-ES */) {
- stageBuiltins[EShLangFragment].append(
- "flat in highp uint gl_ViewID_OVR;" // GL_OVR_multiview, GL_OVR_multiview2
- "\n");
- }
-#endif // !GLSLANG_WEB
+#endif
// printf("%s\n", commonBuiltins.c_str());
// printf("%s\n", stageBuiltins[EShLangFragment].c_str());
@@ -5698,16 +5660,13 @@
//
// enumerate all the types
- const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint,
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
- EbtFloat16
-#endif
- };
#ifdef GLSLANG_WEB
+ const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint };
bool skipBuffer = true;
bool skipCubeArrayed = true;
const int image = 0;
#else
+ const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint, EbtFloat16 };
bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140);
bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130);
for (int image = 0; image <= 1; ++image) // loop over "bool" image vs sampler
@@ -5733,12 +5692,7 @@
#ifdef GLSLANG_WEB
for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube
#else
-#if defined(GLSLANG_ANGLE)
- // TODO: what is subpass?
- for (int dim = Esd2D; dim < EsdSubpass; ++dim) { // 2D, ..., buffer
-#else
for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass
-#endif
if (dim == EsdSubpass && spvVersion.vulkan == 0)
continue;
if (dim == EsdSubpass && (image || shadow || arrayed))
@@ -6132,9 +6086,6 @@
#ifdef GLSLANG_WEB
profile = EEsProfile;
version = 310;
-#elif defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
#endif
//
@@ -6211,8 +6162,8 @@
continue;
// loop over 16-bit floating-point texel addressing
-#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
- const bool f16TexAddr = false;
+#ifdef GLSLANG_WEB
+ const int f16TexAddr = 0;
#else
for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr)
#endif
@@ -6224,8 +6175,8 @@
totalDims--;
}
// loop over "bool" lod clamp
-#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
- const bool lodClamp = false;
+#ifdef GLSLANG_WEB
+ const int lodClamp = 0;
#else
for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp)
#endif
@@ -6236,8 +6187,8 @@
continue;
// loop over "bool" sparse or not
-#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
- const bool sparse = false;
+#ifdef GLSLANG_WEB
+ const int sparse = 0;
#else
for (int sparse = 0; sparse <= 1; ++sparse)
#endif
@@ -6420,9 +6371,6 @@
#ifdef GLSLANG_WEB
profile = EEsProfile;
version = 310;
-#elif defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
#endif
switch (sampler.dim) {
@@ -6666,9 +6614,6 @@
#ifdef GLSLANG_WEB
version = 310;
profile = EEsProfile;
-#elif defined(GLSLANG_ANGLE)
- version = 450;
- profile = ECoreProfile;
#endif
//
@@ -7097,7 +7042,6 @@
s.append("\n");
}
-#ifndef GLSLANG_ANGLE
// atomic counters (some in compute below)
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 420)) {
@@ -7134,7 +7078,6 @@
s.append("\n");
}
-#endif // !GLSLANG_ANGLE
// GL_ARB_cull_distance
if (profile != EEsProfile && version >= 450) {
@@ -7151,7 +7094,6 @@
s.append(builtInConstant);
}
-#ifndef GLSLANG_ANGLE
// SPV_NV_mesh_shader
if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV);
@@ -7175,7 +7117,6 @@
s.append("\n");
}
#endif
-#endif
s.append("\n");
}
@@ -7259,9 +7200,6 @@
#ifdef GLSLANG_WEB
version = 310;
profile = EEsProfile;
-#elif defined(GLSLANG_ANGLE)
- version = 450;
- profile = ECoreProfile;
#endif
//
@@ -7451,7 +7389,7 @@
case EShLangTessEvaluation:
case EShLangGeometry:
-#endif // !GLSLANG_WEB
+#endif
SpecialQualifier("gl_Position", EvqPosition, EbvPosition, symbolTable);
SpecialQualifier("gl_PointSize", EvqPointSize, EbvPointSize, symbolTable);
@@ -7612,7 +7550,7 @@
BuiltInVariable("gl_WarpIDNV", EbvWarpID, symbolTable);
BuiltInVariable("gl_SMIDNV", EbvSMID, symbolTable);
}
-#endif // !GLSLANG_WEB
+#endif
break;
case EShLangFragment:
@@ -8118,7 +8056,7 @@
}
symbolTable.setFunctionExtensions("helperInvocationEXT", 1, &E_GL_EXT_demote_to_helper_invocation);
-#endif // !GLSLANG_WEB
+#endif
break;
case EShLangCompute:
@@ -8250,10 +8188,10 @@
symbolTable.setFunctionExtensions("dFdyCoarse", 1, &E_GL_NV_compute_shader_derivatives);
symbolTable.setFunctionExtensions("fwidthCoarse", 1, &E_GL_NV_compute_shader_derivatives);
}
-#endif // !GLSLANG_WEB
+#endif
break;
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
case EShLangRayGen:
case EShLangIntersect:
case EShLangAnyHit:
@@ -9156,7 +9094,7 @@
default:
assert(false && "Language not supported");
}
-#endif // !GLSLANG_WEB
+#endif
}
//
@@ -9171,10 +9109,6 @@
void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
{
#ifndef GLSLANG_WEB
-#if defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
-#endif
if (profile != EEsProfile && version >= 430 && version < 440) {
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts);
symbolTable.setVariableExtensions("gl_MaxTransformFeedbackInterleavedComponents", 1, &E_GL_ARB_enhanced_layouts);
diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp
index ba03332..bd3181a 100644
--- a/glslang/MachineIndependent/Scan.cpp
+++ b/glslang/MachineIndependent/Scan.cpp
@@ -49,15 +49,10 @@
#include "SymbolTable.h"
#include "ParseHelper.h"
#include "attribute.h"
+#include "glslang_tab.cpp.h"
#include "ScanContext.h"
#include "Scan.h"
-#ifdef GLSLANG_ANGLE
-#include "glslang_angle_tab.cpp.h"
-#else
-#include "glslang_tab.cpp.h"
-#endif
-
// preprocessor includes
#include "preprocessor/PpContext.h"
#include "preprocessor/PpTokens.h"
@@ -411,28 +406,25 @@
(*KeywordMap)["uvec4"] = UVEC4;
#ifndef GLSLANG_WEB
+ (*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
+ (*KeywordMap)["demote"] = DEMOTE;
(*KeywordMap)["attribute"] = ATTRIBUTE;
(*KeywordMap)["varying"] = VARYING;
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
- (*KeywordMap)["precise"] = PRECISE;
(*KeywordMap)["coherent"] = COHERENT;
- (*KeywordMap)["restrict"] = RESTRICT;
- (*KeywordMap)["readonly"] = READONLY;
- (*KeywordMap)["writeonly"] = WRITEONLY;
- (*KeywordMap)["volatile"] = VOLATILE;
- (*KeywordMap)["patch"] = PATCH;
- (*KeywordMap)["sample"] = SAMPLE;
-
-#ifndef GLSLANG_ANGLE
- (*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
- (*KeywordMap)["demote"] = DEMOTE;
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
(*KeywordMap)["queuefamilycoherent"] = QUEUEFAMILYCOHERENT;
(*KeywordMap)["workgroupcoherent"] = WORKGROUPCOHERENT;
(*KeywordMap)["subgroupcoherent"] = SUBGROUPCOHERENT;
(*KeywordMap)["shadercallcoherent"] = SHADERCALLCOHERENT;
(*KeywordMap)["nonprivate"] = NONPRIVATE;
+ (*KeywordMap)["restrict"] = RESTRICT;
+ (*KeywordMap)["readonly"] = READONLY;
+ (*KeywordMap)["writeonly"] = WRITEONLY;
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
+ (*KeywordMap)["volatile"] = VOLATILE;
+ (*KeywordMap)["patch"] = PATCH;
+ (*KeywordMap)["sample"] = SAMPLE;
(*KeywordMap)["subroutine"] = SUBROUTINE;
(*KeywordMap)["dmat2"] = DMAT2;
(*KeywordMap)["dmat3"] = DMAT3;
@@ -449,10 +441,6 @@
(*KeywordMap)["image1D"] = IMAGE1D;
(*KeywordMap)["iimage1D"] = IIMAGE1D;
(*KeywordMap)["uimage1D"] = UIMAGE1D;
- (*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
- (*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
- (*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
-#endif
(*KeywordMap)["image2D"] = IMAGE2D;
(*KeywordMap)["iimage2D"] = IIMAGE2D;
(*KeywordMap)["uimage2D"] = UIMAGE2D;
@@ -468,6 +456,9 @@
(*KeywordMap)["imageBuffer"] = IMAGEBUFFER;
(*KeywordMap)["iimageBuffer"] = IIMAGEBUFFER;
(*KeywordMap)["uimageBuffer"] = UIMAGEBUFFER;
+ (*KeywordMap)["image1DArray"] = IMAGE1DARRAY;
+ (*KeywordMap)["iimage1DArray"] = IIMAGE1DARRAY;
+ (*KeywordMap)["uimage1DArray"] = UIMAGE1DARRAY;
(*KeywordMap)["image2DArray"] = IMAGE2DARRAY;
(*KeywordMap)["iimage2DArray"] = IIMAGE2DARRAY;
(*KeywordMap)["uimage2DArray"] = UIMAGE2DARRAY;
@@ -480,7 +471,6 @@
(*KeywordMap)["image2DMSArray"] = IMAGE2DMSARRAY;
(*KeywordMap)["iimage2DMSArray"] = IIMAGE2DMSARRAY;
(*KeywordMap)["uimage2DMSArray"] = UIMAGE2DMSARRAY;
-#ifndef GLSLANG_ANGLE
(*KeywordMap)["double"] = DOUBLE;
(*KeywordMap)["dvec2"] = DVEC2;
(*KeywordMap)["dvec3"] = DVEC3;
@@ -572,7 +562,6 @@
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
#endif
-#endif
(*KeywordMap)["sampler2D"] = SAMPLER2D;
(*KeywordMap)["samplerCube"] = SAMPLERCUBE;
@@ -614,16 +603,11 @@
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
-#ifndef GLSLANG_ANGLE
- (*KeywordMap)["sampler1D"] = SAMPLER1D;
- (*KeywordMap)["isampler1D"] = ISAMPLER1D;
- (*KeywordMap)["usampler1D"] = USAMPLER1D;
- (*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
- (*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
- (*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
- (*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
-#endif
+ (*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
+ (*KeywordMap)["usampler1D"] = USAMPLER1D;
+ (*KeywordMap)["isampler1D"] = ISAMPLER1D;
+ (*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
@@ -635,21 +619,20 @@
(*KeywordMap)["sampler2DMSArray"] = SAMPLER2DMSARRAY;
(*KeywordMap)["isampler2DMSArray"] = ISAMPLER2DMSARRAY;
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
+ (*KeywordMap)["sampler1D"] = SAMPLER1D;
+ (*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
+ (*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
(*KeywordMap)["samplerExternalOES"] = SAMPLEREXTERNALOES; // GL_OES_EGL_image_external
(*KeywordMap)["__samplerExternal2DY2YEXT"] = SAMPLEREXTERNAL2DY2YEXT; // GL_EXT_YUV_target
-#ifndef GLSLANG_ANGLE
- (*KeywordMap)["texture1D"] = TEXTURE1D;
- (*KeywordMap)["itexture1D"] = ITEXTURE1D;
- (*KeywordMap)["utexture1D"] = UTEXTURE1D;
- (*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
(*KeywordMap)["itexture1DArray"] = ITEXTURE1DARRAY;
+ (*KeywordMap)["utexture1D"] = UTEXTURE1D;
+ (*KeywordMap)["itexture1D"] = ITEXTURE1D;
(*KeywordMap)["utexture1DArray"] = UTEXTURE1DARRAY;
-#endif
(*KeywordMap)["textureBuffer"] = TEXTUREBUFFER;
(*KeywordMap)["itexture2DRect"] = ITEXTURE2DRECT;
(*KeywordMap)["utexture2DRect"] = UTEXTURE2DRECT;
@@ -661,9 +644,10 @@
(*KeywordMap)["texture2DMSArray"] = TEXTURE2DMSARRAY;
(*KeywordMap)["itexture2DMSArray"] = ITEXTURE2DMSARRAY;
(*KeywordMap)["utexture2DMSArray"] = UTEXTURE2DMSARRAY;
+ (*KeywordMap)["texture1D"] = TEXTURE1D;
(*KeywordMap)["texture2DRect"] = TEXTURE2DRECT;
+ (*KeywordMap)["texture1DArray"] = TEXTURE1DARRAY;
-#ifndef GLSLANG_ANGLE
(*KeywordMap)["subpassInput"] = SUBPASSINPUT;
(*KeywordMap)["subpassInputMS"] = SUBPASSINPUTMS;
(*KeywordMap)["isubpassInput"] = ISUBPASSINPUT;
@@ -718,6 +702,7 @@
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
+ (*KeywordMap)["precise"] = PRECISE;
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
(*KeywordMap)["rayPayloadEXT"] = PAYLOADEXT;
@@ -739,7 +724,6 @@
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
(*KeywordMap)["icoopmatNV"] = ICOOPMATNV;
(*KeywordMap)["ucoopmatNV"] = UCOOPMATNV;
-#endif
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
@@ -871,7 +855,7 @@
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
@@ -1020,17 +1004,16 @@
return keyword;
return es30ReservedFromGLSL(130);
- case ATTRIBUTE:
- case VARYING:
- if (parseContext.isEsProfile() && parseContext.version >= 300)
- reservedWord();
- return keyword;
-#ifndef GLSLANG_ANGLE
case NONUNIFORM:
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
return keyword;
else
return identifierOrType();
+ case ATTRIBUTE:
+ case VARYING:
+ if (parseContext.isEsProfile() && parseContext.version >= 300)
+ reservedWord();
+ return keyword;
case PAYLOADNV:
case PAYLOADINNV:
case HITATTRNV:
@@ -1064,17 +1047,13 @@
return keyword;
return es30ReservedFromGLSL(420);
- case SUBROUTINE:
- return es30ReservedFromGLSL(400);
-
+ case COHERENT:
case DEVICECOHERENT:
case QUEUEFAMILYCOHERENT:
case WORKGROUPCOHERENT:
case SUBGROUPCOHERENT:
case SHADERCALLCOHERENT:
case NONPRIVATE:
-#endif
- case COHERENT:
case RESTRICT:
case READONLY:
case WRITEONLY:
@@ -1103,6 +1082,9 @@
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
return keyword;
return es30ReservedFromGLSL(400);
+
+ case SUBROUTINE:
+ return es30ReservedFromGLSL(400);
#endif
case SHARED:
if ((parseContext.isEsProfile() && parseContext.version < 300) ||
@@ -1139,7 +1121,6 @@
return matNxM();
#ifndef GLSLANG_WEB
-#ifndef GLSLANG_ANGLE
case DMAT2:
case DMAT3:
case DMAT4:
@@ -1160,7 +1141,6 @@
case IMAGE1DARRAY:
case IIMAGE1DARRAY:
case UIMAGE1DARRAY:
-#endif
case IMAGE2DRECT:
case IIMAGE2DRECT:
case UIMAGE2DRECT:
@@ -1209,7 +1189,6 @@
afterType = true;
return secondGenerationImage();
-#ifndef GLSLANG_ANGLE
case DOUBLE:
case DVEC2:
case DVEC3:
@@ -1364,7 +1343,6 @@
return keyword;
return identifierOrType();
-#endif
case SAMPLERCUBEARRAY:
case SAMPLERCUBEARRAYSHADOW:
@@ -1441,7 +1419,6 @@
return identifierOrType();
#ifndef GLSLANG_WEB
-#ifndef GLSLANG_ANGLE
case ISAMPLER1D:
case ISAMPLER1DARRAY:
case SAMPLER1DARRAYSHADOW:
@@ -1449,23 +1426,6 @@
case USAMPLER1DARRAY:
afterType = true;
return es30ReservedFromGLSL(130);
-
- case SAMPLER1D:
- case SAMPLER1DSHADOW:
- afterType = true;
- if (parseContext.isEsProfile())
- reservedWord();
- return keyword;
-
- case SAMPLER1DARRAY:
- afterType = true;
- if (parseContext.isEsProfile() && parseContext.version == 300)
- reservedWord();
- else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
- (!parseContext.isEsProfile() && parseContext.version < 130))
- return identifierOrType();
- return keyword;
-#endif
case ISAMPLER2DRECT:
case USAMPLER2DRECT:
afterType = true;
@@ -1509,6 +1469,13 @@
return keyword;
return es30ReservedFromGLSL(150);
+ case SAMPLER1D:
+ case SAMPLER1DSHADOW:
+ afterType = true;
+ if (parseContext.isEsProfile())
+ reservedWord();
+ return keyword;
+
case SAMPLER2DRECT:
case SAMPLER2DRECTSHADOW:
afterType = true;
@@ -1522,6 +1489,15 @@
}
return keyword;
+ case SAMPLER1DARRAY:
+ afterType = true;
+ if (parseContext.isEsProfile() && parseContext.version == 300)
+ reservedWord();
+ else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
+ (!parseContext.isEsProfile() && parseContext.version < 130))
+ return identifierOrType();
+ return keyword;
+
case SAMPLEREXTERNALOES:
afterType = true;
if (parseContext.symbolTable.atBuiltInLevel() ||
@@ -1537,14 +1513,10 @@
return keyword;
return identifierOrType();
-#ifndef GLSLANG_ANGLE
- case TEXTURE1D:
- case ITEXTURE1D:
- case UTEXTURE1D:
- case TEXTURE1DARRAY:
case ITEXTURE1DARRAY:
+ case UTEXTURE1D:
+ case ITEXTURE1D:
case UTEXTURE1DARRAY:
-#endif
case TEXTUREBUFFER:
case ITEXTURE2DRECT:
case UTEXTURE2DRECT:
@@ -1556,24 +1528,14 @@
case TEXTURE2DMSARRAY:
case ITEXTURE2DMSARRAY:
case UTEXTURE2DMSARRAY:
+ case TEXTURE1D:
case TEXTURE2DRECT:
+ case TEXTURE1DARRAY:
if (parseContext.spvVersion.vulkan > 0)
return keyword;
else
return identifierOrType();
- case PRECISE:
- if ((parseContext.isEsProfile() &&
- (parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
- (!parseContext.isEsProfile() && parseContext.version >= 400))
- return keyword;
- if (parseContext.isEsProfile() && parseContext.version == 310) {
- reservedWord();
- return keyword;
- }
- return identifierOrType();
-
-#ifndef GLSLANG_ANGLE
case SUBPASSINPUT:
case SUBPASSINPUTMS:
case ISUBPASSINPUT:
@@ -1647,6 +1609,17 @@
return keyword;
return identifierOrType();
+ case PRECISE:
+ if ((parseContext.isEsProfile() &&
+ (parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
+ (!parseContext.isEsProfile() && parseContext.version >= 400))
+ return keyword;
+ if (parseContext.isEsProfile() && parseContext.version == 310) {
+ reservedWord();
+ return keyword;
+ }
+ return identifierOrType();
+
case PERPRIMITIVENV:
case PERVIEWNV:
case PERTASKNV:
@@ -1677,7 +1650,6 @@
else
return identifierOrType();
#endif
-#endif
default:
parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc);
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index 9d7f37b..9c8610c 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -294,9 +294,6 @@
#ifdef GLSLANG_WEB
profile = EEsProfile;
version = 310;
-#elif defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
#endif
(*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
@@ -318,9 +315,6 @@
#ifdef GLSLANG_WEB
profile = EEsProfile;
version = 310;
-#elif defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
#endif
std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
@@ -360,6 +354,7 @@
(profile == EEsProfile && version >= 310))
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source,
infoSink, commonTable, symbolTables);
+#endif
// check for compute
if ((profile != EEsProfile && version >= 420) ||
@@ -367,7 +362,6 @@
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source,
infoSink, commonTable, symbolTables);
-#ifndef GLSLANG_ANGLE
// check for ray tracing stages
if (profile != EEsProfile && version >= 450) {
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGen, source,
@@ -395,8 +389,6 @@
(profile == EEsProfile && version >= 320))
InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTaskNV, source,
infoSink, commonTable, symbolTables);
-#endif // !GLSLANG_ANGLE
-#endif // !GLSLANG_WEB
return true;
}
@@ -498,7 +490,7 @@
// Function to Print all builtins
void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
{
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
infoSink.debug << "BuiltinSymbolTable {\n";
symbolTable.dump(infoSink, true);
@@ -602,7 +594,7 @@
break;
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
// Correct for stage type...
switch (stage) {
case EShLangGeometry:
@@ -878,7 +870,7 @@
: userInput.scanVersion(version, profile, versionNotFirstToken);
bool versionNotFound = version == 0;
if (forceDefaultVersionAndProfile && source == EShSourceGlsl) {
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound &&
(version != defaultVersion || profile != defaultProfile)) {
compiler->infoSink.info << "Warning, (version, profile) forced to be ("
@@ -901,13 +893,10 @@
#ifdef GLSLANG_WEB
profile = EEsProfile;
version = 310;
-#elif defined(GLSLANG_ANGLE)
- profile = ECoreProfile;
- version = 450;
#endif
bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
bool warnVersionNotFirst = false;
if (! versionWillBeError && versionNotFirstToken) {
if (messages & EShMsgRelaxedErrors)
@@ -977,7 +966,7 @@
parseContext->setLimits(*resources);
if (! goodVersion)
parseContext->addError();
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (warnVersionNotFirst) {
TSourceLoc loc;
loc.init();
@@ -1014,7 +1003,7 @@
return success;
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
// Responsible for keeping track of the most recent source string and line in
// the preprocessor and outputting newlines appropriately if the source string
@@ -1237,16 +1226,14 @@
parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors. No code generated.\n\n";
}
-#ifndef GLSLANG_ANGLE
if (messages & EShMsgAST)
intermediate.output(parseContext.infoSink, true);
-#endif
return success;
}
};
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
// Take a single compilation unit, and run the preprocessor on it.
// Return: True if there were no issues found in preprocessing,
// False if during preprocessing any unknown version, pragmas or
@@ -1886,7 +1873,7 @@
&environment);
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
// Fill in a string with the result of preprocessing ShaderStrings
// Returns true if all extensions, pragmas and version strings were valid.
//
@@ -1924,7 +1911,7 @@
}
TProgram::TProgram() :
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
reflection(0),
#endif
linked(false)
@@ -1940,7 +1927,7 @@
TProgram::~TProgram()
{
delete infoSink;
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
delete reflection;
#endif
@@ -1987,7 +1974,7 @@
if (stages[stage].size() == 0)
return true;
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
int numEsShaders = 0, numNonEsShaders = 0;
for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) {
if ((*it)->intermediate->getProfile() == EEsProfile) {
@@ -2041,10 +2028,8 @@
#endif
intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
-#ifndef GLSLANG_ANGLE
if (messages & EShMsgAST)
intermediate[stage]->output(*infoSink, true);
-#endif
return intermediate[stage]->getNumErrors() == 0;
}
@@ -2059,7 +2044,7 @@
return infoSink->debug.c_str();
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
//
// Reflection implementation.
@@ -2141,6 +2126,6 @@
return ioMapper->doMap(pResolver, *infoSink);
}
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
} // end namespace glslang
diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp
index 007f22c..06b5a81 100644
--- a/glslang/MachineIndependent/SymbolTable.cpp
+++ b/glslang/MachineIndependent/SymbolTable.cpp
@@ -178,7 +178,7 @@
}
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
//
// Dump functions.
diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h
index ec4bc3c..40ca3da 100644
--- a/glslang/MachineIndependent/SymbolTable.h
+++ b/glslang/MachineIndependent/SymbolTable.h
@@ -117,7 +117,7 @@
virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
virtual const char** getExtensions() const { return extensions->data(); }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0;
void dumpExtensions(TInfoSink& infoSink) const;
#endif
@@ -196,7 +196,7 @@
}
virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
virtual void dump(TInfoSink& infoSink, bool complete = false) const;
#endif
@@ -319,7 +319,7 @@
virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
virtual const TParameter& operator[](int i) const { return parameters[i]; }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
#endif
@@ -381,7 +381,7 @@
virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
virtual int getAnonId() const { return anonId; }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
#endif
@@ -551,7 +551,7 @@
void relateToOperator(const char* name, TOperator op);
void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
void dump(TInfoSink& infoSink, bool complete = false) const;
#endif
TSymbolTableLevel* clone() const;
@@ -854,7 +854,7 @@
}
int getMaxSymbolId() { return uniqueId; }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
void dump(TInfoSink& infoSink, bool complete = false) const;
#endif
void copyTable(const TSymbolTable& copyOf);
diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4
index f42b17c..1432bf6 100644
--- a/glslang/MachineIndependent/glslang.m4
+++ b/glslang/MachineIndependent/glslang.m4
@@ -58,16 +58,10 @@
//
// m4 -P
//
-// A similar mechanism is used to exclude grammar for ANGLE with
-// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
-//
m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
-m4_define(`GLSLANG_ANGLE_EXCLUDE_ON', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert(`-1')')')
-m4_define(`GLSLANG_ANGLE_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_ANGLE', `m4_divert')')
-
/**
* This is bison grammar and productions for parsing all versions of the
* GLSL shading languages.
@@ -183,9 +177,6 @@
GLSLANG_WEB_EXCLUDE_ON
%token <lex> ATTRIBUTE VARYING
-
-GLSLANG_ANGLE_EXCLUDE_ON
-
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
%token <lex> I64VEC2 I64VEC3 I64VEC4
@@ -218,31 +209,23 @@
%token <lex> RAYQUERYEXT
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
-GLSLANG_ANGLE_EXCLUDE_OFF
-
// combined image/sampler
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
+%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
%token <lex> SAMPLEREXTERNALOES
%token <lex> SAMPLEREXTERNAL2DY2YEXT
-
-GLSLANG_ANGLE_EXCLUDE_ON
-
-%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
-
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
-GLSLANG_ANGLE_EXCLUDE_OFF
-
// images
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
@@ -255,14 +238,10 @@
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
-GLSLANG_ANGLE_EXCLUDE_ON
-
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
-GLSLANG_ANGLE_EXCLUDE_OFF
-
// texture without sampler
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
@@ -272,8 +251,6 @@
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
-GLSLANG_ANGLE_EXCLUDE_ON
-
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
@@ -282,8 +259,6 @@
%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
-GLSLANG_ANGLE_EXCLUDE_OFF
-
GLSLANG_WEB_EXCLUDE_OFF
%token <lex> LEFT_OP RIGHT_OP
@@ -310,26 +285,16 @@
%token <lex> FLAT SMOOTH LAYOUT
GLSLANG_WEB_EXCLUDE_ON
-
-GLSLANG_ANGLE_EXCLUDE_ON
-
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
%token <lex> INT64CONSTANT UINT64CONSTANT
%token <lex> SUBROUTINE DEMOTE
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
-%token <lex> NONUNIFORM
-%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
+%token <lex> PATCH SAMPLE NONUNIFORM
+%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
-%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
-
-GLSLANG_ANGLE_EXCLUDE_OFF
-
-%token <lex> PATCH SAMPLE
-%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
-%token <lex> NOPERSPECTIVE
+%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
%token <lex> PRECISE
-
GLSLANG_WEB_EXCLUDE_OFF
%type <interm> assignment_operator unary_operator
@@ -378,19 +343,11 @@
%type <interm.identifierList> identifier_list
GLSLANG_WEB_EXCLUDE_ON
-
-GLSLANG_ANGLE_EXCLUDE_ON
-
-%type <interm.type> non_uniform_qualifier
-%type <interm.intermNode> demote_statement
-
-GLSLANG_ANGLE_EXCLUDE_OFF
-
-%type <interm.type> precise_qualifier
+%type <interm.type> precise_qualifier non_uniform_qualifier
%type <interm.typeList> type_name_list
%type <interm.attributes> attribute attribute_list single_attribute
+%type <interm.intermNode> demote_statement
%type <interm.intermTypedNode> initializer_list
-
GLSLANG_WEB_EXCLUDE_OFF
%start translation_unit
@@ -425,7 +382,6 @@
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
}
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
| STRING_LITERAL {
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
}
@@ -463,7 +419,6 @@
parseContext.float16Check($1.loc, "half float literal");
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
;
@@ -591,13 +546,11 @@
}
}
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
| non_uniform_qualifier {
// Constructor
$$.intermNode = 0;
$$.function = parseContext.handleConstructorCall($1.loc, $1);
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
;
@@ -1254,7 +1207,6 @@
$$.init($1.loc);
$$.qualifier.nopersp = true;
}
-GLSLANG_ANGLE_EXCLUDE_ON
| EXPLICITINTERPAMD {
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
@@ -1294,7 +1246,6 @@
$$.init($1.loc);
$$.qualifier.perTaskNV = true;
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
;
@@ -1379,11 +1330,9 @@
// allow inheritance of storage qualifier from block declaration
$$ = $1;
}
-GLSLANG_ANGLE_EXCLUDE_ON
| non_uniform_qualifier {
$$ = $1;
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
;
@@ -1472,7 +1421,6 @@
$$.init($1.loc);
$$.qualifier.sample = true;
}
-GLSLANG_ANGLE_EXCLUDE_ON
| HITATTRNV {
parseContext.globalCheck($1.loc, "hitAttributeNV");
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -1551,6 +1499,10 @@
$$.init($1.loc);
$$.qualifier.storage = EvqCallableDataIn;
}
+ | COHERENT {
+ $$.init($1.loc);
+ $$.qualifier.coherent = true;
+ }
| DEVICECOHERENT {
$$.init($1.loc);
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
@@ -1581,23 +1533,6 @@
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
$$.qualifier.shadercallcoherent = true;
}
- | SUBROUTINE {
- parseContext.spvRemoved($1.loc, "subroutine");
- parseContext.globalCheck($1.loc, "subroutine");
- parseContext.unimplemented($1.loc, "subroutine");
- $$.init($1.loc);
- }
- | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
- parseContext.spvRemoved($1.loc, "subroutine");
- parseContext.globalCheck($1.loc, "subroutine");
- parseContext.unimplemented($1.loc, "subroutine");
- $$.init($1.loc);
- }
-GLSLANG_ANGLE_EXCLUDE_OFF
- | COHERENT {
- $$.init($1.loc);
- $$.qualifier.coherent = true;
- }
| VOLATILE {
$$.init($1.loc);
$$.qualifier.volatil = true;
@@ -1614,18 +1549,28 @@
$$.init($1.loc);
$$.qualifier.writeonly = true;
}
+ | SUBROUTINE {
+ parseContext.spvRemoved($1.loc, "subroutine");
+ parseContext.globalCheck($1.loc, "subroutine");
+ parseContext.unimplemented($1.loc, "subroutine");
+ $$.init($1.loc);
+ }
+ | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
+ parseContext.spvRemoved($1.loc, "subroutine");
+ parseContext.globalCheck($1.loc, "subroutine");
+ parseContext.unimplemented($1.loc, "subroutine");
+ $$.init($1.loc);
+ }
GLSLANG_WEB_EXCLUDE_OFF
;
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
non_uniform_qualifier
: NONUNIFORM {
$$.init($1.loc);
$$.qualifier.nonUniform = true;
}
;
-GLSLANG_ANGLE_EXCLUDE_OFF
type_name_list
: IDENTIFIER {
@@ -1859,7 +1804,6 @@
$$.setMatrix(4, 4);
}
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
| DOUBLE {
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -2478,7 +2422,6 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D);
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
| SAMPLER2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2516,17 +2459,6 @@
$$.sampler.set(EbtFloat, Esd2D, true, true);
}
GLSLANG_WEB_EXCLUDE_ON
- | SAMPLERCUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true);
- }
- | SAMPLERCUBEARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true, true);
- }
-GLSLANG_ANGLE_EXCLUDE_ON
| SAMPLER1DSHADOW {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2542,6 +2474,16 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true, true);
}
+ | SAMPLERCUBEARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, EsdCube, true);
+ }
+ | SAMPLERCUBEARRAYSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, EsdCube, true, true);
+ }
| F16SAMPLER1D {
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2625,7 +2567,6 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd1D);
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
| ISAMPLER2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2663,11 +2604,26 @@
$$.sampler.set(EbtUint, EsdCube);
}
GLSLANG_WEB_EXCLUDE_ON
+ | ISAMPLER1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtInt, Esd1D, true);
+ }
| ISAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube, true);
}
+ | USAMPLER1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd1D);
+ }
+ | USAMPLER1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd1D, true);
+ }
| USAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2688,23 +2644,6 @@
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtUint, EsdCube, true);
}
-GLSLANG_ANGLE_EXCLUDE_ON
- | ISAMPLER1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd1D, true);
- }
- | USAMPLER1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D);
- }
- | USAMPLER1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D, true);
- }
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
| USAMPLER2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2792,6 +2731,18 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdRect, false, true);
}
+ | F16SAMPLER2DRECT {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdRect);
+ }
+ | F16SAMPLER2DRECTSHADOW {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdRect, false, true);
+ }
| ISAMPLER2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2807,6 +2758,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdBuffer);
}
+ | F16SAMPLERBUFFER {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdBuffer);
+ }
| ISAMPLERBUFFER {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2822,6 +2779,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
}
+ | F16SAMPLER2DMS {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, Esd2D, false, false, true);
+ }
| ISAMPLER2DMS {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2837,6 +2800,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
}
+ | F16SAMPLER2DMSARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, Esd2D, true, false, true);
+ }
| ISAMPLER2DMSARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2847,129 +2816,11 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true, false, true);
}
-GLSLANG_ANGLE_EXCLUDE_ON
- | F16SAMPLER2DRECT {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdRect);
- }
- | F16SAMPLER2DRECTSHADOW {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdRect, false, true);
- }
- | F16SAMPLERBUFFER {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdBuffer);
- }
- | F16SAMPLER2DMS {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, Esd2D, false, false, true);
- }
- | F16SAMPLER2DMSARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, Esd2D, true, false, true);
- }
| TEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat, Esd1D);
}
- | TEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd1D, true);
- }
- | ITEXTURE1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd1D);
- }
- | ITEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd1D, true);
- }
- | UTEXTURE1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd1D);
- }
- | UTEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd1D, true);
- }
-GLSLANG_ANGLE_EXCLUDE_OFF
- | TEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdRect);
- }
- | ITEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdRect);
- }
- | UTEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdRect);
- }
- | TEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdBuffer);
- }
- | ITEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdBuffer);
- }
- | UTEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdBuffer);
- }
- | TEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
- }
- | ITEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
- }
- | UTEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
- }
- | TEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
- }
- | ITEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
- }
- | UTEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
- }
-GLSLANG_ANGLE_EXCLUDE_ON
| F16TEXTURE1D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2994,6 +2845,11 @@
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdCube);
}
+ | TEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd1D, true);
+ }
| F16TEXTURE1DARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -3012,35 +2868,121 @@
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
}
+ | ITEXTURE1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd1D);
+ }
+ | ITEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd1D, true);
+ }
+ | UTEXTURE1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd1D);
+ }
+ | UTEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd1D, true);
+ }
+ | TEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdRect);
+ }
| F16TEXTURE2DRECT {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdRect);
}
+ | ITEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdRect);
+ }
+ | UTEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdRect);
+ }
+ | TEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdBuffer);
+ }
| F16TEXTUREBUFFER {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
}
+ | ITEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdBuffer);
+ }
+ | UTEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdBuffer);
+ }
+ | TEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
+ }
| F16TEXTURE2DMS {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
}
+ | ITEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
+ }
+ | UTEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
+ }
+ | TEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
+ }
| F16TEXTURE2DMSARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
}
+ | ITEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
+ }
+ | UTEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
+ }
| IMAGE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D);
}
+ | F16IMAGE1D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd1D);
+ }
| IIMAGE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3051,12 +2993,17 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd1D);
}
-GLSLANG_ANGLE_EXCLUDE_OFF
| IMAGE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D);
}
+ | F16IMAGE2D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D);
+ }
| IIMAGE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3072,6 +3019,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd3D);
}
+ | F16IMAGE3D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd3D);
+ }
| IIMAGE3D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3087,6 +3040,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdRect);
}
+ | F16IMAGE2DRECT {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdRect);
+ }
| IIMAGE2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3102,6 +3061,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube);
}
+ | F16IMAGECUBE {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdCube);
+ }
| IIMAGECUBE {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3117,6 +3082,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdBuffer);
}
+ | F16IMAGEBUFFER {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdBuffer);
+ }
| IIMAGEBUFFER {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3132,6 +3103,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D, true);
}
+ | F16IMAGE1DARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd1D, true);
+ }
| IIMAGE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3147,6 +3124,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true);
}
+ | F16IMAGE2DARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, true);
+ }
| IIMAGE2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3162,6 +3145,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube, true);
}
+ | F16IMAGECUBEARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdCube, true);
+ }
| IIMAGECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3177,6 +3166,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
}
+ | F16IMAGE2DMS {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
+ }
| IIMAGE2DMS {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3192,6 +3187,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
}
+ | F16IMAGE2DMSARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
+ }
| IIMAGE2DMSARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3202,74 +3203,6 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
}
-GLSLANG_ANGLE_EXCLUDE_ON
- | F16IMAGE1D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd1D);
- }
- | F16IMAGE2D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D);
- }
- | F16IMAGE3D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd3D);
- }
- | F16IMAGE2DRECT {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdRect);
- }
- | F16IMAGECUBE {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdCube);
- }
- | F16IMAGEBUFFER {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdBuffer);
- }
- | F16IMAGE1DARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd1D, true);
- }
- | F16IMAGE2DARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, true);
- }
- | F16IMAGECUBEARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdCube, true);
- }
- | F16IMAGE2DMS {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
- }
- | F16IMAGE2DMSARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
- }
-GLSLANG_ANGLE_EXCLUDE_OFF
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3282,7 +3215,6 @@
$$.sampler.set(EbtFloat, Esd2D);
$$.sampler.yuv = true;
}
-GLSLANG_ANGLE_EXCLUDE_ON
| SUBPASSINPUT {
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -3351,7 +3283,6 @@
$$.basicType = EbtUint;
$$.coopmat = true;
}
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
| struct_specifier {
$$ = $1;
@@ -3554,14 +3485,11 @@
| iteration_statement { $$ = $1; }
| jump_statement { $$ = $1; }
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
| demote_statement { $$ = $1; }
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
;
GLSLANG_WEB_EXCLUDE_ON
-GLSLANG_ANGLE_EXCLUDE_ON
demote_statement
: DEMOTE SEMICOLON {
parseContext.requireStage($1.loc, EShLangFragment, "demote");
@@ -3569,7 +3497,6 @@
$$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
}
;
-GLSLANG_ANGLE_EXCLUDE_OFF
GLSLANG_WEB_EXCLUDE_OFF
compound_statement
diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y
index 0a25963..e33d7d1 100644
--- a/glslang/MachineIndependent/glslang.y
+++ b/glslang/MachineIndependent/glslang.y
@@ -58,12 +58,6 @@
//
// m4 -P
//
-// A similar mechanism is used to exclude grammar for ANGLE with
-// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
-//
-
-
-
@@ -183,9 +177,6 @@
%token <lex> ATTRIBUTE VARYING
-
-
-
%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
%token <lex> I64VEC2 I64VEC3 I64VEC4
@@ -218,31 +209,23 @@
%token <lex> RAYQUERYEXT
%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
-
-
// combined image/sampler
%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
+%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
%token <lex> SAMPLEREXTERNALOES
%token <lex> SAMPLEREXTERNAL2DY2YEXT
-
-
-
-%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY
-
%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
-
-
// images
%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
@@ -255,14 +238,10 @@
%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
-
-
%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
-
-
// texture without sampler
%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
@@ -272,8 +251,6 @@
%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
-
-
%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
@@ -284,8 +261,6 @@
-
-
%token <lex> LEFT_OP RIGHT_OP
%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
@@ -310,28 +285,18 @@
%token <lex> FLAT SMOOTH LAYOUT
-
-
-
%token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
%token <lex> INT64CONSTANT UINT64CONSTANT
%token <lex> SUBROUTINE DEMOTE
%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
%token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
-%token <lex> NONUNIFORM
-%token <lex> DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
+%token <lex> PATCH SAMPLE NONUNIFORM
+%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
-%token <lex> EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
-
-
-
-%token <lex> PATCH SAMPLE
-%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
-%token <lex> NOPERSPECTIVE
+%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV
%token <lex> PRECISE
-
%type <interm> assignment_operator unary_operator
%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
%type <interm.intermTypedNode> expression integer_expression assignment_expression
@@ -378,21 +343,13 @@
%type <interm.identifierList> identifier_list
-
-
-
-%type <interm.type> non_uniform_qualifier
-%type <interm.intermNode> demote_statement
-
-
-
-%type <interm.type> precise_qualifier
+%type <interm.type> precise_qualifier non_uniform_qualifier
%type <interm.typeList> type_name_list
%type <interm.attributes> attribute attribute_list single_attribute
+%type <interm.intermNode> demote_statement
%type <interm.intermTypedNode> initializer_list
-
%start translation_unit
%%
@@ -425,7 +382,6 @@
$$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
}
-
| STRING_LITERAL {
$$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
}
@@ -464,7 +420,6 @@
$$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
}
-
;
postfix_expression
@@ -591,14 +546,12 @@
}
}
-
| non_uniform_qualifier {
// Constructor
$$.intermNode = 0;
$$.function = parseContext.handleConstructorCall($1.loc, $1);
}
-
;
unary_expression
@@ -1254,7 +1207,6 @@
$$.init($1.loc);
$$.qualifier.nopersp = true;
}
-
| EXPLICITINTERPAMD {
parseContext.globalCheck($1.loc, "__explicitInterpAMD");
parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
@@ -1295,7 +1247,6 @@
$$.qualifier.perTaskNV = true;
}
-
;
layout_qualifier
@@ -1379,12 +1330,10 @@
// allow inheritance of storage qualifier from block declaration
$$ = $1;
}
-
| non_uniform_qualifier {
$$ = $1;
}
-
;
storage_qualifier
@@ -1472,7 +1421,6 @@
$$.init($1.loc);
$$.qualifier.sample = true;
}
-
| HITATTRNV {
parseContext.globalCheck($1.loc, "hitAttributeNV");
parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -1551,6 +1499,10 @@
$$.init($1.loc);
$$.qualifier.storage = EvqCallableDataIn;
}
+ | COHERENT {
+ $$.init($1.loc);
+ $$.qualifier.coherent = true;
+ }
| DEVICECOHERENT {
$$.init($1.loc);
parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
@@ -1581,23 +1533,6 @@
parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
$$.qualifier.shadercallcoherent = true;
}
- | SUBROUTINE {
- parseContext.spvRemoved($1.loc, "subroutine");
- parseContext.globalCheck($1.loc, "subroutine");
- parseContext.unimplemented($1.loc, "subroutine");
- $$.init($1.loc);
- }
- | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
- parseContext.spvRemoved($1.loc, "subroutine");
- parseContext.globalCheck($1.loc, "subroutine");
- parseContext.unimplemented($1.loc, "subroutine");
- $$.init($1.loc);
- }
-
- | COHERENT {
- $$.init($1.loc);
- $$.qualifier.coherent = true;
- }
| VOLATILE {
$$.init($1.loc);
$$.qualifier.volatil = true;
@@ -1614,11 +1549,22 @@
$$.init($1.loc);
$$.qualifier.writeonly = true;
}
+ | SUBROUTINE {
+ parseContext.spvRemoved($1.loc, "subroutine");
+ parseContext.globalCheck($1.loc, "subroutine");
+ parseContext.unimplemented($1.loc, "subroutine");
+ $$.init($1.loc);
+ }
+ | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
+ parseContext.spvRemoved($1.loc, "subroutine");
+ parseContext.globalCheck($1.loc, "subroutine");
+ parseContext.unimplemented($1.loc, "subroutine");
+ $$.init($1.loc);
+ }
;
-
non_uniform_qualifier
: NONUNIFORM {
$$.init($1.loc);
@@ -1626,7 +1572,6 @@
}
;
-
type_name_list
: IDENTIFIER {
// TODO
@@ -1859,7 +1804,6 @@
$$.setMatrix(4, 4);
}
-
| DOUBLE {
parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
if (! parseContext.symbolTable.atBuiltInLevel())
@@ -2479,7 +2423,6 @@
$$.sampler.set(EbtFloat, Esd1D);
}
-
| SAMPLER2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2516,17 +2459,6 @@
$$.sampler.set(EbtFloat, Esd2D, true, true);
}
- | SAMPLERCUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true);
- }
- | SAMPLERCUBEARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true, true);
- }
-
| SAMPLER1DSHADOW {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2542,6 +2474,16 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true, true);
}
+ | SAMPLERCUBEARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, EsdCube, true);
+ }
+ | SAMPLERCUBEARRAYSHADOW {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat, EsdCube, true, true);
+ }
| F16SAMPLER1D {
parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2626,7 +2568,6 @@
$$.sampler.set(EbtInt, Esd1D);
}
-
| ISAMPLER2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2663,11 +2604,26 @@
$$.sampler.set(EbtUint, EsdCube);
}
+ | ISAMPLER1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtInt, Esd1D, true);
+ }
| ISAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube, true);
}
+ | USAMPLER1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd1D);
+ }
+ | USAMPLER1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtUint, Esd1D, true);
+ }
| USAMPLERCUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2689,23 +2645,6 @@
$$.sampler.setTexture(EbtUint, EsdCube, true);
}
- | ISAMPLER1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd1D, true);
- }
- | USAMPLER1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D);
- }
- | USAMPLER1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd1D, true);
- }
-
-
| USAMPLER2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2792,6 +2731,18 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdRect, false, true);
}
+ | F16SAMPLER2DRECT {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdRect);
+ }
+ | F16SAMPLER2DRECTSHADOW {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdRect, false, true);
+ }
| ISAMPLER2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2807,6 +2758,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdBuffer);
}
+ | F16SAMPLERBUFFER {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, EsdBuffer);
+ }
| ISAMPLERBUFFER {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2822,6 +2779,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, false, false, true);
}
+ | F16SAMPLER2DMS {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, Esd2D, false, false, true);
+ }
| ISAMPLER2DMS {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2837,6 +2800,12 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, true, false, true);
}
+ | F16SAMPLER2DMSARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.set(EbtFloat16, Esd2D, true, false, true);
+ }
| ISAMPLER2DMSARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -2847,129 +2816,11 @@
$$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true, false, true);
}
-
- | F16SAMPLER2DRECT {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdRect);
- }
- | F16SAMPLER2DRECTSHADOW {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdRect, false, true);
- }
- | F16SAMPLERBUFFER {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, EsdBuffer);
- }
- | F16SAMPLER2DMS {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, Esd2D, false, false, true);
- }
- | F16SAMPLER2DMSARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat16, Esd2D, true, false, true);
- }
| TEXTURE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat, Esd1D);
}
- | TEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd1D, true);
- }
- | ITEXTURE1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd1D);
- }
- | ITEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd1D, true);
- }
- | UTEXTURE1D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd1D);
- }
- | UTEXTURE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd1D, true);
- }
-
- | TEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdRect);
- }
- | ITEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdRect);
- }
- | UTEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdRect);
- }
- | TEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdBuffer);
- }
- | ITEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdBuffer);
- }
- | UTEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdBuffer);
- }
- | TEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
- }
- | ITEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
- }
- | UTEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
- }
- | TEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
- }
- | ITEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
- }
- | UTEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
- }
-
| F16TEXTURE1D {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -2994,6 +2845,11 @@
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdCube);
}
+ | TEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd1D, true);
+ }
| F16TEXTURE1DARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -3012,35 +2868,121 @@
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdCube, true);
}
+ | ITEXTURE1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd1D);
+ }
+ | ITEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd1D, true);
+ }
+ | UTEXTURE1D {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd1D);
+ }
+ | UTEXTURE1DARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd1D, true);
+ }
+ | TEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdRect);
+ }
| F16TEXTURE2DRECT {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdRect);
}
+ | ITEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdRect);
+ }
+ | UTEXTURE2DRECT {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdRect);
+ }
+ | TEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, EsdBuffer);
+ }
| F16TEXTUREBUFFER {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, EsdBuffer);
}
+ | ITEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, EsdBuffer);
+ }
+ | UTEXTUREBUFFER {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, EsdBuffer);
+ }
+ | TEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
+ }
| F16TEXTURE2DMS {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
}
+ | ITEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
+ }
+ | UTEXTURE2DMS {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
+ }
+ | TEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
+ }
| F16TEXTURE2DMSARRAY {
parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
}
+ | ITEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
+ }
+ | UTEXTURE2DMSARRAY {
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
+ }
| IMAGE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D);
}
+ | F16IMAGE1D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd1D);
+ }
| IIMAGE1D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3051,12 +2993,17 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd1D);
}
-
| IMAGE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D);
}
+ | F16IMAGE2D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D);
+ }
| IIMAGE2D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3072,6 +3019,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd3D);
}
+ | F16IMAGE3D {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd3D);
+ }
| IIMAGE3D {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3087,6 +3040,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdRect);
}
+ | F16IMAGE2DRECT {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdRect);
+ }
| IIMAGE2DRECT {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3102,6 +3061,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube);
}
+ | F16IMAGECUBE {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdCube);
+ }
| IIMAGECUBE {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3117,6 +3082,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdBuffer);
}
+ | F16IMAGEBUFFER {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdBuffer);
+ }
| IIMAGEBUFFER {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3132,6 +3103,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D, true);
}
+ | F16IMAGE1DARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd1D, true);
+ }
| IIMAGE1DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3147,6 +3124,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true);
}
+ | F16IMAGE2DARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, true);
+ }
| IIMAGE2DARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3162,6 +3145,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube, true);
}
+ | F16IMAGECUBEARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, EsdCube, true);
+ }
| IIMAGECUBEARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3177,6 +3166,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
}
+ | F16IMAGE2DMS {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
+ }
| IIMAGE2DMS {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3192,6 +3187,12 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
}
+ | F16IMAGE2DMSARRAY {
+ parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
+ $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+ $$.basicType = EbtSampler;
+ $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
+ }
| IIMAGE2DMSARRAY {
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3202,74 +3203,6 @@
$$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D, true, false, true);
}
-
- | F16IMAGE1D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd1D);
- }
- | F16IMAGE2D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D);
- }
- | F16IMAGE3D {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd3D);
- }
- | F16IMAGE2DRECT {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdRect);
- }
- | F16IMAGECUBE {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdCube);
- }
- | F16IMAGEBUFFER {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdBuffer);
- }
- | F16IMAGE1DARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd1D, true);
- }
- | F16IMAGE2DARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, true);
- }
- | F16IMAGECUBEARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, EsdCube, true);
- }
- | F16IMAGE2DMS {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
- }
- | F16IMAGE2DMSARRAY {
- parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
- }
-
| SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
$$.basicType = EbtSampler;
@@ -3282,7 +3215,6 @@
$$.sampler.set(EbtFloat, Esd2D);
$$.sampler.yuv = true;
}
-
| SUBPASSINPUT {
parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
$$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
@@ -3352,7 +3284,6 @@
$$.coopmat = true;
}
-
| struct_specifier {
$$ = $1;
$$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
@@ -3554,14 +3485,11 @@
| iteration_statement { $$ = $1; }
| jump_statement { $$ = $1; }
-
| demote_statement { $$ = $1; }
-
;
-
demote_statement
: DEMOTE SEMICOLON {
parseContext.requireStage($1.loc, EShLangFragment, "demote");
@@ -3571,7 +3499,6 @@
;
-
compound_statement
: LEFT_BRACE RIGHT_BRACE { $$ = 0; }
| LEFT_BRACE {
@@ -3958,3 +3885,4 @@
%%
+
diff --git a/glslang/MachineIndependent/glslang_angle.y b/glslang/MachineIndependent/glslang_angle.y
deleted file mode 100644
index 81edc06..0000000
--- a/glslang/MachineIndependent/glslang_angle.y
+++ /dev/null
@@ -1,2643 +0,0 @@
-//
-// Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
-// Copyright (C) 2012-2013 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
-// Copyright (C) 2015-2019 Google, Inc.
-// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-// Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-//
-// Do not edit the .y file, only edit the .m4 file.
-// The .y bison file is not a source file, it is a derivative of the .m4 file.
-// The m4 file needs to be processed by m4 to generate the .y bison file.
-//
-// Code sandwiched between a pair:
-//
-// GLSLANG_WEB_EXCLUDE_ON
-// ...
-// ...
-// ...
-// GLSLANG_WEB_EXCLUDE_OFF
-//
-// Will be excluded from the grammar when m4 is executed as:
-//
-// m4 -P -DGLSLANG_WEB
-//
-// It will be included when m4 is executed as:
-//
-// m4 -P
-//
-// A similar mechanism is used to exclude grammar for ANGLE with
-// GLSLANG_ANGLE_EXCLUDE_ON, GLSLANG_ANGLE_EXCLUDE_OFF and -DGLSLANG_ANGLE
-//
-
-
-
-
-
-
-
-/**
- * This is bison grammar and productions for parsing all versions of the
- * GLSL shading languages.
- */
-%{
-
-/* Based on:
-ANSI C Yacc grammar
-
-In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
-matching Lex specification) for the April 30, 1985 draft version of the
-ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
-original, as mentioned in the answer to question 17.25 of the comp.lang.c
-FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
-
-I intend to keep this version as close to the current C Standard grammar as
-possible; please let me know if you discover discrepancies.
-
-Jutta Degener, 1995
-*/
-
-#include "SymbolTable.h"
-#include "ParseHelper.h"
-#include "../Public/ShaderLang.h"
-#include "attribute.h"
-
-using namespace glslang;
-
-%}
-
-%define parse.error verbose
-
-%union {
- struct {
- glslang::TSourceLoc loc;
- union {
- glslang::TString *string;
- int i;
- unsigned int u;
- long long i64;
- unsigned long long u64;
- bool b;
- double d;
- };
- glslang::TSymbol* symbol;
- } lex;
- struct {
- glslang::TSourceLoc loc;
- glslang::TOperator op;
- union {
- TIntermNode* intermNode;
- glslang::TIntermNodePair nodePair;
- glslang::TIntermTyped* intermTypedNode;
- glslang::TAttributes* attributes;
- };
- union {
- glslang::TPublicType type;
- glslang::TFunction* function;
- glslang::TParameter param;
- glslang::TTypeLoc typeLine;
- glslang::TTypeList* typeList;
- glslang::TArraySizes* arraySizes;
- glslang::TIdentifierList* identifierList;
- };
- glslang::TArraySizes* typeParameters;
- } interm;
-}
-
-%{
-
-/* windows only pragma */
-#ifdef _MSC_VER
- #pragma warning(disable : 4065)
- #pragma warning(disable : 4127)
- #pragma warning(disable : 4244)
-#endif
-
-#define parseContext (*pParseContext)
-#define yyerror(context, msg) context->parserError(msg)
-
-extern int yylex(YYSTYPE*, TParseContext&);
-
-%}
-
-%parse-param {glslang::TParseContext* pParseContext}
-%lex-param {parseContext}
-%pure-parser // enable thread safety
-%expect 1 // One shift reduce conflict because of if | else
-
-%token <lex> CONST BOOL INT UINT FLOAT
-%token <lex> BVEC2 BVEC3 BVEC4
-%token <lex> IVEC2 IVEC3 IVEC4
-%token <lex> UVEC2 UVEC3 UVEC4
-%token <lex> VEC2 VEC3 VEC4
-%token <lex> MAT2 MAT3 MAT4
-%token <lex> MAT2X2 MAT2X3 MAT2X4
-%token <lex> MAT3X2 MAT3X3 MAT3X4
-%token <lex> MAT4X2 MAT4X3 MAT4X4
-
-// combined image/sampler
-%token <lex> SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER2DSHADOW
-%token <lex> SAMPLERCUBESHADOW SAMPLER2DARRAY
-%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
-%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
-%token <lex> USAMPLERCUBE USAMPLER2DARRAY
-
-// separate image/sampler
-%token <lex> SAMPLER SAMPLERSHADOW
-%token <lex> TEXTURE2D TEXTURE3D TEXTURECUBE TEXTURE2DARRAY
-%token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
-%token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
-
-
-
-%token <lex> ATTRIBUTE VARYING
-
-
-
-// combined image/sampler
-%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
-%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
-%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
-%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
-%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
-%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
-%token <lex> SAMPLEREXTERNALOES
-%token <lex> SAMPLEREXTERNAL2DY2YEXT
-
-
-
-// images
-%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
-%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
-%token <lex> IMAGE2DRECT IIMAGE2DRECT UIMAGE2DRECT
-%token <lex> IMAGECUBE IIMAGECUBE UIMAGECUBE
-%token <lex> IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER
-%token <lex> IMAGE1DARRAY IIMAGE1DARRAY UIMAGE1DARRAY
-%token <lex> IMAGE2DARRAY IIMAGE2DARRAY UIMAGE2DARRAY
-%token <lex> IMAGECUBEARRAY IIMAGECUBEARRAY UIMAGECUBEARRAY
-%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
-%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
-
-
-
-// texture without sampler
-%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
-%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
-%token <lex> TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY
-%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
-%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
-%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
-%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
-
-
-
-
-
-%token <lex> LEFT_OP RIGHT_OP
-%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
-%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
-%token <lex> MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN
-%token <lex> SUB_ASSIGN
-%token <lex> STRING_LITERAL
-
-%token <lex> LEFT_PAREN RIGHT_PAREN LEFT_BRACKET RIGHT_BRACKET LEFT_BRACE RIGHT_BRACE DOT
-%token <lex> COMMA COLON EQUAL SEMICOLON BANG DASH TILDE PLUS STAR SLASH PERCENT
-%token <lex> LEFT_ANGLE RIGHT_ANGLE VERTICAL_BAR CARET AMPERSAND QUESTION
-
-%token <lex> INVARIANT
-%token <lex> HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION
-%token <lex> PACKED RESOURCE SUPERP
-
-%token <lex> FLOATCONSTANT INTCONSTANT UINTCONSTANT BOOLCONSTANT
-%token <lex> IDENTIFIER TYPE_NAME
-%token <lex> CENTROID IN OUT INOUT
-%token <lex> STRUCT VOID WHILE
-%token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
-%token <lex> UNIFORM SHARED BUFFER
-%token <lex> FLAT SMOOTH LAYOUT
-
-
-
-
-
-%token <lex> PATCH SAMPLE
-%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
-%token <lex> NOPERSPECTIVE
-%token <lex> PRECISE
-
-
-
-%type <interm> assignment_operator unary_operator
-%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
-%type <interm.intermTypedNode> expression integer_expression assignment_expression
-%type <interm.intermTypedNode> unary_expression multiplicative_expression additive_expression
-%type <interm.intermTypedNode> relational_expression equality_expression
-%type <interm.intermTypedNode> conditional_expression constant_expression
-%type <interm.intermTypedNode> logical_or_expression logical_xor_expression logical_and_expression
-%type <interm.intermTypedNode> shift_expression and_expression exclusive_or_expression inclusive_or_expression
-%type <interm.intermTypedNode> function_call initializer condition conditionopt
-
-%type <interm.intermNode> translation_unit function_definition
-%type <interm.intermNode> statement simple_statement
-%type <interm.intermNode> statement_list switch_statement_list compound_statement
-%type <interm.intermNode> declaration_statement selection_statement selection_statement_nonattributed expression_statement
-%type <interm.intermNode> switch_statement switch_statement_nonattributed case_label
-%type <interm.intermNode> declaration external_declaration
-%type <interm.intermNode> for_init_statement compound_statement_no_new_scope
-%type <interm.nodePair> selection_rest_statement for_rest_statement
-%type <interm.intermNode> iteration_statement iteration_statement_nonattributed jump_statement statement_no_new_scope statement_scoped
-%type <interm> single_declaration init_declarator_list
-
-%type <interm> parameter_declaration parameter_declarator parameter_type_specifier
-
-%type <interm> array_specifier
-%type <interm.type> invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier
-%type <interm.type> layout_qualifier layout_qualifier_id_list layout_qualifier_id
-
-%type <interm.typeParameters> type_parameter_specifier
-%type <interm.typeParameters> type_parameter_specifier_opt
-%type <interm.typeParameters> type_parameter_specifier_list
-
-%type <interm.type> type_qualifier fully_specified_type type_specifier
-%type <interm.type> single_type_qualifier
-%type <interm.type> type_specifier_nonarray
-%type <interm.type> struct_specifier
-%type <interm.typeLine> struct_declarator
-%type <interm.typeList> struct_declarator_list struct_declaration struct_declaration_list
-%type <interm> block_structure
-%type <interm.function> function_header function_declarator
-%type <interm.function> function_header_with_parameters
-%type <interm> function_call_header_with_parameters function_call_header_no_parameters function_call_generic function_prototype
-%type <interm> function_call_or_method function_identifier function_call_header
-
-%type <interm.identifierList> identifier_list
-
-
-
-
-
-%type <interm.type> precise_qualifier
-%type <interm.typeList> type_name_list
-%type <interm.attributes> attribute attribute_list single_attribute
-%type <interm.intermTypedNode> initializer_list
-
-
-
-%start translation_unit
-%%
-
-variable_identifier
- : IDENTIFIER {
- $$ = parseContext.handleVariable($1.loc, $1.symbol, $1.string);
- }
- ;
-
-primary_expression
- : variable_identifier {
- $$ = $1;
- }
- | LEFT_PAREN expression RIGHT_PAREN {
- $$ = $2;
- if ($$->getAsConstantUnion())
- $$->getAsConstantUnion()->setExpression();
- }
- | FLOATCONSTANT {
- $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
- }
- | INTCONSTANT {
- $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
- }
- | UINTCONSTANT {
- parseContext.fullIntegerCheck($1.loc, "unsigned literal");
- $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
- }
- | BOOLCONSTANT {
- $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
- }
-
-
-
- ;
-
-postfix_expression
- : primary_expression {
- $$ = $1;
- }
- | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET {
- $$ = parseContext.handleBracketDereference($2.loc, $1, $3);
- }
- | function_call {
- $$ = $1;
- }
- | postfix_expression DOT IDENTIFIER {
- $$ = parseContext.handleDotDereference($3.loc, $1, *$3.string);
- }
- | postfix_expression INC_OP {
- parseContext.variableCheck($1);
- parseContext.lValueErrorCheck($2.loc, "++", $1);
- $$ = parseContext.handleUnaryMath($2.loc, "++", EOpPostIncrement, $1);
- }
- | postfix_expression DEC_OP {
- parseContext.variableCheck($1);
- parseContext.lValueErrorCheck($2.loc, "--", $1);
- $$ = parseContext.handleUnaryMath($2.loc, "--", EOpPostDecrement, $1);
- }
- ;
-
-integer_expression
- : expression {
- parseContext.integerCheck($1, "[]");
- $$ = $1;
- }
- ;
-
-function_call
- : function_call_or_method {
- $$ = parseContext.handleFunctionCall($1.loc, $1.function, $1.intermNode);
- delete $1.function;
- }
- ;
-
-function_call_or_method
- : function_call_generic {
- $$ = $1;
- }
- ;
-
-function_call_generic
- : function_call_header_with_parameters RIGHT_PAREN {
- $$ = $1;
- $$.loc = $2.loc;
- }
- | function_call_header_no_parameters RIGHT_PAREN {
- $$ = $1;
- $$.loc = $2.loc;
- }
- ;
-
-function_call_header_no_parameters
- : function_call_header VOID {
- $$ = $1;
- }
- | function_call_header {
- $$ = $1;
- }
- ;
-
-function_call_header_with_parameters
- : function_call_header assignment_expression {
- TParameter param = { 0, new TType };
- param.type->shallowCopy($2->getType());
- $1.function->addParameter(param);
- $$.function = $1.function;
- $$.intermNode = $2;
- }
- | function_call_header_with_parameters COMMA assignment_expression {
- TParameter param = { 0, new TType };
- param.type->shallowCopy($3->getType());
- $1.function->addParameter(param);
- $$.function = $1.function;
- $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc);
- }
- ;
-
-function_call_header
- : function_identifier LEFT_PAREN {
- $$ = $1;
- }
- ;
-
-// Grammar Note: Constructors look like functions, but are recognized as types.
-
-function_identifier
- : type_specifier {
- // Constructor
- $$.intermNode = 0;
- $$.function = parseContext.handleConstructorCall($1.loc, $1);
- }
- | postfix_expression {
- //
- // Should be a method or subroutine call, but we haven't recognized the arguments yet.
- //
- $$.function = 0;
- $$.intermNode = 0;
-
- TIntermMethod* method = $1->getAsMethodNode();
- if (method) {
- $$.function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
- $$.intermNode = method->getObject();
- } else {
- TIntermSymbol* symbol = $1->getAsSymbolNode();
- if (symbol) {
- parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
- TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
- $$.function = function;
- } else
- parseContext.error($1->getLoc(), "function call, method, or subroutine call expected", "", "");
- }
-
- if ($$.function == 0) {
- // error recover
- TString* empty = NewPoolTString("");
- $$.function = new TFunction(empty, TType(EbtVoid), EOpNull);
- }
- }
-
-
-
- ;
-
-unary_expression
- : postfix_expression {
- parseContext.variableCheck($1);
- $$ = $1;
- if (TIntermMethod* method = $1->getAsMethodNode())
- parseContext.error($1->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
- }
- | INC_OP unary_expression {
- parseContext.lValueErrorCheck($1.loc, "++", $2);
- $$ = parseContext.handleUnaryMath($1.loc, "++", EOpPreIncrement, $2);
- }
- | DEC_OP unary_expression {
- parseContext.lValueErrorCheck($1.loc, "--", $2);
- $$ = parseContext.handleUnaryMath($1.loc, "--", EOpPreDecrement, $2);
- }
- | unary_operator unary_expression {
- if ($1.op != EOpNull) {
- char errorOp[2] = {0, 0};
- switch($1.op) {
- case EOpNegative: errorOp[0] = '-'; break;
- case EOpLogicalNot: errorOp[0] = '!'; break;
- case EOpBitwiseNot: errorOp[0] = '~'; break;
- default: break; // some compilers want this
- }
- $$ = parseContext.handleUnaryMath($1.loc, errorOp, $1.op, $2);
- } else {
- $$ = $2;
- if ($$->getAsConstantUnion())
- $$->getAsConstantUnion()->setExpression();
- }
- }
- ;
-// Grammar Note: No traditional style type casts.
-
-unary_operator
- : PLUS { $$.loc = $1.loc; $$.op = EOpNull; }
- | DASH { $$.loc = $1.loc; $$.op = EOpNegative; }
- | BANG { $$.loc = $1.loc; $$.op = EOpLogicalNot; }
- | TILDE { $$.loc = $1.loc; $$.op = EOpBitwiseNot;
- parseContext.fullIntegerCheck($1.loc, "bitwise not"); }
- ;
-// Grammar Note: No '*' or '&' unary ops. Pointers are not supported.
-
-multiplicative_expression
- : unary_expression { $$ = $1; }
- | multiplicative_expression STAR unary_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "*", EOpMul, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- | multiplicative_expression SLASH unary_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "/", EOpDiv, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- | multiplicative_expression PERCENT unary_expression {
- parseContext.fullIntegerCheck($2.loc, "%");
- $$ = parseContext.handleBinaryMath($2.loc, "%", EOpMod, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-additive_expression
- : multiplicative_expression { $$ = $1; }
- | additive_expression PLUS multiplicative_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "+", EOpAdd, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- | additive_expression DASH multiplicative_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "-", EOpSub, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-shift_expression
- : additive_expression { $$ = $1; }
- | shift_expression LEFT_OP additive_expression {
- parseContext.fullIntegerCheck($2.loc, "bit shift left");
- $$ = parseContext.handleBinaryMath($2.loc, "<<", EOpLeftShift, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- | shift_expression RIGHT_OP additive_expression {
- parseContext.fullIntegerCheck($2.loc, "bit shift right");
- $$ = parseContext.handleBinaryMath($2.loc, ">>", EOpRightShift, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-relational_expression
- : shift_expression { $$ = $1; }
- | relational_expression LEFT_ANGLE shift_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "<", EOpLessThan, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- | relational_expression RIGHT_ANGLE shift_expression {
- $$ = parseContext.handleBinaryMath($2.loc, ">", EOpGreaterThan, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- | relational_expression LE_OP shift_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "<=", EOpLessThanEqual, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- | relational_expression GE_OP shift_expression {
- $$ = parseContext.handleBinaryMath($2.loc, ">=", EOpGreaterThanEqual, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- ;
-
-equality_expression
- : relational_expression { $$ = $1; }
- | equality_expression EQ_OP relational_expression {
- parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison");
- parseContext.opaqueCheck($2.loc, $1->getType(), "==");
- parseContext.specializationCheck($2.loc, $1->getType(), "==");
- parseContext.referenceCheck($2.loc, $1->getType(), "==");
- $$ = parseContext.handleBinaryMath($2.loc, "==", EOpEqual, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- | equality_expression NE_OP relational_expression {
- parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison");
- parseContext.opaqueCheck($2.loc, $1->getType(), "!=");
- parseContext.specializationCheck($2.loc, $1->getType(), "!=");
- parseContext.referenceCheck($2.loc, $1->getType(), "!=");
- $$ = parseContext.handleBinaryMath($2.loc, "!=", EOpNotEqual, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- ;
-
-and_expression
- : equality_expression { $$ = $1; }
- | and_expression AMPERSAND equality_expression {
- parseContext.fullIntegerCheck($2.loc, "bitwise and");
- $$ = parseContext.handleBinaryMath($2.loc, "&", EOpAnd, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-exclusive_or_expression
- : and_expression { $$ = $1; }
- | exclusive_or_expression CARET and_expression {
- parseContext.fullIntegerCheck($2.loc, "bitwise exclusive or");
- $$ = parseContext.handleBinaryMath($2.loc, "^", EOpExclusiveOr, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-inclusive_or_expression
- : exclusive_or_expression { $$ = $1; }
- | inclusive_or_expression VERTICAL_BAR exclusive_or_expression {
- parseContext.fullIntegerCheck($2.loc, "bitwise inclusive or");
- $$ = parseContext.handleBinaryMath($2.loc, "|", EOpInclusiveOr, $1, $3);
- if ($$ == 0)
- $$ = $1;
- }
- ;
-
-logical_and_expression
- : inclusive_or_expression { $$ = $1; }
- | logical_and_expression AND_OP inclusive_or_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "&&", EOpLogicalAnd, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- ;
-
-logical_xor_expression
- : logical_and_expression { $$ = $1; }
- | logical_xor_expression XOR_OP logical_and_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "^^", EOpLogicalXor, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- ;
-
-logical_or_expression
- : logical_xor_expression { $$ = $1; }
- | logical_or_expression OR_OP logical_xor_expression {
- $$ = parseContext.handleBinaryMath($2.loc, "||", EOpLogicalOr, $1, $3);
- if ($$ == 0)
- $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
- }
- ;
-
-conditional_expression
- : logical_or_expression { $$ = $1; }
- | logical_or_expression QUESTION {
- ++parseContext.controlFlowNestingLevel;
- }
- expression COLON assignment_expression {
- --parseContext.controlFlowNestingLevel;
- parseContext.boolCheck($2.loc, $1);
- parseContext.rValueErrorCheck($2.loc, "?", $1);
- parseContext.rValueErrorCheck($5.loc, ":", $4);
- parseContext.rValueErrorCheck($5.loc, ":", $6);
- $$ = parseContext.intermediate.addSelection($1, $4, $6, $2.loc);
- if ($$ == 0) {
- parseContext.binaryOpError($2.loc, ":", $4->getCompleteString(), $6->getCompleteString());
- $$ = $6;
- }
- }
- ;
-
-assignment_expression
- : conditional_expression { $$ = $1; }
- | unary_expression assignment_operator assignment_expression {
- parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment");
- parseContext.opaqueCheck($2.loc, $1->getType(), "=");
- parseContext.storage16BitAssignmentCheck($2.loc, $1->getType(), "=");
- parseContext.specializationCheck($2.loc, $1->getType(), "=");
- parseContext.lValueErrorCheck($2.loc, "assign", $1);
- parseContext.rValueErrorCheck($2.loc, "assign", $3);
- $$ = parseContext.intermediate.addAssign($2.op, $1, $3, $2.loc);
- if ($$ == 0) {
- parseContext.assignError($2.loc, "assign", $1->getCompleteString(), $3->getCompleteString());
- $$ = $1;
- }
- }
- ;
-
-assignment_operator
- : EQUAL {
- $$.loc = $1.loc;
- $$.op = EOpAssign;
- }
- | MUL_ASSIGN {
- $$.loc = $1.loc;
- $$.op = EOpMulAssign;
- }
- | DIV_ASSIGN {
- $$.loc = $1.loc;
- $$.op = EOpDivAssign;
- }
- | MOD_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "%=");
- $$.loc = $1.loc;
- $$.op = EOpModAssign;
- }
- | ADD_ASSIGN {
- $$.loc = $1.loc;
- $$.op = EOpAddAssign;
- }
- | SUB_ASSIGN {
- $$.loc = $1.loc;
- $$.op = EOpSubAssign;
- }
- | LEFT_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "bit-shift left assign");
- $$.loc = $1.loc; $$.op = EOpLeftShiftAssign;
- }
- | RIGHT_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "bit-shift right assign");
- $$.loc = $1.loc; $$.op = EOpRightShiftAssign;
- }
- | AND_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "bitwise-and assign");
- $$.loc = $1.loc; $$.op = EOpAndAssign;
- }
- | XOR_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "bitwise-xor assign");
- $$.loc = $1.loc; $$.op = EOpExclusiveOrAssign;
- }
- | OR_ASSIGN {
- parseContext.fullIntegerCheck($1.loc, "bitwise-or assign");
- $$.loc = $1.loc; $$.op = EOpInclusiveOrAssign;
- }
- ;
-
-expression
- : assignment_expression {
- $$ = $1;
- }
- | expression COMMA assignment_expression {
- parseContext.samplerConstructorLocationCheck($2.loc, ",", $3);
- $$ = parseContext.intermediate.addComma($1, $3, $2.loc);
- if ($$ == 0) {
- parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(), $3->getCompleteString());
- $$ = $3;
- }
- }
- ;
-
-constant_expression
- : conditional_expression {
- parseContext.constantValueCheck($1, "");
- $$ = $1;
- }
- ;
-
-declaration
- : function_prototype SEMICOLON {
- parseContext.handleFunctionDeclarator($1.loc, *$1.function, true /* prototype */);
- $$ = 0;
- // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
- }
- | init_declarator_list SEMICOLON {
- if ($1.intermNode && $1.intermNode->getAsAggregate())
- $1.intermNode->getAsAggregate()->setOperator(EOpSequence);
- $$ = $1.intermNode;
- }
- | PRECISION precision_qualifier type_specifier SEMICOLON {
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "precision statement");
- // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
- parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
- parseContext.setDefaultPrecision($1.loc, $3, $2.qualifier.precision);
- $$ = 0;
- }
- | block_structure SEMICOLON {
- parseContext.declareBlock($1.loc, *$1.typeList);
- $$ = 0;
- }
- | block_structure IDENTIFIER SEMICOLON {
- parseContext.declareBlock($1.loc, *$1.typeList, $2.string);
- $$ = 0;
- }
- | block_structure IDENTIFIER array_specifier SEMICOLON {
- parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes);
- $$ = 0;
- }
- | type_qualifier SEMICOLON {
- parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
- parseContext.updateStandaloneQualifierDefaults($1.loc, $1);
- $$ = 0;
- }
- | type_qualifier IDENTIFIER SEMICOLON {
- parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
- parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$2.string);
- $$ = 0;
- }
- | type_qualifier IDENTIFIER identifier_list SEMICOLON {
- parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
- $3->push_back($2.string);
- parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$3);
- $$ = 0;
- }
- ;
-
-block_structure
- : type_qualifier IDENTIFIER LEFT_BRACE { parseContext.nestedBlockCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
- --parseContext.structNestingLevel;
- parseContext.blockName = $2.string;
- parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
- parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
- parseContext.currentBlockQualifier = $1.qualifier;
- $$.loc = $1.loc;
- $$.typeList = $5;
- }
-
-identifier_list
- : COMMA IDENTIFIER {
- $$ = new TIdentifierList;
- $$->push_back($2.string);
- }
- | identifier_list COMMA IDENTIFIER {
- $$ = $1;
- $$->push_back($3.string);
- }
- ;
-
-function_prototype
- : function_declarator RIGHT_PAREN {
- $$.function = $1;
- $$.loc = $2.loc;
- }
- ;
-
-function_declarator
- : function_header {
- $$ = $1;
- }
- | function_header_with_parameters {
- $$ = $1;
- }
- ;
-
-
-function_header_with_parameters
- : function_header parameter_declaration {
- // Add the parameter
- $$ = $1;
- if ($2.param.type->getBasicType() != EbtVoid)
- $1->addParameter($2.param);
- else
- delete $2.param.type;
- }
- | function_header_with_parameters COMMA parameter_declaration {
- //
- // Only first parameter of one-parameter functions can be void
- // The check for named parameters not being void is done in parameter_declarator
- //
- if ($3.param.type->getBasicType() == EbtVoid) {
- //
- // This parameter > first is void
- //
- parseContext.error($2.loc, "cannot be an argument type except for '(void)'", "void", "");
- delete $3.param.type;
- } else {
- // Add the parameter
- $$ = $1;
- $1->addParameter($3.param);
- }
- }
- ;
-
-function_header
- : fully_specified_type IDENTIFIER LEFT_PAREN {
- if ($1.qualifier.storage != EvqGlobal && $1.qualifier.storage != EvqTemporary) {
- parseContext.error($2.loc, "no qualifiers allowed for function return",
- GetStorageQualifierString($1.qualifier.storage), "");
- }
- if ($1.arraySizes)
- parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-
- // Add the function as a prototype after parsing it (we do not support recursion)
- TFunction *function;
- TType type($1);
-
- // Potentially rename shader entry point function. No-op most of the time.
- parseContext.renameShaderFunction($2.string);
-
- // Make the function
- function = new TFunction($2.string, type);
- $$ = function;
- }
- ;
-
-parameter_declarator
- // Type + name
- : type_specifier IDENTIFIER {
- if ($1.arraySizes) {
- parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
- parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
- }
- if ($1.basicType == EbtVoid) {
- parseContext.error($2.loc, "illegal use of type 'void'", $2.string->c_str(), "");
- }
- parseContext.reservedErrorCheck($2.loc, *$2.string);
-
- TParameter param = {$2.string, new TType($1)};
- $$.loc = $2.loc;
- $$.param = param;
- }
- | type_specifier IDENTIFIER array_specifier {
- if ($1.arraySizes) {
- parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
- parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
- }
- TType* type = new TType($1);
- type->transferArraySizes($3.arraySizes);
- type->copyArrayInnerSizes($1.arraySizes);
-
- parseContext.arrayOfArrayVersionCheck($2.loc, type->getArraySizes());
- parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes);
- parseContext.reservedErrorCheck($2.loc, *$2.string);
-
- TParameter param = { $2.string, type };
-
- $$.loc = $2.loc;
- $$.param = param;
- }
- ;
-
-parameter_declaration
- //
- // With name
- //
- : type_qualifier parameter_declarator {
- $$ = $2;
- if ($1.qualifier.precision != EpqNone)
- $$.param.type->getQualifier().precision = $1.qualifier.precision;
- parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-
- parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
- parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
- parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type);
-
- }
- | parameter_declarator {
- $$ = $1;
-
- parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
- parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
- parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
- }
- //
- // Without name
- //
- | type_qualifier parameter_type_specifier {
- $$ = $2;
- if ($1.qualifier.precision != EpqNone)
- $$.param.type->getQualifier().precision = $1.qualifier.precision;
- parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-
- parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
- parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
- parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type);
- }
- | parameter_type_specifier {
- $$ = $1;
-
- parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
- parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
- parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
- }
- ;
-
-parameter_type_specifier
- : type_specifier {
- TParameter param = { 0, new TType($1) };
- $$.param = param;
- if ($1.arraySizes)
- parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
- }
- ;
-
-init_declarator_list
- : single_declaration {
- $$ = $1;
- }
- | init_declarator_list COMMA IDENTIFIER {
- $$ = $1;
- parseContext.declareVariable($3.loc, *$3.string, $1.type);
- }
- | init_declarator_list COMMA IDENTIFIER array_specifier {
- $$ = $1;
- parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes);
- }
- | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer {
- $$.type = $1.type;
- TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6);
- $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $5.loc);
- }
- | init_declarator_list COMMA IDENTIFIER EQUAL initializer {
- $$.type = $1.type;
- TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5);
- $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $4.loc);
- }
- ;
-
-single_declaration
- : fully_specified_type {
- $$.type = $1;
- $$.intermNode = 0;
-
- parseContext.declareTypeDefaults($$.loc, $$.type);
-
- }
- | fully_specified_type IDENTIFIER {
- $$.type = $1;
- $$.intermNode = 0;
- parseContext.declareVariable($2.loc, *$2.string, $1);
- }
- | fully_specified_type IDENTIFIER array_specifier {
- $$.type = $1;
- $$.intermNode = 0;
- parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes);
- }
- | fully_specified_type IDENTIFIER array_specifier EQUAL initializer {
- $$.type = $1;
- TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5);
- $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $4.loc);
- }
- | fully_specified_type IDENTIFIER EQUAL initializer {
- $$.type = $1;
- TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4);
- $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $3.loc);
- }
-
-// Grammar Note: No 'enum', or 'typedef'.
-
-fully_specified_type
- : type_specifier {
- $$ = $1;
-
- parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $$);
- if ($1.arraySizes) {
- parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
- }
- parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier);
- }
- | type_qualifier type_specifier {
- parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
- parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2);
-
- if ($2.arraySizes) {
- parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type");
- }
-
- if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier))
- $2.arraySizes = nullptr;
-
- parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers);
- $2.shaderQualifiers.merge($1.shaderQualifiers);
- parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
- parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
-
- $$ = $2;
-
- if (! $$.qualifier.isInterpolation() &&
- ((parseContext.language == EShLangVertex && $$.qualifier.storage == EvqVaryingOut) ||
- (parseContext.language == EShLangFragment && $$.qualifier.storage == EvqVaryingIn)))
- $$.qualifier.smooth = true;
- }
- ;
-
-invariant_qualifier
- : INVARIANT {
- parseContext.globalCheck($1.loc, "invariant");
- parseContext.profileRequires($$.loc, ENoProfile, 120, 0, "invariant");
- $$.init($1.loc);
- $$.qualifier.invariant = true;
- }
- ;
-
-interpolation_qualifier
- : SMOOTH {
- parseContext.globalCheck($1.loc, "smooth");
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "smooth");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "smooth");
- $$.init($1.loc);
- $$.qualifier.smooth = true;
- }
- | FLAT {
- parseContext.globalCheck($1.loc, "flat");
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "flat");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "flat");
- $$.init($1.loc);
- $$.qualifier.flat = true;
- }
-
- | NOPERSPECTIVE {
- parseContext.globalCheck($1.loc, "noperspective");
- parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective");
- $$.init($1.loc);
- $$.qualifier.nopersp = true;
- }
-
-
- ;
-
-layout_qualifier
- : LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN {
- $$ = $3;
- }
- ;
-
-layout_qualifier_id_list
- : layout_qualifier_id {
- $$ = $1;
- }
- | layout_qualifier_id_list COMMA layout_qualifier_id {
- $$ = $1;
- $$.shaderQualifiers.merge($3.shaderQualifiers);
- parseContext.mergeObjectLayoutQualifiers($$.qualifier, $3.qualifier, false);
- }
-
-layout_qualifier_id
- : IDENTIFIER {
- $$.init($1.loc);
- parseContext.setLayoutQualifier($1.loc, $$, *$1.string);
- }
- | IDENTIFIER EQUAL constant_expression {
- $$.init($1.loc);
- parseContext.setLayoutQualifier($1.loc, $$, *$1.string, $3);
- }
- | SHARED { // because "shared" is both an identifier and a keyword
- $$.init($1.loc);
- TString strShared("shared");
- parseContext.setLayoutQualifier($1.loc, $$, strShared);
- }
- ;
-
-
-precise_qualifier
- : PRECISE {
- parseContext.profileRequires($$.loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
- parseContext.profileRequires($1.loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
- $$.init($1.loc);
- $$.qualifier.noContraction = true;
- }
- ;
-
-
-type_qualifier
- : single_type_qualifier {
- $$ = $1;
- }
- | type_qualifier single_type_qualifier {
- $$ = $1;
- if ($$.basicType == EbtVoid)
- $$.basicType = $2.basicType;
-
- $$.shaderQualifiers.merge($2.shaderQualifiers);
- parseContext.mergeQualifiers($$.loc, $$.qualifier, $2.qualifier, false);
- }
- ;
-
-single_type_qualifier
- : storage_qualifier {
- $$ = $1;
- }
- | layout_qualifier {
- $$ = $1;
- }
- | precision_qualifier {
- parseContext.checkPrecisionQualifier($1.loc, $1.qualifier.precision);
- $$ = $1;
- }
- | interpolation_qualifier {
- // allow inheritance of storage qualifier from block declaration
- $$ = $1;
- }
- | invariant_qualifier {
- // allow inheritance of storage qualifier from block declaration
- $$ = $1;
- }
-
- | precise_qualifier {
- // allow inheritance of storage qualifier from block declaration
- $$ = $1;
- }
-
-
- ;
-
-storage_qualifier
- : CONST {
- $$.init($1.loc);
- $$.qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
- }
- | INOUT {
- parseContext.globalCheck($1.loc, "inout");
- $$.init($1.loc);
- $$.qualifier.storage = EvqInOut;
- }
- | IN {
- parseContext.globalCheck($1.loc, "in");
- $$.init($1.loc);
- // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
- $$.qualifier.storage = EvqIn;
- }
- | OUT {
- parseContext.globalCheck($1.loc, "out");
- $$.init($1.loc);
- // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
- $$.qualifier.storage = EvqOut;
- }
- | CENTROID {
- parseContext.profileRequires($1.loc, ENoProfile, 120, 0, "centroid");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "centroid");
- parseContext.globalCheck($1.loc, "centroid");
- $$.init($1.loc);
- $$.qualifier.centroid = true;
- }
- | UNIFORM {
- parseContext.globalCheck($1.loc, "uniform");
- $$.init($1.loc);
- $$.qualifier.storage = EvqUniform;
- }
- | SHARED {
- parseContext.globalCheck($1.loc, "shared");
- parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
- parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared");
- parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
- $$.init($1.loc);
- $$.qualifier.storage = EvqShared;
- }
- | BUFFER {
- parseContext.globalCheck($1.loc, "buffer");
- $$.init($1.loc);
- $$.qualifier.storage = EvqBuffer;
- }
-
- | ATTRIBUTE {
- parseContext.requireStage($1.loc, EShLangVertex, "attribute");
- parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute");
- parseContext.checkDeprecated($1.loc, ENoProfile, 130, "attribute");
- parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "attribute");
- parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "attribute");
-
- parseContext.globalCheck($1.loc, "attribute");
-
- $$.init($1.loc);
- $$.qualifier.storage = EvqVaryingIn;
- }
- | VARYING {
- parseContext.checkDeprecated($1.loc, ENoProfile, 130, "varying");
- parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "varying");
- parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "varying");
- parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "varying");
-
- parseContext.globalCheck($1.loc, "varying");
-
- $$.init($1.loc);
- if (parseContext.language == EShLangVertex)
- $$.qualifier.storage = EvqVaryingOut;
- else
- $$.qualifier.storage = EvqVaryingIn;
- }
- | PATCH {
- parseContext.globalCheck($1.loc, "patch");
- parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
- $$.init($1.loc);
- $$.qualifier.patch = true;
- }
- | SAMPLE {
- parseContext.globalCheck($1.loc, "sample");
- $$.init($1.loc);
- $$.qualifier.sample = true;
- }
-
- | COHERENT {
- $$.init($1.loc);
- $$.qualifier.coherent = true;
- }
- | VOLATILE {
- $$.init($1.loc);
- $$.qualifier.volatil = true;
- }
- | RESTRICT {
- $$.init($1.loc);
- $$.qualifier.restrict = true;
- }
- | READONLY {
- $$.init($1.loc);
- $$.qualifier.readonly = true;
- }
- | WRITEONLY {
- $$.init($1.loc);
- $$.qualifier.writeonly = true;
- }
-
- ;
-
-
-
-
-type_name_list
- : IDENTIFIER {
- // TODO
- }
- | type_name_list COMMA IDENTIFIER {
- // TODO: 4.0 semantics: subroutines
- // 1) make sure each identifier is a type declared earlier with SUBROUTINE
- // 2) save all of the identifiers for future comparison with the declared function
- }
- ;
-
-
-type_specifier
- : type_specifier_nonarray type_parameter_specifier_opt {
- $$ = $1;
- $$.qualifier.precision = parseContext.getDefaultPrecision($$);
- $$.typeParameters = $2;
- }
- | type_specifier_nonarray type_parameter_specifier_opt array_specifier {
- parseContext.arrayOfArrayVersionCheck($3.loc, $3.arraySizes);
- $$ = $1;
- $$.qualifier.precision = parseContext.getDefaultPrecision($$);
- $$.typeParameters = $2;
- $$.arraySizes = $3.arraySizes;
- }
- ;
-
-array_specifier
- : LEFT_BRACKET RIGHT_BRACKET {
- $$.loc = $1.loc;
- $$.arraySizes = new TArraySizes;
- $$.arraySizes->addInnerSize();
- }
- | LEFT_BRACKET conditional_expression RIGHT_BRACKET {
- $$.loc = $1.loc;
- $$.arraySizes = new TArraySizes;
-
- TArraySize size;
- parseContext.arraySizeCheck($2->getLoc(), $2, size, "array size");
- $$.arraySizes->addInnerSize(size);
- }
- | array_specifier LEFT_BRACKET RIGHT_BRACKET {
- $$ = $1;
- $$.arraySizes->addInnerSize();
- }
- | array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET {
- $$ = $1;
-
- TArraySize size;
- parseContext.arraySizeCheck($3->getLoc(), $3, size, "array size");
- $$.arraySizes->addInnerSize(size);
- }
- ;
-
-type_parameter_specifier_opt
- : type_parameter_specifier {
- $$ = $1;
- }
- | /* May be null */ {
- $$ = 0;
- }
- ;
-
-type_parameter_specifier
- : LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE {
- $$ = $2;
- }
- ;
-
-type_parameter_specifier_list
- : unary_expression {
- $$ = new TArraySizes;
-
- TArraySize size;
- parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter");
- $$->addInnerSize(size);
- }
- | type_parameter_specifier_list COMMA unary_expression {
- $$ = $1;
-
- TArraySize size;
- parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter");
- $$->addInnerSize(size);
- }
- ;
-
-type_specifier_nonarray
- : VOID {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtVoid;
- }
- | FLOAT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- }
- | INT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtInt;
- }
- | UINT {
- parseContext.fullIntegerCheck($1.loc, "unsigned integer");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtUint;
- }
- | BOOL {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtBool;
- }
- | VEC2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setVector(2);
- }
- | VEC3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setVector(3);
- }
- | VEC4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setVector(4);
- }
- | BVEC2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtBool;
- $$.setVector(2);
- }
- | BVEC3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtBool;
- $$.setVector(3);
- }
- | BVEC4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtBool;
- $$.setVector(4);
- }
- | IVEC2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtInt;
- $$.setVector(2);
- }
- | IVEC3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtInt;
- $$.setVector(3);
- }
- | IVEC4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtInt;
- $$.setVector(4);
- }
- | UVEC2 {
- parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtUint;
- $$.setVector(2);
- }
- | UVEC3 {
- parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtUint;
- $$.setVector(3);
- }
- | UVEC4 {
- parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtUint;
- $$.setVector(4);
- }
- | MAT2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(2, 2);
- }
- | MAT3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(3, 3);
- }
- | MAT4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(4, 4);
- }
- | MAT2X2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(2, 2);
- }
- | MAT2X3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(2, 3);
- }
- | MAT2X4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(2, 4);
- }
- | MAT3X2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(3, 2);
- }
- | MAT3X3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(3, 3);
- }
- | MAT3X4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(3, 4);
- }
- | MAT4X2 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(4, 2);
- }
- | MAT4X3 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(4, 3);
- }
- | MAT4X4 {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtFloat;
- $$.setMatrix(4, 4);
- }
-
-
-
- | SAMPLER2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D);
- }
- | SAMPLER3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd3D);
- }
- | SAMPLERCUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube);
- }
- | SAMPLER2DSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, false, true);
- }
- | SAMPLERCUBESHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, false, true);
- }
- | SAMPLER2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true);
- }
- | SAMPLER2DARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true, true);
- }
-
- | SAMPLERCUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true);
- }
- | SAMPLERCUBEARRAYSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdCube, true, true);
- }
-
-
- | ISAMPLER2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D);
- }
- | ISAMPLER3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd3D);
- }
- | ISAMPLERCUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, EsdCube);
- }
- | ISAMPLER2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D, true);
- }
- | USAMPLER2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D);
- }
- | USAMPLER3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd3D);
- }
- | USAMPLERCUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube);
- }
-
- | ISAMPLERCUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, EsdCube, true);
- }
- | USAMPLERCUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdCube, true);
- }
- | TEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube, true);
- }
- | ITEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube, true);
- }
- | UTEXTURECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube, true);
- }
-
-
- | USAMPLER2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D, true);
- }
- | TEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D);
- }
- | TEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd3D);
- }
- | TEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true);
- }
- | TEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdCube);
- }
- | ITEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D);
- }
- | ITEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd3D);
- }
- | ITEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdCube);
- }
- | ITEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true);
- }
- | UTEXTURE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D);
- }
- | UTEXTURE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd3D);
- }
- | UTEXTURECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdCube);
- }
- | UTEXTURE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true);
- }
- | SAMPLER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(false);
- }
- | SAMPLERSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setPureSampler(true);
- }
-
- | SAMPLER2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdRect);
- }
- | SAMPLER2DRECTSHADOW {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdRect, false, true);
- }
- | ISAMPLER2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, EsdRect);
- }
- | USAMPLER2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdRect);
- }
- | SAMPLERBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, EsdBuffer);
- }
- | ISAMPLERBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, EsdBuffer);
- }
- | USAMPLERBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, EsdBuffer);
- }
- | SAMPLER2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, false, false, true);
- }
- | ISAMPLER2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D, false, false, true);
- }
- | USAMPLER2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D, false, false, true);
- }
- | SAMPLER2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D, true, false, true);
- }
- | ISAMPLER2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtInt, Esd2D, true, false, true);
- }
- | USAMPLER2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtUint, Esd2D, true, false, true);
- }
-
- | TEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdRect);
- }
- | ITEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdRect);
- }
- | UTEXTURE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdRect);
- }
- | TEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, EsdBuffer);
- }
- | ITEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, EsdBuffer);
- }
- | UTEXTUREBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, EsdBuffer);
- }
- | TEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
- }
- | ITEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
- }
- | UTEXTURE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
- }
- | TEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
- }
- | ITEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
- }
- | UTEXTURE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
- }
-
- | IMAGE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd2D);
- }
- | IIMAGE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd2D);
- }
- | UIMAGE2D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd2D);
- }
- | IMAGE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd3D);
- }
- | IIMAGE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd3D);
- }
- | UIMAGE3D {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd3D);
- }
- | IMAGE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, EsdRect);
- }
- | IIMAGE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, EsdRect);
- }
- | UIMAGE2DRECT {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, EsdRect);
- }
- | IMAGECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, EsdCube);
- }
- | IIMAGECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, EsdCube);
- }
- | UIMAGECUBE {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, EsdCube);
- }
- | IMAGEBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, EsdBuffer);
- }
- | IIMAGEBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, EsdBuffer);
- }
- | UIMAGEBUFFER {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, EsdBuffer);
- }
- | IMAGE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd1D, true);
- }
- | IIMAGE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd1D, true);
- }
- | UIMAGE1DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd1D, true);
- }
- | IMAGE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd2D, true);
- }
- | IIMAGE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd2D, true);
- }
- | UIMAGE2DARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd2D, true);
- }
- | IMAGECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, EsdCube, true);
- }
- | IIMAGECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, EsdCube, true);
- }
- | UIMAGECUBEARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, EsdCube, true);
- }
- | IMAGE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
- }
- | IIMAGE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd2D, false, false, true);
- }
- | UIMAGE2DMS {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd2D, false, false, true);
- }
- | IMAGE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
- }
- | IIMAGE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtInt, Esd2D, true, false, true);
- }
- | UIMAGE2DMSARRAY {
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.setImage(EbtUint, Esd2D, true, false, true);
- }
-
- | SAMPLEREXTERNALOES { // GL_OES_EGL_image_external
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D);
- $$.sampler.external = true;
- }
- | SAMPLEREXTERNAL2DY2YEXT { // GL_EXT_YUV_target
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtSampler;
- $$.sampler.set(EbtFloat, Esd2D);
- $$.sampler.yuv = true;
- }
-
-
- | struct_specifier {
- $$ = $1;
- $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- parseContext.structTypeCheck($$.loc, $$);
- }
- | TYPE_NAME {
- //
- // This is for user defined type names. The lexical phase looked up the
- // type.
- //
- if (const TVariable* variable = ($1.symbol)->getAsVariable()) {
- const TType& structure = variable->getType();
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- $$.basicType = EbtStruct;
- $$.userDef = &structure;
- } else
- parseContext.error($1.loc, "expected type name", $1.string->c_str(), "");
- }
- ;
-
-precision_qualifier
- : HIGH_PRECISION {
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqHigh);
- }
- | MEDIUM_PRECISION {
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqMedium);
- }
- | LOW_PRECISION {
- parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier");
- $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqLow);
- }
- ;
-
-struct_specifier
- : STRUCT IDENTIFIER LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
- TType* structure = new TType($5, *$2.string);
- parseContext.structArrayCheck($2.loc, *structure);
- TVariable* userTypeDef = new TVariable($2.string, *structure, true);
- if (! parseContext.symbolTable.insert(*userTypeDef))
- parseContext.error($2.loc, "redefinition", $2.string->c_str(), "struct");
- $$.init($1.loc);
- $$.basicType = EbtStruct;
- $$.userDef = structure;
- --parseContext.structNestingLevel;
- }
- | STRUCT LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
- TType* structure = new TType($4, TString(""));
- $$.init($1.loc);
- $$.basicType = EbtStruct;
- $$.userDef = structure;
- --parseContext.structNestingLevel;
- }
- ;
-
-struct_declaration_list
- : struct_declaration {
- $$ = $1;
- }
- | struct_declaration_list struct_declaration {
- $$ = $1;
- for (unsigned int i = 0; i < $2->size(); ++i) {
- for (unsigned int j = 0; j < $$->size(); ++j) {
- if ((*$$)[j].type->getFieldName() == (*$2)[i].type->getFieldName())
- parseContext.error((*$2)[i].loc, "duplicate member name:", "", (*$2)[i].type->getFieldName().c_str());
- }
- $$->push_back((*$2)[i]);
- }
- }
- ;
-
-struct_declaration
- : type_specifier struct_declarator_list SEMICOLON {
- if ($1.arraySizes) {
- parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
- if (parseContext.isEsProfile())
- parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
- }
-
- $$ = $2;
-
- parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType);
- parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier);
-
- for (unsigned int i = 0; i < $$->size(); ++i) {
- TType type($1);
- type.setFieldName((*$$)[i].type->getFieldName());
- type.transferArraySizes((*$$)[i].type->getArraySizes());
- type.copyArrayInnerSizes($1.arraySizes);
- parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes());
- (*$$)[i].type->shallowCopy(type);
- }
- }
- | type_qualifier type_specifier struct_declarator_list SEMICOLON {
- if ($2.arraySizes) {
- parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type");
- if (parseContext.isEsProfile())
- parseContext.arraySizeRequiredCheck($2.loc, *$2.arraySizes);
- }
-
- $$ = $3;
-
- parseContext.memberQualifierCheck($1);
- parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType);
- parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
- parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
-
- for (unsigned int i = 0; i < $$->size(); ++i) {
- TType type($2);
- type.setFieldName((*$$)[i].type->getFieldName());
- type.transferArraySizes((*$$)[i].type->getArraySizes());
- type.copyArrayInnerSizes($2.arraySizes);
- parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes());
- (*$$)[i].type->shallowCopy(type);
- }
- }
- ;
-
-struct_declarator_list
- : struct_declarator {
- $$ = new TTypeList;
- $$->push_back($1);
- }
- | struct_declarator_list COMMA struct_declarator {
- $$->push_back($3);
- }
- ;
-
-struct_declarator
- : IDENTIFIER {
- $$.type = new TType(EbtVoid);
- $$.loc = $1.loc;
- $$.type->setFieldName(*$1.string);
- }
- | IDENTIFIER array_specifier {
- parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes);
-
- $$.type = new TType(EbtVoid);
- $$.loc = $1.loc;
- $$.type->setFieldName(*$1.string);
- $$.type->transferArraySizes($2.arraySizes);
- }
- ;
-
-initializer
- : assignment_expression {
- $$ = $1;
- }
-
- | LEFT_BRACE initializer_list RIGHT_BRACE {
- const char* initFeature = "{ } style initializers";
- parseContext.requireProfile($1.loc, ~EEsProfile, initFeature);
- parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
- $$ = $2;
- }
- | LEFT_BRACE initializer_list COMMA RIGHT_BRACE {
- const char* initFeature = "{ } style initializers";
- parseContext.requireProfile($1.loc, ~EEsProfile, initFeature);
- parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
- $$ = $2;
- }
-
- ;
-
-
-initializer_list
- : initializer {
- $$ = parseContext.intermediate.growAggregate(0, $1, $1->getLoc());
- }
- | initializer_list COMMA initializer {
- $$ = parseContext.intermediate.growAggregate($1, $3);
- }
- ;
-
-
-declaration_statement
- : declaration { $$ = $1; }
- ;
-
-statement
- : compound_statement { $$ = $1; }
- | simple_statement { $$ = $1; }
- ;
-
-// Grammar Note: labeled statements for switch statements only; 'goto' is not supported.
-
-simple_statement
- : declaration_statement { $$ = $1; }
- | expression_statement { $$ = $1; }
- | selection_statement { $$ = $1; }
- | switch_statement { $$ = $1; }
- | case_label { $$ = $1; }
- | iteration_statement { $$ = $1; }
- | jump_statement { $$ = $1; }
-
-
-
- ;
-
-
-
-
-
-compound_statement
- : LEFT_BRACE RIGHT_BRACE { $$ = 0; }
- | LEFT_BRACE {
- parseContext.symbolTable.push();
- ++parseContext.statementNestingLevel;
- }
- statement_list {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- }
- RIGHT_BRACE {
- if ($3 && $3->getAsAggregate())
- $3->getAsAggregate()->setOperator(EOpSequence);
- $$ = $3;
- }
- ;
-
-statement_no_new_scope
- : compound_statement_no_new_scope { $$ = $1; }
- | simple_statement { $$ = $1; }
- ;
-
-statement_scoped
- : {
- ++parseContext.controlFlowNestingLevel;
- }
- compound_statement {
- --parseContext.controlFlowNestingLevel;
- $$ = $2;
- }
- | {
- parseContext.symbolTable.push();
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
- simple_statement {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- $$ = $2;
- }
-
-compound_statement_no_new_scope
- // Statement that doesn't create a new scope, for selection_statement, iteration_statement
- : LEFT_BRACE RIGHT_BRACE {
- $$ = 0;
- }
- | LEFT_BRACE statement_list RIGHT_BRACE {
- if ($2 && $2->getAsAggregate())
- $2->getAsAggregate()->setOperator(EOpSequence);
- $$ = $2;
- }
- ;
-
-statement_list
- : statement {
- $$ = parseContext.intermediate.makeAggregate($1);
- if ($1 && $1->getAsBranchNode() && ($1->getAsBranchNode()->getFlowOp() == EOpCase ||
- $1->getAsBranchNode()->getFlowOp() == EOpDefault)) {
- parseContext.wrapupSwitchSubsequence(0, $1);
- $$ = 0; // start a fresh subsequence for what's after this case
- }
- }
- | statement_list statement {
- if ($2 && $2->getAsBranchNode() && ($2->getAsBranchNode()->getFlowOp() == EOpCase ||
- $2->getAsBranchNode()->getFlowOp() == EOpDefault)) {
- parseContext.wrapupSwitchSubsequence($1 ? $1->getAsAggregate() : 0, $2);
- $$ = 0; // start a fresh subsequence for what's after this case
- } else
- $$ = parseContext.intermediate.growAggregate($1, $2);
- }
- ;
-
-expression_statement
- : SEMICOLON { $$ = 0; }
- | expression SEMICOLON { $$ = static_cast<TIntermNode*>($1); }
- ;
-
-selection_statement
- : selection_statement_nonattributed {
- $$ = $1;
- }
-
- | attribute selection_statement_nonattributed {
- parseContext.handleSelectionAttributes(*$1, $2);
- $$ = $2;
- }
-
-
-selection_statement_nonattributed
- : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement {
- parseContext.boolCheck($1.loc, $3);
- $$ = parseContext.intermediate.addSelection($3, $5, $1.loc);
- }
- ;
-
-selection_rest_statement
- : statement_scoped ELSE statement_scoped {
- $$.node1 = $1;
- $$.node2 = $3;
- }
- | statement_scoped {
- $$.node1 = $1;
- $$.node2 = 0;
- }
- ;
-
-condition
- // In 1996 c++ draft, conditions can include single declarations
- : expression {
- $$ = $1;
- parseContext.boolCheck($1->getLoc(), $1);
- }
- | fully_specified_type IDENTIFIER EQUAL initializer {
- parseContext.boolCheck($2.loc, $1);
-
- TType type($1);
- TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4);
- if (initNode)
- $$ = initNode->getAsTyped();
- else
- $$ = 0;
- }
- ;
-
-switch_statement
- : switch_statement_nonattributed {
- $$ = $1;
- }
-
- | attribute switch_statement_nonattributed {
- parseContext.handleSwitchAttributes(*$1, $2);
- $$ = $2;
- }
-
-
-switch_statement_nonattributed
- : SWITCH LEFT_PAREN expression RIGHT_PAREN {
- // start new switch sequence on the switch stack
- ++parseContext.controlFlowNestingLevel;
- ++parseContext.statementNestingLevel;
- parseContext.switchSequenceStack.push_back(new TIntermSequence);
- parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
- parseContext.symbolTable.push();
- }
- LEFT_BRACE switch_statement_list RIGHT_BRACE {
- $$ = parseContext.addSwitch($1.loc, $3, $7 ? $7->getAsAggregate() : 0);
- delete parseContext.switchSequenceStack.back();
- parseContext.switchSequenceStack.pop_back();
- parseContext.switchLevel.pop_back();
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
- ;
-
-switch_statement_list
- : /* nothing */ {
- $$ = 0;
- }
- | statement_list {
- $$ = $1;
- }
- ;
-
-case_label
- : CASE expression COLON {
- $$ = 0;
- if (parseContext.switchLevel.size() == 0)
- parseContext.error($1.loc, "cannot appear outside switch statement", "case", "");
- else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
- parseContext.error($1.loc, "cannot be nested inside control flow", "case", "");
- else {
- parseContext.constantValueCheck($2, "case");
- parseContext.integerCheck($2, "case");
- $$ = parseContext.intermediate.addBranch(EOpCase, $2, $1.loc);
- }
- }
- | DEFAULT COLON {
- $$ = 0;
- if (parseContext.switchLevel.size() == 0)
- parseContext.error($1.loc, "cannot appear outside switch statement", "default", "");
- else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
- parseContext.error($1.loc, "cannot be nested inside control flow", "default", "");
- else
- $$ = parseContext.intermediate.addBranch(EOpDefault, $1.loc);
- }
- ;
-
-iteration_statement
- : iteration_statement_nonattributed {
- $$ = $1;
- }
-
- | attribute iteration_statement_nonattributed {
- parseContext.handleLoopAttributes(*$1, $2);
- $$ = $2;
- }
-
-
-iteration_statement_nonattributed
- : WHILE LEFT_PAREN {
- if (! parseContext.limits.whileLoops)
- parseContext.error($1.loc, "while loops not available", "limitation", "");
- parseContext.symbolTable.push();
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
- condition RIGHT_PAREN statement_no_new_scope {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- $$ = parseContext.intermediate.addLoop($6, $4, 0, true, $1.loc);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
- | DO {
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
- statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON {
- if (! parseContext.limits.whileLoops)
- parseContext.error($1.loc, "do-while loops not available", "limitation", "");
-
- parseContext.boolCheck($8.loc, $6);
-
- $$ = parseContext.intermediate.addLoop($3, $6, 0, false, $4.loc);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
- | FOR LEFT_PAREN {
- parseContext.symbolTable.push();
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
- for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- $$ = parseContext.intermediate.makeAggregate($4, $2.loc);
- TIntermLoop* forLoop = parseContext.intermediate.addLoop($7, reinterpret_cast<TIntermTyped*>($5.node1), reinterpret_cast<TIntermTyped*>($5.node2), true, $1.loc);
- if (! parseContext.limits.nonInductiveForLoops)
- parseContext.inductiveLoopCheck($1.loc, $4, forLoop);
- $$ = parseContext.intermediate.growAggregate($$, forLoop, $1.loc);
- $$->getAsAggregate()->setOperator(EOpSequence);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
- ;
-
-for_init_statement
- : expression_statement {
- $$ = $1;
- }
- | declaration_statement {
- $$ = $1;
- }
- ;
-
-conditionopt
- : condition {
- $$ = $1;
- }
- | /* May be null */ {
- $$ = 0;
- }
- ;
-
-for_rest_statement
- : conditionopt SEMICOLON {
- $$.node1 = $1;
- $$.node2 = 0;
- }
- | conditionopt SEMICOLON expression {
- $$.node1 = $1;
- $$.node2 = $3;
- }
- ;
-
-jump_statement
- : CONTINUE SEMICOLON {
- if (parseContext.loopNestingLevel <= 0)
- parseContext.error($1.loc, "continue statement only allowed in loops", "", "");
- $$ = parseContext.intermediate.addBranch(EOpContinue, $1.loc);
- }
- | BREAK SEMICOLON {
- if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
- parseContext.error($1.loc, "break statement only allowed in switch and loops", "", "");
- $$ = parseContext.intermediate.addBranch(EOpBreak, $1.loc);
- }
- | RETURN SEMICOLON {
- $$ = parseContext.intermediate.addBranch(EOpReturn, $1.loc);
- if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
- parseContext.error($1.loc, "non-void function must return a value", "return", "");
- if (parseContext.inMain)
- parseContext.postEntryPointReturn = true;
- }
- | RETURN expression SEMICOLON {
- $$ = parseContext.handleReturnValue($1.loc, $2);
- }
- | DISCARD SEMICOLON {
- parseContext.requireStage($1.loc, EShLangFragment, "discard");
- $$ = parseContext.intermediate.addBranch(EOpKill, $1.loc);
- }
- ;
-
-// Grammar Note: No 'goto'. Gotos are not supported.
-
-translation_unit
- : external_declaration {
- $$ = $1;
- parseContext.intermediate.setTreeRoot($$);
- }
- | translation_unit external_declaration {
- if ($2 != nullptr) {
- $$ = parseContext.intermediate.growAggregate($1, $2);
- parseContext.intermediate.setTreeRoot($$);
- }
- }
- ;
-
-external_declaration
- : function_definition {
- $$ = $1;
- }
- | declaration {
- $$ = $1;
- }
-
- | SEMICOLON {
- parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon");
- parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
- $$ = nullptr;
- }
-
- ;
-
-function_definition
- : function_prototype {
- $1.function = parseContext.handleFunctionDeclarator($1.loc, *$1.function, false /* not prototype */);
- $1.intermNode = parseContext.handleFunctionDefinition($1.loc, *$1.function);
- }
- compound_statement_no_new_scope {
- // May be best done as post process phase on intermediate code
- if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
- parseContext.error($1.loc, "function does not return a value:", "", $1.function->getName().c_str());
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- $$ = parseContext.intermediate.growAggregate($1.intermNode, $3);
- parseContext.intermediate.setAggregateOperator($$, EOpFunction, $1.function->getType(), $1.loc);
- $$->getAsAggregate()->setName($1.function->getMangledName().c_str());
-
- // store the pragma information for debug and optimize and other vendor specific
- // information. This information can be queried from the parse tree
- $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
- $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
- $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
- }
- ;
-
-
-attribute
- : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET {
- $$ = $3;
- parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
- }
-
-attribute_list
- : single_attribute {
- $$ = $1;
- }
- | attribute_list COMMA single_attribute {
- $$ = parseContext.mergeAttributes($1, $3);
- }
-
-single_attribute
- : IDENTIFIER {
- $$ = parseContext.makeAttributes(*$1.string);
- }
- | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN {
- $$ = parseContext.makeAttributes(*$1.string, $3);
- }
-
-
-%%
diff --git a/glslang/MachineIndependent/glslang_angle_tab.cpp b/glslang/MachineIndependent/glslang_angle_tab.cpp
deleted file mode 100644
index 26c1047..0000000
--- a/glslang/MachineIndependent/glslang_angle_tab.cpp
+++ /dev/null
@@ -1,7178 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.5.1. */
-
-/* Bison implementation for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
- Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* C LALR(1) parser skeleton written by Richard Stallman, by
- simplifying the original so-called "semantic" parser. */
-
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Bison version. */
-#define YYBISON_VERSION "3.5.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 1
-
-/* Push parsers. */
-#define YYPUSH 0
-
-/* Pull parsers. */
-#define YYPULL 1
-
-
-
-
-/* First part of user prologue. */
-#line 75 "MachineIndependent/glslang_angle.y"
-
-
-/* Based on:
-ANSI C Yacc grammar
-
-In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
-matching Lex specification) for the April 30, 1985 draft version of the
-ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
-original, as mentioned in the answer to question 17.25 of the comp.lang.c
-FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
-
-I intend to keep this version as close to the current C Standard grammar as
-possible; please let me know if you discover discrepancies.
-
-Jutta Degener, 1995
-*/
-
-#include "SymbolTable.h"
-#include "ParseHelper.h"
-#include "../Public/ShaderLang.h"
-#include "attribute.h"
-
-using namespace glslang;
-
-
-#line 96 "MachineIndependent/glslang_angle_tab.cpp"
-
-# ifndef YY_CAST
-# ifdef __cplusplus
-# define YY_CAST(Type, Val) static_cast<Type> (Val)
-# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
-# else
-# define YY_CAST(Type, Val) ((Type) (Val))
-# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
-# endif
-# endif
-# ifndef YY_NULLPTR
-# if defined __cplusplus
-# if 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
-# else
-# define YY_NULLPTR ((void*)0)
-# endif
-# endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 1
-#endif
-
-/* Use api.header.include to #include this header
- instead of duplicating it here. */
-#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
-# define YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token type. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- enum yytokentype
- {
- CONST = 258,
- BOOL = 259,
- INT = 260,
- UINT = 261,
- FLOAT = 262,
- BVEC2 = 263,
- BVEC3 = 264,
- BVEC4 = 265,
- IVEC2 = 266,
- IVEC3 = 267,
- IVEC4 = 268,
- UVEC2 = 269,
- UVEC3 = 270,
- UVEC4 = 271,
- VEC2 = 272,
- VEC3 = 273,
- VEC4 = 274,
- MAT2 = 275,
- MAT3 = 276,
- MAT4 = 277,
- MAT2X2 = 278,
- MAT2X3 = 279,
- MAT2X4 = 280,
- MAT3X2 = 281,
- MAT3X3 = 282,
- MAT3X4 = 283,
- MAT4X2 = 284,
- MAT4X3 = 285,
- MAT4X4 = 286,
- SAMPLER2D = 287,
- SAMPLER3D = 288,
- SAMPLERCUBE = 289,
- SAMPLER2DSHADOW = 290,
- SAMPLERCUBESHADOW = 291,
- SAMPLER2DARRAY = 292,
- SAMPLER2DARRAYSHADOW = 293,
- ISAMPLER2D = 294,
- ISAMPLER3D = 295,
- ISAMPLERCUBE = 296,
- ISAMPLER2DARRAY = 297,
- USAMPLER2D = 298,
- USAMPLER3D = 299,
- USAMPLERCUBE = 300,
- USAMPLER2DARRAY = 301,
- SAMPLER = 302,
- SAMPLERSHADOW = 303,
- TEXTURE2D = 304,
- TEXTURE3D = 305,
- TEXTURECUBE = 306,
- TEXTURE2DARRAY = 307,
- ITEXTURE2D = 308,
- ITEXTURE3D = 309,
- ITEXTURECUBE = 310,
- ITEXTURE2DARRAY = 311,
- UTEXTURE2D = 312,
- UTEXTURE3D = 313,
- UTEXTURECUBE = 314,
- UTEXTURE2DARRAY = 315,
- ATTRIBUTE = 316,
- VARYING = 317,
- SAMPLERCUBEARRAY = 318,
- SAMPLERCUBEARRAYSHADOW = 319,
- ISAMPLERCUBEARRAY = 320,
- USAMPLERCUBEARRAY = 321,
- SAMPLER2DRECT = 322,
- SAMPLER2DRECTSHADOW = 323,
- ISAMPLER2DRECT = 324,
- USAMPLER2DRECT = 325,
- SAMPLERBUFFER = 326,
- ISAMPLERBUFFER = 327,
- USAMPLERBUFFER = 328,
- SAMPLER2DMS = 329,
- ISAMPLER2DMS = 330,
- USAMPLER2DMS = 331,
- SAMPLER2DMSARRAY = 332,
- ISAMPLER2DMSARRAY = 333,
- USAMPLER2DMSARRAY = 334,
- SAMPLEREXTERNALOES = 335,
- SAMPLEREXTERNAL2DY2YEXT = 336,
- IMAGE1D = 337,
- IIMAGE1D = 338,
- UIMAGE1D = 339,
- IMAGE2D = 340,
- IIMAGE2D = 341,
- UIMAGE2D = 342,
- IMAGE3D = 343,
- IIMAGE3D = 344,
- UIMAGE3D = 345,
- IMAGE2DRECT = 346,
- IIMAGE2DRECT = 347,
- UIMAGE2DRECT = 348,
- IMAGECUBE = 349,
- IIMAGECUBE = 350,
- UIMAGECUBE = 351,
- IMAGEBUFFER = 352,
- IIMAGEBUFFER = 353,
- UIMAGEBUFFER = 354,
- IMAGE1DARRAY = 355,
- IIMAGE1DARRAY = 356,
- UIMAGE1DARRAY = 357,
- IMAGE2DARRAY = 358,
- IIMAGE2DARRAY = 359,
- UIMAGE2DARRAY = 360,
- IMAGECUBEARRAY = 361,
- IIMAGECUBEARRAY = 362,
- UIMAGECUBEARRAY = 363,
- IMAGE2DMS = 364,
- IIMAGE2DMS = 365,
- UIMAGE2DMS = 366,
- IMAGE2DMSARRAY = 367,
- IIMAGE2DMSARRAY = 368,
- UIMAGE2DMSARRAY = 369,
- TEXTURECUBEARRAY = 370,
- ITEXTURECUBEARRAY = 371,
- UTEXTURECUBEARRAY = 372,
- TEXTURE1D = 373,
- ITEXTURE1D = 374,
- UTEXTURE1D = 375,
- TEXTURE1DARRAY = 376,
- ITEXTURE1DARRAY = 377,
- UTEXTURE1DARRAY = 378,
- TEXTURE2DRECT = 379,
- ITEXTURE2DRECT = 380,
- UTEXTURE2DRECT = 381,
- TEXTUREBUFFER = 382,
- ITEXTUREBUFFER = 383,
- UTEXTUREBUFFER = 384,
- TEXTURE2DMS = 385,
- ITEXTURE2DMS = 386,
- UTEXTURE2DMS = 387,
- TEXTURE2DMSARRAY = 388,
- ITEXTURE2DMSARRAY = 389,
- UTEXTURE2DMSARRAY = 390,
- LEFT_OP = 391,
- RIGHT_OP = 392,
- INC_OP = 393,
- DEC_OP = 394,
- LE_OP = 395,
- GE_OP = 396,
- EQ_OP = 397,
- NE_OP = 398,
- AND_OP = 399,
- OR_OP = 400,
- XOR_OP = 401,
- MUL_ASSIGN = 402,
- DIV_ASSIGN = 403,
- ADD_ASSIGN = 404,
- MOD_ASSIGN = 405,
- LEFT_ASSIGN = 406,
- RIGHT_ASSIGN = 407,
- AND_ASSIGN = 408,
- XOR_ASSIGN = 409,
- OR_ASSIGN = 410,
- SUB_ASSIGN = 411,
- STRING_LITERAL = 412,
- LEFT_PAREN = 413,
- RIGHT_PAREN = 414,
- LEFT_BRACKET = 415,
- RIGHT_BRACKET = 416,
- LEFT_BRACE = 417,
- RIGHT_BRACE = 418,
- DOT = 419,
- COMMA = 420,
- COLON = 421,
- EQUAL = 422,
- SEMICOLON = 423,
- BANG = 424,
- DASH = 425,
- TILDE = 426,
- PLUS = 427,
- STAR = 428,
- SLASH = 429,
- PERCENT = 430,
- LEFT_ANGLE = 431,
- RIGHT_ANGLE = 432,
- VERTICAL_BAR = 433,
- CARET = 434,
- AMPERSAND = 435,
- QUESTION = 436,
- INVARIANT = 437,
- HIGH_PRECISION = 438,
- MEDIUM_PRECISION = 439,
- LOW_PRECISION = 440,
- PRECISION = 441,
- PACKED = 442,
- RESOURCE = 443,
- SUPERP = 444,
- FLOATCONSTANT = 445,
- INTCONSTANT = 446,
- UINTCONSTANT = 447,
- BOOLCONSTANT = 448,
- IDENTIFIER = 449,
- TYPE_NAME = 450,
- CENTROID = 451,
- IN = 452,
- OUT = 453,
- INOUT = 454,
- STRUCT = 455,
- VOID = 456,
- WHILE = 457,
- BREAK = 458,
- CONTINUE = 459,
- DO = 460,
- ELSE = 461,
- FOR = 462,
- IF = 463,
- DISCARD = 464,
- RETURN = 465,
- SWITCH = 466,
- CASE = 467,
- DEFAULT = 468,
- UNIFORM = 469,
- SHARED = 470,
- BUFFER = 471,
- FLAT = 472,
- SMOOTH = 473,
- LAYOUT = 474,
- PATCH = 475,
- SAMPLE = 476,
- COHERENT = 477,
- VOLATILE = 478,
- RESTRICT = 479,
- READONLY = 480,
- WRITEONLY = 481,
- NOPERSPECTIVE = 482,
- PRECISE = 483
- };
-#endif
-
-/* Value type. */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
-{
-#line 103 "MachineIndependent/glslang_angle.y"
-
- struct {
- glslang::TSourceLoc loc;
- union {
- glslang::TString *string;
- int i;
- unsigned int u;
- long long i64;
- unsigned long long u64;
- bool b;
- double d;
- };
- glslang::TSymbol* symbol;
- } lex;
- struct {
- glslang::TSourceLoc loc;
- glslang::TOperator op;
- union {
- TIntermNode* intermNode;
- glslang::TIntermNodePair nodePair;
- glslang::TIntermTyped* intermTypedNode;
- glslang::TAttributes* attributes;
- };
- union {
- glslang::TPublicType type;
- glslang::TFunction* function;
- glslang::TParameter param;
- glslang::TTypeLoc typeLine;
- glslang::TTypeList* typeList;
- glslang::TArraySizes* arraySizes;
- glslang::TIdentifierList* identifierList;
- };
- glslang::TArraySizes* typeParameters;
- } interm;
-
-#line 413 "MachineIndependent/glslang_angle_tab.cpp"
-
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-int yyparse (glslang::TParseContext* pParseContext);
-
-#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED */
-
-/* Second part of user prologue. */
-#line 139 "MachineIndependent/glslang_angle.y"
-
-
-/* windows only pragma */
-#ifdef _MSC_VER
- #pragma warning(disable : 4065)
- #pragma warning(disable : 4127)
- #pragma warning(disable : 4244)
-#endif
-
-#define parseContext (*pParseContext)
-#define yyerror(context, msg) context->parserError(msg)
-
-extern int yylex(YYSTYPE*, TParseContext&);
-
-
-#line 444 "MachineIndependent/glslang_angle_tab.cpp"
-
-
-#ifdef short
-# undef short
-#endif
-
-/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
- <limits.h> and (if available) <stdint.h> are included
- so that the code can choose integer types of a good width. */
-
-#ifndef __PTRDIFF_MAX__
-# include <limits.h> /* INFRINGES ON USER NAME SPACE */
-# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_STDINT_H
-# endif
-#endif
-
-/* Narrow types that promote to a signed type and that can represent a
- signed or unsigned integer of at least N bits. In tables they can
- save space and decrease cache pressure. Promoting to a signed type
- helps avoid bugs in integer arithmetic. */
-
-#ifdef __INT_LEAST8_MAX__
-typedef __INT_LEAST8_TYPE__ yytype_int8;
-#elif defined YY_STDINT_H
-typedef int_least8_t yytype_int8;
-#else
-typedef signed char yytype_int8;
-#endif
-
-#ifdef __INT_LEAST16_MAX__
-typedef __INT_LEAST16_TYPE__ yytype_int16;
-#elif defined YY_STDINT_H
-typedef int_least16_t yytype_int16;
-#else
-typedef short yytype_int16;
-#endif
-
-#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST8_TYPE__ yytype_uint8;
-#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST8_MAX <= INT_MAX)
-typedef uint_least8_t yytype_uint8;
-#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
-typedef unsigned char yytype_uint8;
-#else
-typedef short yytype_uint8;
-#endif
-
-#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST16_TYPE__ yytype_uint16;
-#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST16_MAX <= INT_MAX)
-typedef uint_least16_t yytype_uint16;
-#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
-typedef unsigned short yytype_uint16;
-#else
-typedef int yytype_uint16;
-#endif
-
-#ifndef YYPTRDIFF_T
-# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
-# define YYPTRDIFF_T __PTRDIFF_TYPE__
-# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
-# elif defined PTRDIFF_MAX
-# ifndef ptrdiff_t
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# endif
-# define YYPTRDIFF_T ptrdiff_t
-# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
-# else
-# define YYPTRDIFF_T long
-# define YYPTRDIFF_MAXIMUM LONG_MAX
-# endif
-#endif
-
-#ifndef YYSIZE_T
-# ifdef __SIZE_TYPE__
-# define YYSIZE_T __SIZE_TYPE__
-# elif defined size_t
-# define YYSIZE_T size_t
-# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# else
-# define YYSIZE_T unsigned
-# endif
-#endif
-
-#define YYSIZE_MAXIMUM \
- YY_CAST (YYPTRDIFF_T, \
- (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
- ? YYPTRDIFF_MAXIMUM \
- : YY_CAST (YYSIZE_T, -1)))
-
-#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
-
-/* Stored state numbers (used for stacks). */
-typedef yytype_int16 yy_state_t;
-
-/* State numbers in computations. */
-typedef int yy_state_fast_t;
-
-#ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(Msgid) Msgid
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-# define YY_ATTRIBUTE_PURE
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-# else
-# define YY_ATTRIBUTE_UNUSED
-# endif
-#endif
-
-/* Suppress unused-variable warnings by "using" E. */
-#if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
-#else
-# define YYUSE(E) /* empty */
-#endif
-
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
- _Pragma ("GCC diagnostic pop")
-#else
-# define YY_INITIAL_VALUE(Value) Value
-#endif
-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
-#endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
-#endif
-
-#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
-# define YY_IGNORE_USELESS_CAST_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
-# define YY_IGNORE_USELESS_CAST_END \
- _Pragma ("GCC diagnostic pop")
-#endif
-#ifndef YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_END
-#endif
-
-
-#define YY_ASSERT(E) ((void) (0 && (E)))
-
-#if ! defined yyoverflow || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# elif defined __BUILTIN_VA_ARG_INCR
-# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-# elif defined _AIX
-# define YYSTACK_ALLOC __alloca
-# elif defined _MSC_VER
-# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-# define alloca _alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
- /* Use EXIT_SUCCESS as a witness for stdlib.h. */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's 'empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-# endif
-# if (defined __cplusplus && ! defined EXIT_SUCCESS \
- && ! ((defined YYMALLOC || defined malloc) \
- && (defined YYFREE || defined free)))
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef EXIT_SUCCESS
-# define EXIT_SUCCESS 0
-# endif
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if ! defined malloc && ! defined EXIT_SUCCESS
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if ! defined free && ! defined EXIT_SUCCESS
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# endif
-#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
-#if (! defined yyoverflow \
- && (! defined __cplusplus \
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- yy_state_t yyss_alloc;
- YYSTYPE yyvs_alloc;
-};
-
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-# define YYCOPY_NEEDED 1
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
- do \
- { \
- YYPTRDIFF_T yynewbytes; \
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
- Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / YYSIZEOF (*yyptr); \
- } \
- while (0)
-
-#endif
-
-#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
-/* Copy COUNT objects from SRC to DST. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
-# else
-# define YYCOPY(Dst, Src, Count) \
- do \
- { \
- YYPTRDIFF_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (Dst)[yyi] = (Src)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-#endif /* !YYCOPY_NEEDED */
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 201
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 5268
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 229
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 108
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 384
-/* YYNSTATES -- Number of states. */
-#define YYNSTATES 524
-
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 483
-
-
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, with out-of-bounds checking. */
-#define YYTRANSLATE(YYX) \
- (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex. */
-static const yytype_uint8 yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 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
-};
-
-#if YYDEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
-static const yytype_int16 yyrline[] =
-{
- 0, 322, 322, 328, 331, 336, 339, 342, 346, 355,
- 358, 361, 364, 367, 372, 380, 387, 394, 400, 404,
- 411, 414, 420, 427, 437, 445, 450, 483, 489, 493,
- 497, 517, 518, 519, 520, 526, 527, 532, 537, 546,
- 547, 552, 560, 561, 567, 576, 577, 582, 587, 592,
- 600, 601, 610, 622, 623, 632, 633, 642, 643, 652,
- 653, 661, 662, 670, 671, 679, 680, 680, 698, 699,
- 715, 719, 723, 727, 732, 736, 740, 744, 748, 752,
- 756, 763, 766, 777, 784, 789, 794, 801, 805, 809,
- 813, 818, 823, 832, 832, 843, 847, 854, 861, 864,
- 871, 879, 899, 922, 937, 962, 973, 983, 993, 1003,
- 1012, 1015, 1019, 1023, 1028, 1036, 1043, 1048, 1053, 1058,
- 1067, 1077, 1104, 1113, 1120, 1128, 1140, 1146, 1149, 1156,
- 1160, 1164, 1173, 1183, 1186, 1197, 1200, 1203, 1207, 1211,
- 1216, 1225, 1229, 1234, 1240, 1246, 1253, 1258, 1266, 1272,
- 1284, 1298, 1304, 1310, 1314, 1318, 1322, 1326, 1349, 1354,
- 1364, 1369, 1377, 1381, 1391, 1394, 1400, 1406, 1413, 1423,
- 1427, 1431, 1435, 1440, 1444, 1449, 1454, 1459, 1464, 1469,
- 1474, 1479, 1484, 1489, 1495, 1501, 1507, 1512, 1517, 1522,
- 1527, 1532, 1537, 1542, 1547, 1552, 1557, 1562, 1570, 1575,
- 1580, 1585, 1590, 1595, 1600, 1606, 1611, 1618, 1623, 1628,
- 1633, 1638, 1643, 1648, 1654, 1659, 1664, 1669, 1674, 1681,
- 1686, 1691, 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1731,
- 1736, 1741, 1746, 1751, 1757, 1762, 1767, 1772, 1777, 1782,
- 1787, 1792, 1797, 1802, 1807, 1812, 1817, 1823, 1828, 1833,
- 1838, 1843, 1848, 1853, 1858, 1863, 1868, 1873, 1878, 1884,
- 1889, 1894, 1899, 1904, 1909, 1914, 1919, 1924, 1929, 1934,
- 1939, 1944, 1949, 1954, 1959, 1964, 1969, 1974, 1979, 1984,
- 1989, 1994, 1999, 2004, 2009, 2014, 2019, 2024, 2029, 2035,
- 2041, 2049, 2054, 2070, 2075, 2080, 2088, 2088, 2099, 2099,
- 2109, 2112, 2125, 2147, 2174, 2178, 2184, 2189, 2200, 2204,
- 2210, 2221, 2224, 2231, 2235, 2236, 2242, 2243, 2244, 2245,
- 2246, 2247, 2248, 2259, 2260, 2264, 2260, 2276, 2277, 2281,
- 2281, 2288, 2288, 2302, 2305, 2313, 2321, 2332, 2333, 2337,
- 2341, 2348, 2355, 2359, 2367, 2371, 2384, 2388, 2395, 2395,
- 2415, 2418, 2424, 2436, 2448, 2452, 2459, 2459, 2474, 2474,
- 2490, 2490, 2511, 2514, 2520, 2523, 2529, 2533, 2540, 2545,
- 2550, 2557, 2560, 2569, 2573, 2582, 2585, 2589, 2598, 2598,
- 2621, 2627, 2630, 2635, 2638
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || 1
-/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "CONST", "BOOL", "INT", "UINT", "FLOAT",
- "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "UVEC2", "UVEC3",
- "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4", "MAT2X2",
- "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3",
- "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER2DSHADOW",
- "SAMPLERCUBESHADOW", "SAMPLER2DARRAY", "SAMPLER2DARRAYSHADOW",
- "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER2DARRAY",
- "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER2DARRAY", "SAMPLER",
- "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE",
- "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE",
- "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE",
- "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "SAMPLERCUBEARRAY",
- "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
- "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT",
- "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER",
- "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY",
- "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES",
- "SAMPLEREXTERNAL2DY2YEXT", "IMAGE1D", "IIMAGE1D", "UIMAGE1D", "IMAGE2D",
- "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT",
- "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE",
- "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER", "IMAGE1DARRAY",
- "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY", "IIMAGE2DARRAY",
- "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY", "UIMAGECUBEARRAY",
- "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS", "IMAGE2DMSARRAY",
- "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "TEXTURECUBEARRAY",
- "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D",
- "UTEXTURE1D", "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY",
- "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER",
- "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS",
- "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
- "UTEXTURE2DMSARRAY", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
- "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
- "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
- "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
- "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
- "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
- "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
- "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
- "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
- "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
- "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
- "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
- "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
- "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "UNIFORM", "SHARED",
- "BUFFER", "FLAT", "SMOOTH", "LAYOUT", "PATCH", "SAMPLE", "COHERENT",
- "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "NOPERSPECTIVE",
- "PRECISE", "$accept", "variable_identifier", "primary_expression",
- "postfix_expression", "integer_expression", "function_call",
- "function_call_or_method", "function_call_generic",
- "function_call_header_no_parameters",
- "function_call_header_with_parameters", "function_call_header",
- "function_identifier", "unary_expression", "unary_operator",
- "multiplicative_expression", "additive_expression", "shift_expression",
- "relational_expression", "equality_expression", "and_expression",
- "exclusive_or_expression", "inclusive_or_expression",
- "logical_and_expression", "logical_xor_expression",
- "logical_or_expression", "conditional_expression", "$@1",
- "assignment_expression", "assignment_operator", "expression",
- "constant_expression", "declaration", "block_structure", "$@2",
- "identifier_list", "function_prototype", "function_declarator",
- "function_header_with_parameters", "function_header",
- "parameter_declarator", "parameter_declaration",
- "parameter_type_specifier", "init_declarator_list", "single_declaration",
- "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
- "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
- "precise_qualifier", "type_qualifier", "single_type_qualifier",
- "storage_qualifier", "type_specifier", "array_specifier",
- "type_parameter_specifier_opt", "type_parameter_specifier",
- "type_parameter_specifier_list", "type_specifier_nonarray",
- "precision_qualifier", "struct_specifier", "$@3", "$@4",
- "struct_declaration_list", "struct_declaration",
- "struct_declarator_list", "struct_declarator", "initializer",
- "initializer_list", "declaration_statement", "statement",
- "simple_statement", "compound_statement", "$@5", "$@6",
- "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
- "compound_statement_no_new_scope", "statement_list",
- "expression_statement", "selection_statement",
- "selection_statement_nonattributed", "selection_rest_statement",
- "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
- "switch_statement_list", "case_label", "iteration_statement",
- "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
- "for_init_statement", "conditionopt", "for_rest_statement",
- "jump_statement", "translation_unit", "external_declaration",
- "function_definition", "$@13", "attribute", "attribute_list",
- "single_attribute", YY_NULLPTR
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 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,
- 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
- 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
- 475, 476, 477, 478, 479, 480, 481, 482, 483
-};
-# endif
-
-#define YYPACT_NINF (-453)
-
-#define yypact_value_is_default(Yyn) \
- ((Yyn) == YYPACT_NINF)
-
-#define YYTABLE_NINF (-330)
-
-#define yytable_value_is_error(Yyn) \
- 0
-
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-static const yytype_int16 yypact[] =
-{
- 2326, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -50, -453, -453, -453, -453, -453, -149, -453, -453, -453,
- -453, -453, -453, -108, -453, -453, -453, -453, -453, -453,
- -453, -453, -453, -453, -142, -84, -14, -35, 3456, -76,
- -453, -51, -453, -453, -453, -453, 2552, -453, -453, -453,
- -20, -453, -453, 518, -453, -453, 5067, -453, -5, -162,
- -453, -135, -453, 2, -453, 3456, -453, -453, -453, 3456,
- -25, -24, -453, -129, -453, -87, -453, -453, 4671, 5,
- -453, -453, -453, -8, 3456, -453, 4, -453, -96, -453,
- 3879, -453, -125, 744, -453, -453, -453, -453, 5, -126,
- -453, 4077, -106, -453, -22, -453, -71, 4671, 4671, 4671,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -116, -453, -453, -453, 15, -95, 4869, 17, -453,
- 4671, -453, -138, 18, -453, 3456, -17, 2778, -453, 3456,
- 4671, -453, -162, -453, -453, -34, -110, -31, -120, -28,
- -1, 3, 9, 42, 44, -130, 27, 4275, -453, 31,
- 30, -453, -453, 37, 29, 32, -453, 40, 41, 34,
- 4473, 45, 4671, 39, -29, -453, -453, -69, -453, -84,
- 48, -453, -453, -453, -453, 970, -453, -453, -453, -453,
- -453, -453, -453, -453, -453, -134, 18, 4077, -101, 4077,
- -453, -453, 4077, 3456, -453, 13, -453, -453, -453, -80,
- -453, -453, 4671, 16, -453, -453, 4671, 50, -453, -453,
- -453, 4671, -453, -17, 5, -52, -453, -453, -453, 3004,
- -453, -453, -453, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
- 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
- 4671, 4671, -453, -453, -453, 51, 20, -453, 1196, -453,
- -453, -453, 1196, -453, 4671, -453, -453, -37, 4671, -18,
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, 4671, 4671, -453, -453, -453, -453, -453, -453,
- -453, 4077, -453, -21, -453, 3230, -453, -453, 54, 46,
- -453, -453, -453, -36, 18, -17, -453, -453, -453, -453,
- -453, -34, -34, -110, -110, -31, -31, -31, -31, -120,
- -120, -28, -1, 3, 9, 42, 44, 4671, -453, 58,
- -70, -453, 1196, 2100, 21, 1874, -79, -453, -77, -453,
- -453, -453, -453, -453, 3681, -453, -453, -453, -453, -16,
- 4671, 56, 20, 55, 46, 25, 3456, 61, 66, -453,
- -453, 2100, 65, -453, -453, -453, 4671, 70, -453, -453,
- -453, 63, 1422, 4671, -453, 64, 72, 28, 71, 1648,
- -453, 73, -453, -453, 4077, -453, -453, -453, -72, 4671,
- 1422, 65, -453, -453, 1196, -453, 68, 46, -453, -453,
- 1196, 74, -453, -453
-};
-
- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
- Performed when YYTABLE does not specify something else to do. Zero
- means the default is an error. */
-static const yytype_int16 yydefact[] =
-{
- 0, 141, 173, 171, 172, 170, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 174, 175, 176, 186, 187,
- 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 202, 203, 204, 207, 208, 209,
- 210, 211, 212, 213, 219, 232, 233, 220, 221, 223,
- 222, 224, 225, 226, 227, 228, 229, 230, 231, 149,
- 150, 205, 206, 214, 215, 234, 235, 236, 237, 238,
- 239, 240, 241, 242, 243, 244, 245, 246, 289, 290,
- 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,
- 216, 217, 218, 247, 248, 249, 250, 251, 252, 253,
- 254, 255, 256, 257, 258, 377, 122, 293, 294, 295,
- 0, 292, 145, 143, 144, 142, 0, 169, 146, 147,
- 148, 124, 123, 0, 151, 152, 153, 154, 155, 156,
- 157, 125, 132, 376, 0, 378, 0, 99, 98, 0,
- 110, 115, 139, 138, 136, 140, 0, 133, 135, 120,
- 165, 137, 291, 0, 373, 375, 0, 298, 0, 0,
- 87, 0, 84, 0, 97, 0, 106, 100, 108, 0,
- 109, 0, 85, 116, 90, 0, 134, 121, 0, 158,
- 164, 1, 374, 0, 0, 296, 129, 131, 0, 127,
- 0, 88, 0, 0, 379, 101, 105, 107, 103, 111,
- 102, 0, 117, 93, 0, 91, 0, 0, 0, 0,
- 33, 32, 34, 31, 5, 6, 7, 8, 2, 3,
- 9, 27, 11, 16, 17, 0, 0, 21, 0, 167,
- 0, 25, 0, 159, 86, 0, 0, 0, 300, 0,
- 0, 126, 0, 160, 35, 39, 42, 45, 50, 53,
- 55, 57, 59, 61, 63, 65, 0, 0, 89, 0,
- 324, 333, 337, 0, 0, 0, 358, 0, 0, 0,
- 0, 0, 0, 0, 35, 68, 81, 0, 313, 0,
- 120, 316, 335, 315, 314, 0, 317, 318, 339, 319,
- 346, 320, 321, 354, 322, 0, 104, 0, 112, 0,
- 308, 119, 0, 0, 95, 0, 92, 28, 29, 0,
- 13, 14, 0, 0, 19, 18, 0, 169, 22, 24,
- 30, 0, 166, 0, 306, 0, 304, 299, 301, 0,
- 83, 130, 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 66, 161, 162, 0, 0, 323, 0, 356,
- 369, 368, 0, 360, 0, 372, 370, 0, 0, 0,
- 353, 71, 72, 74, 73, 76, 77, 78, 79, 80,
- 75, 70, 0, 0, 338, 334, 336, 340, 347, 355,
- 114, 0, 311, 0, 118, 0, 96, 4, 0, 15,
- 12, 23, 168, 0, 307, 0, 302, 297, 36, 37,
- 38, 41, 40, 43, 44, 48, 49, 46, 47, 51,
- 52, 54, 56, 58, 60, 62, 64, 0, 163, 383,
- 0, 381, 325, 0, 0, 0, 0, 371, 0, 352,
- 69, 82, 113, 309, 0, 94, 10, 303, 305, 0,
- 0, 0, 0, 0, 344, 0, 0, 0, 0, 363,
- 362, 365, 331, 348, 310, 312, 0, 0, 380, 382,
- 326, 0, 0, 0, 364, 0, 0, 343, 0, 0,
- 341, 0, 67, 384, 0, 328, 357, 327, 0, 366,
- 0, 331, 330, 332, 350, 345, 0, 367, 361, 342,
- 351, 0, 359, 349
-};
-
- /* YYPGOTO[NTERM-NUM]. */
-static const yytype_int16 yypgoto[] =
-{
- -453, -453, -453, -453, -453, -453, -453, -453, -453, -453,
- -453, -453, -2, -453, -220, -207, -251, -210, -128, -127,
- -124, -123, -131, -122, -453, -205, -453, -219, -453, -225,
- -229, 7, -453, -453, -453, 8, -453, -453, -453, 53,
- 62, 75, -453, -453, -435, -453, -453, -453, -453, -19,
- -453, -155, -165, -453, 0, -182, -453, -453, -453, -453,
- 120, -453, -453, -453, -247, -248, -92, -173, -303, -453,
- -202, -299, -452, -244, -453, -453, -249, -245, -453, -453,
- 79, -368, -192, -453, -46, -453, -211, -453, -44, -453,
- -453, -453, -453, -43, -453, -453, -453, -453, -453, -453,
- -453, -453, 100, -453, -453, -453, -453, -198
-};
-
- /* YYDEFGOTO[NTERM-NUM]. */
-static const yytype_int16 yydefgoto[] =
-{
- -1, 239, 240, 241, 418, 242, 243, 244, 245, 246,
- 247, 248, 294, 250, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 295, 447, 296, 402, 297,
- 351, 298, 154, 323, 226, 299, 156, 157, 158, 186,
- 187, 188, 159, 160, 161, 162, 163, 164, 208, 209,
- 165, 166, 167, 168, 251, 212, 199, 200, 252, 170,
- 171, 172, 259, 204, 257, 258, 345, 346, 321, 413,
- 301, 302, 303, 304, 378, 473, 506, 497, 498, 499,
- 507, 305, 306, 307, 308, 500, 477, 309, 310, 501,
- 521, 311, 312, 313, 453, 382, 455, 481, 495, 496,
- 314, 173, 174, 175, 183, 315, 450, 451
-};
-
- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule whose
- number is the opposite. If YYTABLE_NINF, syntax error. */
-static const yytype_int16 yytable[] =
-{
- 169, 196, 320, 189, 329, 276, 406, 153, 155, 348,
- 452, 222, 349, 177, 410, 371, 412, 253, 475, 414,
- 360, 361, 330, 331, 196, 210, 180, 341, 338, 220,
- 189, 210, 206, 211, 210, 277, 316, 318, 221, 342,
- 505, 317, -26, 278, 332, 178, 475, 513, 333, 255,
- 179, 372, 181, 207, 277, 350, 362, 363, 505, 277,
- 356, 322, 357, 261, 335, 387, 411, 389, 283, 262,
- 336, 286, 375, 287, 288, 223, 415, 291, 224, 417,
- 482, 225, 483, 454, 182, 403, 403, 516, 403, 191,
- 196, 471, 192, 403, 325, 472, 403, 326, 320, 404,
- 320, 348, 255, 320, 255, 358, 359, 419, 462, 435,
- 436, 437, 438, 425, 364, 365, 426, 421, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 403, 425,
- 185, 457, 467, 127, 128, 129, 431, 432, 401, 353,
- 354, 355, 463, 193, 464, 184, 520, 403, 459, 403,
- 486, 433, 434, 406, 439, 440, 198, 205, 190, 456,
- 254, 485, 424, 458, 213, 210, 197, 348, 255, 218,
- 219, 260, 324, 169, 334, 339, 203, 344, 277, 366,
- 153, 155, 367, 460, 461, 190, 369, 368, 373, 190,
- 370, 376, 320, 377, 255, 379, 249, 380, 383, 384,
- 381, 515, 385, 388, 256, 390, -25, 416, 264, -20,
- 420, 403, 448, 300, 449, 466, 470, 488, 490, 491,
- 492, 406, 469, 478, 493, 327, 328, -329, 474, 503,
- 504, 510, 509, 280, 511, 514, 522, 523, 441, 445,
- 442, 487, 216, 352, 443, 320, 444, 215, 340, 446,
- 176, 423, 468, 479, 512, 343, 474, 256, 264, 256,
- 255, 518, 214, 480, 217, 350, 519, 502, 508, 407,
- 494, 408, 409, 202, 489, 264, 0, 0, 0, 0,
- 0, 0, 0, 0, 517, 320, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 476, 0,
- 0, 0, 0, 0, 0, 300, 0, 0, 0, 0,
- 0, 196, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 256, 0, 0, 476, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 422,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 256,
- 0, 428, 429, 430, 264, 264, 264, 264, 264, 264,
- 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
- 0, 0, 0, 0, 0, 0, 0, 0, 300, 0,
- 0, 0, 300, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 256, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 300, 300, 0, 300, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 264, 0,
- 0, 0, 0, 0, 0, 0, 197, 0, 0, 0,
- 0, 300, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 300, 0, 0, 0, 0, 0, 0, 300,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 300, 0, 0, 0, 300, 0, 0, 0, 201, 0,
- 300, 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,
- 0, 0, 0, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 0, 0, 0, 0,
- 0, 0, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 125, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 126, 127, 128, 129, 130, 0, 0, 0, 0, 0,
- 0, 0, 0, 131, 132, 133, 134, 135, 136, 137,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 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, 0, 0, 0, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 0, 0, 0, 0, 0, 0, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 0, 0, 227, 228, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 229, 0, 279, 0, 280, 281, 0, 0,
- 0, 0, 282, 230, 231, 232, 233, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 126, 127, 128, 129,
- 130, 0, 0, 0, 234, 235, 236, 237, 238, 131,
- 132, 133, 134, 135, 136, 137, 283, 284, 285, 286,
- 0, 287, 288, 289, 290, 291, 292, 293, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 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, 0, 0, 0, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 0, 0,
- 0, 0, 0, 0, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 0, 0, 227, 228,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 229, 0,
- 279, 0, 280, 405, 0, 0, 0, 0, 282, 230,
- 231, 232, 233, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 126, 127, 128, 129, 130, 0, 0, 0,
- 234, 235, 236, 237, 238, 131, 132, 133, 134, 135,
- 136, 137, 283, 284, 285, 286, 0, 287, 288, 289,
- 290, 291, 292, 293, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 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, 0, 0,
- 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 0, 0, 0, 0, 0, 0,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 0, 0, 227, 228, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 229, 0, 279, 0, 280, 0,
- 0, 0, 0, 0, 282, 230, 231, 232, 233, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 126, 127,
- 128, 129, 130, 0, 0, 0, 234, 235, 236, 237,
- 238, 131, 132, 133, 134, 135, 136, 137, 283, 284,
- 285, 286, 0, 287, 288, 289, 290, 291, 292, 293,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 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, 0, 0, 0, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 0, 0, 0, 0, 0, 0, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 0, 0,
- 227, 228, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 229, 0, 279, 0, 213, 0, 0, 0, 0, 0,
- 282, 230, 231, 232, 233, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 126, 127, 128, 129, 130, 0,
- 0, 0, 234, 235, 236, 237, 238, 131, 132, 133,
- 134, 135, 136, 137, 283, 284, 285, 286, 0, 287,
- 288, 289, 290, 291, 292, 293, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 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,
- 0, 0, 0, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 0, 0, 0, 0,
- 0, 0, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 0, 0, 227, 228, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 229, 0, 279, 0,
- 0, 0, 0, 0, 0, 0, 282, 230, 231, 232,
- 233, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 126, 127, 128, 129, 130, 0, 0, 0, 234, 235,
- 236, 237, 238, 131, 132, 133, 134, 135, 136, 137,
- 283, 284, 285, 286, 0, 287, 288, 289, 290, 291,
- 292, 293, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 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, 0, 0, 0, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 0, 0, 0, 0, 0, 0, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 0, 0, 227, 228, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 229, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 282, 230, 231, 232, 233, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 126, 127, 128, 129,
- 130, 0, 0, 0, 234, 235, 236, 237, 238, 131,
- 132, 133, 134, 135, 136, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 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, 0, 0, 0, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 0, 0,
- 0, 0, 0, 0, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 0, 0, 227, 228,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 229, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 230,
- 231, 232, 233, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 126, 127, 128, 129, 0, 0, 0, 0,
- 234, 235, 236, 237, 238, 131, 132, 133, 134, 135,
- 136, 137, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 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, 0, 0,
- 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 0, 0, 0, 0, 0, 0,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 126, 127,
- 128, 129, 130, 0, 0, 0, 0, 0, 0, 0,
- 0, 131, 132, 133, 134, 135, 136, 137, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 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, 0, 0, 0, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 0, 0, 0, 0, 0, 0, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 194, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 126, 127, 128, 129, 0, 0,
- 0, 0, 0, 0, 0, 0, 195, 131, 132, 133,
- 134, 135, 136, 137, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 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,
- 0, 0, 0, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 0, 0, 0, 0,
- 0, 0, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 347, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 126, 127, 128, 129, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 131, 132, 133, 134, 135, 136, 137,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 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, 0, 0, 0, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 0, 0, 0, 0, 0, 0, 113, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 427, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 126, 127, 128, 129,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 131,
- 132, 133, 134, 135, 136, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 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, 0, 0, 0, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112, 0, 0,
- 0, 0, 0, 0, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 465, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 126, 127, 128, 129, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 131, 132, 133, 134, 135,
- 136, 137, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 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, 0, 0,
- 0, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 0, 0, 0, 0, 0, 0,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 126, 127,
- 128, 129, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 131, 132, 133, 134, 135, 136, 137, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 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, 0, 0, 0, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 0,
- 0, 0, 0, 0, 0, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 0, 0, 227,
- 228, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
- 0, 0, 0, 319, 484, 0, 0, 0, 0, 0,
- 230, 231, 232, 233, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 234, 235, 236, 237, 238, 131, 0, 0, 0,
- 0, 136, 137, 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, 0, 0, 0, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 0, 0, 0,
- 0, 0, 0, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 0, 0, 227, 228, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 229, 0, 0,
- 263, 0, 0, 0, 0, 0, 0, 0, 230, 231,
- 232, 233, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 234,
- 235, 236, 237, 238, 131, 0, 0, 0, 0, 136,
- 137, 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, 0,
- 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 0, 0, 0, 0, 0,
- 0, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 0, 0, 227, 228, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 229, 0, 0, 0, 319,
- 0, 0, 0, 0, 0, 0, 230, 231, 232, 233,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 234, 235, 236,
- 237, 238, 131, 0, 0, 0, 0, 136, 137, 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, 0, 0, 0,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 0, 0, 0, 0, 0, 0, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 0, 0, 227, 228, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 229, 0, 0, 374, 0, 0, 0,
- 0, 0, 0, 0, 230, 231, 232, 233, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 234, 235, 236, 237, 238,
- 131, 0, 0, 0, 0, 136, 137, 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, 0, 0, 0, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 0, 0, 0, 0, 0, 0, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 0,
- 0, 227, 228, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 229, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 386, 230, 231, 232, 233, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 234, 235, 236, 237, 238, 131, 0,
- 0, 0, 0, 136, 137, 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, 0, 0, 0, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 0,
- 0, 0, 0, 0, 0, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 0, 0, 227,
- 228, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 229,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 230, 231, 232, 233, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 234, 235, 236, 237, 238, 131, 0, 0, 0,
- 0, 136, 137, 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, 0, 0, 0, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 0, 0, 0,
- 0, 0, 0, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 0, 0, 227, 228, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 229, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 230, 231,
- 232, 233, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 234,
- 235, 236, 237, 238, 131, 0, 0, 0, 0, 136,
- 337, 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, 0,
- 0, 0, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 0, 0, 0, 0, 0,
- 0, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 131, 0, 0, 0, 0, 136, 137
-};
-
-static const yytype_int16 yycheck[] =
-{
- 0, 166, 221, 158, 229, 210, 305, 0, 0, 257,
- 378, 193, 259, 162, 317, 145, 319, 199, 453, 322,
- 140, 141, 138, 139, 189, 160, 168, 165, 247, 158,
- 185, 160, 194, 168, 160, 160, 218, 219, 167, 177,
- 492, 167, 158, 168, 160, 194, 481, 499, 164, 204,
- 158, 181, 194, 215, 160, 260, 176, 177, 510, 160,
- 170, 167, 172, 159, 159, 290, 167, 292, 202, 165,
- 165, 205, 277, 207, 208, 162, 323, 211, 165, 159,
- 159, 168, 159, 382, 168, 165, 165, 159, 165, 165,
- 255, 161, 168, 165, 165, 165, 165, 168, 317, 168,
- 319, 349, 257, 322, 259, 136, 137, 332, 411, 360,
- 361, 362, 363, 165, 142, 143, 168, 336, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 165, 165,
- 165, 168, 168, 183, 184, 185, 356, 357, 167, 173,
- 174, 175, 163, 194, 165, 159, 514, 165, 166, 165,
- 166, 358, 359, 452, 364, 365, 176, 162, 158, 384,
- 168, 464, 344, 388, 162, 160, 166, 415, 323, 194,
- 194, 167, 194, 173, 159, 158, 176, 194, 160, 180,
- 173, 173, 179, 402, 403, 185, 144, 178, 161, 189,
- 146, 160, 411, 163, 349, 158, 198, 168, 158, 158,
- 168, 504, 168, 158, 204, 166, 158, 194, 210, 159,
- 194, 165, 161, 213, 194, 161, 158, 161, 163, 194,
- 159, 520, 447, 202, 158, 227, 228, 162, 453, 159,
- 167, 159, 168, 162, 206, 162, 168, 163, 366, 370,
- 367, 470, 189, 262, 368, 464, 369, 185, 250, 371,
- 130, 343, 425, 455, 498, 255, 481, 257, 260, 259,
- 415, 510, 183, 455, 189, 470, 511, 486, 493, 315,
- 481, 315, 315, 173, 472, 277, -1, -1, -1, -1,
- -1, -1, -1, -1, 509, 504, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 453, -1,
- -1, -1, -1, -1, -1, 305, -1, -1, -1, -1,
- -1, 476, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 323, -1, -1, 481, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 341,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
- -1, 353, 354, 355, 356, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- -1, -1, -1, -1, -1, -1, -1, -1, 378, -1,
- -1, -1, 382, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 415, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 452, 453, -1, 455, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 470, -1,
- -1, -1, -1, -1, -1, -1, 476, -1, -1, -1,
- -1, 481, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 492, -1, -1, -1, -1, -1, -1, 499,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 510, -1, -1, -1, 514, -1, -1, -1, 0, -1,
- 520, 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,
- -1, -1, -1, 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, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 168, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 182, 183, 184, 185, 186, -1, -1, -1, -1, -1,
- -1, -1, -1, 195, 196, 197, 198, 199, 200, 201,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 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, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- -1, -1, 138, 139, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 158, -1, 160, -1, 162, 163, -1, -1,
- -1, -1, 168, 169, 170, 171, 172, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 182, 183, 184, 185,
- 186, -1, -1, -1, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- -1, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 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, -1, -1, -1, 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, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, -1, -1, 138, 139,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 158, -1,
- 160, -1, 162, 163, -1, -1, -1, -1, 168, 169,
- 170, 171, 172, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 182, 183, 184, 185, 186, -1, -1, -1,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, -1, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 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, -1, -1,
- -1, 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, -1, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, -1, -1, 138, 139, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 158, -1, 160, -1, 162, -1,
- -1, -1, -1, -1, 168, 169, 170, 171, 172, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 182, 183,
- 184, 185, 186, -1, -1, -1, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, -1, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 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, -1, -1, -1, 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,
- -1, -1, -1, -1, -1, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, -1, -1,
- 138, 139, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 158, -1, 160, -1, 162, -1, -1, -1, -1, -1,
- 168, 169, 170, 171, 172, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 182, 183, 184, 185, 186, -1,
- -1, -1, 190, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 201, 202, 203, 204, 205, -1, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 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,
- -1, -1, -1, 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, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, -1, -1, 138, 139, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 158, -1, 160, -1,
- -1, -1, -1, -1, -1, -1, 168, 169, 170, 171,
- 172, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 182, 183, 184, 185, 186, -1, -1, -1, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, -1, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 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, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- -1, -1, 138, 139, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 158, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 168, 169, 170, 171, 172, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 182, 183, 184, 185,
- 186, -1, -1, -1, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 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, -1, -1, -1, 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, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, -1, -1, 138, 139,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 158, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 169,
- 170, 171, 172, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 182, 183, 184, 185, -1, -1, -1, -1,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 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, -1, -1,
- -1, 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, -1, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 168, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 182, 183,
- 184, 185, 186, -1, -1, -1, -1, -1, -1, -1,
- -1, 195, 196, 197, 198, 199, 200, 201, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 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, -1, -1, -1, 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,
- -1, -1, -1, -1, -1, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 168, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 182, 183, 184, 185, -1, -1,
- -1, -1, -1, -1, -1, -1, 194, 195, 196, 197,
- 198, 199, 200, 201, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 214, 215, 216, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 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,
- -1, -1, -1, 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, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 163, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 182, 183, 184, 185, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 195, 196, 197, 198, 199, 200, 201,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 214, 215, 216, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 227, 228, 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, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 163, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 182, 183, 184, 185,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 195,
- 196, 197, 198, 199, 200, 201, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 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, -1, -1, -1, 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, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 163, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 182, 183, 184, 185, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 195, 196, 197, 198, 199,
- 200, 201, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 227, 228, 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, -1, -1,
- -1, 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, -1, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 182, 183,
- 184, 185, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 195, 196, 197, 198, 199, 200, 201, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
- 224, 225, 226, 227, 228, 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, -1, -1, -1, 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, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, -1, -1, 138,
- 139, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 158,
- -1, -1, -1, 162, 163, -1, -1, -1, -1, -1,
- 169, 170, 171, 172, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 190, 191, 192, 193, 194, 195, -1, -1, -1,
- -1, 200, 201, 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, -1, -1, -1, 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, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, -1, -1, 138, 139, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 158, -1, -1,
- 161, -1, -1, -1, -1, -1, -1, -1, 169, 170,
- 171, 172, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 190,
- 191, 192, 193, 194, 195, -1, -1, -1, -1, 200,
- 201, 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, -1,
- -1, -1, 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, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, -1, -1, 138, 139, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 158, -1, -1, -1, 162,
- -1, -1, -1, -1, -1, -1, 169, 170, 171, 172,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 190, 191, 192,
- 193, 194, 195, -1, -1, -1, -1, 200, 201, 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, -1, -1, -1,
- 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, -1, -1, -1, -1, -1, -1, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, -1, -1, 138, 139, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 158, -1, -1, 161, -1, -1, -1,
- -1, -1, -1, -1, 169, 170, 171, 172, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 190, 191, 192, 193, 194,
- 195, -1, -1, -1, -1, 200, 201, 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, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, -1,
- -1, 138, 139, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 158, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 168, 169, 170, 171, 172, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 190, 191, 192, 193, 194, 195, -1,
- -1, -1, -1, 200, 201, 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, -1, -1, -1, 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, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, -1, -1, 138,
- 139, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 158,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 169, 170, 171, 172, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 190, 191, 192, 193, 194, 195, -1, -1, -1,
- -1, 200, 201, 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, -1, -1, -1, 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, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, -1, -1, 138, 139, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 158, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 169, 170,
- 171, 172, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 190,
- 191, 192, 193, 194, 195, -1, -1, -1, -1, 200,
- 201, 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, -1,
- -1, -1, 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, -1, -1, -1, -1, -1,
- -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 195, -1, -1, -1, -1, 200, 201
-};
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const yytype_int16 yystos[] =
-{
- 0, 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,
- 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, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 168, 182, 183, 184, 185,
- 186, 195, 196, 197, 198, 199, 200, 201, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 260, 261, 264, 265, 266, 267, 271,
- 272, 273, 274, 275, 276, 279, 280, 281, 282, 283,
- 288, 289, 290, 330, 331, 332, 289, 162, 194, 158,
- 168, 194, 168, 333, 159, 165, 268, 269, 270, 280,
- 283, 165, 168, 194, 168, 194, 281, 283, 176, 285,
- 286, 0, 331, 283, 292, 162, 194, 215, 277, 278,
- 160, 168, 284, 162, 309, 269, 268, 270, 194, 194,
- 158, 167, 284, 162, 165, 168, 263, 138, 139, 158,
- 169, 170, 171, 172, 190, 191, 192, 193, 194, 230,
- 231, 232, 234, 235, 236, 237, 238, 239, 240, 241,
- 242, 283, 287, 284, 168, 280, 283, 293, 294, 291,
- 167, 159, 165, 161, 241, 243, 244, 245, 246, 247,
- 248, 249, 250, 251, 252, 253, 254, 160, 168, 160,
- 162, 163, 168, 202, 203, 204, 205, 207, 208, 209,
- 210, 211, 212, 213, 241, 254, 256, 258, 260, 264,
- 283, 299, 300, 301, 302, 310, 311, 312, 313, 316,
- 317, 320, 321, 322, 329, 334, 284, 167, 284, 162,
- 256, 297, 167, 262, 194, 165, 168, 241, 241, 258,
- 138, 139, 160, 164, 159, 159, 165, 201, 256, 158,
- 241, 165, 177, 283, 194, 295, 296, 163, 294, 293,
- 254, 259, 278, 173, 174, 175, 170, 172, 136, 137,
- 140, 141, 176, 177, 142, 143, 180, 179, 178, 144,
- 146, 145, 181, 161, 161, 254, 160, 163, 303, 158,
- 168, 168, 324, 158, 158, 168, 168, 258, 158, 258,
- 166, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 167, 257, 165, 168, 163, 300, 313, 317, 322,
- 297, 167, 297, 298, 297, 293, 194, 159, 233, 258,
- 194, 256, 241, 295, 284, 165, 168, 163, 241, 241,
- 241, 243, 243, 244, 244, 245, 245, 245, 245, 246,
- 246, 247, 248, 249, 250, 251, 252, 255, 161, 194,
- 335, 336, 310, 323, 300, 325, 258, 168, 258, 166,
- 256, 256, 297, 163, 165, 163, 161, 168, 296, 258,
- 158, 161, 165, 304, 258, 273, 280, 315, 202, 299,
- 311, 326, 159, 159, 163, 297, 166, 259, 161, 336,
- 163, 194, 159, 158, 315, 327, 328, 306, 307, 308,
- 314, 318, 256, 159, 167, 301, 305, 309, 258, 168,
- 159, 206, 302, 301, 162, 297, 159, 258, 305, 306,
- 310, 319, 168, 163
-};
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_int16 yyr1[] =
-{
- 0, 229, 230, 231, 231, 231, 231, 231, 231, 232,
- 232, 232, 232, 232, 232, 233, 234, 235, 236, 236,
- 237, 237, 238, 238, 239, 240, 240, 241, 241, 241,
- 241, 242, 242, 242, 242, 243, 243, 243, 243, 244,
- 244, 244, 245, 245, 245, 246, 246, 246, 246, 246,
- 247, 247, 247, 248, 248, 249, 249, 250, 250, 251,
- 251, 252, 252, 253, 253, 254, 255, 254, 256, 256,
- 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
- 257, 258, 258, 259, 260, 260, 260, 260, 260, 260,
- 260, 260, 260, 262, 261, 263, 263, 264, 265, 265,
- 266, 266, 267, 268, 268, 269, 269, 269, 269, 270,
- 271, 271, 271, 271, 271, 272, 272, 272, 272, 272,
- 273, 273, 274, 275, 275, 275, 276, 277, 277, 278,
- 278, 278, 279, 280, 280, 281, 281, 281, 281, 281,
- 281, 282, 282, 282, 282, 282, 282, 282, 282, 282,
- 282, 282, 282, 282, 282, 282, 282, 282, 283, 283,
- 284, 284, 284, 284, 285, 285, 286, 287, 287, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 288, 288, 289, 289, 289, 291, 290, 292, 290,
- 293, 293, 294, 294, 295, 295, 296, 296, 297, 297,
- 297, 298, 298, 299, 300, 300, 301, 301, 301, 301,
- 301, 301, 301, 302, 303, 304, 302, 305, 305, 307,
- 306, 308, 306, 309, 309, 310, 310, 311, 311, 312,
- 312, 313, 314, 314, 315, 315, 316, 316, 318, 317,
- 319, 319, 320, 320, 321, 321, 323, 322, 324, 322,
- 325, 322, 326, 326, 327, 327, 328, 328, 329, 329,
- 329, 329, 329, 330, 330, 331, 331, 331, 333, 332,
- 334, 335, 335, 336, 336
-};
-
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const yytype_int8 yyr2[] =
-{
- 0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
- 4, 1, 3, 2, 2, 1, 1, 1, 2, 2,
- 2, 1, 2, 3, 2, 1, 1, 1, 2, 2,
- 2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
- 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
- 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
- 3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 1, 2, 2, 4, 2, 3, 4,
- 2, 3, 4, 0, 6, 2, 3, 2, 1, 1,
- 2, 3, 3, 2, 3, 2, 1, 2, 1, 1,
- 1, 3, 4, 6, 5, 1, 2, 3, 5, 4,
- 1, 2, 1, 1, 1, 1, 4, 1, 3, 1,
- 3, 1, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 2, 3, 3, 4, 1, 0, 3, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 6, 0, 5,
- 1, 2, 3, 4, 1, 3, 1, 2, 1, 3,
- 4, 1, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 0, 0, 5, 1, 1, 0,
- 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
- 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
- 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
- 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
- 2, 3, 2, 1, 2, 1, 1, 1, 0, 3,
- 5, 1, 3, 1, 4
-};
-
-
-#define yyerrok (yyerrstatus = 0)
-#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
-#define YYEOF 0
-
-#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
- do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (pParseContext, YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
- while (0)
-
-/* Error token number */
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (0)
-
-/* This macro is provided for backward compatibility. */
-#ifndef YY_LOCATION_PRINT
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-#endif
-
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, \
- Type, Value, pParseContext); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
-
-
-/*-----------------------------------.
-| Print this symbol's value on YYO. |
-`-----------------------------------*/
-
-static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
-{
- FILE *yyoutput = yyo;
- YYUSE (yyoutput);
- YYUSE (pParseContext);
- if (!yyvaluep)
- return;
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
-# endif
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-/*---------------------------.
-| Print this symbol on YYO. |
-`---------------------------*/
-
-static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
-{
- YYFPRINTF (yyo, "%s %s (",
- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
-
- yy_symbol_value_print (yyo, yytype, yyvaluep, pParseContext);
- YYFPRINTF (yyo, ")");
-}
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-static void
-yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
-{
- YYFPRINTF (stderr, "Stack now");
- for (; yybottom <= yytop; yybottom++)
- {
- int yybot = *yybottom;
- YYFPRINTF (stderr, " %d", yybot);
- }
- YYFPRINTF (stderr, "\n");
-}
-
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (0)
-
-
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
-
-static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
-{
- int yylno = yyrline[yyrule];
- int yynrhs = yyr2[yyrule];
- int yyi;
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
- yyrule - 1, yylno);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr,
- yystos[+yyssp[yyi + 1 - yynrhs]],
- &yyvsp[(yyi + 1) - (yynrhs)]
- , pParseContext);
- YYFPRINTF (stderr, "\n");
- }
-}
-
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
-} while (0)
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
-
-
-/* YYINITDEPTH -- initial size of the parser's stacks. */
-#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
-#endif
-
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
-#endif
-
-
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
-# else
-/* Return the length of YYSTR. */
-static YYPTRDIFF_T
-yystrlen (const char *yystr)
-{
- YYPTRDIFF_T yylen;
- for (yylen = 0; yystr[yylen]; yylen++)
- continue;
- return yylen;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-yystpcpy (char *yydest, const char *yysrc)
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYPTRDIFF_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- YYPTRDIFF_T yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- else
- goto append;
-
- append:
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (yyres)
- return yystpcpy (yyres, yystr) - yyres;
- else
- return yystrlen (yystr);
-}
-# endif
-
-/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
- about the unexpected token YYTOKEN for the state stack whose top is
- YYSSP.
-
- Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
- not large enough to hold the message. In that case, also set
- *YYMSG_ALLOC to the required number of bytes. Return 2 if the
- required number of bytes is too large to store. */
-static int
-yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
- yy_state_t *yyssp, int yytoken)
-{
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
- /* Arguments of yyformat: reported tokens (one for the "unexpected",
- one per "expected"). */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Actual size of YYARG. */
- int yycount = 0;
- /* Cumulated lengths of YYARG. */
- YYPTRDIFF_T yysize = 0;
-
- /* There are many possibilities here to consider:
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[+*yyssp];
- YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
- yysize = yysize0;
- yyarg[yycount++] = yytname[yytoken];
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for
- this state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- {
- YYPTRDIFF_T yysize1
- = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
- return 2;
- }
- }
- }
- }
-
- switch (yycount)
- {
-# define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- default: /* Avoid compiler warnings. */
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
-# undef YYCASE_
- }
-
- {
- /* Don't count the "%s"s in the final size, but reserve room for
- the terminator. */
- YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
- return 2;
- }
-
- if (*yymsg_alloc < yysize)
- {
- *yymsg_alloc = 2 * yysize;
- if (! (yysize <= *yymsg_alloc
- && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
- *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
- return 1;
- }
-
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- {
- char *yyp = *yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat) != '\0')
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- ++yyp;
- ++yyformat;
- }
- }
- return 0;
-}
-#endif /* YYERROR_VERBOSE */
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
-{
- YYUSE (yyvaluep);
- YYUSE (pParseContext);
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-}
-
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
-
-int
-yyparse (glslang::TParseContext* pParseContext)
-{
-/* The lookahead symbol. */
-int yychar;
-
-
-/* The semantic value of the lookahead symbol. */
-/* Default value used for initialization, for pacifying older GCCs
- or non-GCC compilers. */
-YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
-YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
-
- /* Number of syntax errors so far. */
- int yynerrs;
-
- yy_state_fast_t yystate;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-
- /* The stacks and their tools:
- 'yyss': related to states.
- 'yyvs': related to semantic values.
-
- Refer to the stacks through separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- yy_state_t yyssa[YYINITDEPTH];
- yy_state_t *yyss;
- yy_state_t *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs;
- YYSTYPE *yyvsp;
-
- YYPTRDIFF_T yystacksize;
-
- int yyn;
- int yyresult;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
-
-#if YYERROR_VERBOSE
- /* Buffer for error messages, and its allocated size. */
- char yymsgbuf[128];
- char *yymsg = yymsgbuf;
- YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- /* The number of symbols on the RHS of the reduced rule.
- Keep to zero when no symbol should be popped. */
- int yylen = 0;
-
- yyssp = yyss = yyssa;
- yyvsp = yyvs = yyvsa;
- yystacksize = YYINITDEPTH;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
- goto yysetstate;
-
-
-/*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
-yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
-
-/*--------------------------------------------------------------------.
-| yysetstate -- set current state (the top of the stack) to yystate. |
-`--------------------------------------------------------------------*/
-yysetstate:
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
- YY_IGNORE_USELESS_CAST_BEGIN
- *yyssp = YY_CAST (yy_state_t, yystate);
- YY_IGNORE_USELESS_CAST_END
-
- if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
-#else
- {
- /* Get the current used size of the three stacks, in elements. */
- YYPTRDIFF_T yysize = yyssp - yyss + 1;
-
-# if defined yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- yy_state_t *yyss1 = yyss;
- YYSTYPE *yyvs1 = yyvs;
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * YYSIZEOF (*yyssp),
- &yyvs1, yysize * YYSIZEOF (*yyvsp),
- &yystacksize);
- yyss = yyss1;
- yyvs = yyvs1;
- }
-# else /* defined YYSTACK_RELOCATE */
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- yy_state_t *yyss1 = yyss;
- union yyalloc *yyptr =
- YY_CAST (union yyalloc *,
- YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
- if (! yyptr)
- goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss_alloc, yyss);
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
-
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
- YY_IGNORE_USELESS_CAST_BEGIN
- YYDPRINTF ((stderr, "Stack size increased to %ld\n",
- YY_CAST (long, yystacksize)));
- YY_IGNORE_USELESS_CAST_END
-
- if (yyss + yystacksize - 1 <= yyssp)
- YYABORT;
- }
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
-
- if (yystate == YYFINAL)
- YYACCEPT;
-
- goto yybackup;
-
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
- /* Do appropriate processing given the current state. Read a
- lookahead token if we need one and don't already have one. */
-
- /* First try to decide what to do without reference to lookahead token. */
- yyn = yypact[yystate];
- if (yypact_value_is_default (yyn))
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = yylex (&yylval, parseContext);
- }
-
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
- goto yydefault;
- yyn = yytable[yyn];
- if (yyn <= 0)
- {
- if (yytable_value_is_error (yyn))
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
- /* Shift the lookahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- yystate = yyn;
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
- /* Discard the shifted token. */
- yychar = YYEMPTY;
- goto yynewstate;
-
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
-yydefault:
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
- goto yyreduce;
-
-
-/*-----------------------------.
-| yyreduce -- do a reduction. |
-`-----------------------------*/
-yyreduce:
- /* yyn is the number of a rule to reduce with. */
- yylen = yyr2[yyn];
-
- /* If YYLEN is nonzero, implement the default value of the action:
- '$$ = $1'.
-
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
-
-
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 2:
-#line 322 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
- }
-#line 3070 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 3:
-#line 328 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3078 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 4:
-#line 331 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
- if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
- (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
- }
-#line 3088 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 5:
-#line 336 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
- }
-#line 3096 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 6:
-#line 339 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
- }
-#line 3104 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 7:
-#line 342 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
- }
-#line 3113 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 8:
-#line 346 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
- }
-#line 3121 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 9:
-#line 355 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3129 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 10:
-#line 358 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
- }
-#line 3137 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 11:
-#line 361 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3145 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 12:
-#line 364 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
- }
-#line 3153 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 13:
-#line 367 "MachineIndependent/glslang_angle.y"
- {
- parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
- parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
- }
-#line 3163 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 14:
-#line 372 "MachineIndependent/glslang_angle.y"
- {
- parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
- parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
- }
-#line 3173 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 15:
-#line 380 "MachineIndependent/glslang_angle.y"
- {
- parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3182 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 16:
-#line 387 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
- delete (yyvsp[0].interm).function;
- }
-#line 3191 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 17:
-#line 394 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
- }
-#line 3199 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 18:
-#line 400 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-1].interm);
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- }
-#line 3208 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 19:
-#line 404 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-1].interm);
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- }
-#line 3217 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 20:
-#line 411 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-1].interm);
- }
-#line 3225 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 21:
-#line 414 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
- }
-#line 3233 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 22:
-#line 420 "MachineIndependent/glslang_angle.y"
- {
- TParameter param = { 0, new TType };
- param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
- (yyvsp[-1].interm).function->addParameter(param);
- (yyval.interm).function = (yyvsp[-1].interm).function;
- (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3245 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 23:
-#line 427 "MachineIndependent/glslang_angle.y"
- {
- TParameter param = { 0, new TType };
- param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
- (yyvsp[-2].interm).function->addParameter(param);
- (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 3257 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 24:
-#line 437 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-1].interm);
- }
-#line 3265 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 25:
-#line 445 "MachineIndependent/glslang_angle.y"
- {
- // Constructor
- (yyval.interm).intermNode = 0;
- (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
- }
-#line 3275 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 26:
-#line 450 "MachineIndependent/glslang_angle.y"
- {
- //
- // Should be a method or subroutine call, but we haven't recognized the arguments yet.
- //
- (yyval.interm).function = 0;
- (yyval.interm).intermNode = 0;
-
- TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
- if (method) {
- (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
- (yyval.interm).intermNode = method->getObject();
- } else {
- TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
- if (symbol) {
- parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
- TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
- (yyval.interm).function = function;
- } else
- parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
- }
-
- if ((yyval.interm).function == 0) {
- // error recover
- TString* empty = NewPoolTString("");
- (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
- }
- }
-#line 3307 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 27:
-#line 483 "MachineIndependent/glslang_angle.y"
- {
- parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
- parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
- }
-#line 3318 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 28:
-#line 489 "MachineIndependent/glslang_angle.y"
- {
- 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 3327 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 29:
-#line 493 "MachineIndependent/glslang_angle.y"
- {
- 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 3336 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 30:
-#line 497 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-1].interm).op != EOpNull) {
- char errorOp[2] = {0, 0};
- switch((yyvsp[-1].interm).op) {
- case EOpNegative: errorOp[0] = '-'; break;
- case EOpLogicalNot: errorOp[0] = '!'; break;
- case EOpBitwiseNot: errorOp[0] = '~'; break;
- default: break; // some compilers want this
- }
- (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
- } else {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
- (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
- }
- }
-#line 3357 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 31:
-#line 517 "MachineIndependent/glslang_angle.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 3363 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 32:
-#line 518 "MachineIndependent/glslang_angle.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 3369 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 33:
-#line 519 "MachineIndependent/glslang_angle.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 3375 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 34:
-#line 520 "MachineIndependent/glslang_angle.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 3382 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 35:
-#line 526 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3388 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 36:
-#line 527 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3398 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 37:
-#line 532 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3408 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 38:
-#line 537 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3419 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 39:
-#line 546 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3425 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 40:
-#line 547 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3435 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 41:
-#line 552 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3445 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 42:
-#line 560 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3451 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 43:
-#line 561 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3462 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 44:
-#line 567 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3473 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 45:
-#line 576 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3479 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 46:
-#line 577 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3489 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 47:
-#line 582 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3499 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 48:
-#line 587 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3509 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 49:
-#line 592 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3519 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 50:
-#line 600 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3525 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 51:
-#line 601 "MachineIndependent/glslang_angle.y"
- {
- parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
- parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
- parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
- parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3539 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 52:
-#line 610 "MachineIndependent/glslang_angle.y"
- {
- parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
- parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
- parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
- parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3553 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 53:
-#line 622 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3559 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 54:
-#line 623 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3570 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 55:
-#line 632 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3576 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 56:
-#line 633 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3587 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 57:
-#line 642 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3593 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 58:
-#line 643 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 3604 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 59:
-#line 652 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3610 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 60:
-#line 653 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3620 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 61:
-#line 661 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3626 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 62:
-#line 662 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3636 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 63:
-#line 670 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3642 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 64:
-#line 671 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- if ((yyval.interm.intermTypedNode) == 0)
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
- }
-#line 3652 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 65:
-#line 679 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3658 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 66:
-#line 680 "MachineIndependent/glslang_angle.y"
- {
- ++parseContext.controlFlowNestingLevel;
- }
-#line 3666 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 67:
-#line 683 "MachineIndependent/glslang_angle.y"
- {
- --parseContext.controlFlowNestingLevel;
- parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
- parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
- parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
- parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
- if ((yyval.interm.intermTypedNode) == 0) {
- parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
- }
-#line 3683 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 68:
-#line 698 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3689 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 69:
-#line 699 "MachineIndependent/glslang_angle.y"
- {
- parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
- parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
- parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
- parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
- parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
- parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc);
- if ((yyval.interm.intermTypedNode) == 0) {
- parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
- }
-#line 3707 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 70:
-#line 715 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpAssign;
- }
-#line 3716 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 71:
-#line 719 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpMulAssign;
- }
-#line 3725 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 72:
-#line 723 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpDivAssign;
- }
-#line 3734 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 73:
-#line 727 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpModAssign;
- }
-#line 3744 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 74:
-#line 732 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpAddAssign;
- }
-#line 3753 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 75:
-#line 736 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).op = EOpSubAssign;
- }
-#line 3762 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 76:
-#line 740 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
- (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
- }
-#line 3771 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 77:
-#line 744 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
- (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
- }
-#line 3780 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 78:
-#line 748 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
- (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
- }
-#line 3789 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 79:
-#line 752 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
- (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
- }
-#line 3798 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 80:
-#line 756 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
- (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
- }
-#line 3807 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 81:
-#line 763 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3815 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 82:
-#line 766 "MachineIndependent/glslang_angle.y"
- {
- parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
- (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
- if ((yyval.interm.intermTypedNode) == 0) {
- parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
- }
-#line 3828 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 83:
-#line 777 "MachineIndependent/glslang_angle.y"
- {
- parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 3837 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 84:
-#line 784 "MachineIndependent/glslang_angle.y"
- {
- parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
- (yyval.interm.intermNode) = 0;
- // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
- }
-#line 3847 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 85:
-#line 789 "MachineIndependent/glslang_angle.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 3857 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 86:
-#line 794 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
- // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
- parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
- parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
- (yyval.interm.intermNode) = 0;
- }
-#line 3869 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 87:
-#line 801 "MachineIndependent/glslang_angle.y"
- {
- parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
- (yyval.interm.intermNode) = 0;
- }
-#line 3878 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 88:
-#line 805 "MachineIndependent/glslang_angle.y"
- {
- parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
- (yyval.interm.intermNode) = 0;
- }
-#line 3887 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 89:
-#line 809 "MachineIndependent/glslang_angle.y"
- {
- parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
- (yyval.interm.intermNode) = 0;
- }
-#line 3896 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 90:
-#line 813 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
- parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
- (yyval.interm.intermNode) = 0;
- }
-#line 3906 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 91:
-#line 818 "MachineIndependent/glslang_angle.y"
- {
- parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
- parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
- (yyval.interm.intermNode) = 0;
- }
-#line 3916 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 92:
-#line 823 "MachineIndependent/glslang_angle.y"
- {
- parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
- (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
- parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
- (yyval.interm.intermNode) = 0;
- }
-#line 3927 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 93:
-#line 832 "MachineIndependent/glslang_angle.y"
- { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 3933 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 94:
-#line 832 "MachineIndependent/glslang_angle.y"
- {
- --parseContext.structNestingLevel;
- parseContext.blockName = (yyvsp[-4].lex).string;
- parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
- parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
- parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
- (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
- (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
- }
-#line 3947 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 95:
-#line 843 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.identifierList) = new TIdentifierList;
- (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
- }
-#line 3956 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 96:
-#line 847 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
- (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
- }
-#line 3965 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 97:
-#line 854 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).function = (yyvsp[-1].interm.function);
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- }
-#line 3974 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 98:
-#line 861 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.function) = (yyvsp[0].interm.function);
- }
-#line 3982 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 99:
-#line 864 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.function) = (yyvsp[0].interm.function);
- }
-#line 3990 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 100:
-#line 871 "MachineIndependent/glslang_angle.y"
- {
- // Add the parameter
- (yyval.interm.function) = (yyvsp[-1].interm.function);
- if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
- (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
- else
- delete (yyvsp[0].interm).param.type;
- }
-#line 4003 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 101:
-#line 879 "MachineIndependent/glslang_angle.y"
- {
- //
- // Only first parameter of one-parameter functions can be void
- // The check for named parameters not being void is done in parameter_declarator
- //
- if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
- //
- // This parameter > first is void
- //
- parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
- delete (yyvsp[0].interm).param.type;
- } else {
- // Add the parameter
- (yyval.interm.function) = (yyvsp[-2].interm.function);
- (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
- }
- }
-#line 4025 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 102:
-#line 899 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
- parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
- GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
- }
- if ((yyvsp[-2].interm.type).arraySizes)
- parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
-
- // Add the function as a prototype after parsing it (we do not support recursion)
- TFunction *function;
- TType type((yyvsp[-2].interm.type));
-
- // Potentially rename shader entry point function. No-op most of the time.
- parseContext.renameShaderFunction((yyvsp[-1].lex).string);
-
- // Make the function
- function = new TFunction((yyvsp[-1].lex).string, type);
- (yyval.interm.function) = function;
- }
-#line 4049 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 103:
-#line 922 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-1].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
- }
- if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
- parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
- }
- parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
-
- TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
- (yyval.interm).loc = (yyvsp[0].lex).loc;
- (yyval.interm).param = param;
- }
-#line 4069 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 104:
-#line 937 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-2].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
- }
- TType* type = new TType((yyvsp[-2].interm.type));
- type->transferArraySizes((yyvsp[0].interm).arraySizes);
- type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
-
- parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
- parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
- parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
-
- TParameter param = { (yyvsp[-1].lex).string, type };
-
- (yyval.interm).loc = (yyvsp[-1].lex).loc;
- (yyval.interm).param = param;
- }
-#line 4093 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 105:
-#line 962 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
- if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
- (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
- parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
-
- parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
- 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 4109 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 106:
-#line 973 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
-
- parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
- 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 4121 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 107:
-#line 983 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
- if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
- (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
- parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
-
- parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
- 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 4136 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 108:
-#line 993 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
-
- parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
- 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 4148 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 109:
-#line 1003 "MachineIndependent/glslang_angle.y"
- {
- TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
- (yyval.interm).param = param;
- if ((yyvsp[0].interm.type).arraySizes)
- parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
- }
-#line 4159 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 110:
-#line 1012 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[0].interm);
- }
-#line 4167 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 111:
-#line 1015 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-2].interm);
- parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
- }
-#line 4176 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 112:
-#line 1019 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-3].interm);
- parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
- }
-#line 4185 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 113:
-#line 1023 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-5].interm).type;
- TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
- (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
- }
-#line 4195 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 114:
-#line 1028 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-4].interm).type;
- TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
- (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
- }
-#line 4205 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 115:
-#line 1036 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[0].interm.type);
- (yyval.interm).intermNode = 0;
-
- parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
-
- }
-#line 4217 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 116:
-#line 1043 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-1].interm.type);
- (yyval.interm).intermNode = 0;
- parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
- }
-#line 4227 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 117:
-#line 1048 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-2].interm.type);
- (yyval.interm).intermNode = 0;
- parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
- }
-#line 4237 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 118:
-#line 1053 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-4].interm.type);
- TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
- (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
- }
-#line 4247 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 119:
-#line 1058 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).type = (yyvsp[-3].interm.type);
- TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
- (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
- }
-#line 4257 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 120:
-#line 1067 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
-
- parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
- if ((yyvsp[0].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- }
- parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
- }
-#line 4272 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 121:
-#line 1077 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
- parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
-
- if ((yyvsp[0].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- }
-
- if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
- (yyvsp[0].interm.type).arraySizes = nullptr;
-
- parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
- (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
- parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
- parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
-
- (yyval.interm.type) = (yyvsp[0].interm.type);
-
- if (! (yyval.interm.type).qualifier.isInterpolation() &&
- ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
- (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
- (yyval.interm.type).qualifier.smooth = true;
- }
-#line 4301 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 122:
-#line 1104 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
- parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.invariant = true;
- }
-#line 4312 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 123:
-#line 1113 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.smooth = true;
- }
-#line 4324 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 124:
-#line 1120 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.flat = true;
- }
-#line 4336 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 125:
-#line 1128 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.nopersp = true;
- }
-#line 4348 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 126:
-#line 1140 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[-1].interm.type);
- }
-#line 4356 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 127:
-#line 1146 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4364 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 128:
-#line 1149 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[-2].interm.type);
- (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
- parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
- }
-#line 4374 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 129:
-#line 1156 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
- }
-#line 4383 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 130:
-#line 1160 "MachineIndependent/glslang_angle.y"
- {
- (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 4392 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 131:
-#line 1164 "MachineIndependent/glslang_angle.y"
- { // because "shared" is both an identifier and a keyword
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- TString strShared("shared");
- parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
- }
-#line 4402 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 132:
-#line 1173 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.noContraction = true;
- }
-#line 4413 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 133:
-#line 1183 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4421 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 134:
-#line 1186 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[-1].interm.type);
- if ((yyval.interm.type).basicType == EbtVoid)
- (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
-
- (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 4434 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 135:
-#line 1197 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4442 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 136:
-#line 1200 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4450 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 137:
-#line 1203 "MachineIndependent/glslang_angle.y"
- {
- parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4459 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 138:
-#line 1207 "MachineIndependent/glslang_angle.y"
- {
- // allow inheritance of storage qualifier from block declaration
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4468 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 139:
-#line 1211 "MachineIndependent/glslang_angle.y"
- {
- // allow inheritance of storage qualifier from block declaration
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4477 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 140:
-#line 1216 "MachineIndependent/glslang_angle.y"
- {
- // allow inheritance of storage qualifier from block declaration
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4486 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 141:
-#line 1225 "MachineIndependent/glslang_angle.y"
- {
- (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 4495 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 142:
-#line 1229 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.storage = EvqInOut;
- }
-#line 4505 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 143:
-#line 1234 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "in");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
- (yyval.interm.type).qualifier.storage = EvqIn;
- }
-#line 4516 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 144:
-#line 1240 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "out");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
- (yyval.interm.type).qualifier.storage = EvqOut;
- }
-#line 4527 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 145:
-#line 1246 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
- parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.centroid = true;
- }
-#line 4539 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 146:
-#line 1253 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.storage = EvqUniform;
- }
-#line 4549 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 147:
-#line 1258 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
- parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
- parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
- parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.storage = EvqShared;
- }
-#line 4562 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 148:
-#line 1266 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.storage = EvqBuffer;
- }
-#line 4572 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 149:
-#line 1272 "MachineIndependent/glslang_angle.y"
- {
- parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
- parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
- parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
- parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
- parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
-
- parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
-
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.storage = EvqVaryingIn;
- }
-#line 4589 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 150:
-#line 1284 "MachineIndependent/glslang_angle.y"
- {
- parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
- parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
- parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
- parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
-
- parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
-
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- if (parseContext.language == EShLangVertex)
- (yyval.interm.type).qualifier.storage = EvqVaryingOut;
- else
- (yyval.interm.type).qualifier.storage = EvqVaryingIn;
- }
-#line 4608 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 151:
-#line 1298 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
- parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.patch = true;
- }
-#line 4619 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 152:
-#line 1304 "MachineIndependent/glslang_angle.y"
- {
- parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.sample = true;
- }
-#line 4629 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 153:
-#line 1310 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.coherent = true;
- }
-#line 4638 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 154:
-#line 1314 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.volatil = true;
- }
-#line 4647 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 155:
-#line 1318 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.restrict = true;
- }
-#line 4656 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 156:
-#line 1322 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.readonly = true;
- }
-#line 4665 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 157:
-#line 1326 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.writeonly = true;
- }
-#line 4674 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 158:
-#line 1349 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[-1].interm.type);
- (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
- (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
- }
-#line 4684 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 159:
-#line 1354 "MachineIndependent/glslang_angle.y"
- {
- parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
- (yyval.interm.type) = (yyvsp[-2].interm.type);
- (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
- (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
- (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
- }
-#line 4696 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 160:
-#line 1364 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[-1].lex).loc;
- (yyval.interm).arraySizes = new TArraySizes;
- (yyval.interm).arraySizes->addInnerSize();
- }
-#line 4706 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 161:
-#line 1369 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm).loc = (yyvsp[-2].lex).loc;
- (yyval.interm).arraySizes = new TArraySizes;
-
- TArraySize size;
- parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
- (yyval.interm).arraySizes->addInnerSize(size);
- }
-#line 4719 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 162:
-#line 1377 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-2].interm);
- (yyval.interm).arraySizes->addInnerSize();
- }
-#line 4728 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 163:
-#line 1381 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm) = (yyvsp[-3].interm);
-
- TArraySize size;
- parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
- (yyval.interm).arraySizes->addInnerSize(size);
- }
-#line 4740 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 164:
-#line 1391 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
- }
-#line 4748 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 165:
-#line 1394 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeParameters) = 0;
- }
-#line 4756 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 166:
-#line 1400 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
- }
-#line 4764 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 167:
-#line 1406 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeParameters) = new TArraySizes;
-
- TArraySize size;
- parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
- (yyval.interm.typeParameters)->addInnerSize(size);
- }
-#line 4776 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 168:
-#line 1413 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
-
- TArraySize size;
- parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
- (yyval.interm.typeParameters)->addInnerSize(size);
- }
-#line 4788 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 169:
-#line 1423 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtVoid;
- }
-#line 4797 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 170:
-#line 1427 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- }
-#line 4806 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 171:
-#line 1431 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- }
-#line 4815 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 172:
-#line 1435 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- }
-#line 4825 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 173:
-#line 1440 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- }
-#line 4834 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 174:
-#line 1444 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(2);
- }
-#line 4844 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 175:
-#line 1449 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(3);
- }
-#line 4854 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 176:
-#line 1454 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(4);
- }
-#line 4864 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 177:
-#line 1459 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(2);
- }
-#line 4874 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 178:
-#line 1464 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(3);
- }
-#line 4884 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 179:
-#line 1469 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(4);
- }
-#line 4894 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 180:
-#line 1474 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(2);
- }
-#line 4904 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 181:
-#line 1479 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(3);
- }
-#line 4914 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 182:
-#line 1484 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(4);
- }
-#line 4924 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 183:
-#line 1489 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- (yyval.interm.type).setVector(2);
- }
-#line 4935 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 184:
-#line 1495 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- (yyval.interm.type).setVector(3);
- }
-#line 4946 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 185:
-#line 1501 "MachineIndependent/glslang_angle.y"
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- (yyval.interm.type).setVector(4);
- }
-#line 4957 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 186:
-#line 1507 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 2);
- }
-#line 4967 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 187:
-#line 1512 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(3, 3);
- }
-#line 4977 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 188:
-#line 1517 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(4, 4);
- }
-#line 4987 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 189:
-#line 1522 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 2);
- }
-#line 4997 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 190:
-#line 1527 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 3);
- }
-#line 5007 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 191:
-#line 1532 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 4);
- }
-#line 5017 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 192:
-#line 1537 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(3, 2);
- }
-#line 5027 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 193:
-#line 1542 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(3, 3);
- }
-#line 5037 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 194:
-#line 1547 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(3, 4);
- }
-#line 5047 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 195:
-#line 1552 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(4, 2);
- }
-#line 5057 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 196:
-#line 1557 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(4, 3);
- }
-#line 5067 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 197:
-#line 1562 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(4, 4);
- }
-#line 5077 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 198:
-#line 1570 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
- }
-#line 5087 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 199:
-#line 1575 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
- }
-#line 5097 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 200:
-#line 1580 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
- }
-#line 5107 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 201:
-#line 1585 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
- }
-#line 5117 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 202:
-#line 1590 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
- }
-#line 5127 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 203:
-#line 1595 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
- }
-#line 5137 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 204:
-#line 1600 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
- }
-#line 5147 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 205:
-#line 1606 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
- }
-#line 5157 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 206:
-#line 1611 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
- }
-#line 5167 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 207:
-#line 1618 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D);
- }
-#line 5177 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 208:
-#line 1623 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd3D);
- }
-#line 5187 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 209:
-#line 1628 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdCube);
- }
-#line 5197 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 210:
-#line 1633 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
- }
-#line 5207 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 211:
-#line 1638 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D);
- }
-#line 5217 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 212:
-#line 1643 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd3D);
- }
-#line 5227 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 213:
-#line 1648 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdCube);
- }
-#line 5237 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 214:
-#line 1654 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
- }
-#line 5247 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 215:
-#line 1659 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
- }
-#line 5257 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 216:
-#line 1664 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
- }
-#line 5267 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 217:
-#line 1669 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
- }
-#line 5277 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 218:
-#line 1674 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
- }
-#line 5287 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 219:
-#line 1681 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
- }
-#line 5297 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 220:
-#line 1686 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
- }
-#line 5307 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 221:
-#line 1691 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
- }
-#line 5317 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 222:
-#line 1696 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
- }
-#line 5327 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 223:
-#line 1701 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
- }
-#line 5337 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 224:
-#line 1706 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
- }
-#line 5347 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 225:
-#line 1711 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
- }
-#line 5357 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 226:
-#line 1716 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
- }
-#line 5367 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 227:
-#line 1721 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
- }
-#line 5377 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 228:
-#line 1726 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
- }
-#line 5387 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 229:
-#line 1731 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
- }
-#line 5397 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 230:
-#line 1736 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
- }
-#line 5407 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 231:
-#line 1741 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
- }
-#line 5417 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 232:
-#line 1746 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setPureSampler(false);
- }
-#line 5427 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 233:
-#line 1751 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setPureSampler(true);
- }
-#line 5437 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 234:
-#line 1757 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
- }
-#line 5447 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 235:
-#line 1762 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
- }
-#line 5457 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 236:
-#line 1767 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdRect);
- }
-#line 5467 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 237:
-#line 1772 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdRect);
- }
-#line 5477 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 238:
-#line 1777 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
- }
-#line 5487 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 239:
-#line 1782 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
- }
-#line 5497 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 240:
-#line 1787 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
- }
-#line 5507 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 241:
-#line 1792 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
- }
-#line 5517 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 242:
-#line 1797 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
- }
-#line 5527 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 243:
-#line 1802 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
- }
-#line 5537 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 244:
-#line 1807 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
- }
-#line 5547 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 245:
-#line 1812 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
- }
-#line 5557 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 246:
-#line 1817 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
- }
-#line 5567 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 247:
-#line 1823 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
- }
-#line 5577 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 248:
-#line 1828 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
- }
-#line 5587 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 249:
-#line 1833 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
- }
-#line 5597 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 250:
-#line 1838 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
- }
-#line 5607 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 251:
-#line 1843 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
- }
-#line 5617 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 252:
-#line 1848 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
- }
-#line 5627 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 253:
-#line 1853 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
- }
-#line 5637 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 254:
-#line 1858 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
- }
-#line 5647 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 255:
-#line 1863 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
- }
-#line 5657 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 256:
-#line 1868 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
- }
-#line 5667 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 257:
-#line 1873 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
- }
-#line 5677 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 258:
-#line 1878 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
- }
-#line 5687 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 259:
-#line 1884 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
- }
-#line 5697 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 260:
-#line 1889 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
- }
-#line 5707 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 261:
-#line 1894 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
- }
-#line 5717 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 262:
-#line 1899 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
- }
-#line 5727 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 263:
-#line 1904 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
- }
-#line 5737 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 264:
-#line 1909 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
- }
-#line 5747 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 265:
-#line 1914 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
- }
-#line 5757 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 266:
-#line 1919 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
- }
-#line 5767 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 267:
-#line 1924 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
- }
-#line 5777 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 268:
-#line 1929 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
- }
-#line 5787 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 269:
-#line 1934 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
- }
-#line 5797 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 270:
-#line 1939 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
- }
-#line 5807 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 271:
-#line 1944 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
- }
-#line 5817 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 272:
-#line 1949 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
- }
-#line 5827 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 273:
-#line 1954 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
- }
-#line 5837 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 274:
-#line 1959 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
- }
-#line 5847 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 275:
-#line 1964 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
- }
-#line 5857 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 276:
-#line 1969 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
- }
-#line 5867 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 277:
-#line 1974 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
- }
-#line 5877 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 278:
-#line 1979 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
- }
-#line 5887 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 279:
-#line 1984 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
- }
-#line 5897 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 280:
-#line 1989 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
- }
-#line 5907 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 281:
-#line 1994 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
- }
-#line 5917 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 282:
-#line 1999 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
- }
-#line 5927 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 283:
-#line 2004 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
- }
-#line 5937 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 284:
-#line 2009 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
- }
-#line 5947 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 285:
-#line 2014 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
- }
-#line 5957 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 286:
-#line 2019 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
- }
-#line 5967 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 287:
-#line 2024 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
- }
-#line 5977 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 288:
-#line 2029 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
- }
-#line 5987 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 289:
-#line 2035 "MachineIndependent/glslang_angle.y"
- { // GL_OES_EGL_image_external
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
- (yyval.interm.type).sampler.external = true;
- }
-#line 5998 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 290:
-#line 2041 "MachineIndependent/glslang_angle.y"
- { // GL_EXT_YUV_target
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
- (yyval.interm.type).sampler.yuv = true;
- }
-#line 6009 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 291:
-#line 2049 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
- parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
- }
-#line 6019 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 292:
-#line 2054 "MachineIndependent/glslang_angle.y"
- {
- //
- // This is for user defined type names. The lexical phase looked up the
- // type.
- //
- if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
- const TType& structure = variable->getType();
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtStruct;
- (yyval.interm.type).userDef = &structure;
- } else
- parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
- }
-#line 6037 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 293:
-#line 2070 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
- }
-#line 6047 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 294:
-#line 2075 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
- }
-#line 6057 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 295:
-#line 2080 "MachineIndependent/glslang_angle.y"
- {
- parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
- }
-#line 6067 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 296:
-#line 2088 "MachineIndependent/glslang_angle.y"
- { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 6073 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 297:
-#line 2088 "MachineIndependent/glslang_angle.y"
- {
- TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
- parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
- TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
- if (! parseContext.symbolTable.insert(*userTypeDef))
- parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
- (yyval.interm.type).init((yyvsp[-5].lex).loc);
- (yyval.interm.type).basicType = EbtStruct;
- (yyval.interm.type).userDef = structure;
- --parseContext.structNestingLevel;
- }
-#line 6089 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 298:
-#line 2099 "MachineIndependent/glslang_angle.y"
- { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 6095 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 299:
-#line 2099 "MachineIndependent/glslang_angle.y"
- {
- TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
- (yyval.interm.type).init((yyvsp[-4].lex).loc);
- (yyval.interm.type).basicType = EbtStruct;
- (yyval.interm.type).userDef = structure;
- --parseContext.structNestingLevel;
- }
-#line 6107 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 300:
-#line 2109 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
- }
-#line 6115 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 301:
-#line 2112 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
- for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
- for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
- if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
- parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
- }
- (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
- }
- }
-#line 6130 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 302:
-#line 2125 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-2].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- if (parseContext.isEsProfile())
- parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
- }
-
- (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
-
- parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
- parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
-
- for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
- TType type((yyvsp[-2].interm.type));
- type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
- type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
- type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
- parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
- (*(yyval.interm.typeList))[i].type->shallowCopy(type);
- }
- }
-#line 6157 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 303:
-#line 2147 "MachineIndependent/glslang_angle.y"
- {
- if ((yyvsp[-2].interm.type).arraySizes) {
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
- parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
- if (parseContext.isEsProfile())
- parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
- }
-
- (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
-
- parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
- parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
- parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
- parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
-
- for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
- TType type((yyvsp[-2].interm.type));
- type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
- type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
- type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
- parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
- (*(yyval.interm.typeList))[i].type->shallowCopy(type);
- }
- }
-#line 6186 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 304:
-#line 2174 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeList) = new TTypeList;
- (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
- }
-#line 6195 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 305:
-#line 2178 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
- }
-#line 6203 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 306:
-#line 2184 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.typeLine).type = new TType(EbtVoid);
- (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
- (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
- }
-#line 6213 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 307:
-#line 2189 "MachineIndependent/glslang_angle.y"
- {
- parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
-
- (yyval.interm.typeLine).type = new TType(EbtVoid);
- (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
- (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
- (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
- }
-#line 6226 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 308:
-#line 2200 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 6234 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 309:
-#line 2204 "MachineIndependent/glslang_angle.y"
- {
- const char* initFeature = "{ } style initializers";
- parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
- parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
- (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
- }
-#line 6245 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 310:
-#line 2210 "MachineIndependent/glslang_angle.y"
- {
- const char* initFeature = "{ } style initializers";
- parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
- parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
- (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
- }
-#line 6256 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 311:
-#line 2221 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
- }
-#line 6264 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 312:
-#line 2224 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- }
-#line 6272 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 313:
-#line 2231 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6278 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 314:
-#line 2235 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6284 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 315:
-#line 2236 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6290 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 316:
-#line 2242 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6296 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 317:
-#line 2243 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6302 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 318:
-#line 2244 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6308 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 319:
-#line 2245 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6314 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 320:
-#line 2246 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6320 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 321:
-#line 2247 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6326 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 322:
-#line 2248 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6332 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 323:
-#line 2259 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = 0; }
-#line 6338 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 324:
-#line 2260 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.push();
- ++parseContext.statementNestingLevel;
- }
-#line 6347 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 325:
-#line 2264 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- }
-#line 6356 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 326:
-#line 2268 "MachineIndependent/glslang_angle.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 6366 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 327:
-#line 2276 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6372 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 328:
-#line 2277 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6378 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 329:
-#line 2281 "MachineIndependent/glslang_angle.y"
- {
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6386 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 330:
-#line 2284 "MachineIndependent/glslang_angle.y"
- {
- --parseContext.controlFlowNestingLevel;
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6395 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 331:
-#line 2288 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.push();
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6405 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 332:
-#line 2293 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6416 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 333:
-#line 2302 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = 0;
- }
-#line 6424 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 334:
-#line 2305 "MachineIndependent/glslang_angle.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 6434 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 335:
-#line 2313 "MachineIndependent/glslang_angle.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 ||
- (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
- parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
- (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
- }
- }
-#line 6447 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 336:
-#line 2321 "MachineIndependent/glslang_angle.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)) {
- parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
- (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
- } else
- (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
- }
-#line 6460 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 337:
-#line 2332 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = 0; }
-#line 6466 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 338:
-#line 2333 "MachineIndependent/glslang_angle.y"
- { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 6472 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 339:
-#line 2337 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6480 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 340:
-#line 2341 "MachineIndependent/glslang_angle.y"
- {
- parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6489 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 341:
-#line 2348 "MachineIndependent/glslang_angle.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 6498 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 342:
-#line 2355 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
- (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
- }
-#line 6507 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 343:
-#line 2359 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
- (yyval.interm.nodePair).node2 = 0;
- }
-#line 6516 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 344:
-#line 2367 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
- }
-#line 6525 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 345:
-#line 2371 "MachineIndependent/glslang_angle.y"
- {
- parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
-
- TType type((yyvsp[-3].interm.type));
- TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
- if (initNode)
- (yyval.interm.intermTypedNode) = initNode->getAsTyped();
- else
- (yyval.interm.intermTypedNode) = 0;
- }
-#line 6540 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 346:
-#line 2384 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6548 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 347:
-#line 2388 "MachineIndependent/glslang_angle.y"
- {
- parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6557 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 348:
-#line 2395 "MachineIndependent/glslang_angle.y"
- {
- // start new switch sequence on the switch stack
- ++parseContext.controlFlowNestingLevel;
- ++parseContext.statementNestingLevel;
- parseContext.switchSequenceStack.push_back(new TIntermSequence);
- parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
- parseContext.symbolTable.push();
- }
-#line 6570 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 349:
-#line 2403 "MachineIndependent/glslang_angle.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();
- parseContext.switchSequenceStack.pop_back();
- parseContext.switchLevel.pop_back();
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
-#line 6584 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 350:
-#line 2415 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = 0;
- }
-#line 6592 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 351:
-#line 2418 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6600 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 352:
-#line 2424 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = 0;
- if (parseContext.switchLevel.size() == 0)
- parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
- else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
- parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
- else {
- parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
- parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
- (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
- }
- }
-#line 6617 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 353:
-#line 2436 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = 0;
- if (parseContext.switchLevel.size() == 0)
- parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
- else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
- parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
- else
- (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
- }
-#line 6631 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 354:
-#line 2448 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6639 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 355:
-#line 2452 "MachineIndependent/glslang_angle.y"
- {
- parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6648 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 356:
-#line 2459 "MachineIndependent/glslang_angle.y"
- {
- if (! parseContext.limits.whileLoops)
- parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
- parseContext.symbolTable.push();
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6661 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 357:
-#line 2467 "MachineIndependent/glslang_angle.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);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
-#line 6673 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 358:
-#line 2474 "MachineIndependent/glslang_angle.y"
- {
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6683 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 359:
-#line 2479 "MachineIndependent/glslang_angle.y"
- {
- if (! parseContext.limits.whileLoops)
- parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
-
- parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
-
- (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
-#line 6699 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 360:
-#line 2490 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.push();
- ++parseContext.loopNestingLevel;
- ++parseContext.statementNestingLevel;
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6710 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 361:
-#line 2496 "MachineIndependent/glslang_angle.y"
- {
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
- TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
- if (! parseContext.limits.nonInductiveForLoops)
- parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
- (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
- (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
- --parseContext.loopNestingLevel;
- --parseContext.statementNestingLevel;
- --parseContext.controlFlowNestingLevel;
- }
-#line 6727 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 362:
-#line 2511 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6735 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 363:
-#line 2514 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6743 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 364:
-#line 2520 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 6751 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 365:
-#line 2523 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermTypedNode) = 0;
- }
-#line 6759 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 366:
-#line 2529 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
- (yyval.interm.nodePair).node2 = 0;
- }
-#line 6768 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 367:
-#line 2533 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
- (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
- }
-#line 6777 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 368:
-#line 2540 "MachineIndependent/glslang_angle.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 6787 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 369:
-#line 2545 "MachineIndependent/glslang_angle.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 6797 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 370:
-#line 2550 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
- if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
- parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
- if (parseContext.inMain)
- parseContext.postEntryPointReturn = true;
- }
-#line 6809 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 371:
-#line 2557 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
- }
-#line 6817 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 372:
-#line 2560 "MachineIndependent/glslang_angle.y"
- {
- parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
- (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
- }
-#line 6826 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 373:
-#line 2569 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
- }
-#line 6835 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 374:
-#line 2573 "MachineIndependent/glslang_angle.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 6846 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 375:
-#line 2582 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6854 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 376:
-#line 2585 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 6862 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 377:
-#line 2589 "MachineIndependent/glslang_angle.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 6872 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 378:
-#line 2598 "MachineIndependent/glslang_angle.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);
- }
-#line 6881 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 379:
-#line 2602 "MachineIndependent/glslang_angle.y"
- {
- // May be best done as post process phase on intermediate code
- if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
- parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
- parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
- (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
- parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
- (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
-
- // store the pragma information for debug and optimize and other vendor specific
- // information. This information can be queried from the parse tree
- (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
- (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
- (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
- }
-#line 6901 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 380:
-#line 2621 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
- parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
- }
-#line 6910 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 381:
-#line 2627 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
- }
-#line 6918 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 382:
-#line 2630 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
- }
-#line 6926 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 383:
-#line 2635 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
- }
-#line 6934 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
- case 384:
-#line 2638 "MachineIndependent/glslang_angle.y"
- {
- (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
- }
-#line 6942 "MachineIndependent/glslang_angle_tab.cpp"
- break;
-
-
-#line 6946 "MachineIndependent/glslang_angle_tab.cpp"
-
- default: break;
- }
- /* User semantic actions sometimes alter yychar, and that requires
- that yytoken be updated with the new translation. We take the
- approach of translating immediately before every use of yytoken.
- One alternative is translating here after every semantic action,
- but that translation would be missed if the semantic action invokes
- YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
- if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
- incorrect destructor might then be invoked immediately. In the
- case of YYERROR or YYBACKUP, subsequent parser actions might lead
- to an incorrect destructor call or verbose syntax error message
- before the lookahead is translated. */
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-
- /* Now 'shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
- {
- const int yylhs = yyr1[yyn] - YYNTOKENS;
- const int yyi = yypgoto[yylhs] + *yyssp;
- yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
- ? yytable[yyi]
- : yydefgoto[yylhs]);
- }
-
- goto yynewstate;
-
-
-/*--------------------------------------.
-| yyerrlab -- here on detecting error. |
-`--------------------------------------*/
-yyerrlab:
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
-
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
- {
- ++yynerrs;
-#if ! YYERROR_VERBOSE
- yyerror (pParseContext, YY_("syntax error"));
-#else
-# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
- yyssp, yytoken)
- {
- char const *yymsgp = YY_("syntax error");
- int yysyntax_error_status;
- yysyntax_error_status = YYSYNTAX_ERROR;
- if (yysyntax_error_status == 0)
- yymsgp = yymsg;
- else if (yysyntax_error_status == 1)
- {
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
- if (!yymsg)
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- yysyntax_error_status = 2;
- }
- else
- {
- yysyntax_error_status = YYSYNTAX_ERROR;
- yymsgp = yymsg;
- }
- }
- yyerror (pParseContext, yymsgp);
- if (yysyntax_error_status == 2)
- goto yyexhaustedlab;
- }
-# undef YYSYNTAX_ERROR
-#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding",
- yytoken, &yylval, pParseContext);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and the
- label yyerrorlab therefore never appears in user code. */
- if (0)
- YYERROR;
-
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYERROR. */
- YYPOPSTACK (yylen);
- yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
-
- for (;;)
- {
- yyn = yypact[yystate];
- if (!yypact_value_is_default (yyn))
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
-
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
-
-
- yydestruct ("Error: popping",
- yystos[yystate], yyvsp, pParseContext);
- YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
- *++yyvsp = yylval;
- YY_IGNORE_MAYBE_UNINITIALIZED_END
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-
-#if !defined yyoverflow || YYERROR_VERBOSE
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (pParseContext, YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result. |
-`-----------------------------------------------------*/
-yyreturn:
- if (yychar != YYEMPTY)
- {
- /* Make sure we have latest lookahead translation. See comments at
- user semantic actions for why this is necessary. */
- yytoken = YYTRANSLATE (yychar);
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval, pParseContext);
- }
- /* Do not reclaim the symbols of the rule whose action triggered
- this YYABORT or YYACCEPT. */
- YYPOPSTACK (yylen);
- YY_STACK_PRINT (yyss, yyssp);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[+*yyssp], yyvsp, pParseContext);
- YYPOPSTACK (1);
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
-#if YYERROR_VERBOSE
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
-#endif
- return yyresult;
-}
-#line 2643 "MachineIndependent/glslang_angle.y"
-
diff --git a/glslang/MachineIndependent/glslang_angle_tab.cpp.h b/glslang/MachineIndependent/glslang_angle_tab.cpp.h
deleted file mode 100644
index 9d6721a..0000000
--- a/glslang/MachineIndependent/glslang_angle_tab.cpp.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/* A Bison parser, made by GNU Bison 3.5.1. */
-
-/* Bison interface for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
- Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
-
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
-#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
-# define YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED
-/* Debug traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-#if YYDEBUG
-extern int yydebug;
-#endif
-
-/* Token type. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- enum yytokentype
- {
- CONST = 258,
- BOOL = 259,
- INT = 260,
- UINT = 261,
- FLOAT = 262,
- BVEC2 = 263,
- BVEC3 = 264,
- BVEC4 = 265,
- IVEC2 = 266,
- IVEC3 = 267,
- IVEC4 = 268,
- UVEC2 = 269,
- UVEC3 = 270,
- UVEC4 = 271,
- VEC2 = 272,
- VEC3 = 273,
- VEC4 = 274,
- MAT2 = 275,
- MAT3 = 276,
- MAT4 = 277,
- MAT2X2 = 278,
- MAT2X3 = 279,
- MAT2X4 = 280,
- MAT3X2 = 281,
- MAT3X3 = 282,
- MAT3X4 = 283,
- MAT4X2 = 284,
- MAT4X3 = 285,
- MAT4X4 = 286,
- SAMPLER2D = 287,
- SAMPLER3D = 288,
- SAMPLERCUBE = 289,
- SAMPLER2DSHADOW = 290,
- SAMPLERCUBESHADOW = 291,
- SAMPLER2DARRAY = 292,
- SAMPLER2DARRAYSHADOW = 293,
- ISAMPLER2D = 294,
- ISAMPLER3D = 295,
- ISAMPLERCUBE = 296,
- ISAMPLER2DARRAY = 297,
- USAMPLER2D = 298,
- USAMPLER3D = 299,
- USAMPLERCUBE = 300,
- USAMPLER2DARRAY = 301,
- SAMPLER = 302,
- SAMPLERSHADOW = 303,
- TEXTURE2D = 304,
- TEXTURE3D = 305,
- TEXTURECUBE = 306,
- TEXTURE2DARRAY = 307,
- ITEXTURE2D = 308,
- ITEXTURE3D = 309,
- ITEXTURECUBE = 310,
- ITEXTURE2DARRAY = 311,
- UTEXTURE2D = 312,
- UTEXTURE3D = 313,
- UTEXTURECUBE = 314,
- UTEXTURE2DARRAY = 315,
- ATTRIBUTE = 316,
- VARYING = 317,
- SAMPLERCUBEARRAY = 318,
- SAMPLERCUBEARRAYSHADOW = 319,
- ISAMPLERCUBEARRAY = 320,
- USAMPLERCUBEARRAY = 321,
- SAMPLER2DRECT = 322,
- SAMPLER2DRECTSHADOW = 323,
- ISAMPLER2DRECT = 324,
- USAMPLER2DRECT = 325,
- SAMPLERBUFFER = 326,
- ISAMPLERBUFFER = 327,
- USAMPLERBUFFER = 328,
- SAMPLER2DMS = 329,
- ISAMPLER2DMS = 330,
- USAMPLER2DMS = 331,
- SAMPLER2DMSARRAY = 332,
- ISAMPLER2DMSARRAY = 333,
- USAMPLER2DMSARRAY = 334,
- SAMPLEREXTERNALOES = 335,
- SAMPLEREXTERNAL2DY2YEXT = 336,
- IMAGE1D = 337,
- IIMAGE1D = 338,
- UIMAGE1D = 339,
- IMAGE2D = 340,
- IIMAGE2D = 341,
- UIMAGE2D = 342,
- IMAGE3D = 343,
- IIMAGE3D = 344,
- UIMAGE3D = 345,
- IMAGE2DRECT = 346,
- IIMAGE2DRECT = 347,
- UIMAGE2DRECT = 348,
- IMAGECUBE = 349,
- IIMAGECUBE = 350,
- UIMAGECUBE = 351,
- IMAGEBUFFER = 352,
- IIMAGEBUFFER = 353,
- UIMAGEBUFFER = 354,
- IMAGE1DARRAY = 355,
- IIMAGE1DARRAY = 356,
- UIMAGE1DARRAY = 357,
- IMAGE2DARRAY = 358,
- IIMAGE2DARRAY = 359,
- UIMAGE2DARRAY = 360,
- IMAGECUBEARRAY = 361,
- IIMAGECUBEARRAY = 362,
- UIMAGECUBEARRAY = 363,
- IMAGE2DMS = 364,
- IIMAGE2DMS = 365,
- UIMAGE2DMS = 366,
- IMAGE2DMSARRAY = 367,
- IIMAGE2DMSARRAY = 368,
- UIMAGE2DMSARRAY = 369,
- TEXTURECUBEARRAY = 370,
- ITEXTURECUBEARRAY = 371,
- UTEXTURECUBEARRAY = 372,
- TEXTURE1D = 373,
- ITEXTURE1D = 374,
- UTEXTURE1D = 375,
- TEXTURE1DARRAY = 376,
- ITEXTURE1DARRAY = 377,
- UTEXTURE1DARRAY = 378,
- TEXTURE2DRECT = 379,
- ITEXTURE2DRECT = 380,
- UTEXTURE2DRECT = 381,
- TEXTUREBUFFER = 382,
- ITEXTUREBUFFER = 383,
- UTEXTUREBUFFER = 384,
- TEXTURE2DMS = 385,
- ITEXTURE2DMS = 386,
- UTEXTURE2DMS = 387,
- TEXTURE2DMSARRAY = 388,
- ITEXTURE2DMSARRAY = 389,
- UTEXTURE2DMSARRAY = 390,
- LEFT_OP = 391,
- RIGHT_OP = 392,
- INC_OP = 393,
- DEC_OP = 394,
- LE_OP = 395,
- GE_OP = 396,
- EQ_OP = 397,
- NE_OP = 398,
- AND_OP = 399,
- OR_OP = 400,
- XOR_OP = 401,
- MUL_ASSIGN = 402,
- DIV_ASSIGN = 403,
- ADD_ASSIGN = 404,
- MOD_ASSIGN = 405,
- LEFT_ASSIGN = 406,
- RIGHT_ASSIGN = 407,
- AND_ASSIGN = 408,
- XOR_ASSIGN = 409,
- OR_ASSIGN = 410,
- SUB_ASSIGN = 411,
- STRING_LITERAL = 412,
- LEFT_PAREN = 413,
- RIGHT_PAREN = 414,
- LEFT_BRACKET = 415,
- RIGHT_BRACKET = 416,
- LEFT_BRACE = 417,
- RIGHT_BRACE = 418,
- DOT = 419,
- COMMA = 420,
- COLON = 421,
- EQUAL = 422,
- SEMICOLON = 423,
- BANG = 424,
- DASH = 425,
- TILDE = 426,
- PLUS = 427,
- STAR = 428,
- SLASH = 429,
- PERCENT = 430,
- LEFT_ANGLE = 431,
- RIGHT_ANGLE = 432,
- VERTICAL_BAR = 433,
- CARET = 434,
- AMPERSAND = 435,
- QUESTION = 436,
- INVARIANT = 437,
- HIGH_PRECISION = 438,
- MEDIUM_PRECISION = 439,
- LOW_PRECISION = 440,
- PRECISION = 441,
- PACKED = 442,
- RESOURCE = 443,
- SUPERP = 444,
- FLOATCONSTANT = 445,
- INTCONSTANT = 446,
- UINTCONSTANT = 447,
- BOOLCONSTANT = 448,
- IDENTIFIER = 449,
- TYPE_NAME = 450,
- CENTROID = 451,
- IN = 452,
- OUT = 453,
- INOUT = 454,
- STRUCT = 455,
- VOID = 456,
- WHILE = 457,
- BREAK = 458,
- CONTINUE = 459,
- DO = 460,
- ELSE = 461,
- FOR = 462,
- IF = 463,
- DISCARD = 464,
- RETURN = 465,
- SWITCH = 466,
- CASE = 467,
- DEFAULT = 468,
- UNIFORM = 469,
- SHARED = 470,
- BUFFER = 471,
- FLAT = 472,
- SMOOTH = 473,
- LAYOUT = 474,
- PATCH = 475,
- SAMPLE = 476,
- COHERENT = 477,
- VOLATILE = 478,
- RESTRICT = 479,
- READONLY = 480,
- WRITEONLY = 481,
- NOPERSPECTIVE = 482,
- PRECISE = 483
- };
-#endif
-
-/* Value type. */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-union YYSTYPE
-{
-#line 103 "MachineIndependent/glslang_angle.y"
-
- struct {
- glslang::TSourceLoc loc;
- union {
- glslang::TString *string;
- int i;
- unsigned int u;
- long long i64;
- unsigned long long u64;
- bool b;
- double d;
- };
- glslang::TSymbol* symbol;
- } lex;
- struct {
- glslang::TSourceLoc loc;
- glslang::TOperator op;
- union {
- TIntermNode* intermNode;
- glslang::TIntermNodePair nodePair;
- glslang::TIntermTyped* intermTypedNode;
- glslang::TAttributes* attributes;
- };
- union {
- glslang::TPublicType type;
- glslang::TFunction* function;
- glslang::TParameter param;
- glslang::TTypeLoc typeLine;
- glslang::TTypeList* typeList;
- glslang::TArraySizes* arraySizes;
- glslang::TIdentifierList* identifierList;
- };
- glslang::TArraySizes* typeParameters;
- } interm;
-
-#line 322 "MachineIndependent/glslang_angle_tab.cpp.h"
-
-};
-typedef union YYSTYPE YYSTYPE;
-# define YYSTYPE_IS_TRIVIAL 1
-# define YYSTYPE_IS_DECLARED 1
-#endif
-
-
-
-int yyparse (glslang::TParseContext* pParseContext);
-
-#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_ANGLE_TAB_CPP_H_INCLUDED */
diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp
index 8462e40..69f7f8e 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp
+++ b/glslang/MachineIndependent/glslang_tab.cpp
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.5.1. */
+/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
- Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -41,14 +40,11 @@
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.5.1"
+#define YYBISON_VERSION "3.0.4"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -65,8 +61,8 @@
-/* First part of user prologue. */
-#line 75 "MachineIndependent/glslang.y"
+/* Copy the first part of user declarations. */
+#line 69 "glslang.y" /* yacc.c:339 */
/* Based on:
@@ -92,26 +88,13 @@
using namespace glslang;
-#line 96 "MachineIndependent/glslang_tab.cpp"
+#line 92 "glslang_tab.cpp" /* yacc.c:339 */
-# ifndef YY_CAST
-# ifdef __cplusplus
-# define YY_CAST(Type, Val) static_cast<Type> (Val)
-# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
-# else
-# define YY_CAST(Type, Val) ((Type) (Val))
-# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
-# endif
-# endif
# ifndef YY_NULLPTR
-# if defined __cplusplus
-# if 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
-# else
-# define YY_NULLPTR 0
-# endif
+# if defined __cplusplus && 201103L <= __cplusplus
+# define YY_NULLPTR nullptr
# else
-# define YY_NULLPTR ((void*)0)
+# define YY_NULLPTR 0
# endif
# endif
@@ -123,10 +106,10 @@
# define YYERROR_VERBOSE 1
#endif
-/* Use api.header.include to #include this header
- instead of duplicating it here. */
-#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
-# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
+/* In a future release of Bison, this section will be replaced
+ by #include "glslang_tab.cpp.h". */
+#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
+# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
@@ -307,26 +290,26 @@
SAMPLERCUBEARRAYSHADOW = 422,
ISAMPLERCUBEARRAY = 423,
USAMPLERCUBEARRAY = 424,
- SAMPLER2DRECT = 425,
- SAMPLER2DRECTSHADOW = 426,
- ISAMPLER2DRECT = 427,
- USAMPLER2DRECT = 428,
- SAMPLERBUFFER = 429,
- ISAMPLERBUFFER = 430,
- USAMPLERBUFFER = 431,
- SAMPLER2DMS = 432,
- ISAMPLER2DMS = 433,
- USAMPLER2DMS = 434,
- SAMPLER2DMSARRAY = 435,
- ISAMPLER2DMSARRAY = 436,
- USAMPLER2DMSARRAY = 437,
- SAMPLEREXTERNALOES = 438,
- SAMPLEREXTERNAL2DY2YEXT = 439,
- SAMPLER1D = 440,
- SAMPLER1DARRAY = 441,
- SAMPLER1DARRAYSHADOW = 442,
- ISAMPLER1D = 443,
- SAMPLER1DSHADOW = 444,
+ SAMPLER1D = 425,
+ SAMPLER1DARRAY = 426,
+ SAMPLER1DARRAYSHADOW = 427,
+ ISAMPLER1D = 428,
+ SAMPLER1DSHADOW = 429,
+ SAMPLER2DRECT = 430,
+ SAMPLER2DRECTSHADOW = 431,
+ ISAMPLER2DRECT = 432,
+ USAMPLER2DRECT = 433,
+ SAMPLERBUFFER = 434,
+ ISAMPLERBUFFER = 435,
+ USAMPLERBUFFER = 436,
+ SAMPLER2DMS = 437,
+ ISAMPLER2DMS = 438,
+ USAMPLER2DMS = 439,
+ SAMPLER2DMSARRAY = 440,
+ ISAMPLER2DMSARRAY = 441,
+ USAMPLER2DMSARRAY = 442,
+ SAMPLEREXTERNALOES = 443,
+ SAMPLEREXTERNAL2DY2YEXT = 444,
ISAMPLER1DARRAY = 445,
USAMPLER1D = 446,
USAMPLER1DARRAY = 447,
@@ -536,35 +519,36 @@
HITATTREXT = 651,
CALLDATAEXT = 652,
CALLDATAINEXT = 653,
- NONUNIFORM = 654,
- DEVICECOHERENT = 655,
- QUEUEFAMILYCOHERENT = 656,
- WORKGROUPCOHERENT = 657,
- SUBGROUPCOHERENT = 658,
- NONPRIVATE = 659,
- SHADERCALLCOHERENT = 660,
- EXPLICITINTERPAMD = 661,
- PERVERTEXNV = 662,
- PERPRIMITIVENV = 663,
- PERVIEWNV = 664,
- PERTASKNV = 665,
- PATCH = 666,
- SAMPLE = 667,
- COHERENT = 668,
- VOLATILE = 669,
- RESTRICT = 670,
- READONLY = 671,
- WRITEONLY = 672,
- NOPERSPECTIVE = 673,
+ PATCH = 654,
+ SAMPLE = 655,
+ NONUNIFORM = 656,
+ COHERENT = 657,
+ VOLATILE = 658,
+ RESTRICT = 659,
+ READONLY = 660,
+ WRITEONLY = 661,
+ DEVICECOHERENT = 662,
+ QUEUEFAMILYCOHERENT = 663,
+ WORKGROUPCOHERENT = 664,
+ SUBGROUPCOHERENT = 665,
+ NONPRIVATE = 666,
+ SHADERCALLCOHERENT = 667,
+ NOPERSPECTIVE = 668,
+ EXPLICITINTERPAMD = 669,
+ PERVERTEXNV = 670,
+ PERPRIMITIVENV = 671,
+ PERVIEWNV = 672,
+ PERTASKNV = 673,
PRECISE = 674
};
#endif
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+
union YYSTYPE
{
-#line 103 "MachineIndependent/glslang.y"
+#line 97 "glslang.y" /* yacc.c:355 */
struct {
glslang::TSourceLoc loc;
@@ -600,9 +584,9 @@
glslang::TArraySizes* typeParameters;
} interm;
-#line 604 "MachineIndependent/glslang_tab.cpp"
-
+#line 588 "glslang_tab.cpp" /* yacc.c:355 */
};
+
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -612,10 +596,10 @@
int yyparse (glslang::TParseContext* pParseContext);
-#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
+#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */
-/* Second part of user prologue. */
-#line 139 "MachineIndependent/glslang.y"
+/* Copy the second part of user declarations. */
+#line 133 "glslang.y" /* yacc.c:358 */
/* windows only pragma */
@@ -631,82 +615,34 @@
extern int yylex(YYSTYPE*, TParseContext&);
-#line 635 "MachineIndependent/glslang_tab.cpp"
-
+#line 619 "glslang_tab.cpp" /* yacc.c:358 */
#ifdef short
# undef short
#endif
-/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
- <limits.h> and (if available) <stdint.h> are included
- so that the code can choose integer types of a good width. */
-
-#ifndef __PTRDIFF_MAX__
-# include <limits.h> /* INFRINGES ON USER NAME SPACE */
-# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
-# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_STDINT_H
-# endif
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
#endif
-/* Narrow types that promote to a signed type and that can represent a
- signed or unsigned integer of at least N bits. In tables they can
- save space and decrease cache pressure. Promoting to a signed type
- helps avoid bugs in integer arithmetic. */
-
-#ifdef __INT_LEAST8_MAX__
-typedef __INT_LEAST8_TYPE__ yytype_int8;
-#elif defined YY_STDINT_H
-typedef int_least8_t yytype_int8;
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
#else
typedef signed char yytype_int8;
#endif
-#ifdef __INT_LEAST16_MAX__
-typedef __INT_LEAST16_TYPE__ yytype_int16;
-#elif defined YY_STDINT_H
-typedef int_least16_t yytype_int16;
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
#else
-typedef short yytype_int16;
+typedef unsigned short int yytype_uint16;
#endif
-#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST8_TYPE__ yytype_uint8;
-#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST8_MAX <= INT_MAX)
-typedef uint_least8_t yytype_uint8;
-#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
-typedef unsigned char yytype_uint8;
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
#else
-typedef short yytype_uint8;
-#endif
-
-#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
-typedef __UINT_LEAST16_TYPE__ yytype_uint16;
-#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
- && UINT_LEAST16_MAX <= INT_MAX)
-typedef uint_least16_t yytype_uint16;
-#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
-typedef unsigned short yytype_uint16;
-#else
-typedef int yytype_uint16;
-#endif
-
-#ifndef YYPTRDIFF_T
-# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
-# define YYPTRDIFF_T __PTRDIFF_TYPE__
-# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
-# elif defined PTRDIFF_MAX
-# ifndef ptrdiff_t
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# endif
-# define YYPTRDIFF_T ptrdiff_t
-# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
-# else
-# define YYPTRDIFF_T long
-# define YYPTRDIFF_MAXIMUM LONG_MAX
-# endif
+typedef short int yytype_int16;
#endif
#ifndef YYSIZE_T
@@ -714,27 +650,15 @@
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
-# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
+# elif ! defined YYSIZE_T
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
-# define YYSIZE_T unsigned
+# define YYSIZE_T unsigned int
# endif
#endif
-#define YYSIZE_MAXIMUM \
- YY_CAST (YYPTRDIFF_T, \
- (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
- ? YYPTRDIFF_MAXIMUM \
- : YY_CAST (YYSIZE_T, -1)))
-
-#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
-
-/* Stored state numbers (used for stacks). */
-typedef yytype_int16 yy_state_t;
-
-/* State numbers in computations. */
-typedef int yy_state_fast_t;
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
@@ -748,19 +672,30 @@
# endif
#endif
-#ifndef YY_ATTRIBUTE_PURE
-# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#ifndef YY_ATTRIBUTE
+# if (defined __GNUC__ \
+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
# else
-# define YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE(Spec) /* empty */
# endif
#endif
+#ifndef YY_ATTRIBUTE_PURE
+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+#endif
+
#ifndef YY_ATTRIBUTE_UNUSED
-# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
-# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+#endif
+
+#if !defined _Noreturn \
+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+# if defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
# else
-# define YY_ATTRIBUTE_UNUSED
+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
# endif
#endif
@@ -771,13 +706,13 @@
# define YYUSE(E) /* empty */
#endif
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
@@ -790,20 +725,6 @@
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
-#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
-# define YY_IGNORE_USELESS_CAST_BEGIN \
- _Pragma ("GCC diagnostic push") \
- _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
-# define YY_IGNORE_USELESS_CAST_END \
- _Pragma ("GCC diagnostic pop")
-#endif
-#ifndef YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_BEGIN
-# define YY_IGNORE_USELESS_CAST_END
-#endif
-
-
-#define YY_ASSERT(E) ((void) (0 && (E)))
#if ! defined yyoverflow || YYERROR_VERBOSE
@@ -880,17 +801,17 @@
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- yy_state_t yyss_alloc;
+ yytype_int16 yyss_alloc;
YYSTYPE yyvs_alloc;
};
/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
- ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
# define YYCOPY_NEEDED 1
@@ -903,11 +824,11 @@
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
- YYPTRDIFF_T yynewbytes; \
+ YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
- yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / YYSIZEOF (*yyptr); \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
@@ -919,12 +840,12 @@
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(Dst, Src, Count) \
- __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
# else
# define YYCOPY(Dst, Src, Count) \
do \
{ \
- YYPTRDIFF_T yyi; \
+ YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
@@ -936,7 +857,7 @@
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 394
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 9538
+#define YYLAST 9550
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 420
@@ -947,18 +868,17 @@
/* YYNSTATES -- Number of states. */
#define YYNSTATES 736
+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+ by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 674
-
-/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex, with out-of-bounds checking. */
#define YYTRANSLATE(YYX) \
- (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
- as returned by yylex. */
-static const yytype_int16 yytranslate[] =
+ as returned by yylex, without out-of-bounds checking. */
+static const yytype_uint16 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1032,68 +952,68 @@
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
-static const yytype_int16 yyrline[] =
+static const yytype_uint16 yyrline[] =
{
- 0, 400, 400, 406, 409, 414, 417, 420, 424, 429,
- 432, 436, 440, 444, 448, 452, 456, 462, 471, 474,
- 477, 480, 483, 488, 496, 503, 510, 516, 520, 527,
- 530, 536, 543, 553, 561, 566, 595, 605, 611, 615,
- 619, 639, 640, 641, 642, 648, 649, 654, 659, 668,
- 669, 674, 682, 683, 689, 698, 699, 704, 709, 714,
- 722, 723, 732, 744, 745, 754, 755, 764, 765, 774,
- 775, 783, 784, 792, 793, 801, 802, 802, 820, 821,
- 837, 841, 845, 849, 854, 858, 862, 866, 870, 874,
- 878, 885, 888, 899, 906, 911, 916, 923, 927, 931,
- 935, 940, 945, 954, 954, 965, 969, 976, 983, 986,
- 993, 1001, 1021, 1044, 1059, 1084, 1095, 1105, 1115, 1125,
- 1134, 1137, 1141, 1145, 1150, 1158, 1165, 1170, 1175, 1180,
- 1189, 1199, 1226, 1235, 1242, 1250, 1258, 1265, 1273, 1283,
- 1290, 1302, 1308, 1311, 1318, 1322, 1326, 1335, 1345, 1348,
- 1359, 1362, 1365, 1369, 1373, 1378, 1383, 1391, 1395, 1400,
- 1406, 1412, 1419, 1424, 1432, 1438, 1450, 1464, 1470, 1476,
- 1484, 1492, 1500, 1508, 1516, 1524, 1532, 1540, 1547, 1554,
- 1559, 1564, 1569, 1574, 1579, 1584, 1590, 1597, 1601, 1605,
- 1609, 1613, 1623, 1631, 1634, 1643, 1648, 1658, 1663, 1671,
- 1675, 1685, 1688, 1694, 1700, 1707, 1717, 1721, 1725, 1729,
- 1734, 1738, 1743, 1748, 1753, 1758, 1763, 1768, 1773, 1778,
- 1783, 1789, 1795, 1801, 1806, 1811, 1816, 1821, 1826, 1831,
- 1836, 1841, 1846, 1851, 1856, 1863, 1870, 1875, 1880, 1885,
- 1890, 1895, 1900, 1905, 1910, 1915, 1920, 1925, 1933, 1941,
- 1949, 1955, 1961, 1967, 1973, 1979, 1985, 1991, 1997, 2003,
- 2009, 2015, 2021, 2027, 2033, 2039, 2045, 2051, 2057, 2063,
- 2069, 2075, 2081, 2087, 2093, 2099, 2105, 2111, 2117, 2123,
- 2129, 2135, 2141, 2147, 2155, 2163, 2171, 2179, 2187, 2195,
- 2203, 2211, 2219, 2227, 2235, 2243, 2249, 2255, 2261, 2267,
- 2273, 2279, 2285, 2291, 2297, 2303, 2309, 2315, 2321, 2327,
- 2333, 2339, 2345, 2351, 2357, 2363, 2369, 2375, 2381, 2387,
- 2393, 2399, 2405, 2411, 2417, 2423, 2429, 2435, 2441, 2447,
- 2453, 2459, 2463, 2467, 2471, 2476, 2483, 2488, 2493, 2498,
- 2503, 2508, 2513, 2519, 2524, 2530, 2535, 2540, 2545, 2551,
- 2557, 2563, 2569, 2575, 2581, 2587, 2593, 2599, 2605, 2611,
- 2617, 2623, 2630, 2635, 2640, 2645, 2650, 2655, 2660, 2666,
- 2671, 2676, 2681, 2686, 2692, 2697, 2702, 2709, 2714, 2719,
- 2724, 2729, 2734, 2739, 2744, 2749, 2754, 2759, 2764, 2769,
- 2774, 2779, 2785, 2790, 2795, 2800, 2805, 2810, 2815, 2820,
- 2825, 2830, 2835, 2840, 2845, 2851, 2857, 2863, 2869, 2875,
- 2881, 2886, 2891, 2896, 2901, 2906, 2912, 2917, 2922, 2927,
- 2932, 2937, 2942, 2947, 2952, 2957, 2962, 2967, 2973, 2979,
- 2985, 2991, 2997, 3003, 3009, 3015, 3021, 3027, 3033, 3039,
- 3044, 3049, 3055, 3060, 3065, 3070, 3075, 3080, 3085, 3090,
- 3095, 3100, 3105, 3110, 3115, 3120, 3125, 3130, 3135, 3140,
- 3145, 3150, 3155, 3160, 3165, 3170, 3175, 3180, 3185, 3190,
- 3195, 3200, 3206, 3212, 3218, 3224, 3230, 3236, 3242, 3248,
- 3254, 3260, 3266, 3273, 3279, 3286, 3292, 3298, 3305, 3312,
- 3318, 3324, 3330, 3336, 3342, 3348, 3356, 3361, 3377, 3382,
- 3387, 3395, 3395, 3406, 3406, 3416, 3419, 3432, 3454, 3481,
- 3485, 3491, 3496, 3507, 3511, 3517, 3528, 3531, 3538, 3542,
- 3543, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3558, 3566,
- 3576, 3577, 3581, 3577, 3593, 3594, 3598, 3598, 3605, 3605,
- 3619, 3622, 3630, 3638, 3649, 3650, 3654, 3658, 3665, 3672,
- 3676, 3684, 3688, 3701, 3705, 3712, 3712, 3732, 3735, 3741,
- 3753, 3765, 3769, 3776, 3776, 3791, 3791, 3807, 3807, 3828,
- 3831, 3837, 3840, 3846, 3850, 3857, 3862, 3867, 3874, 3877,
- 3886, 3890, 3899, 3902, 3906, 3915, 3915, 3938, 3944, 3947,
- 3952, 3955
+ 0, 357, 357, 363, 366, 371, 374, 377, 381, 385,
+ 388, 392, 396, 400, 404, 408, 412, 418, 426, 429,
+ 432, 435, 438, 443, 451, 458, 465, 471, 475, 482,
+ 485, 491, 498, 508, 516, 521, 549, 558, 564, 568,
+ 572, 592, 593, 594, 595, 601, 602, 607, 612, 621,
+ 622, 627, 635, 636, 642, 651, 652, 657, 662, 667,
+ 675, 676, 685, 697, 698, 707, 708, 717, 718, 727,
+ 728, 736, 737, 745, 746, 754, 755, 755, 773, 774,
+ 790, 794, 798, 802, 807, 811, 815, 819, 823, 827,
+ 831, 838, 841, 852, 859, 864, 869, 876, 880, 884,
+ 888, 893, 898, 907, 907, 918, 922, 929, 936, 939,
+ 946, 954, 974, 997, 1012, 1037, 1048, 1058, 1068, 1078,
+ 1087, 1090, 1094, 1098, 1103, 1111, 1118, 1123, 1128, 1133,
+ 1142, 1152, 1179, 1188, 1195, 1203, 1210, 1217, 1225, 1235,
+ 1242, 1253, 1259, 1262, 1269, 1273, 1277, 1286, 1296, 1299,
+ 1310, 1313, 1316, 1320, 1324, 1329, 1333, 1340, 1344, 1349,
+ 1355, 1361, 1368, 1373, 1381, 1387, 1399, 1413, 1419, 1424,
+ 1432, 1440, 1448, 1456, 1464, 1472, 1480, 1488, 1495, 1502,
+ 1506, 1511, 1516, 1521, 1526, 1531, 1536, 1540, 1544, 1548,
+ 1552, 1558, 1569, 1576, 1579, 1588, 1593, 1603, 1608, 1616,
+ 1620, 1630, 1633, 1639, 1645, 1652, 1662, 1666, 1670, 1674,
+ 1679, 1683, 1688, 1693, 1698, 1703, 1708, 1713, 1718, 1723,
+ 1728, 1734, 1740, 1746, 1751, 1756, 1761, 1766, 1771, 1776,
+ 1781, 1786, 1791, 1796, 1801, 1807, 1814, 1819, 1824, 1829,
+ 1834, 1839, 1844, 1849, 1854, 1859, 1864, 1869, 1877, 1885,
+ 1893, 1899, 1905, 1911, 1917, 1923, 1929, 1935, 1941, 1947,
+ 1953, 1959, 1965, 1971, 1977, 1983, 1989, 1995, 2001, 2007,
+ 2013, 2019, 2025, 2031, 2037, 2043, 2049, 2055, 2061, 2067,
+ 2073, 2079, 2085, 2091, 2099, 2107, 2115, 2123, 2131, 2139,
+ 2147, 2155, 2163, 2171, 2179, 2187, 2193, 2199, 2205, 2211,
+ 2217, 2223, 2229, 2235, 2241, 2247, 2253, 2259, 2265, 2271,
+ 2277, 2283, 2289, 2295, 2301, 2307, 2313, 2319, 2325, 2331,
+ 2337, 2343, 2349, 2355, 2361, 2367, 2373, 2379, 2385, 2391,
+ 2397, 2403, 2407, 2411, 2415, 2420, 2426, 2431, 2436, 2441,
+ 2446, 2451, 2456, 2462, 2467, 2472, 2477, 2482, 2487, 2493,
+ 2499, 2505, 2511, 2517, 2523, 2529, 2535, 2541, 2547, 2553,
+ 2559, 2565, 2571, 2576, 2581, 2586, 2591, 2596, 2601, 2607,
+ 2612, 2617, 2622, 2627, 2632, 2637, 2642, 2648, 2653, 2658,
+ 2663, 2668, 2673, 2678, 2683, 2688, 2693, 2698, 2703, 2708,
+ 2713, 2718, 2724, 2729, 2734, 2740, 2746, 2751, 2756, 2761,
+ 2767, 2772, 2777, 2782, 2788, 2793, 2798, 2803, 2809, 2814,
+ 2819, 2824, 2830, 2836, 2842, 2848, 2853, 2859, 2865, 2871,
+ 2876, 2881, 2886, 2891, 2896, 2902, 2907, 2912, 2917, 2923,
+ 2928, 2933, 2938, 2944, 2949, 2954, 2959, 2965, 2970, 2975,
+ 2980, 2986, 2991, 2996, 3001, 3007, 3012, 3017, 3022, 3028,
+ 3033, 3038, 3043, 3049, 3054, 3059, 3064, 3070, 3075, 3080,
+ 3085, 3091, 3096, 3101, 3106, 3112, 3117, 3122, 3127, 3133,
+ 3138, 3143, 3148, 3154, 3159, 3164, 3169, 3175, 3180, 3185,
+ 3190, 3196, 3201, 3206, 3212, 3218, 3224, 3230, 3237, 3244,
+ 3250, 3256, 3262, 3268, 3274, 3280, 3287, 3292, 3308, 3313,
+ 3318, 3326, 3326, 3337, 3337, 3347, 3350, 3363, 3385, 3412,
+ 3416, 3422, 3427, 3438, 3442, 3448, 3459, 3462, 3469, 3473,
+ 3474, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3488, 3494,
+ 3503, 3504, 3508, 3504, 3520, 3521, 3525, 3525, 3532, 3532,
+ 3546, 3549, 3557, 3565, 3576, 3577, 3581, 3585, 3592, 3599,
+ 3603, 3611, 3615, 3628, 3632, 3639, 3639, 3659, 3662, 3668,
+ 3680, 3692, 3696, 3703, 3703, 3718, 3718, 3734, 3734, 3755,
+ 3758, 3764, 3767, 3773, 3777, 3784, 3789, 3794, 3801, 3804,
+ 3813, 3817, 3826, 3829, 3833, 3842, 3842, 3865, 3871, 3874,
+ 3879, 3882
};
#endif
@@ -1133,14 +1053,14 @@
"ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT", "RAYQUERYEXT",
"FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "SAMPLERCUBEARRAY",
"SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
- "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT",
- "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER",
- "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY",
- "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES",
- "SAMPLEREXTERNAL2DY2YEXT", "SAMPLER1D", "SAMPLER1DARRAY",
- "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW",
- "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
- "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
+ "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
+ "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
+ "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
+ "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
+ "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
+ "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
+ "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
+ "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
"F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
"F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
"F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
@@ -1185,15 +1105,15 @@
"UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
"INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
"PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
- "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT",
- "NONUNIFORM", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
+ "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
+ "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
+ "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
"WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
- "SHADERCALLCOHERENT", "EXPLICITINTERPAMD", "PERVERTEXNV",
- "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PATCH", "SAMPLE",
- "COHERENT", "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY",
- "NOPERSPECTIVE", "PRECISE", "$accept", "variable_identifier",
- "primary_expression", "postfix_expression", "integer_expression",
- "function_call", "function_call_or_method", "function_call_generic",
+ "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
+ "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
+ "$accept", "variable_identifier", "primary_expression",
+ "postfix_expression", "integer_expression", "function_call",
+ "function_call_or_method", "function_call_generic",
"function_call_header_no_parameters",
"function_call_header_with_parameters", "function_call_header",
"function_identifier", "unary_expression", "unary_operator",
@@ -1236,7 +1156,7 @@
# ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
+static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
@@ -1283,14 +1203,14 @@
};
# endif
-#define YYPACT_NINF (-457)
+#define YYPACT_NINF -457
-#define yypact_value_is_default(Yyn) \
- ((Yyn) == YYPACT_NINF)
+#define yypact_value_is_default(Yystate) \
+ (!!((Yystate) == (-457)))
-#define YYTABLE_NINF (-537)
+#define YYTABLE_NINF -537
-#define yytable_value_is_error(Yyn) \
+#define yytable_value_is_error(Yytable_value) \
0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -1336,47 +1256,47 @@
-457, -457, 50, -457, -457, 739, -457, -457, 16, -457,
81, -29, 69, -457, -313, -457, 111, -457, 6160, -457,
-457, -457, 6160, 103, 106, -457, -314, -457, 72, -457,
- -457, 8556, 142, -457, -457, -457, 136, 6160, -457, 144,
- -457, 53, -457, -457, 76, 6972, -457, -312, 1156, -457,
- -457, -457, -457, 142, -309, -457, 7368, -308, -457, 119,
- -457, 65, 8556, 8556, -457, 8556, -457, -457, -457, -457,
+ -457, 8566, 142, -457, -457, -457, 136, 6160, -457, 144,
+ -457, 53, -457, -457, 76, 6974, -457, -312, 1156, -457,
+ -457, -457, -457, 142, -309, -457, 7372, -308, -457, 119,
+ -457, 65, 8566, 8566, -457, 8566, -457, -457, -457, -457,
-457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
-457, -457, -457, -457, -457, 36, -457, -457, -457, 171,
- 85, 8952, 173, -457, 8556, -457, -457, -323, 174, -457,
- 6160, 139, 4909, -457, 6160, 8556, -457, -29, -457, 141,
+ 85, 8964, 173, -457, 8566, -457, -457, -323, 174, -457,
+ 6160, 139, 4909, -457, 6160, 8566, -457, -29, -457, 141,
-457, -457, 145, 99, 35, 26, 71, 156, 159, 161,
- 196, 195, 23, 181, 7764, -457, 183, 182, -457, -457,
- 186, 179, 180, -457, 191, 192, 187, 8160, 193, 8556,
+ 196, 195, 23, 181, 7770, -457, 183, 182, -457, -457,
+ 186, 179, 180, -457, 191, 192, 187, 8168, 193, 8566,
188, 189, 127, -457, -457, 96, -457, -249, 200, 201,
-457, -457, -457, -457, -457, 1573, -457, -457, -457, -457,
- -457, -457, -457, -457, -457, -24, 174, 7368, 13, 7368,
- -457, -457, 7368, 6160, -457, 166, -457, -457, -457, 86,
- -457, -457, 8556, 168, -457, -457, 8556, 205, -457, -457,
- -457, 8556, -457, 139, 142, 124, -457, -457, -457, 5326,
- -457, -457, -457, -457, 8556, 8556, 8556, 8556, 8556, 8556,
- 8556, 8556, 8556, 8556, 8556, 8556, 8556, 8556, 8556, 8556,
- 8556, 8556, 8556, -457, -457, -457, 206, 172, -457, 1990,
- -457, -457, -457, 1990, -457, 8556, -457, -457, 130, 8556,
+ -457, -457, -457, -457, -457, -24, 174, 7372, 13, 7372,
+ -457, -457, 7372, 6160, -457, 166, -457, -457, -457, 86,
+ -457, -457, 8566, 168, -457, -457, 8566, 205, -457, -457,
+ -457, 8566, -457, 139, 142, 124, -457, -457, -457, 5326,
+ -457, -457, -457, -457, 8566, 8566, 8566, 8566, 8566, 8566,
+ 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566, 8566,
+ 8566, 8566, 8566, -457, -457, -457, 206, 172, -457, 1990,
+ -457, -457, -457, 1990, -457, 8566, -457, -457, 130, 8566,
125, -457, -457, -457, -457, -457, -457, -457, -457, -457,
- -457, -457, -457, -457, 8556, 8556, -457, -457, -457, -457,
- -457, -457, -457, 7368, -457, 94, -457, 5743, -457, -457,
+ -457, -457, -457, -457, 8566, 8566, -457, -457, -457, -457,
+ -457, -457, -457, 7372, -457, 94, -457, 5743, -457, -457,
207, 204, -457, -457, -457, 131, 174, 139, -457, -457,
-457, -457, -457, 145, 145, 99, 99, 35, 35, 35,
- 35, 26, 26, 71, 156, 159, 161, 196, 195, 8556,
+ 35, 26, 26, 71, 156, 159, 161, 196, 195, 8566,
-457, 212, 60, -457, 1990, 3658, 169, 3241, 87, -457,
89, -457, -457, -457, -457, -457, 6576, -457, -457, -457,
- -457, 143, 8556, 211, 172, 210, 204, 184, 6160, 217,
- 219, -457, -457, 3658, 218, -457, -457, -457, 8556, 220,
- -457, -457, -457, 214, 2407, 8556, -457, 216, 223, 185,
- 224, 2824, -457, 225, -457, -457, 7368, -457, -457, -457,
- 97, 8556, 2407, 218, -457, -457, 1990, -457, 222, 204,
+ -457, 143, 8566, 211, 172, 210, 204, 184, 6160, 217,
+ 219, -457, -457, 3658, 218, -457, -457, -457, 8566, 220,
+ -457, -457, -457, 214, 2407, 8566, -457, 216, 223, 185,
+ 224, 2824, -457, 225, -457, -457, 7372, -457, -457, -457,
+ 97, 8566, 2407, 218, -457, -457, 1990, -457, 222, 204,
-457, -457, 1990, 229, -457, -457
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
-static const yytype_int16 yydefact[] =
+static const yytype_uint16 yydefact[] =
{
0, 157, 210, 208, 209, 207, 214, 215, 216, 217,
218, 219, 220, 221, 222, 211, 212, 213, 223, 224,
@@ -1394,25 +1314,25 @@
298, 299, 300, 301, 302, 303, 304, 305, 306, 310,
311, 312, 313, 314, 315, 316, 317, 318, 322, 323,
324, 325, 326, 327, 328, 329, 330, 334, 331, 332,
- 333, 493, 494, 495, 343, 344, 369, 370, 392, 393,
- 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
- 404, 483, 484, 335, 346, 347, 361, 345, 374, 375,
- 376, 348, 349, 350, 405, 351, 355, 356, 359, 407,
- 408, 409, 352, 353, 357, 358, 406, 354, 360, 439,
- 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
- 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
- 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
- 470, 471, 472, 473, 474, 475, 476, 478, 479, 480,
- 477, 481, 482, 371, 372, 373, 410, 412, 414, 411,
- 413, 415, 416, 417, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 429, 430, 435, 431, 432,
- 433, 434, 436, 437, 438, 485, 486, 489, 490, 491,
+ 333, 493, 494, 495, 346, 347, 370, 373, 335, 344,
+ 345, 361, 343, 392, 393, 396, 397, 398, 400, 401,
+ 402, 404, 405, 406, 408, 409, 483, 484, 369, 371,
+ 372, 348, 349, 350, 394, 351, 355, 356, 359, 399,
+ 403, 407, 352, 353, 357, 358, 395, 354, 360, 439,
+ 441, 442, 443, 445, 446, 447, 449, 450, 451, 453,
+ 454, 455, 457, 458, 459, 461, 462, 463, 465, 466,
+ 467, 469, 470, 471, 473, 474, 475, 477, 478, 479,
+ 481, 482, 440, 444, 448, 452, 456, 464, 468, 472,
+ 460, 476, 480, 374, 375, 376, 410, 419, 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, 485, 486, 489, 490, 491,
492, 487, 488, 584, 132, 498, 499, 500, 0, 497,
161, 159, 160, 158, 0, 206, 162, 163, 164, 134,
- 133, 0, 185, 171, 173, 169, 175, 177, 172, 174,
- 170, 176, 178, 192, 179, 180, 181, 182, 183, 184,
- 136, 137, 138, 139, 140, 167, 168, 187, 188, 189,
- 190, 191, 135, 147, 583, 0, 585, 0, 109, 108,
+ 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, 583, 0, 585, 0, 109, 108,
0, 120, 125, 154, 153, 151, 155, 0, 148, 150,
156, 130, 202, 152, 496, 0, 580, 582, 0, 503,
0, 0, 0, 97, 0, 94, 0, 107, 0, 116,
@@ -1424,7 +1344,7 @@
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, 505, 0, 0, 141, 0, 186, 0,
+ 0, 0, 0, 505, 0, 0, 141, 0, 191, 0,
197, 45, 49, 52, 55, 60, 63, 65, 67, 69,
71, 73, 75, 0, 0, 99, 0, 531, 540, 544,
0, 0, 0, 565, 0, 0, 0, 0, 0, 0,
@@ -1458,7 +1378,7 @@
static const yytype_int16 yypgoto[] =
{
-457, -457, -457, -457, -457, -457, -457, -457, -457, -457,
- -457, -457, 8856, -457, -87, -84, -127, -93, -33, -31,
+ -457, -457, 8868, -457, -87, -84, -127, -93, -33, -31,
-27, -25, -28, -26, -457, -86, -457, -103, -457, -111,
-125, 2, -457, -457, -457, 4, -457, -457, -457, 176,
194, 178, -457, -457, -337, -457, -457, -457, -457, 95,
@@ -2190,86 +2110,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 435, 436, 437, 438, 439,
440, 441, 442, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 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, 0, 0, 422,
- 423, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 424, 425,
- 0, 0, 470, 0, 0, 0, 0, 0, 0, 0,
- 426, 427, 428, 429, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 430, 431, 432, 433, 434, 299, 0, 0, 0,
- 0, 304, 305, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 435, 436, 437, 438, 439, 440, 441, 442, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 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, 0, 0, 422, 423, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 424, 425, 0, 0, 0, 529,
- 0, 0, 0, 0, 0, 0, 426, 427, 428, 429,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 430, 431, 432,
- 433, 434, 299, 0, 0, 0, 0, 304, 305, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 435, 436, 437,
- 438, 439, 440, 441, 442, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 323, 2, 3,
+ 0, 0, 0, 0, 0, 0, 0, 325, 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,
@@ -2301,7 +2142,7 @@
284, 285, 286, 287, 288, 289, 290, 291, 292, 0,
0, 422, 423, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 424, 425, 0, 0, 585, 0, 0, 0, 0, 0,
+ 424, 425, 0, 0, 470, 0, 0, 0, 0, 0,
0, 0, 426, 427, 428, 429, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 430, 431, 432, 433, 434, 299, 0,
@@ -2309,7 +2150,47 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 435, 436, 437, 438, 439, 440, 441,
442, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 323, 2, 3, 4, 5, 6, 7,
+ 0, 0, 0, 0, 0, 325, 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, 0, 0, 422,
+ 423, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 424, 425,
+ 0, 0, 0, 529, 0, 0, 0, 0, 0, 0,
+ 426, 427, 428, 429, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 430, 431, 432, 433, 434, 299, 0, 0, 0,
+ 0, 304, 305, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 435, 436, 437, 438, 439, 440, 441, 442, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 325, 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,
@@ -2341,14 +2222,54 @@
288, 289, 290, 291, 292, 0, 0, 422, 423, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 424, 425, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 597, 426, 427,
+ 585, 0, 0, 0, 0, 0, 0, 0, 426, 427,
428, 429, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 430,
431, 432, 433, 434, 299, 0, 0, 0, 0, 304,
305, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 435,
436, 437, 438, 439, 440, 441, 442, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 323,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 325, 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, 0, 0, 422, 423, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 424, 425, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 597, 426, 427, 428, 429,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 430, 431, 432,
+ 433, 434, 299, 0, 0, 0, 0, 304, 305, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 435, 436, 437,
+ 438, 439, 440, 441, 442, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
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,
@@ -2388,55 +2309,56 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 435, 436, 437, 438, 439,
440, 441, 442, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 323, 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, 453, 0, 422,
- 423, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 471, 0, 0, 0, 0, 0, 0, 424, 425,
- 0, 0, 0, 0, 0, 0, 0, 0, 537, 538,
- 426, 427, 428, 429, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 325, 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, 453,
+ 0, 422, 423, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 471, 0, 0, 0, 0, 0, 0,
+ 424, 425, 0, 0, 0, 0, 0, 0, 0, 0,
+ 537, 538, 426, 427, 428, 429, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 430, 431, 432, 433, 434, 299, 0, 0, 0,
- 550, 304, 547, 0, 0, 0, 0, 0, 0, 0,
- 0, 471, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 435, 436, 437, 438, 439, 440, 441, 442, 0,
+ 0, 0, 0, 430, 431, 432, 433, 434, 299, 0,
+ 0, 0, 550, 304, 547, 0, 0, 0, 0, 0,
+ 0, 0, 0, 471, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 435, 436, 437, 438, 439, 440, 441,
+ 442, 0, 471, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 325, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 634,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 640, 641, 642, 471, 471, 471, 471, 471,
+ 471, 471, 471, 471, 471, 471, 471, 471, 471, 471,
471, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 323, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 634, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 640, 641, 642, 471, 471, 471, 471, 471, 471, 471,
- 471, 471, 471, 471, 471, 471, 471, 471, 471, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -2446,7 +2368,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 471
+ 471
};
static const yytype_int16 yycheck[] =
@@ -3148,86 +3070,7 @@
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 379, 380, 381, 382, 383,
384, 385, 386, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 399, 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, -1, -1, 297,
- 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 316, 317,
- -1, -1, 320, -1, -1, -1, -1, -1, -1, -1,
- 328, 329, 330, 331, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 349, 350, 351, 352, 353, 354, -1, -1, -1,
- -1, 359, 360, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 379, 380, 381, 382, 383, 384, 385, 386, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 399, 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, -1, -1, 297, 298, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 316, 317, -1, -1, -1, 321,
- -1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
- 352, 353, 354, -1, -1, -1, -1, 359, 360, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
- 382, 383, 384, 385, 386, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 399, 4, 5,
+ -1, -1, -1, -1, -1, -1, -1, 401, 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,
@@ -3267,7 +3110,47 @@
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 379, 380, 381, 382, 383, 384, 385,
386, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 399, 4, 5, 6, 7, 8, 9,
+ -1, -1, -1, -1, -1, 401, 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, -1, -1, 297,
+ 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 316, 317,
+ -1, -1, -1, 321, -1, -1, -1, -1, -1, -1,
+ 328, 329, 330, 331, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 349, 350, 351, 352, 353, 354, -1, -1, -1,
+ -1, 359, 360, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 379, 380, 381, 382, 383, 384, 385, 386, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 401, 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,
@@ -3299,14 +3182,54 @@
290, 291, 292, 293, 294, -1, -1, 297, 298, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 316, 317, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 327, 328, 329,
+ 320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
350, 351, 352, 353, 354, -1, -1, -1, -1, 359,
360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 379,
380, 381, 382, 383, 384, 385, 386, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 399,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 401, 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, -1, -1, 297, 298, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 316, 317, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 327, 328, 329, 330, 331,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
+ 352, 353, 354, -1, -1, -1, -1, 359, 360, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 379, 380, 381,
+ 382, 383, 384, 385, 386, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 401,
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,
@@ -3346,55 +3269,56 @@
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 379, 380, 381, 382, 383,
384, 385, 386, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 399, 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, 391, -1, 297,
- 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 405, -1, -1, -1, -1, -1, -1, 316, 317,
- -1, -1, -1, -1, -1, -1, -1, -1, 422, 423,
- 328, 329, 330, 331, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 401, 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, 391,
+ -1, 297, 298, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 405, -1, -1, -1, -1, -1, -1,
+ 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
+ 422, 423, 328, 329, 330, 331, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 349, 350, 351, 352, 353, 354, -1, -1, -1,
- 454, 359, 360, -1, -1, -1, -1, -1, -1, -1,
- -1, 465, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 379, 380, 381, 382, 383, 384, 385, 386, -1,
- 484, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 399, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 349, 350, 351, 352, 353, 354, -1,
+ -1, -1, 454, 359, 360, -1, -1, -1, -1, -1,
+ -1, -1, -1, 465, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 379, 380, 381, 382, 383, 384, 385,
+ 386, -1, 484, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 401, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 551, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 551,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 564, 565, 566, 567, 568, 569, 570, 571, 572, 573,
- 574, 575, 576, 577, 578, 579, 580, 581, 582, -1,
+ -1, -1, 564, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
+ 582, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -3404,12 +3328,12 @@
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 682
+ 682
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const yytype_int16 yystos[] =
+static const yytype_uint16 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
@@ -3488,7 +3412,7 @@
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const yytype_int16 yyr1[] =
+static const yytype_uint16 yyr1[] =
{
0, 420, 421, 422, 422, 422, 422, 422, 422, 422,
422, 422, 422, 422, 422, 422, 422, 422, 423, 423,
@@ -3553,7 +3477,7 @@
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
-static const yytype_int8 yyr2[] =
+static const yytype_uint8 yyr2[] =
{
0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
@@ -3573,8 +3497,8 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 4, 1, 1, 1,
- 1, 1, 1, 1, 3, 2, 3, 2, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 1, 1, 3, 2, 3, 2, 3, 3,
4, 1, 0, 3, 1, 3, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -3630,22 +3554,22 @@
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(Token, Value) \
- do \
- if (yychar == YYEMPTY) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- YYPOPSTACK (yylen); \
- yystate = *yyssp; \
- goto yybackup; \
- } \
- else \
- { \
- yyerror (pParseContext, YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
- while (0)
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ YYPOPSTACK (yylen); \
+ yystate = *yyssp; \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (pParseContext, YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (0)
/* Error token number */
#define YYTERROR 1
@@ -3685,40 +3609,38 @@
} while (0)
-/*-----------------------------------.
-| Print this symbol's value on YYO. |
-`-----------------------------------*/
+/*----------------------------------------.
+| Print this symbol's value on YYOUTPUT. |
+`----------------------------------------*/
static void
-yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
{
- FILE *yyoutput = yyo;
- YYUSE (yyoutput);
+ FILE *yyo = yyoutput;
+ YYUSE (yyo);
YYUSE (pParseContext);
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YYUSE (yytype);
- YY_IGNORE_MAYBE_UNINITIALIZED_END
}
-/*---------------------------.
-| Print this symbol on YYO. |
-`---------------------------*/
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
static void
-yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
{
- YYFPRINTF (yyo, "%s %s (",
+ YYFPRINTF (yyoutput, "%s %s (",
yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
- yy_symbol_value_print (yyo, yytype, yyvaluep, pParseContext);
- YYFPRINTF (yyo, ")");
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext);
+ YYFPRINTF (yyoutput, ")");
}
/*------------------------------------------------------------------.
@@ -3727,7 +3649,7 @@
`------------------------------------------------------------------*/
static void
-yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
@@ -3750,20 +3672,20 @@
`------------------------------------------------*/
static void
-yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext)
{
- int yylno = yyrline[yyrule];
+ unsigned long int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
- yystos[+yyssp[yyi + 1 - yynrhs]],
- &yyvsp[(yyi + 1) - (yynrhs)]
+ yystos[yyssp[yyi + 1 - yynrhs]],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
, pParseContext);
YYFPRINTF (stderr, "\n");
}
@@ -3807,13 +3729,13 @@
# ifndef yystrlen
# if defined __GLIBC__ && defined _STRING_H
-# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
+# define yystrlen strlen
# else
/* Return the length of YYSTR. */
-static YYPTRDIFF_T
+static YYSIZE_T
yystrlen (const char *yystr)
{
- YYPTRDIFF_T yylen;
+ YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
continue;
return yylen;
@@ -3849,12 +3771,12 @@
backslash-backslash). YYSTR is taken from yytname. If YYRES is
null, do not copy; instead, return the length of what the result
would have been. */
-static YYPTRDIFF_T
+static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
- YYPTRDIFF_T yyn = 0;
+ YYSIZE_T yyn = 0;
char const *yyp = yystr;
for (;;)
@@ -3867,10 +3789,7 @@
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
- else
- goto append;
-
- append:
+ /* Fall through. */
default:
if (yyres)
yyres[yyn] = *yyp;
@@ -3885,10 +3804,10 @@
do_not_strip_quotes: ;
}
- if (yyres)
- return yystpcpy (yyres, yystr) - yyres;
- else
+ if (! yyres)
return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
}
# endif
@@ -3901,19 +3820,19 @@
*YYMSG_ALLOC to the required number of bytes. Return 2 if the
required number of bytes is too large to store. */
static int
-yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
- yy_state_t *yyssp, int yytoken)
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
{
+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
const char *yyformat = YY_NULLPTR;
- /* Arguments of yyformat: reported tokens (one for the "unexpected",
- one per "expected"). */
+ /* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Actual size of YYARG. */
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
int yycount = 0;
- /* Cumulated lengths of YYARG. */
- YYPTRDIFF_T yysize = 0;
/* There are many possibilities here to consider:
- If this state is a consistent state with a default action, then
@@ -3940,9 +3859,7 @@
*/
if (yytoken != YYEMPTY)
{
- int yyn = yypact[+*yyssp];
- YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
- yysize = yysize0;
+ int yyn = yypact[*yyssp];
yyarg[yycount++] = yytname[yytoken];
if (!yypact_value_is_default (yyn))
{
@@ -3967,12 +3884,11 @@
}
yyarg[yycount++] = yytname[yyx];
{
- YYPTRDIFF_T yysize1
- = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
+ yysize = yysize1;
}
}
}
@@ -3984,7 +3900,6 @@
case N: \
yyformat = S; \
break
- default: /* Avoid compiler warnings. */
YYCASE_(0, YY_("syntax error"));
YYCASE_(1, YY_("syntax error, unexpected %s"));
YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -3995,13 +3910,10 @@
}
{
- /* Don't count the "%s"s in the final size, but reserve room for
- the terminator. */
- YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
- if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
- yysize = yysize1;
- else
+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
+ yysize = yysize1;
}
if (*yymsg_alloc < yysize)
@@ -4027,8 +3939,8 @@
}
else
{
- ++yyp;
- ++yyformat;
+ yyp++;
+ yyformat++;
}
}
return 0;
@@ -4076,7 +3988,7 @@
/* Number of syntax errors so far. */
int yynerrs;
- yy_state_fast_t yystate;
+ int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@@ -4088,16 +4000,16 @@
to reallocate them elsewhere. */
/* The state stack. */
- yy_state_t yyssa[YYINITDEPTH];
- yy_state_t *yyss;
- yy_state_t *yyssp;
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs;
YYSTYPE *yyvsp;
- YYPTRDIFF_T yystacksize;
+ YYSIZE_T yystacksize;
int yyn;
int yyresult;
@@ -4111,7 +4023,7 @@
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
- YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
@@ -4132,54 +4044,46 @@
yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate;
-
/*------------------------------------------------------------.
-| yynewstate -- push a new state, which is found in yystate. |
+| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
-yynewstate:
+ yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
-
-/*--------------------------------------------------------------------.
-| yysetstate -- set current state (the top of the stack) to yystate. |
-`--------------------------------------------------------------------*/
-yysetstate:
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
- YY_IGNORE_USELESS_CAST_BEGIN
- *yyssp = YY_CAST (yy_state_t, yystate);
- YY_IGNORE_USELESS_CAST_END
+ yysetstate:
+ *yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
-#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
-#else
{
/* Get the current used size of the three stacks, in elements. */
- YYPTRDIFF_T yysize = yyssp - yyss + 1;
+ YYSIZE_T yysize = yyssp - yyss + 1;
-# if defined yyoverflow
+#ifdef yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
- yy_state_t *yyss1 = yyss;
YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * YYSIZEOF (*yyssp),
- &yyvs1, yysize * YYSIZEOF (*yyvsp),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
+
yyss = yyss1;
yyvs = yyvs1;
}
-# else /* defined YYSTACK_RELOCATE */
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
@@ -4188,43 +4092,42 @@
yystacksize = YYMAXDEPTH;
{
- yy_state_t *yyss1 = yyss;
+ yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
- YY_CAST (union yyalloc *,
- YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
-# undef YYSTACK_RELOCATE
+# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
+#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
- YY_IGNORE_USELESS_CAST_BEGIN
- YYDPRINTF ((stderr, "Stack size increased to %ld\n",
- YY_CAST (long, yystacksize)));
- YY_IGNORE_USELESS_CAST_END
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
-#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
-
/*-----------.
| yybackup. |
`-----------*/
yybackup:
+
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
@@ -4274,13 +4177,15 @@
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
- /* Discard the shifted token. */
- yychar = YYEMPTY;
goto yynewstate;
@@ -4295,7 +4200,7 @@
/*-----------------------------.
-| yyreduce -- do a reduction. |
+| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
@@ -4315,304 +4220,304 @@
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 2:
-#line 400 "MachineIndependent/glslang.y"
- {
+ case 2:
+#line 357 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
}
-#line 4324 "MachineIndependent/glslang_tab.cpp"
+#line 4229 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 3:
-#line 406 "MachineIndependent/glslang.y"
- {
+#line 363 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4332 "MachineIndependent/glslang_tab.cpp"
+#line 4237 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 4:
-#line 409 "MachineIndependent/glslang.y"
- {
+#line 366 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
-#line 4342 "MachineIndependent/glslang_tab.cpp"
+#line 4247 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 5:
-#line 414 "MachineIndependent/glslang.y"
- {
+#line 371 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
}
-#line 4350 "MachineIndependent/glslang_tab.cpp"
+#line 4255 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 6:
-#line 417 "MachineIndependent/glslang.y"
- {
+#line 374 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4358 "MachineIndependent/glslang_tab.cpp"
+#line 4263 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 7:
-#line 420 "MachineIndependent/glslang.y"
- {
+#line 377 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4367 "MachineIndependent/glslang_tab.cpp"
+#line 4272 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 8:
-#line 424 "MachineIndependent/glslang.y"
- {
+#line 381 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
}
-#line 4375 "MachineIndependent/glslang_tab.cpp"
+#line 4280 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 9:
-#line 429 "MachineIndependent/glslang.y"
- {
+#line 385 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
}
-#line 4383 "MachineIndependent/glslang_tab.cpp"
+#line 4288 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 10:
-#line 432 "MachineIndependent/glslang.y"
- {
+#line 388 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4392 "MachineIndependent/glslang_tab.cpp"
+#line 4297 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 11:
-#line 436 "MachineIndependent/glslang.y"
- {
+#line 392 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4401 "MachineIndependent/glslang_tab.cpp"
+#line 4306 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 12:
-#line 440 "MachineIndependent/glslang.y"
- {
+#line 396 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
}
-#line 4410 "MachineIndependent/glslang_tab.cpp"
+#line 4315 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 13:
-#line 444 "MachineIndependent/glslang.y"
- {
+#line 400 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
}
-#line 4419 "MachineIndependent/glslang_tab.cpp"
+#line 4324 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 14:
-#line 448 "MachineIndependent/glslang.y"
- {
+#line 404 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 4428 "MachineIndependent/glslang_tab.cpp"
+#line 4333 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 15:
-#line 452 "MachineIndependent/glslang.y"
- {
+#line 408 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 4437 "MachineIndependent/glslang_tab.cpp"
+#line 4342 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 16:
-#line 456 "MachineIndependent/glslang.y"
- {
+#line 412 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
if (! parseContext.symbolTable.atBuiltInLevel())
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 4448 "MachineIndependent/glslang_tab.cpp"
+#line 4353 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 17:
-#line 462 "MachineIndependent/glslang.y"
- {
+#line 418 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
}
-#line 4457 "MachineIndependent/glslang_tab.cpp"
+#line 4362 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 18:
-#line 471 "MachineIndependent/glslang.y"
- {
+#line 426 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4465 "MachineIndependent/glslang_tab.cpp"
+#line 4370 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 19:
-#line 474 "MachineIndependent/glslang.y"
- {
+#line 429 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
}
-#line 4473 "MachineIndependent/glslang_tab.cpp"
+#line 4378 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 20:
-#line 477 "MachineIndependent/glslang.y"
- {
+#line 432 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4481 "MachineIndependent/glslang_tab.cpp"
+#line 4386 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 21:
-#line 480 "MachineIndependent/glslang.y"
- {
+#line 435 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
}
-#line 4489 "MachineIndependent/glslang_tab.cpp"
+#line 4394 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 22:
-#line 483 "MachineIndependent/glslang.y"
- {
+#line 438 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 4499 "MachineIndependent/glslang_tab.cpp"
+#line 4404 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 23:
-#line 488 "MachineIndependent/glslang.y"
- {
+#line 443 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 4509 "MachineIndependent/glslang_tab.cpp"
+#line 4414 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 24:
-#line 496 "MachineIndependent/glslang.y"
- {
+#line 451 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 4518 "MachineIndependent/glslang_tab.cpp"
+#line 4423 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 25:
-#line 503 "MachineIndependent/glslang.y"
- {
+#line 458 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
delete (yyvsp[0].interm).function;
}
-#line 4527 "MachineIndependent/glslang_tab.cpp"
+#line 4432 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 26:
-#line 510 "MachineIndependent/glslang.y"
- {
+#line 465 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4535 "MachineIndependent/glslang_tab.cpp"
+#line 4440 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 27:
-#line 516 "MachineIndependent/glslang.y"
- {
+#line 471 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4544 "MachineIndependent/glslang_tab.cpp"
+#line 4449 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 28:
-#line 520 "MachineIndependent/glslang.y"
- {
+#line 475 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4553 "MachineIndependent/glslang_tab.cpp"
+#line 4458 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 29:
-#line 527 "MachineIndependent/glslang.y"
- {
+#line 482 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4561 "MachineIndependent/glslang_tab.cpp"
+#line 4466 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 30:
-#line 530 "MachineIndependent/glslang.y"
- {
+#line 485 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
}
-#line 4569 "MachineIndependent/glslang_tab.cpp"
+#line 4474 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 31:
-#line 536 "MachineIndependent/glslang.y"
- {
+#line 491 "glslang.y" /* yacc.c:1646 */
+ {
TParameter param = { 0, new TType };
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
(yyvsp[-1].interm).function->addParameter(param);
(yyval.interm).function = (yyvsp[-1].interm).function;
(yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
}
-#line 4581 "MachineIndependent/glslang_tab.cpp"
+#line 4486 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 32:
-#line 543 "MachineIndependent/glslang.y"
- {
+#line 498 "glslang.y" /* yacc.c:1646 */
+ {
TParameter param = { 0, new TType };
param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
(yyvsp[-2].interm).function->addParameter(param);
(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 4593 "MachineIndependent/glslang_tab.cpp"
+#line 4498 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 33:
-#line 553 "MachineIndependent/glslang.y"
- {
+#line 508 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 4601 "MachineIndependent/glslang_tab.cpp"
+#line 4506 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 34:
-#line 561 "MachineIndependent/glslang.y"
- {
+#line 516 "glslang.y" /* yacc.c:1646 */
+ {
// Constructor
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4611 "MachineIndependent/glslang_tab.cpp"
+#line 4516 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 35:
-#line 566 "MachineIndependent/glslang.y"
- {
+#line 521 "glslang.y" /* yacc.c:1646 */
+ {
//
// Should be a method or subroutine call, but we haven't recognized the arguments yet.
//
@@ -4639,51 +4544,51 @@
(yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
}
}
-#line 4643 "MachineIndependent/glslang_tab.cpp"
+#line 4548 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 36:
-#line 595 "MachineIndependent/glslang.y"
- {
+#line 549 "glslang.y" /* yacc.c:1646 */
+ {
// Constructor
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 4653 "MachineIndependent/glslang_tab.cpp"
+#line 4558 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 37:
-#line 605 "MachineIndependent/glslang.y"
- {
+#line 558 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
}
-#line 4664 "MachineIndependent/glslang_tab.cpp"
+#line 4569 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 38:
-#line 611 "MachineIndependent/glslang.y"
- {
+#line 564 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 4673 "MachineIndependent/glslang_tab.cpp"
+#line 4578 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 39:
-#line 615 "MachineIndependent/glslang.y"
- {
+#line 568 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 4682 "MachineIndependent/glslang_tab.cpp"
+#line 4587 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 40:
-#line 619 "MachineIndependent/glslang.y"
- {
+#line 572 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-1].interm).op != EOpNull) {
char errorOp[2] = {0, 0};
switch((yyvsp[-1].interm).op) {
@@ -4699,180 +4604,180 @@
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
}
-#line 4703 "MachineIndependent/glslang_tab.cpp"
+#line 4608 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 41:
-#line 639 "MachineIndependent/glslang.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 4709 "MachineIndependent/glslang_tab.cpp"
+#line 592 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
+#line 4614 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 42:
-#line 640 "MachineIndependent/glslang.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 4715 "MachineIndependent/glslang_tab.cpp"
+#line 593 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
+#line 4620 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 43:
-#line 641 "MachineIndependent/glslang.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 4721 "MachineIndependent/glslang_tab.cpp"
+#line 594 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
+#line 4626 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 44:
-#line 642 "MachineIndependent/glslang.y"
- { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
+#line 595 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 4728 "MachineIndependent/glslang_tab.cpp"
+#line 4633 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 45:
-#line 648 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4734 "MachineIndependent/glslang_tab.cpp"
+#line 601 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4639 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 46:
-#line 649 "MachineIndependent/glslang.y"
- {
+#line 602 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4744 "MachineIndependent/glslang_tab.cpp"
+#line 4649 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 47:
-#line 654 "MachineIndependent/glslang.y"
- {
+#line 607 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4754 "MachineIndependent/glslang_tab.cpp"
+#line 4659 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 48:
-#line 659 "MachineIndependent/glslang.y"
- {
+#line 612 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4765 "MachineIndependent/glslang_tab.cpp"
+#line 4670 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 49:
-#line 668 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4771 "MachineIndependent/glslang_tab.cpp"
+#line 621 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4676 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 50:
-#line 669 "MachineIndependent/glslang.y"
- {
+#line 622 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4781 "MachineIndependent/glslang_tab.cpp"
+#line 4686 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 51:
-#line 674 "MachineIndependent/glslang.y"
- {
+#line 627 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4791 "MachineIndependent/glslang_tab.cpp"
+#line 4696 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 52:
-#line 682 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4797 "MachineIndependent/glslang_tab.cpp"
+#line 635 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4702 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 53:
-#line 683 "MachineIndependent/glslang.y"
- {
+#line 636 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4808 "MachineIndependent/glslang_tab.cpp"
+#line 4713 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 54:
-#line 689 "MachineIndependent/glslang.y"
- {
+#line 642 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4819 "MachineIndependent/glslang_tab.cpp"
+#line 4724 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 55:
-#line 698 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4825 "MachineIndependent/glslang_tab.cpp"
+#line 651 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4730 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 56:
-#line 699 "MachineIndependent/glslang.y"
- {
+#line 652 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4835 "MachineIndependent/glslang_tab.cpp"
+#line 4740 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 57:
-#line 704 "MachineIndependent/glslang.y"
- {
+#line 657 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4845 "MachineIndependent/glslang_tab.cpp"
+#line 4750 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 58:
-#line 709 "MachineIndependent/glslang.y"
- {
+#line 662 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4855 "MachineIndependent/glslang_tab.cpp"
+#line 4760 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 59:
-#line 714 "MachineIndependent/glslang.y"
- {
+#line 667 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4865 "MachineIndependent/glslang_tab.cpp"
+#line 4770 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 60:
-#line 722 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4871 "MachineIndependent/glslang_tab.cpp"
+#line 675 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4776 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 61:
-#line 723 "MachineIndependent/glslang.y"
- {
+#line 676 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
@@ -4881,12 +4786,12 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4885 "MachineIndependent/glslang_tab.cpp"
+#line 4790 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 62:
-#line 732 "MachineIndependent/glslang.y"
- {
+#line 685 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
@@ -4895,125 +4800,125 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4899 "MachineIndependent/glslang_tab.cpp"
+#line 4804 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 63:
-#line 744 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4905 "MachineIndependent/glslang_tab.cpp"
+#line 697 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4810 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 64:
-#line 745 "MachineIndependent/glslang.y"
- {
+#line 698 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4916 "MachineIndependent/glslang_tab.cpp"
+#line 4821 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 65:
-#line 754 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4922 "MachineIndependent/glslang_tab.cpp"
+#line 707 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4827 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 66:
-#line 755 "MachineIndependent/glslang.y"
- {
+#line 708 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4933 "MachineIndependent/glslang_tab.cpp"
+#line 4838 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 67:
-#line 764 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4939 "MachineIndependent/glslang_tab.cpp"
+#line 717 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4844 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 68:
-#line 765 "MachineIndependent/glslang.y"
- {
+#line 718 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 4950 "MachineIndependent/glslang_tab.cpp"
+#line 4855 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 69:
-#line 774 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4956 "MachineIndependent/glslang_tab.cpp"
+#line 727 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4861 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 70:
-#line 775 "MachineIndependent/glslang.y"
- {
+#line 728 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4966 "MachineIndependent/glslang_tab.cpp"
+#line 4871 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 71:
-#line 783 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4972 "MachineIndependent/glslang_tab.cpp"
+#line 736 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4877 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 72:
-#line 784 "MachineIndependent/glslang.y"
- {
+#line 737 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4982 "MachineIndependent/glslang_tab.cpp"
+#line 4887 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 73:
-#line 792 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 4988 "MachineIndependent/glslang_tab.cpp"
+#line 745 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4893 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 74:
-#line 793 "MachineIndependent/glslang.y"
- {
+#line 746 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 4998 "MachineIndependent/glslang_tab.cpp"
+#line 4903 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 75:
-#line 801 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5004 "MachineIndependent/glslang_tab.cpp"
+#line 754 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4909 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 76:
-#line 802 "MachineIndependent/glslang.y"
- {
+#line 755 "glslang.y" /* yacc.c:1646 */
+ {
++parseContext.controlFlowNestingLevel;
}
-#line 5012 "MachineIndependent/glslang_tab.cpp"
+#line 4917 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 77:
-#line 805 "MachineIndependent/glslang.y"
- {
+#line 758 "glslang.y" /* yacc.c:1646 */
+ {
--parseContext.controlFlowNestingLevel;
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
@@ -5025,18 +4930,18 @@
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5029 "MachineIndependent/glslang_tab.cpp"
+#line 4934 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 78:
-#line 820 "MachineIndependent/glslang.y"
- { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5035 "MachineIndependent/glslang_tab.cpp"
+#line 773 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
+#line 4940 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 79:
-#line 821 "MachineIndependent/glslang.y"
- {
+#line 774 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
@@ -5049,120 +4954,120 @@
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
}
-#line 5053 "MachineIndependent/glslang_tab.cpp"
+#line 4958 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 80:
-#line 837 "MachineIndependent/glslang.y"
- {
+#line 790 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAssign;
}
-#line 5062 "MachineIndependent/glslang_tab.cpp"
+#line 4967 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 81:
-#line 841 "MachineIndependent/glslang.y"
- {
+#line 794 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpMulAssign;
}
-#line 5071 "MachineIndependent/glslang_tab.cpp"
+#line 4976 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 82:
-#line 845 "MachineIndependent/glslang.y"
- {
+#line 798 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpDivAssign;
}
-#line 5080 "MachineIndependent/glslang_tab.cpp"
+#line 4985 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 83:
-#line 849 "MachineIndependent/glslang.y"
- {
+#line 802 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpModAssign;
}
-#line 5090 "MachineIndependent/glslang_tab.cpp"
+#line 4995 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 84:
-#line 854 "MachineIndependent/glslang.y"
- {
+#line 807 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAddAssign;
}
-#line 5099 "MachineIndependent/glslang_tab.cpp"
+#line 5004 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 85:
-#line 858 "MachineIndependent/glslang.y"
- {
+#line 811 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpSubAssign;
}
-#line 5108 "MachineIndependent/glslang_tab.cpp"
+#line 5013 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 86:
-#line 862 "MachineIndependent/glslang.y"
- {
+#line 815 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
}
-#line 5117 "MachineIndependent/glslang_tab.cpp"
+#line 5022 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 87:
-#line 866 "MachineIndependent/glslang.y"
- {
+#line 819 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
}
-#line 5126 "MachineIndependent/glslang_tab.cpp"
+#line 5031 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 88:
-#line 870 "MachineIndependent/glslang.y"
- {
+#line 823 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
}
-#line 5135 "MachineIndependent/glslang_tab.cpp"
+#line 5040 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 89:
-#line 874 "MachineIndependent/glslang.y"
- {
+#line 827 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
}
-#line 5144 "MachineIndependent/glslang_tab.cpp"
+#line 5049 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 90:
-#line 878 "MachineIndependent/glslang.y"
- {
+#line 831 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
}
-#line 5153 "MachineIndependent/glslang_tab.cpp"
+#line 5058 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 91:
-#line 885 "MachineIndependent/glslang.y"
- {
+#line 838 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5161 "MachineIndependent/glslang_tab.cpp"
+#line 5066 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 92:
-#line 888 "MachineIndependent/glslang.y"
- {
+#line 841 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
if ((yyval.interm.intermTypedNode) == 0) {
@@ -5170,117 +5075,117 @@
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 5174 "MachineIndependent/glslang_tab.cpp"
+#line 5079 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 93:
-#line 899 "MachineIndependent/glslang.y"
- {
+#line 852 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 5183 "MachineIndependent/glslang_tab.cpp"
+#line 5088 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 94:
-#line 906 "MachineIndependent/glslang.y"
- {
+#line 859 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
(yyval.interm.intermNode) = 0;
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
}
-#line 5193 "MachineIndependent/glslang_tab.cpp"
+#line 5098 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 95:
-#line 911 "MachineIndependent/glslang.y"
- {
+#line 864 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
(yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
}
-#line 5203 "MachineIndependent/glslang_tab.cpp"
+#line 5108 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 96:
-#line 916 "MachineIndependent/glslang.y"
- {
+#line 869 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
// lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
(yyval.interm.intermNode) = 0;
}
-#line 5215 "MachineIndependent/glslang_tab.cpp"
+#line 5120 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 97:
-#line 923 "MachineIndependent/glslang.y"
- {
+#line 876 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
(yyval.interm.intermNode) = 0;
}
-#line 5224 "MachineIndependent/glslang_tab.cpp"
+#line 5129 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 98:
-#line 927 "MachineIndependent/glslang.y"
- {
+#line 880 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5233 "MachineIndependent/glslang_tab.cpp"
+#line 5138 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 99:
-#line 931 "MachineIndependent/glslang.y"
- {
+#line 884 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
(yyval.interm.intermNode) = 0;
}
-#line 5242 "MachineIndependent/glslang_tab.cpp"
+#line 5147 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 100:
-#line 935 "MachineIndependent/glslang.y"
- {
+#line 888 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
(yyval.interm.intermNode) = 0;
}
-#line 5252 "MachineIndependent/glslang_tab.cpp"
+#line 5157 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 101:
-#line 940 "MachineIndependent/glslang.y"
- {
+#line 893 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 5262 "MachineIndependent/glslang_tab.cpp"
+#line 5167 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 102:
-#line 945 "MachineIndependent/glslang.y"
- {
+#line 898 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
(yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
(yyval.interm.intermNode) = 0;
}
-#line 5273 "MachineIndependent/glslang_tab.cpp"
+#line 5178 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 103:
-#line 954 "MachineIndependent/glslang.y"
- { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 5279 "MachineIndependent/glslang_tab.cpp"
+#line 907 "glslang.y" /* yacc.c:1646 */
+ { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
+#line 5184 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 104:
-#line 954 "MachineIndependent/glslang.y"
- {
+#line 907 "glslang.y" /* yacc.c:1646 */
+ {
--parseContext.structNestingLevel;
parseContext.blockName = (yyvsp[-4].lex).string;
parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
@@ -5289,55 +5194,55 @@
(yyval.interm).loc = (yyvsp[-5].interm.type).loc;
(yyval.interm).typeList = (yyvsp[-1].interm.typeList);
}
-#line 5293 "MachineIndependent/glslang_tab.cpp"
+#line 5198 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 105:
-#line 965 "MachineIndependent/glslang.y"
- {
+#line 918 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.identifierList) = new TIdentifierList;
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5302 "MachineIndependent/glslang_tab.cpp"
+#line 5207 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 106:
-#line 969 "MachineIndependent/glslang.y"
- {
+#line 922 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 5311 "MachineIndependent/glslang_tab.cpp"
+#line 5216 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 107:
-#line 976 "MachineIndependent/glslang.y"
- {
+#line 929 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).function = (yyvsp[-1].interm.function);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 5320 "MachineIndependent/glslang_tab.cpp"
+#line 5225 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 108:
-#line 983 "MachineIndependent/glslang.y"
- {
+#line 936 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5328 "MachineIndependent/glslang_tab.cpp"
+#line 5233 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 109:
-#line 986 "MachineIndependent/glslang.y"
- {
+#line 939 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.function) = (yyvsp[0].interm.function);
}
-#line 5336 "MachineIndependent/glslang_tab.cpp"
+#line 5241 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 110:
-#line 993 "MachineIndependent/glslang.y"
- {
+#line 946 "glslang.y" /* yacc.c:1646 */
+ {
// Add the parameter
(yyval.interm.function) = (yyvsp[-1].interm.function);
if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
@@ -5345,12 +5250,12 @@
else
delete (yyvsp[0].interm).param.type;
}
-#line 5349 "MachineIndependent/glslang_tab.cpp"
+#line 5254 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 111:
-#line 1001 "MachineIndependent/glslang.y"
- {
+#line 954 "glslang.y" /* yacc.c:1646 */
+ {
//
// Only first parameter of one-parameter functions can be void
// The check for named parameters not being void is done in parameter_declarator
@@ -5367,12 +5272,12 @@
(yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
}
}
-#line 5371 "MachineIndependent/glslang_tab.cpp"
+#line 5276 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 112:
-#line 1021 "MachineIndependent/glslang.y"
- {
+#line 974 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
@@ -5391,12 +5296,12 @@
function = new TFunction((yyvsp[-1].lex).string, type);
(yyval.interm.function) = function;
}
-#line 5395 "MachineIndependent/glslang_tab.cpp"
+#line 5300 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 113:
-#line 1044 "MachineIndependent/glslang.y"
- {
+#line 997 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-1].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
@@ -5411,12 +5316,12 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).param = param;
}
-#line 5415 "MachineIndependent/glslang_tab.cpp"
+#line 5320 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 114:
-#line 1059 "MachineIndependent/glslang.y"
- {
+#line 1012 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
@@ -5435,12 +5340,12 @@
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).param = param;
}
-#line 5439 "MachineIndependent/glslang_tab.cpp"
+#line 5344 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 115:
-#line 1084 "MachineIndependent/glslang.y"
- {
+#line 1037 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
(yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
@@ -5451,24 +5356,24 @@
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 5455 "MachineIndependent/glslang_tab.cpp"
+#line 5360 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 116:
-#line 1095 "MachineIndependent/glslang.y"
- {
+#line 1048 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
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 5467 "MachineIndependent/glslang_tab.cpp"
+#line 5372 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 117:
-#line 1105 "MachineIndependent/glslang.y"
- {
+#line 1058 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
(yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
@@ -5478,133 +5383,133 @@
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 5482 "MachineIndependent/glslang_tab.cpp"
+#line 5387 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 118:
-#line 1115 "MachineIndependent/glslang.y"
- {
+#line 1068 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
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 5494 "MachineIndependent/glslang_tab.cpp"
+#line 5399 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 119:
-#line 1125 "MachineIndependent/glslang.y"
- {
+#line 1078 "glslang.y" /* yacc.c:1646 */
+ {
TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
(yyval.interm).param = param;
if ((yyvsp[0].interm.type).arraySizes)
parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
}
-#line 5505 "MachineIndependent/glslang_tab.cpp"
+#line 5410 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 120:
-#line 1134 "MachineIndependent/glslang.y"
- {
+#line 1087 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[0].interm);
}
-#line 5513 "MachineIndependent/glslang_tab.cpp"
+#line 5418 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 121:
-#line 1137 "MachineIndependent/glslang.y"
- {
+#line 1090 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-2].interm);
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
}
-#line 5522 "MachineIndependent/glslang_tab.cpp"
+#line 5427 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 122:
-#line 1141 "MachineIndependent/glslang.y"
- {
+#line 1094 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-3].interm);
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
}
-#line 5531 "MachineIndependent/glslang_tab.cpp"
+#line 5436 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 123:
-#line 1145 "MachineIndependent/glslang.y"
- {
+#line 1098 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-5].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 5541 "MachineIndependent/glslang_tab.cpp"
+#line 5446 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 124:
-#line 1150 "MachineIndependent/glslang.y"
- {
+#line 1103 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-4].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 5551 "MachineIndependent/glslang_tab.cpp"
+#line 5456 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 125:
-#line 1158 "MachineIndependent/glslang.y"
- {
+#line 1111 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[0].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
}
-#line 5563 "MachineIndependent/glslang_tab.cpp"
+#line 5468 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 126:
-#line 1165 "MachineIndependent/glslang.y"
- {
+#line 1118 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-1].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
}
-#line 5573 "MachineIndependent/glslang_tab.cpp"
+#line 5478 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 127:
-#line 1170 "MachineIndependent/glslang.y"
- {
+#line 1123 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-2].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
}
-#line 5583 "MachineIndependent/glslang_tab.cpp"
+#line 5488 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 128:
-#line 1175 "MachineIndependent/glslang.y"
- {
+#line 1128 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-4].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 5593 "MachineIndependent/glslang_tab.cpp"
+#line 5498 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 129:
-#line 1180 "MachineIndependent/glslang.y"
- {
+#line 1133 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).type = (yyvsp[-3].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 5603 "MachineIndependent/glslang_tab.cpp"
+#line 5508 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 130:
-#line 1189 "MachineIndependent/glslang.y"
- {
+#line 1142 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
@@ -5614,12 +5519,12 @@
}
parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
}
-#line 5618 "MachineIndependent/glslang_tab.cpp"
+#line 5523 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 131:
-#line 1199 "MachineIndependent/glslang.y"
- {
+#line 1152 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
@@ -5643,71 +5548,71 @@
(parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5647 "MachineIndependent/glslang_tab.cpp"
+#line 5552 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 132:
-#line 1226 "MachineIndependent/glslang.y"
- {
+#line 1179 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.invariant = true;
}
-#line 5658 "MachineIndependent/glslang_tab.cpp"
+#line 5563 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 133:
-#line 1235 "MachineIndependent/glslang.y"
- {
+#line 1188 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.smooth = true;
}
-#line 5670 "MachineIndependent/glslang_tab.cpp"
+#line 5575 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 134:
-#line 1242 "MachineIndependent/glslang.y"
- {
+#line 1195 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.flat = true;
}
-#line 5682 "MachineIndependent/glslang_tab.cpp"
+#line 5587 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 135:
-#line 1250 "MachineIndependent/glslang.y"
- {
+#line 1203 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nopersp = true;
}
-#line 5694 "MachineIndependent/glslang_tab.cpp"
+#line 5599 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 136:
-#line 1258 "MachineIndependent/glslang.y"
- {
+#line 1210 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.explicitInterp = true;
}
-#line 5706 "MachineIndependent/glslang_tab.cpp"
+#line 5611 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 137:
-#line 1265 "MachineIndependent/glslang.y"
- {
+#line 1217 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
@@ -5715,12 +5620,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.pervertexNV = true;
}
-#line 5719 "MachineIndependent/glslang_tab.cpp"
+#line 5624 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 138:
-#line 1273 "MachineIndependent/glslang.y"
- {
+#line 1225 "glslang.y" /* yacc.c:1646 */
+ {
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
@@ -5730,109 +5635,109 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perPrimitiveNV = true;
}
-#line 5734 "MachineIndependent/glslang_tab.cpp"
+#line 5639 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 139:
-#line 1283 "MachineIndependent/glslang.y"
- {
+#line 1235 "glslang.y" /* yacc.c:1646 */
+ {
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perViewNV = true;
}
-#line 5746 "MachineIndependent/glslang_tab.cpp"
+#line 5651 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 140:
-#line 1290 "MachineIndependent/glslang.y"
- {
+#line 1242 "glslang.y" /* yacc.c:1646 */
+ {
// No need for profile version or extension check. Shader stage already checks both.
parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.perTaskNV = true;
}
-#line 5758 "MachineIndependent/glslang_tab.cpp"
+#line 5663 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 141:
-#line 1302 "MachineIndependent/glslang.y"
- {
+#line 1253 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[-1].interm.type);
}
-#line 5766 "MachineIndependent/glslang_tab.cpp"
+#line 5671 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 142:
-#line 1308 "MachineIndependent/glslang.y"
- {
+#line 1259 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5774 "MachineIndependent/glslang_tab.cpp"
+#line 5679 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 143:
-#line 1311 "MachineIndependent/glslang.y"
- {
+#line 1262 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[-2].interm.type);
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
}
-#line 5784 "MachineIndependent/glslang_tab.cpp"
+#line 5689 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 144:
-#line 1318 "MachineIndependent/glslang.y"
- {
+#line 1269 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
}
-#line 5793 "MachineIndependent/glslang_tab.cpp"
+#line 5698 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 145:
-#line 1322 "MachineIndependent/glslang.y"
- {
+#line 1273 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[-2].lex).loc);
parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
}
-#line 5802 "MachineIndependent/glslang_tab.cpp"
+#line 5707 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 146:
-#line 1326 "MachineIndependent/glslang.y"
- { // because "shared" is both an identifier and a keyword
+#line 1277 "glslang.y" /* yacc.c:1646 */
+ { // because "shared" is both an identifier and a keyword
(yyval.interm.type).init((yyvsp[0].lex).loc);
TString strShared("shared");
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
}
-#line 5812 "MachineIndependent/glslang_tab.cpp"
+#line 5717 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 147:
-#line 1335 "MachineIndependent/glslang.y"
- {
+#line 1286 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.noContraction = true;
}
-#line 5823 "MachineIndependent/glslang_tab.cpp"
+#line 5728 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 148:
-#line 1345 "MachineIndependent/glslang.y"
- {
+#line 1296 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5831 "MachineIndependent/glslang_tab.cpp"
+#line 5736 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 149:
-#line 1348 "MachineIndependent/glslang.y"
- {
+#line 1299 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[-1].interm.type);
if ((yyval.interm.type).basicType == EbtVoid)
(yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
@@ -5840,135 +5745,135 @@
(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 5844 "MachineIndependent/glslang_tab.cpp"
+#line 5749 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 150:
-#line 1359 "MachineIndependent/glslang.y"
- {
+#line 1310 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5852 "MachineIndependent/glslang_tab.cpp"
+#line 5757 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 151:
-#line 1362 "MachineIndependent/glslang.y"
- {
+#line 1313 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5860 "MachineIndependent/glslang_tab.cpp"
+#line 5765 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 152:
-#line 1365 "MachineIndependent/glslang.y"
- {
+#line 1316 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5869 "MachineIndependent/glslang_tab.cpp"
+#line 5774 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 153:
-#line 1369 "MachineIndependent/glslang.y"
- {
+#line 1320 "glslang.y" /* yacc.c:1646 */
+ {
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5878 "MachineIndependent/glslang_tab.cpp"
+#line 5783 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 154:
-#line 1373 "MachineIndependent/glslang.y"
- {
+#line 1324 "glslang.y" /* yacc.c:1646 */
+ {
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5887 "MachineIndependent/glslang_tab.cpp"
+#line 5792 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 155:
-#line 1378 "MachineIndependent/glslang.y"
- {
+#line 1329 "glslang.y" /* yacc.c:1646 */
+ {
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5896 "MachineIndependent/glslang_tab.cpp"
+#line 5801 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 156:
-#line 1383 "MachineIndependent/glslang.y"
- {
+#line 1333 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 5904 "MachineIndependent/glslang_tab.cpp"
+#line 5809 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 157:
-#line 1391 "MachineIndependent/glslang.y"
- {
+#line 1340 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
}
-#line 5913 "MachineIndependent/glslang_tab.cpp"
+#line 5818 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 158:
-#line 1395 "MachineIndependent/glslang.y"
- {
+#line 1344 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqInOut;
}
-#line 5923 "MachineIndependent/glslang_tab.cpp"
+#line 5828 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 159:
-#line 1400 "MachineIndependent/glslang.y"
- {
+#line 1349 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "in");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqIn;
}
-#line 5934 "MachineIndependent/glslang_tab.cpp"
+#line 5839 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 160:
-#line 1406 "MachineIndependent/glslang.y"
- {
+#line 1355 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "out");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqOut;
}
-#line 5945 "MachineIndependent/glslang_tab.cpp"
+#line 5850 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 161:
-#line 1412 "MachineIndependent/glslang.y"
- {
+#line 1361 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.centroid = true;
}
-#line 5957 "MachineIndependent/glslang_tab.cpp"
+#line 5862 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 162:
-#line 1419 "MachineIndependent/glslang.y"
- {
+#line 1368 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqUniform;
}
-#line 5967 "MachineIndependent/glslang_tab.cpp"
+#line 5872 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 163:
-#line 1424 "MachineIndependent/glslang.y"
- {
+#line 1373 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
@@ -5976,22 +5881,22 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqShared;
}
-#line 5980 "MachineIndependent/glslang_tab.cpp"
+#line 5885 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 164:
-#line 1432 "MachineIndependent/glslang.y"
- {
+#line 1381 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqBuffer;
}
-#line 5990 "MachineIndependent/glslang_tab.cpp"
+#line 5895 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 165:
-#line 1438 "MachineIndependent/glslang.y"
- {
+#line 1387 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
@@ -6003,12 +5908,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6007 "MachineIndependent/glslang_tab.cpp"
+#line 5912 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 166:
-#line 1450 "MachineIndependent/glslang.y"
- {
+#line 1399 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
@@ -6022,33 +5927,33 @@
else
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 6026 "MachineIndependent/glslang_tab.cpp"
+#line 5931 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 167:
-#line 1464 "MachineIndependent/glslang.y"
- {
+#line 1413 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.patch = true;
}
-#line 6037 "MachineIndependent/glslang_tab.cpp"
+#line 5942 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 168:
-#line 1470 "MachineIndependent/glslang.y"
- {
+#line 1419 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.sample = true;
}
-#line 6047 "MachineIndependent/glslang_tab.cpp"
+#line 5952 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 169:
-#line 1476 "MachineIndependent/glslang.y"
- {
+#line 1424 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
| EShLangAnyHitMask), "hitAttributeNV");
@@ -6056,12 +5961,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6060 "MachineIndependent/glslang_tab.cpp"
+#line 5965 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 170:
-#line 1484 "MachineIndependent/glslang.y"
- {
+#line 1432 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
| EShLangAnyHitMask), "hitAttributeEXT");
@@ -6069,12 +5974,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqHitAttr;
}
-#line 6073 "MachineIndependent/glslang_tab.cpp"
+#line 5978 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 171:
-#line 1492 "MachineIndependent/glslang.y"
- {
+#line 1440 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
@@ -6082,12 +5987,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6086 "MachineIndependent/glslang_tab.cpp"
+#line 5991 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 172:
-#line 1500 "MachineIndependent/glslang.y"
- {
+#line 1448 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
@@ -6095,12 +6000,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayload;
}
-#line 6099 "MachineIndependent/glslang_tab.cpp"
+#line 6004 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 173:
-#line 1508 "MachineIndependent/glslang.y"
- {
+#line 1456 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
@@ -6108,12 +6013,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6112 "MachineIndependent/glslang_tab.cpp"
+#line 6017 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 174:
-#line 1516 "MachineIndependent/glslang.y"
- {
+#line 1464 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
@@ -6121,12 +6026,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqPayloadIn;
}
-#line 6125 "MachineIndependent/glslang_tab.cpp"
+#line 6030 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 175:
-#line 1524 "MachineIndependent/glslang.y"
- {
+#line 1472 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
@@ -6134,12 +6039,12 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6138 "MachineIndependent/glslang_tab.cpp"
+#line 6043 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 176:
-#line 1532 "MachineIndependent/glslang.y"
- {
+#line 1480 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
@@ -6147,222 +6052,222 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableData;
}
-#line 6151 "MachineIndependent/glslang_tab.cpp"
+#line 6056 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 177:
-#line 1540 "MachineIndependent/glslang.y"
- {
+#line 1488 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6163 "MachineIndependent/glslang_tab.cpp"
+#line 6068 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 178:
-#line 1547 "MachineIndependent/glslang.y"
- {
+#line 1495 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqCallableDataIn;
}
-#line 6175 "MachineIndependent/glslang_tab.cpp"
+#line 6080 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 179:
-#line 1554 "MachineIndependent/glslang.y"
- {
+#line 1502 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.coherent = true;
+ }
+#line 6089 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 180:
+#line 1506 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
(yyval.interm.type).qualifier.devicecoherent = true;
}
-#line 6185 "MachineIndependent/glslang_tab.cpp"
+#line 6099 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 180:
-#line 1559 "MachineIndependent/glslang.y"
- {
+ case 181:
+#line 1511 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
(yyval.interm.type).qualifier.queuefamilycoherent = true;
}
-#line 6195 "MachineIndependent/glslang_tab.cpp"
+#line 6109 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 181:
-#line 1564 "MachineIndependent/glslang.y"
- {
+ case 182:
+#line 1516 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
(yyval.interm.type).qualifier.workgroupcoherent = true;
}
-#line 6205 "MachineIndependent/glslang_tab.cpp"
+#line 6119 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 182:
-#line 1569 "MachineIndependent/glslang.y"
- {
+ case 183:
+#line 1521 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
(yyval.interm.type).qualifier.subgroupcoherent = true;
}
-#line 6215 "MachineIndependent/glslang_tab.cpp"
+#line 6129 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 183:
-#line 1574 "MachineIndependent/glslang.y"
- {
+ case 184:
+#line 1526 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
(yyval.interm.type).qualifier.nonprivate = true;
}
-#line 6225 "MachineIndependent/glslang_tab.cpp"
+#line 6139 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 184:
-#line 1579 "MachineIndependent/glslang.y"
- {
+ case 185:
+#line 1531 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
(yyval.interm.type).qualifier.shadercallcoherent = true;
}
-#line 6235 "MachineIndependent/glslang_tab.cpp"
+#line 6149 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 185:
-#line 1584 "MachineIndependent/glslang.y"
- {
+ case 186:
+#line 1536 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.volatil = true;
+ }
+#line 6158 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 187:
+#line 1540 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.restrict = true;
+ }
+#line 6167 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 188:
+#line 1544 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.readonly = true;
+ }
+#line 6176 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 189:
+#line 1548 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.writeonly = true;
+ }
+#line 6185 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 190:
+#line 1552 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[0].lex).loc);
}
-#line 6246 "MachineIndependent/glslang_tab.cpp"
+#line 6196 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 186:
-#line 1590 "MachineIndependent/glslang.y"
- {
+ case 191:
+#line 1558 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[-3].lex).loc);
}
-#line 6257 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 187:
-#line 1597 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.coherent = true;
- }
-#line 6266 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 188:
-#line 1601 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.volatil = true;
- }
-#line 6275 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 189:
-#line 1605 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.restrict = true;
- }
-#line 6284 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 190:
-#line 1609 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.readonly = true;
- }
-#line 6293 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 191:
-#line 1613 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc);
- (yyval.interm.type).qualifier.writeonly = true;
- }
-#line 6302 "MachineIndependent/glslang_tab.cpp"
+#line 6207 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 192:
-#line 1623 "MachineIndependent/glslang.y"
- {
+#line 1569 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nonUniform = true;
}
-#line 6311 "MachineIndependent/glslang_tab.cpp"
+#line 6216 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 193:
-#line 1631 "MachineIndependent/glslang.y"
- {
+#line 1576 "glslang.y" /* yacc.c:1646 */
+ {
// TODO
}
-#line 6319 "MachineIndependent/glslang_tab.cpp"
+#line 6224 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 194:
-#line 1634 "MachineIndependent/glslang.y"
- {
+#line 1579 "glslang.y" /* yacc.c:1646 */
+ {
// TODO: 4.0 semantics: subroutines
// 1) make sure each identifier is a type declared earlier with SUBROUTINE
// 2) save all of the identifiers for future comparison with the declared function
}
-#line 6329 "MachineIndependent/glslang_tab.cpp"
+#line 6234 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 195:
-#line 1643 "MachineIndependent/glslang.y"
- {
+#line 1588 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[-1].interm.type);
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
(yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
}
-#line 6339 "MachineIndependent/glslang_tab.cpp"
+#line 6244 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 196:
-#line 1648 "MachineIndependent/glslang.y"
- {
+#line 1593 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
(yyval.interm.type) = (yyvsp[-2].interm.type);
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
(yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
(yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
}
-#line 6351 "MachineIndependent/glslang_tab.cpp"
+#line 6256 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 197:
-#line 1658 "MachineIndependent/glslang.y"
- {
+#line 1603 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6361 "MachineIndependent/glslang_tab.cpp"
+#line 6266 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 198:
-#line 1663 "MachineIndependent/glslang.y"
- {
+#line 1608 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm).loc = (yyvsp[-2].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
@@ -6370,492 +6275,492 @@
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6374 "MachineIndependent/glslang_tab.cpp"
+#line 6279 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 199:
-#line 1671 "MachineIndependent/glslang.y"
- {
+#line 1616 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-2].interm);
(yyval.interm).arraySizes->addInnerSize();
}
-#line 6383 "MachineIndependent/glslang_tab.cpp"
+#line 6288 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 200:
-#line 1675 "MachineIndependent/glslang.y"
- {
+#line 1620 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm) = (yyvsp[-3].interm);
TArraySize size;
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 6395 "MachineIndependent/glslang_tab.cpp"
+#line 6300 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 201:
-#line 1685 "MachineIndependent/glslang.y"
- {
+#line 1630 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
}
-#line 6403 "MachineIndependent/glslang_tab.cpp"
+#line 6308 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 202:
-#line 1688 "MachineIndependent/glslang.y"
- {
+#line 1633 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeParameters) = 0;
}
-#line 6411 "MachineIndependent/glslang_tab.cpp"
+#line 6316 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 203:
-#line 1694 "MachineIndependent/glslang.y"
- {
+#line 1639 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
}
-#line 6419 "MachineIndependent/glslang_tab.cpp"
+#line 6324 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 204:
-#line 1700 "MachineIndependent/glslang.y"
- {
+#line 1645 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeParameters) = new TArraySizes;
TArraySize size;
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6431 "MachineIndependent/glslang_tab.cpp"
+#line 6336 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 205:
-#line 1707 "MachineIndependent/glslang.y"
- {
+#line 1652 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
TArraySize size;
parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
(yyval.interm.typeParameters)->addInnerSize(size);
}
-#line 6443 "MachineIndependent/glslang_tab.cpp"
+#line 6348 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 206:
-#line 1717 "MachineIndependent/glslang.y"
- {
+#line 1662 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtVoid;
}
-#line 6452 "MachineIndependent/glslang_tab.cpp"
+#line 6357 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 207:
-#line 1721 "MachineIndependent/glslang.y"
- {
+#line 1666 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 6461 "MachineIndependent/glslang_tab.cpp"
+#line 6366 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 208:
-#line 1725 "MachineIndependent/glslang.y"
- {
+#line 1670 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 6470 "MachineIndependent/glslang_tab.cpp"
+#line 6375 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 209:
-#line 1729 "MachineIndependent/glslang.y"
- {
+#line 1674 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 6480 "MachineIndependent/glslang_tab.cpp"
+#line 6385 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 210:
-#line 1734 "MachineIndependent/glslang.y"
- {
+#line 1679 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
}
-#line 6489 "MachineIndependent/glslang_tab.cpp"
+#line 6394 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 211:
-#line 1738 "MachineIndependent/glslang.y"
- {
+#line 1683 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 6499 "MachineIndependent/glslang_tab.cpp"
+#line 6404 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 212:
-#line 1743 "MachineIndependent/glslang.y"
- {
+#line 1688 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 6509 "MachineIndependent/glslang_tab.cpp"
+#line 6414 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 213:
-#line 1748 "MachineIndependent/glslang.y"
- {
+#line 1693 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 6519 "MachineIndependent/glslang_tab.cpp"
+#line 6424 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 214:
-#line 1753 "MachineIndependent/glslang.y"
- {
+#line 1698 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(2);
}
-#line 6529 "MachineIndependent/glslang_tab.cpp"
+#line 6434 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 215:
-#line 1758 "MachineIndependent/glslang.y"
- {
+#line 1703 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(3);
}
-#line 6539 "MachineIndependent/glslang_tab.cpp"
+#line 6444 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 216:
-#line 1763 "MachineIndependent/glslang.y"
- {
+#line 1708 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
(yyval.interm.type).setVector(4);
}
-#line 6549 "MachineIndependent/glslang_tab.cpp"
+#line 6454 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 217:
-#line 1768 "MachineIndependent/glslang.y"
- {
+#line 1713 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 6559 "MachineIndependent/glslang_tab.cpp"
+#line 6464 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 218:
-#line 1773 "MachineIndependent/glslang.y"
- {
+#line 1718 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 6569 "MachineIndependent/glslang_tab.cpp"
+#line 6474 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 219:
-#line 1778 "MachineIndependent/glslang.y"
- {
+#line 1723 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 6579 "MachineIndependent/glslang_tab.cpp"
+#line 6484 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 220:
-#line 1783 "MachineIndependent/glslang.y"
- {
+#line 1728 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 6590 "MachineIndependent/glslang_tab.cpp"
+#line 6495 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 221:
-#line 1789 "MachineIndependent/glslang.y"
- {
+#line 1734 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 6601 "MachineIndependent/glslang_tab.cpp"
+#line 6506 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 222:
-#line 1795 "MachineIndependent/glslang.y"
- {
+#line 1740 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 6612 "MachineIndependent/glslang_tab.cpp"
+#line 6517 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 223:
-#line 1801 "MachineIndependent/glslang.y"
- {
+#line 1746 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6622 "MachineIndependent/glslang_tab.cpp"
+#line 6527 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 224:
-#line 1806 "MachineIndependent/glslang.y"
- {
+#line 1751 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6632 "MachineIndependent/glslang_tab.cpp"
+#line 6537 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 225:
-#line 1811 "MachineIndependent/glslang.y"
- {
+#line 1756 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 6642 "MachineIndependent/glslang_tab.cpp"
+#line 6547 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 226:
-#line 1816 "MachineIndependent/glslang.y"
- {
+#line 1761 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 6652 "MachineIndependent/glslang_tab.cpp"
+#line 6557 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 227:
-#line 1821 "MachineIndependent/glslang.y"
- {
+#line 1766 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 6662 "MachineIndependent/glslang_tab.cpp"
+#line 6567 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 228:
-#line 1826 "MachineIndependent/glslang.y"
- {
+#line 1771 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 6672 "MachineIndependent/glslang_tab.cpp"
+#line 6577 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 229:
-#line 1831 "MachineIndependent/glslang.y"
- {
+#line 1776 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 6682 "MachineIndependent/glslang_tab.cpp"
+#line 6587 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 230:
-#line 1836 "MachineIndependent/glslang.y"
- {
+#line 1781 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 6692 "MachineIndependent/glslang_tab.cpp"
+#line 6597 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 231:
-#line 1841 "MachineIndependent/glslang.y"
- {
+#line 1786 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 6702 "MachineIndependent/glslang_tab.cpp"
+#line 6607 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 232:
-#line 1846 "MachineIndependent/glslang.y"
- {
+#line 1791 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 6712 "MachineIndependent/glslang_tab.cpp"
+#line 6617 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 233:
-#line 1851 "MachineIndependent/glslang.y"
- {
+#line 1796 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 6722 "MachineIndependent/glslang_tab.cpp"
+#line 6627 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 234:
-#line 1856 "MachineIndependent/glslang.y"
- {
+#line 1801 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 6732 "MachineIndependent/glslang_tab.cpp"
+#line 6637 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 235:
-#line 1863 "MachineIndependent/glslang.y"
- {
+#line 1807 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 6744 "MachineIndependent/glslang_tab.cpp"
+#line 6649 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 236:
-#line 1870 "MachineIndependent/glslang.y"
- {
+#line 1814 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
}
-#line 6754 "MachineIndependent/glslang_tab.cpp"
+#line 6659 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 237:
-#line 1875 "MachineIndependent/glslang.y"
- {
+#line 1819 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 6764 "MachineIndependent/glslang_tab.cpp"
+#line 6669 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 238:
-#line 1880 "MachineIndependent/glslang.y"
- {
+#line 1824 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 6774 "MachineIndependent/glslang_tab.cpp"
+#line 6679 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 239:
-#line 1885 "MachineIndependent/glslang.y"
- {
+#line 1829 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
}
-#line 6784 "MachineIndependent/glslang_tab.cpp"
+#line 6689 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 240:
-#line 1890 "MachineIndependent/glslang.y"
- {
+#line 1834 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
}
-#line 6794 "MachineIndependent/glslang_tab.cpp"
+#line 6699 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 241:
-#line 1895 "MachineIndependent/glslang.y"
- {
+#line 1839 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
}
-#line 6804 "MachineIndependent/glslang_tab.cpp"
+#line 6709 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 242:
-#line 1900 "MachineIndependent/glslang.y"
- {
+#line 1844 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
}
-#line 6814 "MachineIndependent/glslang_tab.cpp"
+#line 6719 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 243:
-#line 1905 "MachineIndependent/glslang.y"
- {
+#line 1849 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 6824 "MachineIndependent/glslang_tab.cpp"
+#line 6729 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 244:
-#line 1910 "MachineIndependent/glslang.y"
- {
+#line 1854 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 6834 "MachineIndependent/glslang_tab.cpp"
+#line 6739 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 245:
-#line 1915 "MachineIndependent/glslang.y"
- {
+#line 1859 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
}
-#line 6844 "MachineIndependent/glslang_tab.cpp"
+#line 6749 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 246:
-#line 1920 "MachineIndependent/glslang.y"
- {
+#line 1864 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
}
-#line 6854 "MachineIndependent/glslang_tab.cpp"
+#line 6759 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 247:
-#line 1925 "MachineIndependent/glslang.y"
- {
+#line 1869 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
@@ -6863,12 +6768,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 6867 "MachineIndependent/glslang_tab.cpp"
+#line 6772 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 248:
-#line 1933 "MachineIndependent/glslang.y"
- {
+#line 1877 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
@@ -6876,12 +6781,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 6880 "MachineIndependent/glslang_tab.cpp"
+#line 6785 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 249:
-#line 1941 "MachineIndependent/glslang.y"
- {
+#line 1885 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
@@ -6889,375 +6794,375 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 6893 "MachineIndependent/glslang_tab.cpp"
+#line 6798 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 250:
-#line 1949 "MachineIndependent/glslang.y"
- {
+#line 1893 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(2);
}
-#line 6904 "MachineIndependent/glslang_tab.cpp"
+#line 6809 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 251:
-#line 1955 "MachineIndependent/glslang.y"
- {
+#line 1899 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(3);
}
-#line 6915 "MachineIndependent/glslang_tab.cpp"
+#line 6820 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 252:
-#line 1961 "MachineIndependent/glslang.y"
- {
+#line 1905 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setVector(4);
}
-#line 6926 "MachineIndependent/glslang_tab.cpp"
+#line 6831 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 253:
-#line 1967 "MachineIndependent/glslang.y"
- {
+#line 1911 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(2);
}
-#line 6937 "MachineIndependent/glslang_tab.cpp"
+#line 6842 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 254:
-#line 1973 "MachineIndependent/glslang.y"
- {
+#line 1917 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(3);
}
-#line 6948 "MachineIndependent/glslang_tab.cpp"
+#line 6853 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 255:
-#line 1979 "MachineIndependent/glslang.y"
- {
+#line 1923 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setVector(4);
}
-#line 6959 "MachineIndependent/glslang_tab.cpp"
+#line 6864 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 256:
-#line 1985 "MachineIndependent/glslang.y"
- {
+#line 1929 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(2);
}
-#line 6970 "MachineIndependent/glslang_tab.cpp"
+#line 6875 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 257:
-#line 1991 "MachineIndependent/glslang.y"
- {
+#line 1935 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(3);
}
-#line 6981 "MachineIndependent/glslang_tab.cpp"
+#line 6886 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 258:
-#line 1997 "MachineIndependent/glslang.y"
- {
+#line 1941 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 6992 "MachineIndependent/glslang_tab.cpp"
+#line 6897 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 259:
-#line 2003 "MachineIndependent/glslang.y"
- {
+#line 1947 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(2);
}
-#line 7003 "MachineIndependent/glslang_tab.cpp"
+#line 6908 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 260:
-#line 2009 "MachineIndependent/glslang.y"
- {
+#line 1953 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(3);
}
-#line 7014 "MachineIndependent/glslang_tab.cpp"
+#line 6919 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 261:
-#line 2015 "MachineIndependent/glslang.y"
- {
+#line 1959 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt8;
(yyval.interm.type).setVector(4);
}
-#line 7025 "MachineIndependent/glslang_tab.cpp"
+#line 6930 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 262:
-#line 2021 "MachineIndependent/glslang.y"
- {
+#line 1965 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(2);
}
-#line 7036 "MachineIndependent/glslang_tab.cpp"
+#line 6941 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 263:
-#line 2027 "MachineIndependent/glslang.y"
- {
+#line 1971 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(3);
}
-#line 7047 "MachineIndependent/glslang_tab.cpp"
+#line 6952 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 264:
-#line 2033 "MachineIndependent/glslang.y"
- {
+#line 1977 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt16;
(yyval.interm.type).setVector(4);
}
-#line 7058 "MachineIndependent/glslang_tab.cpp"
+#line 6963 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 265:
-#line 2039 "MachineIndependent/glslang.y"
- {
+#line 1983 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(2);
}
-#line 7069 "MachineIndependent/glslang_tab.cpp"
+#line 6974 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 266:
-#line 2045 "MachineIndependent/glslang.y"
- {
+#line 1989 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(3);
}
-#line 7080 "MachineIndependent/glslang_tab.cpp"
+#line 6985 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 267:
-#line 2051 "MachineIndependent/glslang.y"
- {
+#line 1995 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).setVector(4);
}
-#line 7091 "MachineIndependent/glslang_tab.cpp"
+#line 6996 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 268:
-#line 2057 "MachineIndependent/glslang.y"
- {
+#line 2001 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(2);
}
-#line 7102 "MachineIndependent/glslang_tab.cpp"
+#line 7007 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 269:
-#line 2063 "MachineIndependent/glslang.y"
- {
+#line 2007 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(3);
}
-#line 7113 "MachineIndependent/glslang_tab.cpp"
+#line 7018 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 270:
-#line 2069 "MachineIndependent/glslang.y"
- {
+#line 2013 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(4);
}
-#line 7124 "MachineIndependent/glslang_tab.cpp"
+#line 7029 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 271:
-#line 2075 "MachineIndependent/glslang.y"
- {
+#line 2019 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(2);
}
-#line 7135 "MachineIndependent/glslang_tab.cpp"
+#line 7040 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 272:
-#line 2081 "MachineIndependent/glslang.y"
- {
+#line 2025 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(3);
}
-#line 7146 "MachineIndependent/glslang_tab.cpp"
+#line 7051 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 273:
-#line 2087 "MachineIndependent/glslang.y"
- {
+#line 2031 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint8;
(yyval.interm.type).setVector(4);
}
-#line 7157 "MachineIndependent/glslang_tab.cpp"
+#line 7062 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 274:
-#line 2093 "MachineIndependent/glslang.y"
- {
+#line 2037 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(2);
}
-#line 7168 "MachineIndependent/glslang_tab.cpp"
+#line 7073 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 275:
-#line 2099 "MachineIndependent/glslang.y"
- {
+#line 2043 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(3);
}
-#line 7179 "MachineIndependent/glslang_tab.cpp"
+#line 7084 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 276:
-#line 2105 "MachineIndependent/glslang.y"
- {
+#line 2049 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint16;
(yyval.interm.type).setVector(4);
}
-#line 7190 "MachineIndependent/glslang_tab.cpp"
+#line 7095 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 277:
-#line 2111 "MachineIndependent/glslang.y"
- {
+#line 2055 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 7201 "MachineIndependent/glslang_tab.cpp"
+#line 7106 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 278:
-#line 2117 "MachineIndependent/glslang.y"
- {
+#line 2061 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(3);
}
-#line 7212 "MachineIndependent/glslang_tab.cpp"
+#line 7117 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 279:
-#line 2123 "MachineIndependent/glslang.y"
- {
+#line 2067 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(4);
}
-#line 7223 "MachineIndependent/glslang_tab.cpp"
+#line 7128 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 280:
-#line 2129 "MachineIndependent/glslang.y"
- {
+#line 2073 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(2);
}
-#line 7234 "MachineIndependent/glslang_tab.cpp"
+#line 7139 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 281:
-#line 2135 "MachineIndependent/glslang.y"
- {
+#line 2079 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(3);
}
-#line 7245 "MachineIndependent/glslang_tab.cpp"
+#line 7150 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 282:
-#line 2141 "MachineIndependent/glslang.y"
- {
+#line 2085 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(4);
}
-#line 7256 "MachineIndependent/glslang_tab.cpp"
+#line 7161 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 283:
-#line 2147 "MachineIndependent/glslang.y"
- {
+#line 2091 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7265,12 +7170,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7269 "MachineIndependent/glslang_tab.cpp"
+#line 7174 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 284:
-#line 2155 "MachineIndependent/glslang.y"
- {
+#line 2099 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7278,12 +7183,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7282 "MachineIndependent/glslang_tab.cpp"
+#line 7187 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 285:
-#line 2163 "MachineIndependent/glslang.y"
- {
+#line 2107 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7291,12 +7196,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7295 "MachineIndependent/glslang_tab.cpp"
+#line 7200 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 286:
-#line 2171 "MachineIndependent/glslang.y"
- {
+#line 2115 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7304,12 +7209,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7308 "MachineIndependent/glslang_tab.cpp"
+#line 7213 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 287:
-#line 2179 "MachineIndependent/glslang.y"
- {
+#line 2123 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7317,12 +7222,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7321 "MachineIndependent/glslang_tab.cpp"
+#line 7226 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 288:
-#line 2187 "MachineIndependent/glslang.y"
- {
+#line 2131 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7330,12 +7235,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7334 "MachineIndependent/glslang_tab.cpp"
+#line 7239 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 289:
-#line 2195 "MachineIndependent/glslang.y"
- {
+#line 2139 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7343,12 +7248,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7347 "MachineIndependent/glslang_tab.cpp"
+#line 7252 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 290:
-#line 2203 "MachineIndependent/glslang.y"
- {
+#line 2147 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7356,12 +7261,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7360 "MachineIndependent/glslang_tab.cpp"
+#line 7265 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 291:
-#line 2211 "MachineIndependent/glslang.y"
- {
+#line 2155 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7369,12 +7274,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7373 "MachineIndependent/glslang_tab.cpp"
+#line 7278 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 292:
-#line 2219 "MachineIndependent/glslang.y"
- {
+#line 2163 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7382,12 +7287,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7386 "MachineIndependent/glslang_tab.cpp"
+#line 7291 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 293:
-#line 2227 "MachineIndependent/glslang.y"
- {
+#line 2171 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7395,12 +7300,12 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7399 "MachineIndependent/glslang_tab.cpp"
+#line 7304 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 294:
-#line 2235 "MachineIndependent/glslang.y"
- {
+#line 2179 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
if (! parseContext.symbolTable.atBuiltInLevel())
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
@@ -7408,2120 +7313,2120 @@
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7412 "MachineIndependent/glslang_tab.cpp"
+#line 7317 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 295:
-#line 2243 "MachineIndependent/glslang.y"
- {
+#line 2187 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7423 "MachineIndependent/glslang_tab.cpp"
+#line 7328 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 296:
-#line 2249 "MachineIndependent/glslang.y"
- {
+#line 2193 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7434 "MachineIndependent/glslang_tab.cpp"
+#line 7339 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 297:
-#line 2255 "MachineIndependent/glslang.y"
- {
+#line 2199 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7445 "MachineIndependent/glslang_tab.cpp"
+#line 7350 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 298:
-#line 2261 "MachineIndependent/glslang.y"
- {
+#line 2205 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7456 "MachineIndependent/glslang_tab.cpp"
+#line 7361 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 299:
-#line 2267 "MachineIndependent/glslang.y"
- {
+#line 2211 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7467 "MachineIndependent/glslang_tab.cpp"
+#line 7372 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 300:
-#line 2273 "MachineIndependent/glslang.y"
- {
+#line 2217 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7478 "MachineIndependent/glslang_tab.cpp"
+#line 7383 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 301:
-#line 2279 "MachineIndependent/glslang.y"
- {
+#line 2223 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7489 "MachineIndependent/glslang_tab.cpp"
+#line 7394 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 302:
-#line 2285 "MachineIndependent/glslang.y"
- {
+#line 2229 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7500 "MachineIndependent/glslang_tab.cpp"
+#line 7405 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 303:
-#line 2291 "MachineIndependent/glslang.y"
- {
+#line 2235 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7511 "MachineIndependent/glslang_tab.cpp"
+#line 7416 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 304:
-#line 2297 "MachineIndependent/glslang.y"
- {
+#line 2241 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7522 "MachineIndependent/glslang_tab.cpp"
+#line 7427 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 305:
-#line 2303 "MachineIndependent/glslang.y"
- {
+#line 2247 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7533 "MachineIndependent/glslang_tab.cpp"
+#line 7438 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 306:
-#line 2309 "MachineIndependent/glslang.y"
- {
+#line 2253 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat16;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7544 "MachineIndependent/glslang_tab.cpp"
+#line 7449 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 307:
-#line 2315 "MachineIndependent/glslang.y"
- {
+#line 2259 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7555 "MachineIndependent/glslang_tab.cpp"
+#line 7460 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 308:
-#line 2321 "MachineIndependent/glslang.y"
- {
+#line 2265 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7566 "MachineIndependent/glslang_tab.cpp"
+#line 7471 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 309:
-#line 2327 "MachineIndependent/glslang.y"
- {
+#line 2271 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7577 "MachineIndependent/glslang_tab.cpp"
+#line 7482 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 310:
-#line 2333 "MachineIndependent/glslang.y"
- {
+#line 2277 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7588 "MachineIndependent/glslang_tab.cpp"
+#line 7493 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 311:
-#line 2339 "MachineIndependent/glslang.y"
- {
+#line 2283 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7599 "MachineIndependent/glslang_tab.cpp"
+#line 7504 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 312:
-#line 2345 "MachineIndependent/glslang.y"
- {
+#line 2289 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7610 "MachineIndependent/glslang_tab.cpp"
+#line 7515 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 313:
-#line 2351 "MachineIndependent/glslang.y"
- {
+#line 2295 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7621 "MachineIndependent/glslang_tab.cpp"
+#line 7526 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 314:
-#line 2357 "MachineIndependent/glslang.y"
- {
+#line 2301 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7632 "MachineIndependent/glslang_tab.cpp"
+#line 7537 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 315:
-#line 2363 "MachineIndependent/glslang.y"
- {
+#line 2307 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7643 "MachineIndependent/glslang_tab.cpp"
+#line 7548 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 316:
-#line 2369 "MachineIndependent/glslang.y"
- {
+#line 2313 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7654 "MachineIndependent/glslang_tab.cpp"
+#line 7559 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 317:
-#line 2375 "MachineIndependent/glslang.y"
- {
+#line 2319 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7665 "MachineIndependent/glslang_tab.cpp"
+#line 7570 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 318:
-#line 2381 "MachineIndependent/glslang.y"
- {
+#line 2325 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7676 "MachineIndependent/glslang_tab.cpp"
+#line 7581 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 319:
-#line 2387 "MachineIndependent/glslang.y"
- {
+#line 2331 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7687 "MachineIndependent/glslang_tab.cpp"
+#line 7592 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 320:
-#line 2393 "MachineIndependent/glslang.y"
- {
+#line 2337 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7698 "MachineIndependent/glslang_tab.cpp"
+#line 7603 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 321:
-#line 2399 "MachineIndependent/glslang.y"
- {
+#line 2343 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7709 "MachineIndependent/glslang_tab.cpp"
+#line 7614 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 322:
-#line 2405 "MachineIndependent/glslang.y"
- {
+#line 2349 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 7720 "MachineIndependent/glslang_tab.cpp"
+#line 7625 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 323:
-#line 2411 "MachineIndependent/glslang.y"
- {
+#line 2355 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 7731 "MachineIndependent/glslang_tab.cpp"
+#line 7636 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 324:
-#line 2417 "MachineIndependent/glslang.y"
- {
+#line 2361 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 7742 "MachineIndependent/glslang_tab.cpp"
+#line 7647 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 325:
-#line 2423 "MachineIndependent/glslang.y"
- {
+#line 2367 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 7753 "MachineIndependent/glslang_tab.cpp"
+#line 7658 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 326:
-#line 2429 "MachineIndependent/glslang.y"
- {
+#line 2373 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 7764 "MachineIndependent/glslang_tab.cpp"
+#line 7669 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 327:
-#line 2435 "MachineIndependent/glslang.y"
- {
+#line 2379 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 7775 "MachineIndependent/glslang_tab.cpp"
+#line 7680 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 328:
-#line 2441 "MachineIndependent/glslang.y"
- {
+#line 2385 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 7786 "MachineIndependent/glslang_tab.cpp"
+#line 7691 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 329:
-#line 2447 "MachineIndependent/glslang.y"
- {
+#line 2391 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 7797 "MachineIndependent/glslang_tab.cpp"
+#line 7702 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 330:
-#line 2453 "MachineIndependent/glslang.y"
- {
+#line 2397 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 7808 "MachineIndependent/glslang_tab.cpp"
+#line 7713 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 331:
-#line 2459 "MachineIndependent/glslang.y"
- {
+#line 2403 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 7817 "MachineIndependent/glslang_tab.cpp"
+#line 7722 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 332:
-#line 2463 "MachineIndependent/glslang.y"
- {
+#line 2407 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAccStruct;
}
-#line 7826 "MachineIndependent/glslang_tab.cpp"
+#line 7731 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 333:
-#line 2467 "MachineIndependent/glslang.y"
- {
+#line 2411 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtRayQuery;
}
-#line 7835 "MachineIndependent/glslang_tab.cpp"
+#line 7740 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 334:
-#line 2471 "MachineIndependent/glslang.y"
- {
+#line 2415 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAtomicUint;
}
-#line 7845 "MachineIndependent/glslang_tab.cpp"
+#line 7750 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 335:
-#line 2476 "MachineIndependent/glslang.y"
- {
+#line 2420 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D);
}
-#line 7855 "MachineIndependent/glslang_tab.cpp"
+#line 7760 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 336:
-#line 2483 "MachineIndependent/glslang.y"
- {
+#line 2426 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
}
-#line 7865 "MachineIndependent/glslang_tab.cpp"
+#line 7770 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 337:
-#line 2488 "MachineIndependent/glslang.y"
- {
+#line 2431 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd3D);
}
-#line 7875 "MachineIndependent/glslang_tab.cpp"
+#line 7780 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 338:
-#line 2493 "MachineIndependent/glslang.y"
- {
+#line 2436 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube);
}
-#line 7885 "MachineIndependent/glslang_tab.cpp"
+#line 7790 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 339:
-#line 2498 "MachineIndependent/glslang.y"
- {
+#line 2441 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
}
-#line 7895 "MachineIndependent/glslang_tab.cpp"
+#line 7800 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 340:
-#line 2503 "MachineIndependent/glslang.y"
- {
+#line 2446 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
}
-#line 7905 "MachineIndependent/glslang_tab.cpp"
+#line 7810 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 341:
-#line 2508 "MachineIndependent/glslang.y"
- {
+#line 2451 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
}
-#line 7915 "MachineIndependent/glslang_tab.cpp"
+#line 7820 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 342:
-#line 2513 "MachineIndependent/glslang.y"
- {
+#line 2456 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
}
-#line 7925 "MachineIndependent/glslang_tab.cpp"
+#line 7830 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 343:
-#line 2519 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
- }
-#line 7935 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 344:
-#line 2524 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
- }
-#line 7945 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 345:
-#line 2530 "MachineIndependent/glslang.y"
- {
+#line 2462 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
}
-#line 7955 "MachineIndependent/glslang_tab.cpp"
+#line 7840 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 346:
-#line 2535 "MachineIndependent/glslang.y"
- {
+ case 344:
+#line 2467 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
}
-#line 7965 "MachineIndependent/glslang_tab.cpp"
+#line 7850 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 347:
-#line 2540 "MachineIndependent/glslang.y"
- {
+ case 345:
+#line 2472 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
}
-#line 7975 "MachineIndependent/glslang_tab.cpp"
+#line 7860 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 346:
+#line 2477 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
+ }
+#line 7870 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 347:
+#line 2482 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
+ }
+#line 7880 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 348:
-#line 2545 "MachineIndependent/glslang.y"
- {
+#line 2487 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
}
-#line 7986 "MachineIndependent/glslang_tab.cpp"
+#line 7891 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 349:
-#line 2551 "MachineIndependent/glslang.y"
- {
+#line 2493 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
}
-#line 7997 "MachineIndependent/glslang_tab.cpp"
+#line 7902 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 350:
-#line 2557 "MachineIndependent/glslang.y"
- {
+#line 2499 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
}
-#line 8008 "MachineIndependent/glslang_tab.cpp"
+#line 7913 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 351:
-#line 2563 "MachineIndependent/glslang.y"
- {
+#line 2505 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
}
-#line 8019 "MachineIndependent/glslang_tab.cpp"
+#line 7924 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 352:
-#line 2569 "MachineIndependent/glslang.y"
- {
+#line 2511 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
}
-#line 8030 "MachineIndependent/glslang_tab.cpp"
+#line 7935 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 353:
-#line 2575 "MachineIndependent/glslang.y"
- {
+#line 2517 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
}
-#line 8041 "MachineIndependent/glslang_tab.cpp"
+#line 7946 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 354:
-#line 2581 "MachineIndependent/glslang.y"
- {
+#line 2523 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
}
-#line 8052 "MachineIndependent/glslang_tab.cpp"
+#line 7957 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 355:
-#line 2587 "MachineIndependent/glslang.y"
- {
+#line 2529 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
}
-#line 8063 "MachineIndependent/glslang_tab.cpp"
+#line 7968 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 356:
-#line 2593 "MachineIndependent/glslang.y"
- {
+#line 2535 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
}
-#line 8074 "MachineIndependent/glslang_tab.cpp"
+#line 7979 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 357:
-#line 2599 "MachineIndependent/glslang.y"
- {
+#line 2541 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
}
-#line 8085 "MachineIndependent/glslang_tab.cpp"
+#line 7990 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 358:
-#line 2605 "MachineIndependent/glslang.y"
- {
+#line 2547 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
}
-#line 8096 "MachineIndependent/glslang_tab.cpp"
+#line 8001 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 359:
-#line 2611 "MachineIndependent/glslang.y"
- {
+#line 2553 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
}
-#line 8107 "MachineIndependent/glslang_tab.cpp"
+#line 8012 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 360:
-#line 2617 "MachineIndependent/glslang.y"
- {
+#line 2559 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
}
-#line 8118 "MachineIndependent/glslang_tab.cpp"
+#line 8023 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 361:
-#line 2623 "MachineIndependent/glslang.y"
- {
+#line 2565 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D);
}
-#line 8128 "MachineIndependent/glslang_tab.cpp"
+#line 8033 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 362:
-#line 2630 "MachineIndependent/glslang.y"
- {
+#line 2571 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D);
}
-#line 8138 "MachineIndependent/glslang_tab.cpp"
+#line 8043 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 363:
-#line 2635 "MachineIndependent/glslang.y"
- {
+#line 2576 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd3D);
}
-#line 8148 "MachineIndependent/glslang_tab.cpp"
+#line 8053 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 364:
-#line 2640 "MachineIndependent/glslang.y"
- {
+#line 2581 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube);
}
-#line 8158 "MachineIndependent/glslang_tab.cpp"
+#line 8063 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 365:
-#line 2645 "MachineIndependent/glslang.y"
- {
+#line 2586 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
}
-#line 8168 "MachineIndependent/glslang_tab.cpp"
+#line 8073 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 366:
-#line 2650 "MachineIndependent/glslang.y"
- {
+#line 2591 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D);
}
-#line 8178 "MachineIndependent/glslang_tab.cpp"
+#line 8083 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 367:
-#line 2655 "MachineIndependent/glslang.y"
- {
+#line 2596 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd3D);
}
-#line 8188 "MachineIndependent/glslang_tab.cpp"
+#line 8093 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 368:
-#line 2660 "MachineIndependent/glslang.y"
- {
+#line 2601 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube);
}
-#line 8198 "MachineIndependent/glslang_tab.cpp"
+#line 8103 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 369:
-#line 2666 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
- }
-#line 8208 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 370:
-#line 2671 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
- }
-#line 8218 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 371:
-#line 2676 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
- }
-#line 8228 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 372:
-#line 2681 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
- }
-#line 8238 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 373:
-#line 2686 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
- }
-#line 8248 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 374:
-#line 2692 "MachineIndependent/glslang.y"
- {
+#line 2607 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
}
-#line 8258 "MachineIndependent/glslang_tab.cpp"
+#line 8113 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 375:
-#line 2697 "MachineIndependent/glslang.y"
- {
+ case 370:
+#line 2612 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
+ }
+#line 8123 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 371:
+#line 2617 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D);
}
-#line 8268 "MachineIndependent/glslang_tab.cpp"
+#line 8133 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 376:
-#line 2702 "MachineIndependent/glslang.y"
- {
+ case 372:
+#line 2622 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
}
-#line 8278 "MachineIndependent/glslang_tab.cpp"
+#line 8143 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 373:
+#line 2627 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
+ }
+#line 8153 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 374:
+#line 2632 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
+ }
+#line 8163 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 375:
+#line 2637 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
+ }
+#line 8173 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 376:
+#line 2642 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
+ }
+#line 8183 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 377:
-#line 2709 "MachineIndependent/glslang.y"
- {
+#line 2648 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
}
-#line 8288 "MachineIndependent/glslang_tab.cpp"
+#line 8193 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 378:
-#line 2714 "MachineIndependent/glslang.y"
- {
+#line 2653 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
}
-#line 8298 "MachineIndependent/glslang_tab.cpp"
+#line 8203 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 379:
-#line 2719 "MachineIndependent/glslang.y"
- {
+#line 2658 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
}
-#line 8308 "MachineIndependent/glslang_tab.cpp"
+#line 8213 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 380:
-#line 2724 "MachineIndependent/glslang.y"
- {
+#line 2663 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
}
-#line 8318 "MachineIndependent/glslang_tab.cpp"
+#line 8223 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 381:
-#line 2729 "MachineIndependent/glslang.y"
- {
+#line 2668 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
}
-#line 8328 "MachineIndependent/glslang_tab.cpp"
+#line 8233 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 382:
-#line 2734 "MachineIndependent/glslang.y"
- {
+#line 2673 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
}
-#line 8338 "MachineIndependent/glslang_tab.cpp"
+#line 8243 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 383:
-#line 2739 "MachineIndependent/glslang.y"
- {
+#line 2678 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
}
-#line 8348 "MachineIndependent/glslang_tab.cpp"
+#line 8253 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 384:
-#line 2744 "MachineIndependent/glslang.y"
- {
+#line 2683 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
}
-#line 8358 "MachineIndependent/glslang_tab.cpp"
+#line 8263 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 385:
-#line 2749 "MachineIndependent/glslang.y"
- {
+#line 2688 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
}
-#line 8368 "MachineIndependent/glslang_tab.cpp"
+#line 8273 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 386:
-#line 2754 "MachineIndependent/glslang.y"
- {
+#line 2693 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
}
-#line 8378 "MachineIndependent/glslang_tab.cpp"
+#line 8283 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 387:
-#line 2759 "MachineIndependent/glslang.y"
- {
+#line 2698 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
}
-#line 8388 "MachineIndependent/glslang_tab.cpp"
+#line 8293 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 388:
-#line 2764 "MachineIndependent/glslang.y"
- {
+#line 2703 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
}
-#line 8398 "MachineIndependent/glslang_tab.cpp"
+#line 8303 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 389:
-#line 2769 "MachineIndependent/glslang.y"
- {
+#line 2708 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
}
-#line 8408 "MachineIndependent/glslang_tab.cpp"
+#line 8313 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 390:
-#line 2774 "MachineIndependent/glslang.y"
- {
+#line 2713 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(false);
}
-#line 8418 "MachineIndependent/glslang_tab.cpp"
+#line 8323 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 391:
-#line 2779 "MachineIndependent/glslang.y"
- {
+#line 2718 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(true);
}
-#line 8428 "MachineIndependent/glslang_tab.cpp"
+#line 8333 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 392:
-#line 2785 "MachineIndependent/glslang.y"
- {
+#line 2724 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect);
}
-#line 8438 "MachineIndependent/glslang_tab.cpp"
+#line 8343 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 393:
-#line 2790 "MachineIndependent/glslang.y"
- {
+#line 2729 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
}
-#line 8448 "MachineIndependent/glslang_tab.cpp"
+#line 8353 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 394:
-#line 2795 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdRect);
- }
-#line 8458 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 395:
-#line 2800 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdRect);
- }
-#line 8468 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 396:
-#line 2805 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
- }
-#line 8478 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 397:
-#line 2810 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
- }
-#line 8488 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 398:
-#line 2815 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
- }
-#line 8498 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 399:
-#line 2820 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
- }
-#line 8508 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 400:
-#line 2825 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
- }
-#line 8518 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 401:
-#line 2830 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
- }
-#line 8528 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 402:
-#line 2835 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
- }
-#line 8538 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 403:
-#line 2840 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
- }
-#line 8548 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 404:
-#line 2845 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
- }
-#line 8558 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 405:
-#line 2851 "MachineIndependent/glslang.y"
- {
+#line 2734 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
}
-#line 8569 "MachineIndependent/glslang_tab.cpp"
+#line 8364 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 406:
-#line 2857 "MachineIndependent/glslang.y"
- {
+ case 395:
+#line 2740 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
}
-#line 8580 "MachineIndependent/glslang_tab.cpp"
+#line 8375 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 407:
-#line 2863 "MachineIndependent/glslang.y"
- {
+ case 396:
+#line 2746 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtInt, EsdRect);
+ }
+#line 8385 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 397:
+#line 2751 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtUint, EsdRect);
+ }
+#line 8395 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 398:
+#line 2756 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
+ }
+#line 8405 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 399:
+#line 2761 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
}
-#line 8591 "MachineIndependent/glslang_tab.cpp"
+#line 8416 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 408:
-#line 2869 "MachineIndependent/glslang.y"
- {
+ case 400:
+#line 2767 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
+ }
+#line 8426 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 401:
+#line 2772 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
+ }
+#line 8436 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 402:
+#line 2777 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
+ }
+#line 8446 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 403:
+#line 2782 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
}
-#line 8602 "MachineIndependent/glslang_tab.cpp"
+#line 8457 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 409:
-#line 2875 "MachineIndependent/glslang.y"
- {
+ case 404:
+#line 2788 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
+ }
+#line 8467 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 405:
+#line 2793 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
+ }
+#line 8477 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 406:
+#line 2798 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
+ }
+#line 8487 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 407:
+#line 2803 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
}
-#line 8613 "MachineIndependent/glslang_tab.cpp"
+#line 8498 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 408:
+#line 2809 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
+ }
+#line 8508 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 409:
+#line 2814 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
+ }
+#line 8518 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 410:
-#line 2881 "MachineIndependent/glslang.y"
- {
+#line 2819 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
}
-#line 8623 "MachineIndependent/glslang_tab.cpp"
+#line 8528 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 411:
-#line 2886 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
- }
-#line 8633 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 412:
-#line 2891 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
- }
-#line 8643 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 413:
-#line 2896 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
- }
-#line 8653 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 414:
-#line 2901 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
- }
-#line 8663 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 415:
-#line 2906 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
- }
-#line 8673 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 416:
-#line 2912 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
- }
-#line 8683 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 417:
-#line 2917 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
- }
-#line 8693 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 418:
-#line 2922 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
- }
-#line 8703 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 419:
-#line 2927 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
- }
-#line 8713 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 420:
-#line 2932 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
- }
-#line 8723 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 421:
-#line 2937 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
- }
-#line 8733 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 422:
-#line 2942 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
- }
-#line 8743 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 423:
-#line 2947 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
- }
-#line 8753 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 424:
-#line 2952 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
- }
-#line 8763 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 425:
-#line 2957 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
- }
-#line 8773 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 426:
-#line 2962 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
- }
-#line 8783 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 427:
-#line 2967 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
- }
-#line 8793 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 428:
-#line 2973 "MachineIndependent/glslang.y"
- {
+#line 2824 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
}
-#line 8804 "MachineIndependent/glslang_tab.cpp"
+#line 8539 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 429:
-#line 2979 "MachineIndependent/glslang.y"
- {
+ case 412:
+#line 2830 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
}
-#line 8815 "MachineIndependent/glslang_tab.cpp"
+#line 8550 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 430:
-#line 2985 "MachineIndependent/glslang.y"
- {
+ case 413:
+#line 2836 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
}
-#line 8826 "MachineIndependent/glslang_tab.cpp"
+#line 8561 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 431:
-#line 2991 "MachineIndependent/glslang.y"
- {
+ case 414:
+#line 2842 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
}
-#line 8837 "MachineIndependent/glslang_tab.cpp"
+#line 8572 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 432:
-#line 2997 "MachineIndependent/glslang.y"
- {
+ case 415:
+#line 2848 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
+ }
+#line 8582 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 416:
+#line 2853 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
}
-#line 8848 "MachineIndependent/glslang_tab.cpp"
+#line 8593 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 433:
-#line 3003 "MachineIndependent/glslang.y"
- {
+ case 417:
+#line 2859 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
}
-#line 8859 "MachineIndependent/glslang_tab.cpp"
+#line 8604 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 434:
-#line 3009 "MachineIndependent/glslang.y"
- {
+ case 418:
+#line 2865 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
}
-#line 8870 "MachineIndependent/glslang_tab.cpp"
+#line 8615 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 435:
-#line 3015 "MachineIndependent/glslang.y"
- {
+ case 419:
+#line 2871 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
+ }
+#line 8625 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 420:
+#line 2876 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
+ }
+#line 8635 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 421:
+#line 2881 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
+ }
+#line 8645 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 422:
+#line 2886 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
+ }
+#line 8655 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 423:
+#line 2891 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
+ }
+#line 8665 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 424:
+#line 2896 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
}
-#line 8881 "MachineIndependent/glslang_tab.cpp"
+#line 8676 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 436:
-#line 3021 "MachineIndependent/glslang.y"
- {
+ case 425:
+#line 2902 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
+ }
+#line 8686 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 426:
+#line 2907 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
+ }
+#line 8696 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 427:
+#line 2912 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
+ }
+#line 8706 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 428:
+#line 2917 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
}
-#line 8892 "MachineIndependent/glslang_tab.cpp"
+#line 8717 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 437:
-#line 3027 "MachineIndependent/glslang.y"
- {
+ case 429:
+#line 2923 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
+ }
+#line 8727 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 430:
+#line 2928 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
+ }
+#line 8737 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 431:
+#line 2933 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
+ }
+#line 8747 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 432:
+#line 2938 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
}
-#line 8903 "MachineIndependent/glslang_tab.cpp"
+#line 8758 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 438:
-#line 3033 "MachineIndependent/glslang.y"
- {
+ case 433:
+#line 2944 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
+ }
+#line 8768 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 434:
+#line 2949 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
+ }
+#line 8778 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 435:
+#line 2954 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
+ }
+#line 8788 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 436:
+#line 2959 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
}
-#line 8914 "MachineIndependent/glslang_tab.cpp"
+#line 8799 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 437:
+#line 2965 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
+ }
+#line 8809 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 438:
+#line 2970 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
+ }
+#line 8819 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 439:
-#line 3039 "MachineIndependent/glslang.y"
- {
+#line 2975 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
}
-#line 8924 "MachineIndependent/glslang_tab.cpp"
+#line 8829 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 440:
-#line 3044 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
- }
-#line 8934 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 441:
-#line 3049 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
- }
-#line 8944 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 442:
-#line 3055 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
- }
-#line 8954 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 443:
-#line 3060 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
- }
-#line 8964 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 444:
-#line 3065 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
- }
-#line 8974 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 445:
-#line 3070 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
- }
-#line 8984 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 446:
-#line 3075 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
- }
-#line 8994 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 447:
-#line 3080 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
- }
-#line 9004 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 448:
-#line 3085 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
- }
-#line 9014 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 449:
-#line 3090 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
- }
-#line 9024 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 450:
-#line 3095 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
- }
-#line 9034 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 451:
-#line 3100 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
- }
-#line 9044 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 452:
-#line 3105 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
- }
-#line 9054 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 453:
-#line 3110 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
- }
-#line 9064 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 454:
-#line 3115 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
- }
-#line 9074 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 455:
-#line 3120 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
- }
-#line 9084 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 456:
-#line 3125 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
- }
-#line 9094 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 457:
-#line 3130 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
- }
-#line 9104 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 458:
-#line 3135 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
- }
-#line 9114 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 459:
-#line 3140 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
- }
-#line 9124 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 460:
-#line 3145 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
- }
-#line 9134 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 461:
-#line 3150 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
- }
-#line 9144 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 462:
-#line 3155 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
- }
-#line 9154 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 463:
-#line 3160 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
- }
-#line 9164 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 464:
-#line 3165 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
- }
-#line 9174 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 465:
-#line 3170 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
- }
-#line 9184 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 466:
-#line 3175 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
- }
-#line 9194 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 467:
-#line 3180 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
- }
-#line 9204 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 468:
-#line 3185 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
- }
-#line 9214 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 469:
-#line 3190 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
- }
-#line 9224 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 470:
-#line 3195 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
- }
-#line 9234 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 471:
-#line 3200 "MachineIndependent/glslang.y"
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtSampler;
- (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
- }
-#line 9244 "MachineIndependent/glslang_tab.cpp"
- break;
-
- case 472:
-#line 3206 "MachineIndependent/glslang.y"
- {
+#line 2980 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
}
-#line 9255 "MachineIndependent/glslang_tab.cpp"
+#line 8840 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 473:
-#line 3212 "MachineIndependent/glslang.y"
- {
+ case 441:
+#line 2986 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
+ }
+#line 8850 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 442:
+#line 2991 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
+ }
+#line 8860 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 443:
+#line 2996 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
+ }
+#line 8870 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 444:
+#line 3001 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
}
-#line 9266 "MachineIndependent/glslang_tab.cpp"
+#line 8881 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 474:
-#line 3218 "MachineIndependent/glslang.y"
- {
+ case 445:
+#line 3007 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
+ }
+#line 8891 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 446:
+#line 3012 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
+ }
+#line 8901 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 447:
+#line 3017 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
+ }
+#line 8911 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 448:
+#line 3022 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
}
-#line 9277 "MachineIndependent/glslang_tab.cpp"
+#line 8922 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 475:
-#line 3224 "MachineIndependent/glslang.y"
- {
+ case 449:
+#line 3028 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
+ }
+#line 8932 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 450:
+#line 3033 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
+ }
+#line 8942 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 451:
+#line 3038 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
+ }
+#line 8952 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 452:
+#line 3043 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
}
-#line 9288 "MachineIndependent/glslang_tab.cpp"
+#line 8963 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 476:
-#line 3230 "MachineIndependent/glslang.y"
- {
+ case 453:
+#line 3049 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
+ }
+#line 8973 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 454:
+#line 3054 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
+ }
+#line 8983 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 455:
+#line 3059 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
+ }
+#line 8993 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 456:
+#line 3064 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
}
-#line 9299 "MachineIndependent/glslang_tab.cpp"
+#line 9004 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 477:
-#line 3236 "MachineIndependent/glslang.y"
- {
+ case 457:
+#line 3070 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
+ }
+#line 9014 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 458:
+#line 3075 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
+ }
+#line 9024 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 459:
+#line 3080 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
+ }
+#line 9034 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 460:
+#line 3085 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
}
-#line 9310 "MachineIndependent/glslang_tab.cpp"
+#line 9045 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 478:
-#line 3242 "MachineIndependent/glslang.y"
- {
+ case 461:
+#line 3091 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
+ }
+#line 9055 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 462:
+#line 3096 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
+ }
+#line 9065 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 463:
+#line 3101 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
+ }
+#line 9075 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 464:
+#line 3106 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
}
-#line 9321 "MachineIndependent/glslang_tab.cpp"
+#line 9086 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 479:
-#line 3248 "MachineIndependent/glslang.y"
- {
+ case 465:
+#line 3112 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
+ }
+#line 9096 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 466:
+#line 3117 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
+ }
+#line 9106 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 467:
+#line 3122 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
+ }
+#line 9116 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 468:
+#line 3127 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
}
-#line 9332 "MachineIndependent/glslang_tab.cpp"
+#line 9127 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 480:
-#line 3254 "MachineIndependent/glslang.y"
- {
+ case 469:
+#line 3133 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
+ }
+#line 9137 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 470:
+#line 3138 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
+ }
+#line 9147 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 471:
+#line 3143 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
+ }
+#line 9157 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 472:
+#line 3148 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
}
-#line 9343 "MachineIndependent/glslang_tab.cpp"
+#line 9168 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 481:
-#line 3260 "MachineIndependent/glslang.y"
- {
+ case 473:
+#line 3154 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
+ }
+#line 9178 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 474:
+#line 3159 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
+ }
+#line 9188 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 475:
+#line 3164 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
+ }
+#line 9198 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 476:
+#line 3169 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
}
-#line 9354 "MachineIndependent/glslang_tab.cpp"
+#line 9209 "glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 482:
-#line 3266 "MachineIndependent/glslang.y"
- {
+ case 477:
+#line 3175 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
+ }
+#line 9219 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 478:
+#line 3180 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
+ }
+#line 9229 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 479:
+#line 3185 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
+ }
+#line 9239 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 480:
+#line 3190 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
}
-#line 9365 "MachineIndependent/glslang_tab.cpp"
+#line 9250 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 481:
+#line 3196 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
+ }
+#line 9260 "glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 482:
+#line 3201 "glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtSampler;
+ (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
+ }
+#line 9270 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 483:
-#line 3273 "MachineIndependent/glslang.y"
- { // GL_OES_EGL_image_external
+#line 3206 "glslang.y" /* yacc.c:1646 */
+ { // GL_OES_EGL_image_external
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.external = true;
}
-#line 9376 "MachineIndependent/glslang_tab.cpp"
+#line 9281 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 484:
-#line 3279 "MachineIndependent/glslang.y"
- { // GL_EXT_YUV_target
+#line 3212 "glslang.y" /* yacc.c:1646 */
+ { // GL_EXT_YUV_target
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.yuv = true;
}
-#line 9387 "MachineIndependent/glslang_tab.cpp"
+#line 9292 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 485:
-#line 3286 "MachineIndependent/glslang.y"
- {
+#line 3218 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat);
}
-#line 9398 "MachineIndependent/glslang_tab.cpp"
+#line 9303 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 486:
-#line 3292 "MachineIndependent/glslang.y"
- {
+#line 3224 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat, true);
}
-#line 9409 "MachineIndependent/glslang_tab.cpp"
+#line 9314 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 487:
-#line 3298 "MachineIndependent/glslang.y"
- {
+#line 3230 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16);
}
-#line 9421 "MachineIndependent/glslang_tab.cpp"
+#line 9326 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 488:
-#line 3305 "MachineIndependent/glslang.y"
- {
+#line 3237 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
}
-#line 9433 "MachineIndependent/glslang_tab.cpp"
+#line 9338 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 489:
-#line 3312 "MachineIndependent/glslang.y"
- {
+#line 3244 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt);
}
-#line 9444 "MachineIndependent/glslang_tab.cpp"
+#line 9349 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 490:
-#line 3318 "MachineIndependent/glslang.y"
- {
+#line 3250 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt, true);
}
-#line 9455 "MachineIndependent/glslang_tab.cpp"
+#line 9360 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 491:
-#line 3324 "MachineIndependent/glslang.y"
- {
+#line 3256 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint);
}
-#line 9466 "MachineIndependent/glslang_tab.cpp"
+#line 9371 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 492:
-#line 3330 "MachineIndependent/glslang.y"
- {
+#line 3262 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint, true);
}
-#line 9477 "MachineIndependent/glslang_tab.cpp"
+#line 9382 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 493:
-#line 3336 "MachineIndependent/glslang.y"
- {
+#line 3268 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).coopmat = true;
}
-#line 9488 "MachineIndependent/glslang_tab.cpp"
+#line 9393 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 494:
-#line 3342 "MachineIndependent/glslang.y"
- {
+#line 3274 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
(yyval.interm.type).coopmat = true;
}
-#line 9499 "MachineIndependent/glslang_tab.cpp"
+#line 9404 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 495:
-#line 3348 "MachineIndependent/glslang.y"
- {
+#line 3280 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).coopmat = true;
}
-#line 9510 "MachineIndependent/glslang_tab.cpp"
+#line 9415 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 496:
-#line 3356 "MachineIndependent/glslang.y"
- {
+#line 3287 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.type) = (yyvsp[0].interm.type);
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
}
-#line 9520 "MachineIndependent/glslang_tab.cpp"
+#line 9425 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 497:
-#line 3361 "MachineIndependent/glslang.y"
- {
+#line 3292 "glslang.y" /* yacc.c:1646 */
+ {
//
// This is for user defined type names. The lexical phase looked up the
// type.
@@ -9534,48 +9439,48 @@
} else
parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
}
-#line 9538 "MachineIndependent/glslang_tab.cpp"
+#line 9443 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 498:
-#line 3377 "MachineIndependent/glslang.y"
- {
+#line 3308 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
}
-#line 9548 "MachineIndependent/glslang_tab.cpp"
+#line 9453 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 499:
-#line 3382 "MachineIndependent/glslang.y"
- {
+#line 3313 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
}
-#line 9558 "MachineIndependent/glslang_tab.cpp"
+#line 9463 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 500:
-#line 3387 "MachineIndependent/glslang.y"
- {
+#line 3318 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
}
-#line 9568 "MachineIndependent/glslang_tab.cpp"
+#line 9473 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 501:
-#line 3395 "MachineIndependent/glslang.y"
- { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 9574 "MachineIndependent/glslang_tab.cpp"
+#line 3326 "glslang.y" /* yacc.c:1646 */
+ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
+#line 9479 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 502:
-#line 3395 "MachineIndependent/glslang.y"
- {
+#line 3326 "glslang.y" /* yacc.c:1646 */
+ {
TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
@@ -9586,38 +9491,38 @@
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 9590 "MachineIndependent/glslang_tab.cpp"
+#line 9495 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 503:
-#line 3406 "MachineIndependent/glslang.y"
- { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 9596 "MachineIndependent/glslang_tab.cpp"
+#line 3337 "glslang.y" /* yacc.c:1646 */
+ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
+#line 9501 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 504:
-#line 3406 "MachineIndependent/glslang.y"
- {
+#line 3337 "glslang.y" /* yacc.c:1646 */
+ {
TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
(yyval.interm.type).init((yyvsp[-4].lex).loc);
(yyval.interm.type).basicType = EbtStruct;
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 9608 "MachineIndependent/glslang_tab.cpp"
+#line 9513 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 505:
-#line 3416 "MachineIndependent/glslang.y"
- {
+#line 3347 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeList) = (yyvsp[0].interm.typeList);
}
-#line 9616 "MachineIndependent/glslang_tab.cpp"
+#line 9521 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 506:
-#line 3419 "MachineIndependent/glslang.y"
- {
+#line 3350 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
@@ -9627,12 +9532,12 @@
(yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
}
}
-#line 9631 "MachineIndependent/glslang_tab.cpp"
+#line 9536 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 507:
-#line 3432 "MachineIndependent/glslang.y"
- {
+#line 3363 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
@@ -9654,12 +9559,12 @@
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 9658 "MachineIndependent/glslang_tab.cpp"
+#line 9563 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 508:
-#line 3454 "MachineIndependent/glslang.y"
- {
+#line 3385 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
@@ -9683,39 +9588,39 @@
(*(yyval.interm.typeList))[i].type->shallowCopy(type);
}
}
-#line 9687 "MachineIndependent/glslang_tab.cpp"
+#line 9592 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 509:
-#line 3481 "MachineIndependent/glslang.y"
- {
+#line 3412 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeList) = new TTypeList;
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 9696 "MachineIndependent/glslang_tab.cpp"
+#line 9601 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 510:
-#line 3485 "MachineIndependent/glslang.y"
- {
+#line 3416 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 9704 "MachineIndependent/glslang_tab.cpp"
+#line 9609 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 511:
-#line 3491 "MachineIndependent/glslang.y"
- {
+#line 3422 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.typeLine).type = new TType(EbtVoid);
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
}
-#line 9714 "MachineIndependent/glslang_tab.cpp"
+#line 9619 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 512:
-#line 3496 "MachineIndependent/glslang.y"
- {
+#line 3427 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
(yyval.interm.typeLine).type = new TType(EbtVoid);
@@ -9723,236 +9628,236 @@
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
(yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
}
-#line 9727 "MachineIndependent/glslang_tab.cpp"
+#line 9632 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 513:
-#line 3507 "MachineIndependent/glslang.y"
- {
+#line 3438 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 9735 "MachineIndependent/glslang_tab.cpp"
+#line 9640 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 514:
-#line 3511 "MachineIndependent/glslang.y"
- {
+#line 3442 "glslang.y" /* yacc.c:1646 */
+ {
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
}
-#line 9746 "MachineIndependent/glslang_tab.cpp"
+#line 9651 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 515:
-#line 3517 "MachineIndependent/glslang.y"
- {
+#line 3448 "glslang.y" /* yacc.c:1646 */
+ {
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 9757 "MachineIndependent/glslang_tab.cpp"
+#line 9662 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 516:
-#line 3528 "MachineIndependent/glslang.y"
- {
+#line 3459 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
}
-#line 9765 "MachineIndependent/glslang_tab.cpp"
+#line 9670 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 517:
-#line 3531 "MachineIndependent/glslang.y"
- {
+#line 3462 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
}
-#line 9773 "MachineIndependent/glslang_tab.cpp"
+#line 9678 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 518:
-#line 3538 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9779 "MachineIndependent/glslang_tab.cpp"
+#line 3469 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9684 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 519:
-#line 3542 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9785 "MachineIndependent/glslang_tab.cpp"
+#line 3473 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9690 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 520:
-#line 3543 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9791 "MachineIndependent/glslang_tab.cpp"
+#line 3474 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9696 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 521:
-#line 3549 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9797 "MachineIndependent/glslang_tab.cpp"
+#line 3480 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9702 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 522:
-#line 3550 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9803 "MachineIndependent/glslang_tab.cpp"
+#line 3481 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9708 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 523:
-#line 3551 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9809 "MachineIndependent/glslang_tab.cpp"
+#line 3482 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9714 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 524:
-#line 3552 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9815 "MachineIndependent/glslang_tab.cpp"
+#line 3483 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9720 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 525:
-#line 3553 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9821 "MachineIndependent/glslang_tab.cpp"
+#line 3484 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9726 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 526:
-#line 3554 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9827 "MachineIndependent/glslang_tab.cpp"
+#line 3485 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9732 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 527:
-#line 3555 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9833 "MachineIndependent/glslang_tab.cpp"
+#line 3486 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9738 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 528:
-#line 3558 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9839 "MachineIndependent/glslang_tab.cpp"
+#line 3488 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9744 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 529:
-#line 3566 "MachineIndependent/glslang.y"
- {
+#line 3494 "glslang.y" /* yacc.c:1646 */
+ {
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 9849 "MachineIndependent/glslang_tab.cpp"
+#line 9754 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 530:
-#line 3576 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = 0; }
-#line 9855 "MachineIndependent/glslang_tab.cpp"
+#line 3503 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = 0; }
+#line 9760 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 531:
-#line 3577 "MachineIndependent/glslang.y"
- {
+#line 3504 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
}
-#line 9864 "MachineIndependent/glslang_tab.cpp"
+#line 9769 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 532:
-#line 3581 "MachineIndependent/glslang.y"
- {
+#line 3508 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
}
-#line 9873 "MachineIndependent/glslang_tab.cpp"
+#line 9778 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 533:
-#line 3585 "MachineIndependent/glslang.y"
- {
+#line 3512 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
(yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
}
-#line 9883 "MachineIndependent/glslang_tab.cpp"
+#line 9788 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 534:
-#line 3593 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9889 "MachineIndependent/glslang_tab.cpp"
+#line 3520 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9794 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 535:
-#line 3594 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 9895 "MachineIndependent/glslang_tab.cpp"
+#line 3521 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 9800 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 536:
-#line 3598 "MachineIndependent/glslang.y"
- {
+#line 3525 "glslang.y" /* yacc.c:1646 */
+ {
++parseContext.controlFlowNestingLevel;
}
-#line 9903 "MachineIndependent/glslang_tab.cpp"
+#line 9808 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 537:
-#line 3601 "MachineIndependent/glslang.y"
- {
+#line 3528 "glslang.y" /* yacc.c:1646 */
+ {
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 9912 "MachineIndependent/glslang_tab.cpp"
+#line 9817 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 538:
-#line 3605 "MachineIndependent/glslang.y"
- {
+#line 3532 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 9922 "MachineIndependent/glslang_tab.cpp"
+#line 9827 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 539:
-#line 3610 "MachineIndependent/glslang.y"
- {
+#line 3537 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 9933 "MachineIndependent/glslang_tab.cpp"
+#line 9838 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 540:
-#line 3619 "MachineIndependent/glslang.y"
- {
+#line 3546 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = 0;
}
-#line 9941 "MachineIndependent/glslang_tab.cpp"
+#line 9846 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 541:
-#line 3622 "MachineIndependent/glslang.y"
- {
+#line 3549 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
(yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
}
-#line 9951 "MachineIndependent/glslang_tab.cpp"
+#line 9856 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 542:
-#line 3630 "MachineIndependent/glslang.y"
- {
+#line 3557 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -9960,12 +9865,12 @@
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
}
}
-#line 9964 "MachineIndependent/glslang_tab.cpp"
+#line 9869 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 543:
-#line 3638 "MachineIndependent/glslang.y"
- {
+#line 3565 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
@@ -9973,77 +9878,77 @@
} else
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
}
-#line 9977 "MachineIndependent/glslang_tab.cpp"
+#line 9882 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 544:
-#line 3649 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = 0; }
-#line 9983 "MachineIndependent/glslang_tab.cpp"
+#line 3576 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = 0; }
+#line 9888 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 545:
-#line 3650 "MachineIndependent/glslang.y"
- { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 9989 "MachineIndependent/glslang_tab.cpp"
+#line 3577 "glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
+#line 9894 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 546:
-#line 3654 "MachineIndependent/glslang.y"
- {
+#line 3581 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 9997 "MachineIndependent/glslang_tab.cpp"
+#line 9902 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 547:
-#line 3658 "MachineIndependent/glslang.y"
- {
+#line 3585 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10006 "MachineIndependent/glslang_tab.cpp"
+#line 9911 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 548:
-#line 3665 "MachineIndependent/glslang.y"
- {
+#line 3592 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
}
-#line 10015 "MachineIndependent/glslang_tab.cpp"
+#line 9920 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 549:
-#line 3672 "MachineIndependent/glslang.y"
- {
+#line 3599 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
}
-#line 10024 "MachineIndependent/glslang_tab.cpp"
+#line 9929 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 550:
-#line 3676 "MachineIndependent/glslang.y"
- {
+#line 3603 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10033 "MachineIndependent/glslang_tab.cpp"
+#line 9938 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 551:
-#line 3684 "MachineIndependent/glslang.y"
- {
+#line 3611 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
}
-#line 10042 "MachineIndependent/glslang_tab.cpp"
+#line 9947 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 552:
-#line 3688 "MachineIndependent/glslang.y"
- {
+#line 3615 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
TType type((yyvsp[-3].interm.type));
@@ -10053,29 +9958,29 @@
else
(yyval.interm.intermTypedNode) = 0;
}
-#line 10057 "MachineIndependent/glslang_tab.cpp"
+#line 9962 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 553:
-#line 3701 "MachineIndependent/glslang.y"
- {
+#line 3628 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10065 "MachineIndependent/glslang_tab.cpp"
+#line 9970 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 554:
-#line 3705 "MachineIndependent/glslang.y"
- {
+#line 3632 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10074 "MachineIndependent/glslang_tab.cpp"
+#line 9979 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 555:
-#line 3712 "MachineIndependent/glslang.y"
- {
+#line 3639 "glslang.y" /* yacc.c:1646 */
+ {
// start new switch sequence on the switch stack
++parseContext.controlFlowNestingLevel;
++parseContext.statementNestingLevel;
@@ -10083,12 +9988,12 @@
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
parseContext.symbolTable.push();
}
-#line 10087 "MachineIndependent/glslang_tab.cpp"
+#line 9992 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 556:
-#line 3720 "MachineIndependent/glslang.y"
- {
+#line 3647 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
delete parseContext.switchSequenceStack.back();
parseContext.switchSequenceStack.pop_back();
@@ -10097,28 +10002,28 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10101 "MachineIndependent/glslang_tab.cpp"
+#line 10006 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 557:
-#line 3732 "MachineIndependent/glslang.y"
- {
+#line 3659 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = 0;
}
-#line 10109 "MachineIndependent/glslang_tab.cpp"
+#line 10014 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 558:
-#line 3735 "MachineIndependent/glslang.y"
- {
+#line 3662 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10117 "MachineIndependent/glslang_tab.cpp"
+#line 10022 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 559:
-#line 3741 "MachineIndependent/glslang.y"
- {
+#line 3668 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
@@ -10130,12 +10035,12 @@
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
}
}
-#line 10134 "MachineIndependent/glslang_tab.cpp"
+#line 10039 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 560:
-#line 3753 "MachineIndependent/glslang.y"
- {
+#line 3680 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
@@ -10144,29 +10049,29 @@
else
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
}
-#line 10148 "MachineIndependent/glslang_tab.cpp"
+#line 10053 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 561:
-#line 3765 "MachineIndependent/glslang.y"
- {
+#line 3692 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10156 "MachineIndependent/glslang_tab.cpp"
+#line 10061 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 562:
-#line 3769 "MachineIndependent/glslang.y"
- {
+#line 3696 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10165 "MachineIndependent/glslang_tab.cpp"
+#line 10070 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 563:
-#line 3776 "MachineIndependent/glslang.y"
- {
+#line 3703 "glslang.y" /* yacc.c:1646 */
+ {
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
parseContext.symbolTable.push();
@@ -10174,34 +10079,34 @@
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10178 "MachineIndependent/glslang_tab.cpp"
+#line 10083 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 564:
-#line 3784 "MachineIndependent/glslang.y"
- {
+#line 3711 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
--parseContext.loopNestingLevel;
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10190 "MachineIndependent/glslang_tab.cpp"
+#line 10095 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 565:
-#line 3791 "MachineIndependent/glslang.y"
- {
+#line 3718 "glslang.y" /* yacc.c:1646 */
+ {
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10200 "MachineIndependent/glslang_tab.cpp"
+#line 10105 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 566:
-#line 3796 "MachineIndependent/glslang.y"
- {
+#line 3723 "glslang.y" /* yacc.c:1646 */
+ {
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -10212,23 +10117,23 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10216 "MachineIndependent/glslang_tab.cpp"
+#line 10121 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 567:
-#line 3807 "MachineIndependent/glslang.y"
- {
+#line 3734 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.push();
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 10227 "MachineIndependent/glslang_tab.cpp"
+#line 10132 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 568:
-#line 3813 "MachineIndependent/glslang.y"
- {
+#line 3740 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
@@ -10240,166 +10145,166 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 10244 "MachineIndependent/glslang_tab.cpp"
+#line 10149 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 569:
-#line 3828 "MachineIndependent/glslang.y"
- {
+#line 3755 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10252 "MachineIndependent/glslang_tab.cpp"
+#line 10157 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 570:
-#line 3831 "MachineIndependent/glslang.y"
- {
+#line 3758 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10260 "MachineIndependent/glslang_tab.cpp"
+#line 10165 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 571:
-#line 3837 "MachineIndependent/glslang.y"
- {
+#line 3764 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 10268 "MachineIndependent/glslang_tab.cpp"
+#line 10173 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 572:
-#line 3840 "MachineIndependent/glslang.y"
- {
+#line 3767 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermTypedNode) = 0;
}
-#line 10276 "MachineIndependent/glslang_tab.cpp"
+#line 10181 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 573:
-#line 3846 "MachineIndependent/glslang.y"
- {
+#line 3773 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 10285 "MachineIndependent/glslang_tab.cpp"
+#line 10190 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 574:
-#line 3850 "MachineIndependent/glslang.y"
- {
+#line 3777 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
}
-#line 10294 "MachineIndependent/glslang_tab.cpp"
+#line 10199 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 575:
-#line 3857 "MachineIndependent/glslang.y"
- {
+#line 3784 "glslang.y" /* yacc.c:1646 */
+ {
if (parseContext.loopNestingLevel <= 0)
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
}
-#line 10304 "MachineIndependent/glslang_tab.cpp"
+#line 10209 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 576:
-#line 3862 "MachineIndependent/glslang.y"
- {
+#line 3789 "glslang.y" /* yacc.c:1646 */
+ {
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
}
-#line 10314 "MachineIndependent/glslang_tab.cpp"
+#line 10219 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 577:
-#line 3867 "MachineIndependent/glslang.y"
- {
+#line 3794 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
if (parseContext.inMain)
parseContext.postEntryPointReturn = true;
}
-#line 10326 "MachineIndependent/glslang_tab.cpp"
+#line 10231 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 578:
-#line 3874 "MachineIndependent/glslang.y"
- {
+#line 3801 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10334 "MachineIndependent/glslang_tab.cpp"
+#line 10239 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 579:
-#line 3877 "MachineIndependent/glslang.y"
- {
+#line 3804 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
}
-#line 10343 "MachineIndependent/glslang_tab.cpp"
+#line 10248 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 580:
-#line 3886 "MachineIndependent/glslang.y"
- {
+#line 3813 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
-#line 10352 "MachineIndependent/glslang_tab.cpp"
+#line 10257 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 581:
-#line 3890 "MachineIndependent/glslang.y"
- {
+#line 3817 "glslang.y" /* yacc.c:1646 */
+ {
if ((yyvsp[0].interm.intermNode) != nullptr) {
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
}
-#line 10363 "MachineIndependent/glslang_tab.cpp"
+#line 10268 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 582:
-#line 3899 "MachineIndependent/glslang.y"
- {
+#line 3826 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10371 "MachineIndependent/glslang_tab.cpp"
+#line 10276 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 583:
-#line 3902 "MachineIndependent/glslang.y"
- {
+#line 3829 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 10379 "MachineIndependent/glslang_tab.cpp"
+#line 10284 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 584:
-#line 3906 "MachineIndependent/glslang.y"
- {
+#line 3833 "glslang.y" /* yacc.c:1646 */
+ {
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
(yyval.interm.intermNode) = nullptr;
}
-#line 10389 "MachineIndependent/glslang_tab.cpp"
+#line 10294 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 585:
-#line 3915 "MachineIndependent/glslang.y"
- {
+#line 3842 "glslang.y" /* yacc.c:1646 */
+ {
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
}
-#line 10398 "MachineIndependent/glslang_tab.cpp"
+#line 10303 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 586:
-#line 3919 "MachineIndependent/glslang.y"
- {
+#line 3846 "glslang.y" /* yacc.c:1646 */
+ {
// May be best done as post process phase on intermediate code
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
@@ -10414,53 +10319,52 @@
(yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
(yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
}
-#line 10418 "MachineIndependent/glslang_tab.cpp"
+#line 10323 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 587:
-#line 3938 "MachineIndependent/glslang.y"
- {
+#line 3865 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
}
-#line 10427 "MachineIndependent/glslang_tab.cpp"
+#line 10332 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 588:
-#line 3944 "MachineIndependent/glslang.y"
- {
+#line 3871 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.attributes) = (yyvsp[0].interm.attributes);
}
-#line 10435 "MachineIndependent/glslang_tab.cpp"
+#line 10340 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 589:
-#line 3947 "MachineIndependent/glslang.y"
- {
+#line 3874 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
}
-#line 10443 "MachineIndependent/glslang_tab.cpp"
+#line 10348 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 590:
-#line 3952 "MachineIndependent/glslang.y"
- {
+#line 3879 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
}
-#line 10451 "MachineIndependent/glslang_tab.cpp"
+#line 10356 "glslang_tab.cpp" /* yacc.c:1646 */
break;
case 591:
-#line 3955 "MachineIndependent/glslang.y"
- {
+#line 3882 "glslang.y" /* yacc.c:1646 */
+ {
(yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
}
-#line 10459 "MachineIndependent/glslang_tab.cpp"
+#line 10364 "glslang_tab.cpp" /* yacc.c:1646 */
break;
-#line 10463 "MachineIndependent/glslang_tab.cpp"
-
+#line 10368 "glslang_tab.cpp" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -10485,13 +10389,14 @@
/* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
- {
- const int yylhs = yyr1[yyn] - YYNTOKENS;
- const int yyi = yypgoto[yylhs] + *yyssp;
- yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
- ? yytable[yyi]
- : yydefgoto[yylhs]);
- }
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
@@ -10523,7 +10428,7 @@
{
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
- yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
if (!yymsg)
{
yymsg = yymsgbuf;
@@ -10574,10 +10479,12 @@
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
- /* Pacify compilers when the user code never invokes YYERROR and the
- label yyerrorlab therefore never appears in user code. */
- if (0)
- YYERROR;
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -10639,7 +10546,6 @@
yyresult = 0;
goto yyreturn;
-
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
@@ -10647,7 +10553,6 @@
yyresult = 1;
goto yyreturn;
-
#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here. |
@@ -10658,10 +10563,6 @@
/* Fall through. */
#endif
-
-/*-----------------------------------------------------.
-| yyreturn -- parsing is finished, return the result. |
-`-----------------------------------------------------*/
yyreturn:
if (yychar != YYEMPTY)
{
@@ -10678,7 +10579,7 @@
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
- yystos[+*yyssp], yyvsp, pParseContext);
+ yystos[*yyssp], yyvsp, pParseContext);
YYPOPSTACK (1);
}
#ifndef yyoverflow
@@ -10691,5 +10592,6 @@
#endif
return yyresult;
}
-#line 3960 "MachineIndependent/glslang.y"
+#line 3887 "glslang.y" /* yacc.c:1906 */
+
diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h
index f8b4142..31c8f90 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.5.1. */
+/* A Bison parser, made by GNU Bison 3.0.4. */
/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
- Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -31,11 +30,8 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-/* Undocumented macros, especially those whose name start with YY_,
- are private implementation details. Do not rely on them. */
-
-#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
-# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED
+#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
+# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
@@ -216,26 +212,26 @@
SAMPLERCUBEARRAYSHADOW = 422,
ISAMPLERCUBEARRAY = 423,
USAMPLERCUBEARRAY = 424,
- SAMPLER2DRECT = 425,
- SAMPLER2DRECTSHADOW = 426,
- ISAMPLER2DRECT = 427,
- USAMPLER2DRECT = 428,
- SAMPLERBUFFER = 429,
- ISAMPLERBUFFER = 430,
- USAMPLERBUFFER = 431,
- SAMPLER2DMS = 432,
- ISAMPLER2DMS = 433,
- USAMPLER2DMS = 434,
- SAMPLER2DMSARRAY = 435,
- ISAMPLER2DMSARRAY = 436,
- USAMPLER2DMSARRAY = 437,
- SAMPLEREXTERNALOES = 438,
- SAMPLEREXTERNAL2DY2YEXT = 439,
- SAMPLER1D = 440,
- SAMPLER1DARRAY = 441,
- SAMPLER1DARRAYSHADOW = 442,
- ISAMPLER1D = 443,
- SAMPLER1DSHADOW = 444,
+ SAMPLER1D = 425,
+ SAMPLER1DARRAY = 426,
+ SAMPLER1DARRAYSHADOW = 427,
+ ISAMPLER1D = 428,
+ SAMPLER1DSHADOW = 429,
+ SAMPLER2DRECT = 430,
+ SAMPLER2DRECTSHADOW = 431,
+ ISAMPLER2DRECT = 432,
+ USAMPLER2DRECT = 433,
+ SAMPLERBUFFER = 434,
+ ISAMPLERBUFFER = 435,
+ USAMPLERBUFFER = 436,
+ SAMPLER2DMS = 437,
+ ISAMPLER2DMS = 438,
+ USAMPLER2DMS = 439,
+ SAMPLER2DMSARRAY = 440,
+ ISAMPLER2DMSARRAY = 441,
+ USAMPLER2DMSARRAY = 442,
+ SAMPLEREXTERNALOES = 443,
+ SAMPLEREXTERNAL2DY2YEXT = 444,
ISAMPLER1DARRAY = 445,
USAMPLER1D = 446,
USAMPLER1DARRAY = 447,
@@ -445,35 +441,36 @@
HITATTREXT = 651,
CALLDATAEXT = 652,
CALLDATAINEXT = 653,
- NONUNIFORM = 654,
- DEVICECOHERENT = 655,
- QUEUEFAMILYCOHERENT = 656,
- WORKGROUPCOHERENT = 657,
- SUBGROUPCOHERENT = 658,
- NONPRIVATE = 659,
- SHADERCALLCOHERENT = 660,
- EXPLICITINTERPAMD = 661,
- PERVERTEXNV = 662,
- PERPRIMITIVENV = 663,
- PERVIEWNV = 664,
- PERTASKNV = 665,
- PATCH = 666,
- SAMPLE = 667,
- COHERENT = 668,
- VOLATILE = 669,
- RESTRICT = 670,
- READONLY = 671,
- WRITEONLY = 672,
- NOPERSPECTIVE = 673,
+ PATCH = 654,
+ SAMPLE = 655,
+ NONUNIFORM = 656,
+ COHERENT = 657,
+ VOLATILE = 658,
+ RESTRICT = 659,
+ READONLY = 660,
+ WRITEONLY = 661,
+ DEVICECOHERENT = 662,
+ QUEUEFAMILYCOHERENT = 663,
+ WORKGROUPCOHERENT = 664,
+ SUBGROUPCOHERENT = 665,
+ NONPRIVATE = 666,
+ SHADERCALLCOHERENT = 667,
+ NOPERSPECTIVE = 668,
+ EXPLICITINTERPAMD = 669,
+ PERVERTEXNV = 670,
+ PERPRIMITIVENV = 671,
+ PERVIEWNV = 672,
+ PERTASKNV = 673,
PRECISE = 674
};
#endif
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+
union YYSTYPE
{
-#line 103 "MachineIndependent/glslang.y"
+#line 97 "glslang.y" /* yacc.c:1909 */
struct {
glslang::TSourceLoc loc;
@@ -509,9 +506,9 @@
glslang::TArraySizes* typeParameters;
} interm;
-#line 513 "MachineIndependent/glslang_tab.cpp.h"
-
+#line 510 "glslang_tab.cpp.h" /* yacc.c:1909 */
};
+
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -521,4 +518,4 @@
int yyparse (glslang::TParseContext* pParseContext);
-#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */
+#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index 1b409df..86edcfe 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -36,7 +36,7 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#include "localintermediate.h"
#include "../Include/InfoSink.h"
@@ -1562,4 +1562,4 @@
} // end namespace glslang
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // not GLSLANG_WEB
diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp
index 93cb83c..fadcb1b 100644
--- a/glslang/MachineIndependent/iomapper.cpp
+++ b/glslang/MachineIndependent/iomapper.cpp
@@ -33,7 +33,7 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#include "../Include/Common.h"
#include "../Include/InfoSink.h"
@@ -1281,4 +1281,4 @@
} // end namespace glslang
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 6741327..7ca18b8 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -33,7 +33,7 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#ifndef _IOMAPPER_INCLUDED
#define _IOMAPPER_INCLUDED
@@ -186,7 +186,7 @@
}
};
-// Default I/O resolver for OpenGL
+// Defaulf I/O resolver for OpenGL
struct TDefaultGlslIoResolver : public TDefaultIoResolverBase {
public:
typedef std::map<TString, int> TVarSlotMap; // <resourceName, location/binding>
@@ -299,4 +299,4 @@
#endif // _IOMAPPER_INCLUDED
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index a8e031b..f0bede5 100755
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -82,7 +82,7 @@
//
void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
{
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
mergeCallGraphs(infoSink, unit);
mergeModes(infoSink, unit);
mergeTrees(infoSink, unit);
@@ -104,7 +104,7 @@
callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
}
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#define MERGE_MAX(member) member = std::max(member, unit.member)
#define MERGE_TRUE(member) if (unit.member) member = unit.member;
@@ -533,7 +533,7 @@
//
void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, bool crossStage)
{
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
bool writeTypeComparison = false;
// Types have to match
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index 53be3f5..a3ff886 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -241,10 +241,7 @@
public:
explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
language(l),
-#ifndef GLSLANG_ANGLE
- profile(p), version(v),
-#endif
- treeRoot(0),
+ profile(p), version(v), treeRoot(0),
numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
invertY(false),
useStorageBuffer(false),
@@ -298,20 +295,9 @@
#endif
}
- void setVersion(int v)
- {
-#ifndef GLSLANG_ANGLE
- version = v;
-#endif
- }
- void setProfile(EProfile p)
- {
-#ifndef GLSLANG_ANGLE
- profile = p;
-#endif
- }
-
+ void setVersion(int v) { version = v; }
int getVersion() const { return version; }
+ void setProfile(EProfile p) { profile = p; }
EProfile getProfile() const { return profile; }
void setSpv(const SpvVersion& s)
{
@@ -943,13 +929,8 @@
typedef std::list<TCall> TGraph;
TGraph callGraph;
-#ifdef GLSLANG_ANGLE
- const EProfile profile = ECoreProfile;
- const int version = 450;
-#else
EProfile profile; // source profile
int version; // source version
-#endif
SpvVersion spvVersion;
TIntermNode* treeRoot;
std::map<std::string, TExtensionBehavior> requestedExtensions; // cumulation of all enabled or required extensions; not connected to what subset of the shader used them
diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h
index 957aaef..0d006a7 100644
--- a/glslang/MachineIndependent/parseVersions.h
+++ b/glslang/MachineIndependent/parseVersions.h
@@ -58,7 +58,7 @@
const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
bool forwardCompatible, EShMessages messages)
:
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
forwardCompatible(forwardCompatible),
profile(profile),
#endif
@@ -117,13 +117,8 @@
bool suppressWarnings() const { return true; }
bool isForwardCompatible() const { return false; }
#else
-#ifdef GLSLANG_ANGLE
- const bool forwardCompatible = true;
- const EProfile profile = ECoreProfile;
-#else
bool forwardCompatible; // true if errors are to be given for use of deprecated features
EProfile profile; // the declared profile in the shader (core by default)
-#endif
bool isEsProfile() const { return profile == EEsProfile; }
void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc);
void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions,
diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp
index 5e544b6..03d6fe1 100644
--- a/glslang/MachineIndependent/reflection.cpp
+++ b/glslang/MachineIndependent/reflection.cpp
@@ -33,7 +33,7 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#include "../Include/Common.h"
#include "reflection.h"
@@ -1266,4 +1266,4 @@
} // end namespace glslang
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h
index 5af4467..0c33de4 100644
--- a/glslang/MachineIndependent/reflection.h
+++ b/glslang/MachineIndependent/reflection.h
@@ -33,7 +33,7 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
#ifndef _REFLECTION_INCLUDED
#define _REFLECTION_INCLUDED
@@ -220,4 +220,4 @@
#endif // _REFLECTION_INCLUDED
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 273f156..e3909f6 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -690,7 +690,7 @@
TShader& operator=(TShader&);
};
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
//
// A reflection database and its interface, consistent with the OpenGL API reflection queries.
@@ -808,7 +808,7 @@
virtual void addStage(EShLanguage stage) = 0;
};
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif // GLSLANG_WEB
// Make one TProgram per set of shaders that will get linked together. Add all
// the shaders that are to be linked together. After calling shader.parse()
@@ -829,7 +829,7 @@
TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
// Reflection Interface
@@ -923,7 +923,7 @@
// If resolver is not provided it uses the previous approach
// and respects auto assignment and offsets.
GLSLANG_EXPORT bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr);
-#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
+#endif
protected:
GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
@@ -933,7 +933,7 @@
TIntermediate* intermediate[EShLangCount];
bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage
TInfoSink* infoSink;
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
TReflection* reflection;
#endif
bool linked;
diff --git a/glslang/updateGrammar b/glslang/updateGrammar
index 202a608..9209493 100755
--- a/glslang/updateGrammar
+++ b/glslang/updateGrammar
@@ -39,7 +39,6 @@
elif [ "$#" -eq 0 ]
then
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
- m4 -P -DGLSLANG_ANGLE MachineIndependent/glslang.m4 > MachineIndependent/glslang_angle.y
else
echo usage:
echo $0 web
@@ -48,7 +47,3 @@
fi
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
-if [ "$1" != 'web' ]
-then
- bison --defines=MachineIndependent/glslang_angle_tab.cpp.h -t MachineIndependent/glslang_angle.y -o MachineIndependent/glslang_angle_tab.cpp
-fi
diff --git a/gtests/Link.FromFile.Vk.cpp b/gtests/Link.FromFile.Vk.cpp
index dc0988e..ee868c2 100755
--- a/gtests/Link.FromFile.Vk.cpp
+++ b/gtests/Link.FromFile.Vk.cpp
@@ -75,7 +75,7 @@
result.linkingOutput = program.getInfoLog();
result.linkingError = program.getInfoDebugLog();
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (success)
program.mapIO();
#endif
diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h
index 2b057dc..c8e72d3 100755
--- a/gtests/TestFixture.h
+++ b/gtests/TestFixture.h
@@ -253,7 +253,7 @@
glslang::TProgram program;
program.addShader(&shader);
success &= program.link(controls);
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (success)
program.mapIO();
#endif
@@ -315,7 +315,7 @@
program.addShader(&shader);
success &= program.link(controls);
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (success)
program.mapIO();
#endif
@@ -360,7 +360,7 @@
glslang::TProgram program;
program.addShader(&shader);
success &= program.link(controls);
-#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+#ifndef GLSLANG_WEB
if (success)
program.mapIO();
#endif
diff --git a/license-checker.cfg b/license-checker.cfg
index 876f158..7e4dcd2 100644
--- a/license-checker.cfg
+++ b/license-checker.cfg
@@ -22,9 +22,6 @@
"glslang/MachineIndependent/glslang_tab.cpp",
"glslang/MachineIndependent/glslang_tab.cpp.h",
-
- "glslang/MachineIndependent/glslang_angle_tab.cpp",
- "glslang/MachineIndependent/glslang_angle_tab.cpp.h"
]
}
],
@@ -35,4 +32,4 @@
"MIT-0",
"MIT"
]
-}
+}
\ No newline at end of file