Add support for NV_shader_noperspective_interpolation
Added support for GL_NV_shader_noperspective_interpolation on
the Vulkan and Desktop OpenGL backends
Bug: angleproject:4388
Test: angle_end2end_tests --gtest_filter=ShaderInterpTest.NoPerspective/*
Change-Id: I12473830c0ea8b4fffeae9c4a8ec92d979c8e18c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2107234
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
index c514cb5..4e9fed5 100644
--- a/include/GLSLANG/ShaderLang.h
+++ b/include/GLSLANG/ShaderLang.h
@@ -26,7 +26,7 @@
// Version number for shader translation API.
// It is incremented every time the API changes.
-#define ANGLE_SH_VERSION 226
+#define ANGLE_SH_VERSION 227
enum ShShaderSpec
{
@@ -380,6 +380,7 @@
int WEBGL_debug_shader_precision;
int EXT_shader_framebuffer_fetch;
int NV_shader_framebuffer_fetch;
+ int NV_shader_noperspective_interpolation;
int ARM_shader_framebuffer_fetch;
int OVR_multiview;
int OVR_multiview2;
diff --git a/include/GLSLANG/ShaderVars.h b/include/GLSLANG/ShaderVars.h
index 52f6ad0..477d2d2 100644
--- a/include/GLSLANG/ShaderVars.h
+++ b/include/GLSLANG/ShaderVars.h
@@ -28,7 +28,8 @@
{
INTERPOLATION_SMOOTH,
INTERPOLATION_CENTROID,
- INTERPOLATION_FLAT
+ INTERPOLATION_FLAT,
+ INTERPOLATION_NOPERSPECTIVE
};
// Validate link & SSO consistency of interpolation qualifiers
diff --git a/scripts/code_generation_hashes/ANGLE_shader_translator.json b/scripts/code_generation_hashes/ANGLE_shader_translator.json
index 8cca82c..ce72f6e 100644
--- a/scripts/code_generation_hashes/ANGLE_shader_translator.json
+++ b/scripts/code_generation_hashes/ANGLE_shader_translator.json
@@ -4,15 +4,15 @@
"src/compiler/translator/generate_parser.py":
"566178ecdfae3a29803b3687fc518ebb",
"src/compiler/translator/glslang.l":
- "2f602a853e4c4d669edc3cc36a1a8c4a",
+ "76676b64d51f4312e8060f4a00bc8f1b",
"src/compiler/translator/glslang.y":
- "928cfcdd99877b5a289694a4057d5d76",
+ "609c38a1997b77a9affec84541daf9c9",
"src/compiler/translator/glslang_lex_autogen.cpp":
- "809307250ccc9a6c6d026da45b57dcec",
+ "edc229f6d1b48f8588301219df80760e",
"src/compiler/translator/glslang_tab_autogen.cpp":
- "f693228f495aac4629ee8e30c12dc62f",
+ "8872811534b4e8aeef0df354bbd05044",
"src/compiler/translator/glslang_tab_autogen.h":
- "286139e7a8f2dd3458fbf39bff09d2ad",
+ "1bb42872dd5fd0a6f647201b142b67b6",
"tools/flex-bison/linux/bison.sha1":
"efa86001f00e7bcfdbe899dd15fc88e0",
"tools/flex-bison/linux/flex.sha1":
diff --git a/src/compiler/translator/BaseTypes.h b/src/compiler/translator/BaseTypes.h
index 18d0142..562e64a 100644
--- a/src/compiler/translator/BaseTypes.h
+++ b/src/compiler/translator/BaseTypes.h
@@ -970,14 +970,17 @@
EvqLastFragData,
// GLSL ES 3.0 vertex output and fragment input
- EvqSmooth, // Incomplete qualifier, smooth is the default
- EvqFlat, // Incomplete qualifier
- EvqCentroid, // Incomplete qualifier
+ EvqSmooth, // Incomplete qualifier, smooth is the default
+ EvqFlat, // Incomplete qualifier
+ EvqNoPerspective, // Incomplete qualifier
+ EvqCentroid, // Incomplete qualifier
EvqSmoothOut,
EvqFlatOut,
+ EvqNoPerspectiveOut,
EvqCentroidOut, // Implies smooth
EvqSmoothIn,
EvqFlatIn,
+ EvqNoPerspectiveIn,
EvqCentroidIn, // Implies smooth
// GLSL ES 3.1 compute shader special variables
@@ -1034,6 +1037,7 @@
case EvqVaryingIn:
case EvqSmoothIn:
case EvqFlatIn:
+ case EvqNoPerspectiveIn:
case EvqCentroidIn:
return true;
default:
@@ -1051,6 +1055,7 @@
case EvqVaryingOut:
case EvqSmoothOut:
case EvqFlatOut:
+ case EvqNoPerspectiveOut:
case EvqCentroidOut:
return true;
default:
@@ -1301,11 +1306,14 @@
case EvqSmoothOut: return "smooth out";
case EvqCentroidOut: return "smooth centroid out";
case EvqFlatOut: return "flat out";
+ case EvqNoPerspectiveOut: return "noperspective out";
case EvqSmoothIn: return "smooth in";
case EvqFlatIn: return "flat in";
+ case EvqNoPerspectiveIn: return "noperspective in";
case EvqCentroidIn: return "smooth centroid in";
case EvqCentroid: return "centroid";
case EvqFlat: return "flat";
+ case EvqNoPerspective: return "noperspective";
case EvqSmooth: return "smooth";
case EvqShared: return "shared";
case EvqComputeIn: return "in";
diff --git a/src/compiler/translator/CollectVariables.cpp b/src/compiler/translator/CollectVariables.cpp
index 2db3b17..4c4d2f8 100644
--- a/src/compiler/translator/CollectVariables.cpp
+++ b/src/compiler/translator/CollectVariables.cpp
@@ -724,6 +724,7 @@
case EvqVertexOut:
case EvqSmoothOut:
case EvqFlatOut:
+ case EvqNoPerspectiveOut:
case EvqCentroidOut:
case EvqGeometryOut:
if (mSymbolTable->isVaryingInvariant(variable.variable()) || type.isInvariant())
diff --git a/src/compiler/translator/ExtensionBehavior.cpp b/src/compiler/translator/ExtensionBehavior.cpp
index f2b5b68..5144b6e 100644
--- a/src/compiler/translator/ExtensionBehavior.cpp
+++ b/src/compiler/translator/ExtensionBehavior.cpp
@@ -25,6 +25,7 @@
OP(EXT_shader_texture_lod) \
OP(EXT_YUV_target) \
OP(EXT_shader_non_constant_global_initializers) \
+ OP(NV_shader_noperspective_interpolation) \
OP(NV_EGL_stream_consumer_external) \
OP(NV_shader_framebuffer_fetch) \
OP(OES_EGL_image_external) \
diff --git a/src/compiler/translator/ExtensionBehavior.h b/src/compiler/translator/ExtensionBehavior.h
index 59e8ef7..f9cf855 100644
--- a/src/compiler/translator/ExtensionBehavior.h
+++ b/src/compiler/translator/ExtensionBehavior.h
@@ -32,6 +32,7 @@
EXT_shader_non_constant_global_initializers,
NV_EGL_stream_consumer_external,
NV_shader_framebuffer_fetch,
+ NV_shader_noperspective_interpolation,
OES_EGL_image_external,
OES_EGL_image_external_essl3,
OES_standard_derivatives,
diff --git a/src/compiler/translator/Initialize.cpp b/src/compiler/translator/Initialize.cpp
index 638f5e0..b7bc846 100644
--- a/src/compiler/translator/Initialize.cpp
+++ b/src/compiler/translator/Initialize.cpp
@@ -57,6 +57,10 @@
{
extBehavior[TExtension::NV_shader_framebuffer_fetch] = EBhUndefined;
}
+ if (resources.NV_shader_noperspective_interpolation)
+ {
+ extBehavior[TExtension::NV_shader_noperspective_interpolation] = EBhUndefined;
+ }
if (resources.ARM_shader_framebuffer_fetch)
{
extBehavior[TExtension::ARM_shader_framebuffer_fetch] = EBhUndefined;
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index 179512e..8638426 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -530,6 +530,7 @@
case EvqVertexIn:
case EvqGeometryIn:
case EvqFlatIn:
+ case EvqNoPerspectiveIn:
case EvqSmoothIn:
case EvqCentroidIn:
message = "can't modify an input";
diff --git a/src/compiler/translator/QualifierTypes.cpp b/src/compiler/translator/QualifierTypes.cpp
index 3e0d733..6f549a2 100644
--- a/src/compiler/translator/QualifierTypes.cpp
+++ b/src/compiler/translator/QualifierTypes.cpp
@@ -403,6 +403,26 @@
}
break;
}
+ case EvqNoPerspective:
+ {
+ switch (storageQualifier)
+ {
+ case EvqCentroid:
+ *joinedQualifier = EvqNoPerspective;
+ break;
+ case EvqVertexOut:
+ case EvqGeometryOut:
+ *joinedQualifier = EvqNoPerspectiveOut;
+ break;
+ case EvqFragmentIn:
+ case EvqGeometryIn:
+ *joinedQualifier = EvqNoPerspectiveIn;
+ break;
+ default:
+ return false;
+ }
+ break;
+ }
case EvqCentroid:
{
switch (storageQualifier)
diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp
index 57ace67..fc60fb3 100644
--- a/src/compiler/translator/ShaderLang.cpp
+++ b/src/compiler/translator/ShaderLang.cpp
@@ -168,6 +168,7 @@
resources->EXT_geometry_shader = 0;
resources->EXT_gpu_shader5 = 0;
resources->EXT_shader_non_constant_global_initializers = 0;
+ resources->NV_shader_noperspective_interpolation = 0;
resources->OES_texture_storage_multisample_2d_array = 0;
resources->OES_texture_3D = 0;
resources->ANGLE_texture_multisample = 0;
diff --git a/src/compiler/translator/glslang.l b/src/compiler/translator/glslang.l
index 5982ed8..a77728b 100644
--- a/src/compiler/translator/glslang.l
+++ b/src/compiler/translator/glslang.l
@@ -105,6 +105,7 @@
static int ES2_reserved_ES2_extension_ES3_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_extension(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token);
+static int ES3_reserved_ES3_extension(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context, TExtension extension, int token);
static int ES3_1_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context, TExtension extension, int token);
static int WEBGL_video_texture_extension(TParseContext *context, int token);
@@ -156,9 +157,10 @@
"case" { return ES3_keyword(context, CASE); }
"default" { return ES2_reserved_ES3_keyword(context, DEFAULT); }
-"centroid" { return ES3_keyword(context, CENTROID); }
-"flat" { return ES2_reserved_ES3_keyword(context, FLAT); }
-"smooth" { return ES3_keyword(context, SMOOTH); }
+"centroid" { return ES3_keyword(context, CENTROID); }
+"flat" { return ES2_reserved_ES3_keyword(context, FLAT); }
+"smooth" { return ES3_keyword(context, SMOOTH); }
+"noperspective" { return ES3_reserved_ES3_extension(context, TExtension::NV_shader_noperspective_interpolation, NOPERSPECTIVE); }
"in" { return IN_QUAL; }
"out" { return OUT_QUAL; }
@@ -262,7 +264,6 @@
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
"resource" |
-"noperspective" |
"patch" |
"sample" |
"subroutine" |
@@ -651,6 +652,24 @@
return check_type(yyscanner);
}
+int ES3_reserved_ES3_extension(TParseContext *context, TExtension extension, int token)
+{
+ struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
+ yyscan_t yyscanner = (yyscan_t) context->getScanner();
+
+ if(context->getShaderVersion() >= 300)
+ {
+ if (context->isExtensionEnabled(extension)) {
+ return token;
+ } else {
+ return reserved_word(yyscanner);
+ }
+ }
+
+ yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
+ return check_type(yyscanner);
+}
+
int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context, TExtension extension, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->getScanner();
diff --git a/src/compiler/translator/glslang.y b/src/compiler/translator/glslang.y
index 7a1cc4c..8a0c52f 100644
--- a/src/compiler/translator/glslang.y
+++ b/src/compiler/translator/glslang.y
@@ -164,7 +164,7 @@
%token <lex> BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4 UVEC2 UVEC3 UVEC4
%token <lex> MATRIX2 MATRIX3 MATRIX4 IN_QUAL OUT_QUAL INOUT_QUAL UNIFORM BUFFER VARYING
%token <lex> MATRIX2x3 MATRIX3x2 MATRIX2x4 MATRIX4x2 MATRIX3x4 MATRIX4x3
-%token <lex> CENTROID FLAT SMOOTH
+%token <lex> CENTROID FLAT SMOOTH NOPERSPECTIVE
%token <lex> READONLY WRITEONLY COHERENT RESTRICT VOLATILE SHARED
%token <lex> STRUCT VOID_TYPE WHILE
%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT SAMPLER2DARRAY
@@ -777,6 +777,13 @@
| FLAT {
$$ = EvqFlat;
}
+ | NOPERSPECTIVE {
+ if (!context->checkCanUseExtension(@1, TExtension::NV_shader_noperspective_interpolation))
+ {
+ context->error(@1, "unsupported interpolation qualifier", "noperspective");
+ }
+ $$ = EvqNoPerspective;
+ }
;
type_qualifier
diff --git a/src/compiler/translator/glslang_lex_autogen.cpp b/src/compiler/translator/glslang_lex_autogen.cpp
index f2f79e9..c6ef03e 100644
--- a/src/compiler/translator/glslang_lex_autogen.cpp
+++ b/src/compiler/translator/glslang_lex_autogen.cpp
@@ -432,60 +432,60 @@
216, 215, 219, 186, 207, 213, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 13, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 16, 186, 186, 24, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 16, 186, 186, 25, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 208, 212, 244, 0, 198, 194, 0, 197, 191, 0, 193,
187, 204, 205, 186, 186, 146, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 14, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 29, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 25, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 30, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 26, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 0, 195, 0, 194, 196, 190, 186, 186, 186,
- 186, 32, 186, 186, 186, 19, 183, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 33, 186, 186, 186, 19, 183, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
17, 149, 186, 186, 186, 186, 22, 186, 186, 153, 164, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 161, 4, 37, 38, 39, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 161, 4, 38, 39, 40, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 152, 33, 186, 186, 30, 186, 186, 186, 186, 186, 186, 186,
- 49, 50, 51, 31, 186, 186, 186, 186, 186, 186, 186, 186, 11, 186, 55, 56, 57,
- 186, 147, 186, 186, 7, 186, 186, 186, 186, 173, 174, 175, 186, 34, 186, 165, 28,
- 176, 177, 178, 2, 170, 171, 172, 186, 186, 186, 26, 168, 186, 186, 186,
+ 186, 186, 186, 186, 186, 152, 34, 186, 186, 31, 186, 186, 186, 186, 186, 186, 186,
+ 50, 51, 52, 32, 186, 186, 186, 186, 186, 186, 186, 186, 11, 186, 56, 57, 58,
+ 186, 147, 186, 186, 7, 186, 186, 186, 186, 173, 174, 175, 186, 35, 186, 165, 29,
+ 176, 177, 178, 2, 170, 171, 172, 186, 186, 186, 27, 168, 186, 186, 186,
- 186, 186, 52, 53, 54, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 114,
+ 186, 186, 53, 54, 55, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 114,
186, 186, 186, 186, 186, 186, 186, 186, 162, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 148, 186, 186, 185, 58, 59, 60, 186, 186, 15, 186, 186, 186, 119,
+ 186, 186, 186, 148, 186, 186, 185, 59, 60, 61, 186, 186, 15, 186, 186, 186, 119,
186, 186, 9, 186, 186, 117, 186, 186, 186, 163, 158, 120, 186, 186, 186, 186, 186,
- 186, 154, 186, 186, 186, 186, 186, 88, 40, 43, 45, 44, 41, 47, 46, 48, 42,
- 186, 186, 186, 186, 169, 145, 186, 186, 156, 186, 186, 186, 36, 115, 27,
+ 186, 154, 186, 186, 186, 186, 186, 89, 41, 44, 46, 45, 42, 48, 47, 49, 43,
+ 186, 186, 186, 186, 169, 145, 186, 186, 156, 186, 186, 186, 37, 115, 28,
- 182, 23, 157, 87, 186, 167, 18, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 20, 35, 186, 186, 186, 186, 186, 186, 121, 93, 99,
- 186, 186, 186, 186, 186, 90, 92, 3, 186, 186, 186, 186, 111, 186, 186, 186, 186,
+ 182, 23, 157, 88, 186, 167, 18, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 20, 36, 186, 186, 186, 186, 186, 186, 121, 94, 100,
+ 186, 186, 186, 186, 186, 91, 93, 3, 186, 186, 186, 186, 112, 186, 186, 186, 186,
186, 186, 186, 150, 186, 186, 186, 186, 186, 8, 186, 186, 10, 186, 186, 186, 186,
- 186, 186, 21, 107, 12, 159, 122, 94, 101, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 155, 186, 186, 186, 105, 112, 108, 186, 186, 186,
+ 186, 186, 21, 108, 12, 159, 122, 95, 102, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 155, 186, 186, 186, 106, 113, 109, 186, 186, 186,
- 186, 186, 186, 186, 186, 151, 123, 95, 100, 186, 186, 166, 186, 109, 186, 186, 186,
- 186, 6, 186, 186, 186, 186, 186, 186, 186, 186, 186, 104, 160, 1, 186, 186, 186,
- 186, 186, 186, 184, 186, 118, 5, 179, 61, 64, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 106, 186, 186, 186, 186, 186, 186, 102, 186, 186,
- 186, 186, 186, 136, 69, 70, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 116, 186, 186, 186, 103, 138, 74, 75, 186, 186, 186,
+ 186, 186, 186, 186, 186, 151, 123, 96, 101, 186, 186, 166, 186, 110, 186, 186, 186,
+ 186, 6, 186, 186, 186, 186, 186, 186, 186, 186, 186, 105, 160, 1, 186, 186, 186,
+ 186, 186, 186, 184, 186, 118, 5, 179, 62, 65, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 107, 186, 186, 186, 186, 186, 186, 103, 186, 186,
+ 186, 186, 186, 136, 70, 71, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 116, 186, 186, 186, 104, 138, 75, 76, 186, 186, 186,
- 186, 110, 186, 186, 186, 186, 186, 186, 186, 131, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 68, 186, 186, 186, 186, 62, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 132, 124, 186, 96, 186, 186, 186, 73, 186,
- 186, 71, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 133, 186, 186, 78, 186, 186, 76, 186, 186, 125, 97, 186, 127, 186, 128, 186, 186,
- 186, 186, 186, 186, 113, 186, 186, 186, 186, 66, 186, 65, 142, 186, 186,
+ 186, 111, 186, 186, 186, 186, 186, 186, 186, 131, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 69, 186, 186, 186, 186, 63, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 132, 124, 186, 97, 186, 186, 186, 74, 186,
+ 186, 72, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 133, 186, 186, 79, 186, 186, 77, 186, 186, 125, 98, 186, 127, 186, 128, 186, 186,
+ 186, 186, 186, 186, 24, 186, 186, 186, 186, 67, 186, 66, 142, 186, 186,
- 186, 126, 98, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 140, 143,
- 186, 134, 186, 67, 186, 186, 186, 186, 186, 186, 186, 186, 186, 141, 144, 186, 186,
- 186, 186, 137, 72, 186, 186, 186, 180, 186, 186, 186, 79, 186, 186, 186, 139, 77,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 83, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 84, 186, 186, 186, 186, 80, 186, 86, 85, 89, 186, 129, 130, 91, 186,
- 186, 186, 63, 186, 186, 186, 181, 186, 135, 81, 186, 186, 186, 186, 82,
+ 186, 126, 99, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 140, 143,
+ 186, 134, 186, 68, 186, 186, 186, 186, 186, 186, 186, 186, 186, 141, 144, 186, 186,
+ 186, 186, 137, 73, 186, 186, 186, 180, 186, 186, 186, 80, 186, 186, 186, 139, 78,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 84, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 85, 186, 186, 186, 186, 81, 186, 87, 86, 90, 186, 129, 130, 92, 186,
+ 186, 186, 64, 186, 186, 186, 181, 186, 135, 82, 186, 186, 186, 186, 83,
0};
@@ -921,6 +921,7 @@
static int ES3_reserved_ES3_1_extension_ES3_2_keyword(TParseContext *context,
TExtension extension,
int token);
+static int ES3_reserved_ES3_extension(TParseContext *context, TExtension extension, int token);
static int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context,
TExtension extension,
int token);
@@ -1342,216 +1343,216 @@
YY_RULE_SETUP { return ES3_keyword(context, SMOOTH); }
YY_BREAK
case 24:
- YY_RULE_SETUP { return IN_QUAL; }
+ YY_RULE_SETUP
+ {
+ return ES3_reserved_ES3_extension(
+ context, TExtension::NV_shader_noperspective_interpolation,
+ NOPERSPECTIVE);
+ }
YY_BREAK
case 25:
- YY_RULE_SETUP { return OUT_QUAL; }
+ YY_RULE_SETUP { return IN_QUAL; }
YY_BREAK
case 26:
- YY_RULE_SETUP { return INOUT_QUAL; }
+ YY_RULE_SETUP { return OUT_QUAL; }
YY_BREAK
case 27:
- YY_RULE_SETUP { return ES3_1_keyword(context, SHARED); }
+ YY_RULE_SETUP { return INOUT_QUAL; }
YY_BREAK
case 28:
- YY_RULE_SETUP { return FLOAT_TYPE; }
+ YY_RULE_SETUP { return ES3_1_keyword(context, SHARED); }
YY_BREAK
case 29:
- YY_RULE_SETUP { return INT_TYPE; }
+ YY_RULE_SETUP { return FLOAT_TYPE; }
YY_BREAK
case 30:
- YY_RULE_SETUP { return ES3_keyword(context, UINT_TYPE); }
+ YY_RULE_SETUP { return INT_TYPE; }
YY_BREAK
case 31:
- YY_RULE_SETUP { return VOID_TYPE; }
+ YY_RULE_SETUP { return ES3_keyword(context, UINT_TYPE); }
YY_BREAK
case 32:
- YY_RULE_SETUP { return BOOL_TYPE; }
+ YY_RULE_SETUP { return VOID_TYPE; }
YY_BREAK
case 33:
+ YY_RULE_SETUP { return BOOL_TYPE; }
+ YY_BREAK
+ case 34:
YY_RULE_SETUP
{
yylval->lex.b = true;
return BOOLCONSTANT;
}
YY_BREAK
- case 34:
+ case 35:
YY_RULE_SETUP
{
yylval->lex.b = false;
return BOOLCONSTANT;
}
YY_BREAK
- case 35:
+ case 36:
YY_RULE_SETUP { return DISCARD; }
YY_BREAK
- case 36:
+ case 37:
YY_RULE_SETUP { return RETURN; }
YY_BREAK
- case 37:
+ case 38:
YY_RULE_SETUP { return MATRIX2; }
YY_BREAK
- case 38:
+ case 39:
YY_RULE_SETUP { return MATRIX3; }
YY_BREAK
- case 39:
+ case 40:
YY_RULE_SETUP { return MATRIX4; }
YY_BREAK
- case 40:
+ case 41:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX2); }
YY_BREAK
- case 41:
+ case 42:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX3); }
YY_BREAK
- case 42:
+ case 43:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX4); }
YY_BREAK
- case 43:
+ case 44:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX2x3); }
YY_BREAK
- case 44:
+ case 45:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX3x2); }
YY_BREAK
- case 45:
+ case 46:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX2x4); }
YY_BREAK
- case 46:
+ case 47:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX4x2); }
YY_BREAK
- case 47:
+ case 48:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX3x4); }
YY_BREAK
- case 48:
+ case 49:
YY_RULE_SETUP { return ES3_keyword(context, MATRIX4x3); }
YY_BREAK
- case 49:
+ case 50:
YY_RULE_SETUP { return VEC2; }
YY_BREAK
- case 50:
+ case 51:
YY_RULE_SETUP { return VEC3; }
YY_BREAK
- case 51:
+ case 52:
YY_RULE_SETUP { return VEC4; }
YY_BREAK
- case 52:
+ case 53:
YY_RULE_SETUP { return IVEC2; }
YY_BREAK
- case 53:
+ case 54:
YY_RULE_SETUP { return IVEC3; }
YY_BREAK
- case 54:
+ case 55:
YY_RULE_SETUP { return IVEC4; }
YY_BREAK
- case 55:
+ case 56:
YY_RULE_SETUP { return BVEC2; }
YY_BREAK
- case 56:
+ case 57:
YY_RULE_SETUP { return BVEC3; }
YY_BREAK
- case 57:
+ case 58:
YY_RULE_SETUP { return BVEC4; }
YY_BREAK
- case 58:
+ case 59:
YY_RULE_SETUP { return ES3_keyword(context, UVEC2); }
YY_BREAK
- case 59:
+ case 60:
YY_RULE_SETUP { return ES3_keyword(context, UVEC3); }
YY_BREAK
- case 60:
+ case 61:
YY_RULE_SETUP { return ES3_keyword(context, UVEC4); }
YY_BREAK
- case 61:
+ case 62:
YY_RULE_SETUP { return SAMPLER2D; }
YY_BREAK
- case 62:
+ case 63:
YY_RULE_SETUP { return SAMPLERCUBE; }
YY_BREAK
- case 63:
+ case 64:
YY_RULE_SETUP { return SAMPLER_EXTERNAL_OES; }
YY_BREAK
- case 64:
+ case 65:
YY_RULE_SETUP
{
return ES2_reserved_ES2_extension_ES3_keyword(
context, TExtension::OES_texture_3D, SAMPLER3D);
}
YY_BREAK
- case 65:
+ case 66:
YY_RULE_SETUP { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
YY_BREAK
- case 66:
+ case 67:
YY_RULE_SETUP { return SAMPLER2DRECT; }
YY_BREAK
- case 67:
+ case 68:
YY_RULE_SETUP { return ES3_keyword(context, SAMPLER2DARRAY); }
YY_BREAK
- case 68:
+ case 69:
YY_RULE_SETUP
{
return ES3_reserved_ES3_extension_ES3_1_keyword(
context, TExtension::ANGLE_texture_multisample, SAMPLER2DMS);
}
YY_BREAK
- case 69:
+ case 70:
YY_RULE_SETUP { return ES3_keyword(context, ISAMPLER2D); }
YY_BREAK
- case 70:
+ case 71:
YY_RULE_SETUP { return ES3_keyword(context, ISAMPLER3D); }
YY_BREAK
- case 71:
+ case 72:
YY_RULE_SETUP { return ES3_keyword(context, ISAMPLERCUBE); }
YY_BREAK
- case 72:
+ case 73:
YY_RULE_SETUP { return ES3_keyword(context, ISAMPLER2DARRAY); }
YY_BREAK
- case 73:
+ case 74:
YY_RULE_SETUP
{
return ES3_reserved_ES3_extension_ES3_1_keyword(
context, TExtension::ANGLE_texture_multisample, ISAMPLER2DMS);
}
YY_BREAK
- case 74:
+ case 75:
YY_RULE_SETUP { return ES3_keyword(context, USAMPLER2D); }
YY_BREAK
- case 75:
+ case 76:
YY_RULE_SETUP { return ES3_keyword(context, USAMPLER3D); }
YY_BREAK
- case 76:
+ case 77:
YY_RULE_SETUP { return ES3_keyword(context, USAMPLERCUBE); }
YY_BREAK
- case 77:
+ case 78:
YY_RULE_SETUP { return ES3_keyword(context, USAMPLER2DARRAY); }
YY_BREAK
- case 78:
+ case 79:
YY_RULE_SETUP
{
return ES3_reserved_ES3_extension_ES3_1_keyword(
context, TExtension::ANGLE_texture_multisample, USAMPLER2DMS);
}
YY_BREAK
- case 79:
+ case 80:
YY_RULE_SETUP { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
YY_BREAK
- case 80:
+ case 81:
YY_RULE_SETUP { return ES3_keyword(context, SAMPLERCUBESHADOW); }
YY_BREAK
- case 81:
- YY_RULE_SETUP { return ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
- YY_BREAK
case 82:
- YY_RULE_SETUP
- {
- return ES3_extension(context, TExtension::EXT_YUV_target,
- SAMPLEREXTERNAL2DY2YEXT);
- }
+ YY_RULE_SETUP { return ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
YY_BREAK
case 83:
YY_RULE_SETUP
{
- return ES3_reserved_ES3_1_extension_ES3_2_keyword(
- context, TExtension::OES_texture_storage_multisample_2d_array,
- SAMPLER2DMSARRAY);
+ return ES3_extension(context, TExtension::EXT_YUV_target,
+ SAMPLEREXTERNAL2DY2YEXT);
}
YY_BREAK
case 84:
@@ -1559,7 +1560,7 @@
{
return ES3_reserved_ES3_1_extension_ES3_2_keyword(
context, TExtension::OES_texture_storage_multisample_2d_array,
- ISAMPLER2DMSARRAY);
+ SAMPLER2DMSARRAY);
}
YY_BREAK
case 85:
@@ -1567,31 +1568,36 @@
{
return ES3_reserved_ES3_1_extension_ES3_2_keyword(
context, TExtension::OES_texture_storage_multisample_2d_array,
- USAMPLER2DMSARRAY);
+ ISAMPLER2DMSARRAY);
}
YY_BREAK
case 86:
YY_RULE_SETUP
{
- return WEBGL_video_texture_extension(context, SAMPLERVIDEOWEBGL);
+ return ES3_reserved_ES3_1_extension_ES3_2_keyword(
+ context, TExtension::OES_texture_storage_multisample_2d_array,
+ USAMPLER2DMSARRAY);
}
YY_BREAK
case 87:
- YY_RULE_SETUP { return STRUCT; }
+ YY_RULE_SETUP
+ {
+ return WEBGL_video_texture_extension(context, SAMPLERVIDEOWEBGL);
+ }
YY_BREAK
case 88:
- YY_RULE_SETUP { return ES3_keyword(context, LAYOUT); }
+ YY_RULE_SETUP { return STRUCT; }
YY_BREAK
case 89:
+ YY_RULE_SETUP { return ES3_keyword(context, LAYOUT); }
+ YY_BREAK
+ case 90:
YY_RULE_SETUP
{
return ES3_extension(context, TExtension::EXT_YUV_target,
YUVCSCSTANDARDEXT);
}
YY_BREAK
- case 90:
- YY_RULE_SETUP { return yuvcscstandardext_constant(context); }
- YY_BREAK
case 91:
YY_RULE_SETUP { return yuvcscstandardext_constant(context); }
YY_BREAK
@@ -1599,60 +1605,63 @@
YY_RULE_SETUP { return yuvcscstandardext_constant(context); }
YY_BREAK
case 93:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
+ YY_RULE_SETUP { return yuvcscstandardext_constant(context); }
YY_BREAK
case 94:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
YY_BREAK
case 95:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
YY_BREAK
case 96:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
YY_BREAK
case 97:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
YY_BREAK
case 98:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
YY_BREAK
case 99:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
YY_BREAK
case 100:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
YY_BREAK
case 101:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
YY_BREAK
case 102:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
YY_BREAK
case 103:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
YY_BREAK
case 104:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
YY_BREAK
case 105:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, READONLY); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
YY_BREAK
case 106:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, READONLY); }
YY_BREAK
case 107:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, COHERENT); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
YY_BREAK
case 108:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, RESTRICT); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, COHERENT); }
YY_BREAK
case 109:
- YY_RULE_SETUP { return ES2_reserved_ES3_1_keyword(context, VOLATILE); }
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, RESTRICT); }
YY_BREAK
case 110:
- YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, ATOMICUINT); }
+ YY_RULE_SETUP { return ES2_reserved_ES3_1_keyword(context, VOLATILE); }
YY_BREAK
case 111:
+ YY_RULE_SETUP { return ES3_reserved_ES3_1_keyword(context, ATOMICUINT); }
+ YY_BREAK
+ case 112:
YY_RULE_SETUP
{
return ES3_1_reserved_ES3_1_extension_ES3_2_keyword(
@@ -1660,7 +1669,6 @@
}
YY_BREAK
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
- case 112:
case 113:
case 114:
case 115:
@@ -3350,6 +3358,27 @@
return check_type(yyscanner);
}
+int ES3_reserved_ES3_extension(TParseContext *context, TExtension extension, int token)
+{
+ struct yyguts_t *yyg = (struct yyguts_t *)context->getScanner();
+ yyscan_t yyscanner = (yyscan_t)context->getScanner();
+
+ if (context->getShaderVersion() >= 300)
+ {
+ if (context->isExtensionEnabled(extension))
+ {
+ return token;
+ }
+ else
+ {
+ return reserved_word(yyscanner);
+ }
+ }
+
+ yylval->lex.string = AllocatePoolCharArray(yytext, yyleng);
+ return check_type(yyscanner);
+}
+
int ES3_reserved_ES3_extension_ES3_1_keyword(TParseContext *context,
TExtension extension,
int token)
diff --git a/src/compiler/translator/glslang_tab_autogen.cpp b/src/compiler/translator/glslang_tab_autogen.cpp
index 8c9fd32..2fcd81e 100644
--- a/src/compiler/translator/glslang_tab_autogen.cpp
+++ b/src/compiler/translator/glslang_tab_autogen.cpp
@@ -196,109 +196,110 @@
CENTROID = 308,
FLAT = 309,
SMOOTH = 310,
- READONLY = 311,
- WRITEONLY = 312,
- COHERENT = 313,
- RESTRICT = 314,
- VOLATILE = 315,
- SHARED = 316,
- STRUCT = 317,
- VOID_TYPE = 318,
- WHILE = 319,
- SAMPLER2D = 320,
- SAMPLERCUBE = 321,
- SAMPLER_EXTERNAL_OES = 322,
- SAMPLER2DRECT = 323,
- SAMPLER2DARRAY = 324,
- ISAMPLER2D = 325,
- ISAMPLER3D = 326,
- ISAMPLERCUBE = 327,
- ISAMPLER2DARRAY = 328,
- USAMPLER2D = 329,
- USAMPLER3D = 330,
- USAMPLERCUBE = 331,
- USAMPLER2DARRAY = 332,
- SAMPLER2DMS = 333,
- ISAMPLER2DMS = 334,
- USAMPLER2DMS = 335,
- SAMPLER2DMSARRAY = 336,
- ISAMPLER2DMSARRAY = 337,
- USAMPLER2DMSARRAY = 338,
- SAMPLER3D = 339,
- SAMPLER3DRECT = 340,
- SAMPLER2DSHADOW = 341,
- SAMPLERCUBESHADOW = 342,
- SAMPLER2DARRAYSHADOW = 343,
- SAMPLERVIDEOWEBGL = 344,
- SAMPLEREXTERNAL2DY2YEXT = 345,
- IMAGE2D = 346,
- IIMAGE2D = 347,
- UIMAGE2D = 348,
- IMAGE3D = 349,
- IIMAGE3D = 350,
- UIMAGE3D = 351,
- IMAGE2DARRAY = 352,
- IIMAGE2DARRAY = 353,
- UIMAGE2DARRAY = 354,
- IMAGECUBE = 355,
- IIMAGECUBE = 356,
- UIMAGECUBE = 357,
- ATOMICUINT = 358,
- LAYOUT = 359,
- YUVCSCSTANDARDEXT = 360,
- YUVCSCSTANDARDEXTCONSTANT = 361,
- IDENTIFIER = 362,
- TYPE_NAME = 363,
- FLOATCONSTANT = 364,
- INTCONSTANT = 365,
- UINTCONSTANT = 366,
- BOOLCONSTANT = 367,
- FIELD_SELECTION = 368,
- LEFT_OP = 369,
- RIGHT_OP = 370,
- INC_OP = 371,
- DEC_OP = 372,
- LE_OP = 373,
- GE_OP = 374,
- EQ_OP = 375,
- NE_OP = 376,
- AND_OP = 377,
- OR_OP = 378,
- XOR_OP = 379,
- MUL_ASSIGN = 380,
- DIV_ASSIGN = 381,
- ADD_ASSIGN = 382,
- MOD_ASSIGN = 383,
- LEFT_ASSIGN = 384,
- RIGHT_ASSIGN = 385,
- AND_ASSIGN = 386,
- XOR_ASSIGN = 387,
- OR_ASSIGN = 388,
- SUB_ASSIGN = 389,
- LEFT_PAREN = 390,
- RIGHT_PAREN = 391,
- LEFT_BRACKET = 392,
- RIGHT_BRACKET = 393,
- LEFT_BRACE = 394,
- RIGHT_BRACE = 395,
- DOT = 396,
- COMMA = 397,
- COLON = 398,
- EQUAL = 399,
- SEMICOLON = 400,
- BANG = 401,
- DASH = 402,
- TILDE = 403,
- PLUS = 404,
- STAR = 405,
- SLASH = 406,
- PERCENT = 407,
- LEFT_ANGLE = 408,
- RIGHT_ANGLE = 409,
- VERTICAL_BAR = 410,
- CARET = 411,
- AMPERSAND = 412,
- QUESTION = 413
+ NOPERSPECTIVE = 311,
+ READONLY = 312,
+ WRITEONLY = 313,
+ COHERENT = 314,
+ RESTRICT = 315,
+ VOLATILE = 316,
+ SHARED = 317,
+ STRUCT = 318,
+ VOID_TYPE = 319,
+ WHILE = 320,
+ SAMPLER2D = 321,
+ SAMPLERCUBE = 322,
+ SAMPLER_EXTERNAL_OES = 323,
+ SAMPLER2DRECT = 324,
+ SAMPLER2DARRAY = 325,
+ ISAMPLER2D = 326,
+ ISAMPLER3D = 327,
+ ISAMPLERCUBE = 328,
+ ISAMPLER2DARRAY = 329,
+ USAMPLER2D = 330,
+ USAMPLER3D = 331,
+ USAMPLERCUBE = 332,
+ USAMPLER2DARRAY = 333,
+ SAMPLER2DMS = 334,
+ ISAMPLER2DMS = 335,
+ USAMPLER2DMS = 336,
+ SAMPLER2DMSARRAY = 337,
+ ISAMPLER2DMSARRAY = 338,
+ USAMPLER2DMSARRAY = 339,
+ SAMPLER3D = 340,
+ SAMPLER3DRECT = 341,
+ SAMPLER2DSHADOW = 342,
+ SAMPLERCUBESHADOW = 343,
+ SAMPLER2DARRAYSHADOW = 344,
+ SAMPLERVIDEOWEBGL = 345,
+ SAMPLEREXTERNAL2DY2YEXT = 346,
+ IMAGE2D = 347,
+ IIMAGE2D = 348,
+ UIMAGE2D = 349,
+ IMAGE3D = 350,
+ IIMAGE3D = 351,
+ UIMAGE3D = 352,
+ IMAGE2DARRAY = 353,
+ IIMAGE2DARRAY = 354,
+ UIMAGE2DARRAY = 355,
+ IMAGECUBE = 356,
+ IIMAGECUBE = 357,
+ UIMAGECUBE = 358,
+ ATOMICUINT = 359,
+ LAYOUT = 360,
+ YUVCSCSTANDARDEXT = 361,
+ YUVCSCSTANDARDEXTCONSTANT = 362,
+ IDENTIFIER = 363,
+ TYPE_NAME = 364,
+ FLOATCONSTANT = 365,
+ INTCONSTANT = 366,
+ UINTCONSTANT = 367,
+ BOOLCONSTANT = 368,
+ FIELD_SELECTION = 369,
+ LEFT_OP = 370,
+ RIGHT_OP = 371,
+ INC_OP = 372,
+ DEC_OP = 373,
+ LE_OP = 374,
+ GE_OP = 375,
+ EQ_OP = 376,
+ NE_OP = 377,
+ AND_OP = 378,
+ OR_OP = 379,
+ XOR_OP = 380,
+ MUL_ASSIGN = 381,
+ DIV_ASSIGN = 382,
+ ADD_ASSIGN = 383,
+ MOD_ASSIGN = 384,
+ LEFT_ASSIGN = 385,
+ RIGHT_ASSIGN = 386,
+ AND_ASSIGN = 387,
+ XOR_ASSIGN = 388,
+ OR_ASSIGN = 389,
+ SUB_ASSIGN = 390,
+ LEFT_PAREN = 391,
+ RIGHT_PAREN = 392,
+ LEFT_BRACKET = 393,
+ RIGHT_BRACKET = 394,
+ LEFT_BRACE = 395,
+ RIGHT_BRACE = 396,
+ DOT = 397,
+ COMMA = 398,
+ COLON = 399,
+ EQUAL = 400,
+ SEMICOLON = 401,
+ BANG = 402,
+ DASH = 403,
+ TILDE = 404,
+ PLUS = 405,
+ STAR = 406,
+ SLASH = 407,
+ PERCENT = 408,
+ LEFT_ANGLE = 409,
+ RIGHT_ANGLE = 410,
+ VERTICAL_BAR = 411,
+ CARET = 412,
+ AMPERSAND = 413,
+ QUESTION = 414
};
# endif
@@ -671,21 +672,21 @@
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 141
+#define YYFINAL 142
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2995
+#define YYLAST 3017
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 159
+#define YYNTOKENS 160
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 96
/* YYNRULES -- Number of rules. */
-#define YYNRULES 303
+#define YYNRULES 304
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 429
+#define YYNSTATES 430
#define YYUNDEFTOK 2
-#define YYMAXUTOK 413
+#define YYMAXUTOK 414
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, with out-of-bounds checking. */
@@ -715,7 +716,7 @@
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};
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
@@ -727,18 +728,19 @@
507, 508, 514, 515, 521, 522, 528, 529, 535, 536, 542, 543, 544, 545, 549, 550,
551, 555, 559, 563, 567, 574, 577, 583, 590, 597, 600, 603, 607, 611, 615, 619,
623, 630, 637, 640, 647, 655, 672, 682, 685, 691, 695, 699, 703, 710, 717, 720,
- 724, 728, 733, 740, 744, 748, 752, 757, 764, 768, 774, 777, 783, 787, 794, 800,
- 806, 810, 814, 817, 820, 824, 832, 837, 841, 844, 847, 850, 853, 857, 860, 864,
- 867, 870, 873, 876, 879, 886, 893, 896, 899, 905, 912, 915, 921, 924, 927, 930,
- 936, 939, 946, 951, 958, 963, 974, 977, 980, 983, 986, 989, 993, 997, 1001, 1005,
- 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1037, 1041, 1045, 1049, 1053, 1057, 1061, 1065, 1069,
- 1073, 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119, 1122,
- 1125, 1128, 1131, 1134, 1137, 1140, 1143, 1150, 1160, 1167, 1174, 1177, 1180, 1183, 1186, 1189,
- 1192, 1195, 1198, 1201, 1204, 1207, 1210, 1213, 1216, 1224, 1224, 1227, 1227, 1233, 1236, 1242,
- 1245, 1252, 1256, 1262, 1265, 1271, 1275, 1279, 1280, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
- 1296, 1300, 1300, 1300, 1307, 1308, 1312, 1312, 1313, 1313, 1318, 1322, 1329, 1333, 1340, 1341,
- 1345, 1351, 1355, 1364, 1364, 1371, 1374, 1380, 1384, 1390, 1390, 1395, 1395, 1399, 1399, 1407,
- 1410, 1416, 1419, 1425, 1429, 1436, 1439, 1442, 1445, 1448, 1456, 1462, 1468, 1471, 1477, 1477};
+ 724, 728, 733, 740, 744, 748, 752, 757, 764, 768, 774, 777, 780, 790, 794, 801,
+ 807, 813, 817, 821, 824, 827, 831, 839, 844, 848, 851, 854, 857, 860, 864, 867,
+ 871, 874, 877, 880, 883, 886, 893, 900, 903, 906, 912, 919, 922, 928, 931, 934,
+ 937, 943, 946, 953, 958, 965, 970, 981, 984, 987, 990, 993, 996, 1000, 1004, 1008,
+ 1012, 1016, 1020, 1024, 1028, 1032, 1036, 1040, 1044, 1048, 1052, 1056, 1060, 1064, 1068, 1072,
+ 1076, 1080, 1087, 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117, 1120, 1123, 1126,
+ 1129, 1132, 1135, 1138, 1141, 1144, 1147, 1150, 1157, 1167, 1174, 1181, 1184, 1187, 1190, 1193,
+ 1196, 1199, 1202, 1205, 1208, 1211, 1214, 1217, 1220, 1223, 1231, 1231, 1234, 1234, 1240, 1243,
+ 1249, 1252, 1259, 1263, 1269, 1272, 1278, 1282, 1286, 1287, 1293, 1294, 1295, 1296, 1297, 1298,
+ 1299, 1303, 1307, 1307, 1307, 1314, 1315, 1319, 1319, 1320, 1320, 1325, 1329, 1336, 1340, 1347,
+ 1348, 1352, 1358, 1362, 1371, 1371, 1378, 1381, 1387, 1391, 1397, 1397, 1402, 1402, 1406, 1406,
+ 1414, 1417, 1423, 1426, 1432, 1436, 1443, 1446, 1449, 1452, 1455, 1463, 1469, 1475, 1478, 1484,
+ 1484};
#endif
#if YYDEBUG || YYERROR_VERBOSE || 0
@@ -800,6 +802,7 @@
"CENTROID",
"FLAT",
"SMOOTH",
+ "NOPERSPECTIVE",
"READONLY",
"WRITEONLY",
"COHERENT",
@@ -1014,462 +1017,465 @@
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};
+ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414};
#endif
-#define YYPACT_NINF -370
+#define YYPACT_NINF -368
-#define yypact_value_is_default(Yystate) (!!((Yystate) == (-370)))
+#define yypact_value_is_default(Yystate) (!!((Yystate) == (-368)))
-#define YYTABLE_NINF -263
+#define YYTABLE_NINF -264
#define yytable_value_is_error(Yytable_value) 0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] = {
- 2585, -370, -370, -370, -370, -370, 120, -370, -370, -370, -370, -370, -370, -370, -370, -370,
- -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
- -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
- -370, -68, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
- -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370,
- -370, -370, -370, -370, -370, -370, -370, -370, -370, -82, -370, -370, -370, -88, -60, -58,
- 2691, -36, -370, -77, -370, 1402, -370, -370, -370, -370, -370, -370, -370, -370, -40, -370,
- 2479, -370, -370, 2887, -370, -370, -370, -59, -45, -370, -50, -370, 2691, -370, -370, -370,
- 2691, 49, 49, -370, -30, -109, -62, -370, 2691, -370, -370, 1501, 4, -370, -370, -8,
- 2691, -370, -370, 3, -57, -370, 413, -370, -370, -370, -370, -40, -96, -370, 1882, -95,
- -370, -370, 2691, 49, 2134, -370, -370, 14, -370, -370, -370, -370, -370, 1882, 1882, 1882,
- -370, -370, -370, -370, -370, -370, -370, -51, -370, -370, -370, 15, -44, 2007, 28, -370,
- 1882, 2, -80, 44, -98, 40, 8, 13, 20, 58, 61, -97, -370, 48, -370, 1629,
- -370, 2249, 2691, 57, -370, -45, 53, 56, -370, 67, 68, 60, 1757, 73, 1882, 69,
- 76, 74, -370, -370, 63, -370, -370, -31, -370, -88, 78, -370, -370, -370, -370, 560,
- -370, -370, -370, -370, -370, -370, 4, 1882, -69, -370, -370, 1882, 49, -40, -29, -370,
- -85, -370, -370, -370, -43, -370, -370, 1882, 2789, -370, -370, 1882, 79, -370, -370, -370,
- 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882, 1882,
- 1882, 1882, 1882, 1882, -370, -370, 80, -370, 2364, -370, -370, -370, -370, -370, 77, -370,
- 1882, -370, -370, -3, 1882, 97, -370, -370, -370, 707, -370, -370, -370, -370, -370, -370,
- -370, -370, -370, -370, -370, 1882, 1882, -370, -370, -370, -370, 1882, -370, 1, 4, 49,
- -370, -112, -370, -370, 81, 75, -370, 106, -370, -370, -370, -370, -370, 2, 2, -80,
- -80, 44, 44, 44, 44, -98, -98, 40, 8, 13, 20, 58, 61, 29, -370, -370,
- 179, -50, 1001, 1148, -42, -370, -34, -370, 1275, 707, -370, -370, -370, -370, -370, 1882,
- -370, -370, 1882, 109, -370, -370, -370, -370, 1275, 77, -370, 75, 49, 2691, 110, 105,
- 114, -370, 1882, -370, 102, 112, 235, -370, 115, 111, 854, -370, 113, -32, 1882, 854,
- 77, -370, 1882, -370, -370, -370, -370, 116, 75, -370, -370, -370, -370};
+ 2603, -368, -368, -368, -368, -368, 151, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+ -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+ -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+ -368, -368, -85, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+ -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368,
+ -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -79, -368, -368, -368, -98, -57,
+ -76, 2710, -113, -368, -24, -368, 1410, -368, -368, -368, -368, -368, -368, -368, -368, -47,
+ -368, 2496, -368, -368, 2908, -368, -368, -368, -26, -46, -368, -5, -368, 2710, -368, -368,
+ -368, 2710, 33, 33, -368, -35, -110, -97, -368, 2710, -368, -368, 1510, -42, -368, -368,
+ -2, 2710, -368, -368, 19, -90, -368, 414, -368, -368, -368, -368, -47, -70, -368, 1894,
+ -69, -368, -368, 2710, 33, 2148, -368, -368, 26, -368, -368, -368, -368, -368, 1894, 1894,
+ 1894, -368, -368, -368, -368, -368, -368, -368, -52, -368, -368, -368, 29, -48, 2020, 38,
+ -368, 1894, 8, -40, 31, -94, 28, 20, 23, 21, 61, 73, -82, -368, 60, -368,
+ 1639, -368, 2264, 2710, 41, -368, -46, 54, 55, -368, 66, 67, 59, 1768, 72, 1894,
+ 65, 76, 74, -368, -368, 62, -368, -368, -37, -368, -98, 77, -368, -368, -368, -368,
+ 562, -368, -368, -368, -368, -368, -368, -42, 1894, -67, -368, -368, 1894, 33, -47, -31,
+ -368, -88, -368, -368, -368, -44, -368, -368, 1894, 2809, -368, -368, 1894, 79, -368, -368,
+ -368, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
+ 1894, 1894, 1894, 1894, 1894, -368, -368, 75, -368, 2380, -368, -368, -368, -368, -368, 78,
+ -368, 1894, -368, -368, -19, 1894, 97, -368, -368, -368, 710, -368, -368, -368, -368, -368,
+ -368, -368, -368, -368, -368, -368, 1894, 1894, -368, -368, -368, -368, 1894, -368, -7, -42,
+ 33, -368, -107, -368, -368, 80, 100, -368, 81, -368, -368, -368, -368, -368, 8, 8,
+ -40, -40, 31, 31, 31, 31, -94, -94, 28, 20, 23, 21, 61, 73, 25, -368,
+ -368, 179, -5, 1006, 1154, -43, -368, -39, -368, 1282, 710, -368, -368, -368, -368, -368,
+ 1894, -368, -368, 1894, 109, -368, -368, -368, -368, 1282, 78, -368, 100, 33, 2710, 110,
+ 105, 112, -368, 1894, -368, 102, 115, 235, -368, 114, 111, 858, -368, 113, -32, 1894,
+ 858, 78, -368, 1894, -368, -368, -368, -368, 116, 100, -368, -368, -368, -368};
/* 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_uint16 yydefact[] = {
- 0, 126, 127, 150, 151, 152, 0, 134, 136, 170, 167, 168, 169, 174, 175, 176, 177, 178, 179,
- 171, 172, 173, 180, 181, 182, 183, 184, 185, 137, 138, 139, 141, 142, 135, 186, 187, 188, 189,
- 190, 191, 140, 123, 122, 143, 144, 145, 146, 147, 148, 0, 166, 193, 195, 215, 217, 196, 199,
- 200, 201, 202, 205, 206, 207, 208, 197, 203, 209, 198, 204, 210, 194, 211, 212, 213, 214, 216,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 0, 192, 232, 301, 302, 0,
- 99, 98, 0, 110, 115, 131, 0, 132, 133, 124, 128, 120, 130, 129, 149, 160, 231, 0, 298,
- 300, 0, 2, 3, 235, 0, 0, 89, 0, 97, 0, 106, 100, 108, 0, 109, 0, 90, 2,
- 116, 0, 95, 0, 125, 121, 0, 161, 1, 299, 0, 0, 233, 159, 156, 0, 154, 0, 303,
- 101, 105, 107, 103, 111, 102, 0, 117, 88, 96, 0, 0, 0, 237, 10, 4, 8, 6, 7,
- 9, 31, 0, 0, 0, 162, 38, 37, 39, 36, 5, 12, 32, 14, 19, 20, 0, 0, 25,
- 0, 40, 0, 44, 47, 50, 55, 58, 60, 62, 64, 66, 68, 70, 87, 0, 29, 0, 91,
- 0, 0, 0, 153, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 257, 266, 270,
- 40, 72, 85, 0, 246, 0, 149, 249, 268, 248, 247, 0, 250, 251, 252, 253, 254, 255, 104,
- 0, 112, 245, 119, 0, 0, 243, 0, 241, 0, 238, 33, 34, 0, 16, 17, 0, 0, 23,
- 22, 0, 166, 26, 28, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 163, 164, 0, 236, 0, 157, 158, 155, 294, 293, 264, 285,
- 0, 297, 295, 0, 0, 0, 278, 281, 256, 0, 75, 76, 78, 77, 80, 81, 82, 83, 84,
- 79, 74, 0, 0, 271, 267, 269, 114, 0, 118, 0, 244, 0, 239, 0, 92, 11, 0, 18,
- 30, 15, 21, 27, 41, 42, 43, 46, 45, 48, 49, 53, 54, 51, 52, 56, 57, 59, 61,
- 63, 65, 67, 69, 0, 165, 234, 0, 0, 0, 0, 0, 296, 0, 277, 0, 258, 73, 86,
- 113, 240, 242, 0, 93, 13, 0, 0, 263, 265, 288, 287, 290, 264, 275, 279, 0, 0, 0,
- 0, 0, 71, 0, 289, 0, 0, 274, 272, 0, 0, 0, 259, 0, 0, 291, 0, 264, 276,
- 0, 261, 282, 260, 94, 0, 292, 286, 273, 280, 284};
+ 0, 127, 128, 151, 152, 153, 0, 135, 137, 171, 168, 169, 170, 175, 176, 177, 178, 179, 180,
+ 172, 173, 174, 181, 182, 183, 184, 185, 186, 138, 139, 140, 142, 143, 136, 187, 188, 189, 190,
+ 191, 192, 141, 123, 122, 124, 144, 145, 146, 147, 148, 149, 0, 167, 194, 196, 216, 218, 197,
+ 200, 201, 202, 203, 206, 207, 208, 209, 198, 204, 210, 199, 205, 211, 195, 212, 213, 214, 215,
+ 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 0, 193, 233, 302, 303,
+ 0, 99, 98, 0, 110, 115, 132, 0, 133, 134, 125, 129, 120, 131, 130, 150, 161, 232, 0,
+ 299, 301, 0, 2, 3, 236, 0, 0, 89, 0, 97, 0, 106, 100, 108, 0, 109, 0, 90,
+ 2, 116, 0, 95, 0, 126, 121, 0, 162, 1, 300, 0, 0, 234, 160, 157, 0, 155, 0,
+ 304, 101, 105, 107, 103, 111, 102, 0, 117, 88, 96, 0, 0, 0, 238, 10, 4, 8, 6,
+ 7, 9, 31, 0, 0, 0, 163, 38, 37, 39, 36, 5, 12, 32, 14, 19, 20, 0, 0,
+ 25, 0, 40, 0, 44, 47, 50, 55, 58, 60, 62, 64, 66, 68, 70, 87, 0, 29, 0,
+ 91, 0, 0, 0, 154, 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 258, 267,
+ 271, 40, 72, 85, 0, 247, 0, 150, 250, 269, 249, 248, 0, 251, 252, 253, 254, 255, 256,
+ 104, 0, 112, 246, 119, 0, 0, 244, 0, 242, 0, 239, 33, 34, 0, 16, 17, 0, 0,
+ 23, 22, 0, 167, 26, 28, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 0, 237, 0, 158, 159, 156, 295, 294, 265,
+ 286, 0, 298, 296, 0, 0, 0, 279, 282, 257, 0, 75, 76, 78, 77, 80, 81, 82, 83,
+ 84, 79, 74, 0, 0, 272, 268, 270, 114, 0, 118, 0, 245, 0, 240, 0, 92, 11, 0,
+ 18, 30, 15, 21, 27, 41, 42, 43, 46, 45, 48, 49, 53, 54, 51, 52, 56, 57, 59,
+ 61, 63, 65, 67, 69, 0, 166, 235, 0, 0, 0, 0, 0, 297, 0, 278, 0, 259, 73,
+ 86, 113, 241, 243, 0, 93, 13, 0, 0, 264, 266, 289, 288, 291, 265, 276, 280, 0, 0,
+ 0, 0, 0, 71, 0, 290, 0, 0, 275, 273, 0, 0, 0, 260, 0, 0, 292, 0, 265,
+ 277, 0, 262, 283, 261, 94, 0, 293, 287, 274, 281, 285};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] = {
- -370, -48, -370, -370, -370, -370, -370, -370, -7, -370, -370, -370, -370, -52, -370, -102,
- -101, -148, -84, -26, -24, -27, -25, -33, -22, -370, -134, -144, -370, -125, -199, -370,
- 17, 18, -370, -370, -370, 136, 141, 138, -370, -370, -349, -370, -90, -370, -370, -99,
- -370, -92, 263, -370, -370, 59, 0, -118, -370, -370, -370, -370, -132, -151, 19, -65,
- -240, -93, -229, -351, -135, -370, -370, -140, -369, -370, -370, -119, -37, -91, -370, -370,
- -370, -370, -370, -113, -370, -370, -370, -370, -370, -370, -370, -370, -370, 169, -370, -370};
+ -368, -49, -368, -368, -368, -368, -368, -368, -8, -368, -368, -368, -368, -53, -368, -104,
+ -103, -149, -99, -28, -27, -25, -23, -29, -22, -368, -135, -145, -368, -138, -201, -368,
+ 15, 17, -368, -368, -368, 135, 142, 139, -368, -368, -356, -368, -91, -368, -368, -100,
+ -368, -93, 264, -368, -368, 57, 0, -116, -368, -368, -368, -368, -132, -154, 22, -64,
+ -240, -96, -230, -352, -136, -368, -368, -137, -367, -368, -368, -120, -36, -92, -368, -368,
+ -368, -368, -368, -112, -368, -368, -368, -368, -368, -368, -368, -368, -368, 169, -368, -368};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] = {
- -1, 253, 181, 182, 183, 340, 184, 185, 186, 187, 188, 189, 190, 228, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 229, 230, 325, 231, 205, 136,
- 232, 233, 94, 95, 96, 125, 126, 127, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 148, 149, 206, 140, 110, 111, 210, 144, 164, 165, 254, 255,
- 250, 235, 236, 237, 238, 313, 399, 420, 368, 369, 370, 421, 239, 240, 241, 407,
- 242, 408, 243, 398, 244, 376, 302, 371, 392, 404, 405, 245, 112, 113, 114, 122};
+ -1, 254, 182, 183, 184, 341, 185, 186, 187, 188, 189, 190, 191, 229, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 230, 231, 326, 232, 206, 137,
+ 233, 234, 95, 96, 97, 126, 127, 128, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 149, 150, 207, 141, 111, 112, 211, 145, 165, 166, 255, 256,
+ 251, 236, 237, 238, 239, 314, 400, 421, 369, 370, 371, 422, 240, 241, 242, 408,
+ 243, 409, 244, 399, 245, 377, 303, 372, 393, 405, 406, 246, 113, 114, 115, 123};
/* 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[] = {
- 109, 119, 137, 151, 129, 204, 128, 330, 294, 138, 329, 332, 209, 257, 249, 159, 146, 92, 93,
- 389, 279, 280, 337, 309, 406, 383, 290, 396, 139, 137, 132, 117, 129, 384, 128, 158, 129, 246,
- 248, 116, 117, 139, 207, 396, 163, 269, 162, 426, 247, 251, 260, 133, 163, 120, 162, 281, 282,
- 121, 257, 419, 338, 291, 147, 137, 419, 261, 262, 275, 207, 276, 252, 118, 163, 204, 162, 331,
- 123, 160, 296, 212, 145, 155, 156, 161, 124, 213, 263, 191, 204, 150, 264, 380, 266, 339, 393,
- 307, 109, 139, 267, 326, 326, 109, 394, 249, 423, 157, 130, 249, 326, 131, 326, 326, 109, 335,
- 327, 143, 336, 163, 163, 162, 162, 258, 259, 345, 109, 3, 4, 5, 109, 92, 93, 353, 354,
- 355, 356, 334, 109, 208, 341, 326, 271, 207, 373, 335, 109, 257, 381, 211, 329, -30, 234, 265,
- 272, 273, 274, 191, 116, 117, 277, 278, 283, 284, 109, 270, 109, 285, 365, 297, 298, 286, 191,
- 326, 386, 349, 350, 287, 351, 352, 427, 372, 288, 378, 379, 374, 400, 289, 292, 249, 314, 315,
- 316, 317, 318, 319, 320, 321, 322, 323, 300, 357, 358, 301, 303, 304, 163, 305, 162, 324, 308,
- 109, 109, 311, 310, -29, 312, -24, -262, 326, 366, 385, 346, 347, 348, 191, 191, 191, 191, 191,
- 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 234, 375, -31, 401, 387, 402, 411, 410,
- 414, 415, 204, 388, 395, 412, 416, 225, 418, 363, 344, 422, 359, 361, 428, 360, 362, 153, 152,
- 154, 395, 364, 115, 382, 333, 299, 417, 249, 425, 377, 413, 390, 403, 391, 142, 0, 0, 0,
- 0, 397, 0, 0, 424, 0, 0, 0, 0, 0, 0, 109, 0, 137, 0, 0, 0, 397, 0,
- 0, 138, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 0, 0, 0, 0, 234, 234, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 109, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, 0, 0, 234, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 214, 215, 216, 0, 217, 218, 219, 220, 221,
- 222, 223, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 224, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
- 0, 225, 226, 0, 0, 0, 0, 227, 177, 178, 179, 180, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 224, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 225, 328, 0, 0,
- 0, 0, 227, 177, 178, 179, 180, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 224, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 166, 167, 91, 168,
- 169, 170, 171, 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 175, 0, 0, 0, 225, 0, 0, 0, 0, 0, 227, 177, 178,
- 179, 180, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 214, 215, 216, 0, 217,
- 218, 219, 220, 221, 222, 223, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 224, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 166, 167, 91, 168, 169, 170, 171, 172, 0,
- 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 175, 0, 0, 0, 150, 0, 0, 0, 0, 0, 227, 177, 178, 179, 180, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222,
- 223, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 224, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 227, 177, 178, 179, 180, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 175, 7, 8, 9, 10, 11, 12, 0, 0,
- 0, 227, 177, 178, 179, 180, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 166, 167, 91, 168, 169, 170,
- 171, 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
- 2, 3, 4, 5, 175, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 177, 178, 179, 180,
- 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 0, 134, 91, 0, 9, 10, 11, 12, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 0, 0, 0, 0, 0, 135, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 166, 167, 91, 168, 169, 170, 171, 172,
- 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 175, 0, 0, 176, 9, 10, 11, 12, 0, 0, 0, 177, 178, 179, 180, 0, 0,
- 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0,
- 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 0, 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
- 293, 9, 10, 11, 12, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34,
- 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0,
- 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 9, 10, 11, 12, 0, 0, 0,
- 0, 0, 306, 177, 178, 179, 180, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 166, 167, 91, 168, 169, 170, 171,
- 172, 0, 0, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 175, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0,
- 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 268,
- 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 0, 90, 166, 167, 91, 168, 169, 170, 171, 172, 0, 0, 173, 174, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 175, 7, 8, 9, 10,
- 11, 12, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 0, 0,
- 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9,
- 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 0,
- 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 7, 8,
- 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 0, 0, 91, 0, 0, 0, 0, 0, 0, 141, 0, 0, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 0, 0, 91, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 0, 0, 91, 1, 2, 3, 4,
- 5, 0, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 0, 0, 91, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0,
- 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 0, 90, 0, 342, 91, 9, 10, 11, 12, 343, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 0, 90, 0, 0, 91};
+ 110, 120, 138, 152, 130, 205, 129, 295, 331, 139, 330, 258, 333, 210, 250, 93, 147, 94, 160,
+ 390, 338, 397, 310, 117, 118, 280, 281, 407, 140, 138, 131, 384, 130, 132, 129, 159, 130, 397,
+ 261, 385, 247, 249, 291, 161, 164, 270, 163, 213, 122, 162, 427, 134, 164, 214, 163, 119, 258,
+ 121, 339, 420, 282, 283, 148, 138, 420, 262, 263, 125, 140, 208, 253, 208, 164, 205, 163, 248,
+ 252, 292, 332, 297, 124, 156, 157, 308, 133, 118, 264, 192, 205, 267, 265, 140, 381, 340, 394,
+ 268, 208, 110, 395, 327, 327, 158, 110, 250, 327, 424, 327, 250, 276, 328, 277, 327, 336, 110,
+ 146, 337, 144, 164, 164, 163, 163, 259, 260, 346, 327, 110, 342, 374, 93, 110, 94, 354, 355,
+ 356, 357, 151, 336, 110, 335, 382, 272, 117, 118, 258, 209, 110, 278, 279, 330, 284, 285, 235,
+ 298, 299, 366, 192, 3, 4, 5, 273, 274, 275, -30, 110, 212, 110, 266, 373, 327, 387, 192,
+ 375, 350, 351, 271, 352, 353, 288, 286, 428, 287, 379, 380, 401, 289, 358, 359, 250, 315, 316,
+ 317, 318, 319, 320, 321, 322, 323, 324, 290, 293, 301, 302, 304, 305, 164, 306, 163, 325, 309,
+ 311, 110, 110, 312, -29, 367, 313, -24, -31, -263, 386, 347, 348, 349, 192, 192, 192, 192, 192,
+ 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 396, 235, 376, 402, 327, 388, 403, 412,
+ 411, 415, 205, 389, 413, 416, 417, 226, 396, 419, 345, 360, 423, 361, 364, 429, 362, 154, 414,
+ 363, 153, 155, 365, 116, 300, 383, 418, 250, 334, 391, 425, 378, 426, 392, 404, 143, 0, 0,
+ 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 138, 0, 0, 0, 398, 0,
+ 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 235, 0, 0, 0, 0, 235, 235, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 110,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 235, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 215, 216, 217, 0, 218, 219, 220, 221,
+ 222, 223, 224, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 225, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174,
+ 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
+ 0, 0, 0, 226, 227, 0, 0, 0, 0, 228, 178, 179, 180, 181, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 215, 216, 217, 0, 218, 219, 220, 221, 222, 223, 224, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 225, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 226,
+ 329, 0, 0, 0, 0, 228, 178, 179, 180, 181, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 215, 216, 217, 0, 218, 219, 220, 221, 222, 223, 224, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 225, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 226, 0, 0, 0, 0,
+ 0, 228, 178, 179, 180, 181, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 215,
+ 216, 217, 0, 218, 219, 220, 221, 222, 223, 224, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 225, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 167, 168, 92, 169,
+ 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 151, 0, 0, 0, 0, 0, 228, 178, 179,
+ 180, 181, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 215, 216, 217, 0, 218,
+ 219, 220, 221, 222, 223, 224, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 225, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 167, 168, 92, 169, 170, 171, 172, 173,
+ 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 178, 179, 180, 181, 1, 2,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 176, 7,
+ 8, 9, 10, 11, 12, 0, 0, 0, 228, 178, 179, 180, 181, 0, 0, 0, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 176, 7, 8, 9, 10, 11, 12,
+ 0, 0, 0, 0, 178, 179, 180, 181, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 135, 92,
+ 0, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 136, 34,
+ 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 0, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 177, 9, 10, 11,
+ 12, 0, 0, 0, 178, 179, 180, 181, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38,
+ 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 91, 167, 168,
+ 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 294, 9, 10, 11, 12, 0, 0, 0,
+ 178, 179, 180, 181, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 91, 167, 168, 92, 169, 170, 171,
+ 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 176, 9, 10, 11, 12, 0, 0, 0, 0, 0, 307, 178, 179, 180, 181,
+ 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0,
+ 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 0, 91, 167, 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 9, 10,
+ 11, 12, 0, 0, 0, 0, 0, 0, 178, 179, 180, 181, 0, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37,
+ 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 269, 0, 52, 53, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 91, 167,
+ 168, 92, 169, 170, 171, 172, 173, 0, 0, 174, 175, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 2, 3, 4, 5, 176, 7, 8, 9, 10, 11, 12, 0, 0, 0,
+ 0, 178, 179, 180, 181, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 0, 92, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 10, 11, 12, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 257, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 0, 92, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 10, 11,
+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 0,
+ 92, 0, 0, 0, 0, 0, 0, 142, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 0, 0, 92, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 0, 0, 92, 1, 2, 3, 4,
+ 5, 0, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 0, 0, 92, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 0, 91, 0, 343, 92, 9, 10, 11, 12, 344, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 0, 0, 0, 0, 0, 0, 34, 35, 36, 37, 38, 39, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 0, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 0, 91, 0, 0, 92};
static const yytype_int16 yycheck[] = {
- 0, 49, 101, 122, 96, 139, 96, 247, 207, 101, 239, 251, 144, 164, 158, 133, 61, 0, 0,
- 370, 118, 119, 107, 222, 393, 137, 123, 376, 137, 128, 107, 108, 124, 145, 124, 144, 128, 155,
- 156, 107, 108, 137, 137, 392, 136, 189, 136, 416, 144, 144, 175, 99, 144, 135, 144, 153, 154,
- 145, 209, 410, 145, 158, 107, 162, 415, 116, 117, 147, 137, 149, 162, 139, 164, 207, 164, 144,
- 136, 139, 210, 136, 139, 129, 130, 145, 142, 142, 137, 139, 222, 139, 141, 331, 136, 136, 136,
- 220, 96, 137, 142, 142, 142, 101, 136, 247, 136, 135, 142, 251, 142, 145, 142, 142, 112, 142,
- 145, 115, 145, 209, 210, 209, 210, 173, 174, 267, 124, 5, 6, 7, 128, 112, 112, 279, 280,
- 281, 282, 253, 136, 145, 263, 142, 192, 137, 145, 142, 144, 296, 145, 144, 377, 135, 150, 136,
- 150, 151, 152, 207, 107, 108, 114, 115, 120, 121, 162, 135, 164, 157, 291, 110, 111, 156, 222,
- 142, 143, 275, 276, 155, 277, 278, 418, 304, 122, 325, 326, 308, 383, 124, 138, 331, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 145, 283, 284, 145, 135, 135, 296, 145, 296, 144, 135,
- 209, 210, 135, 143, 135, 140, 136, 139, 142, 138, 138, 272, 273, 274, 275, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 239, 143, 135, 386, 64, 135, 140, 136,
- 145, 136, 383, 369, 376, 138, 18, 139, 144, 289, 264, 145, 285, 287, 145, 286, 288, 128, 124,
- 128, 392, 290, 6, 335, 252, 213, 408, 418, 415, 313, 402, 371, 392, 371, 112, -1, -1, -1,
- -1, 376, -1, -1, 414, -1, -1, -1, -1, -1, -1, 296, -1, 397, -1, -1, -1, 392, -1,
- -1, 397, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 396, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, 371, -1, -1, -1, -1, 376, 377, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 392, -1, -1, -1, -1, 397, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, -1, -1, -1, -1, 415, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 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, -1, -1, 116, 117, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1,
- -1, 139, 140, -1, -1, -1, -1, 145, 146, 147, 148, 149, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 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, -1,
- 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, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, 139, 140, -1, -1,
- -1, -1, 145, 146, 147, 148, 149, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 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, -1, 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, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, 139, -1, -1, -1, -1, -1, 145, 146, 147,
- 148, 149, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
+ 0, 50, 102, 123, 97, 140, 97, 208, 248, 102, 240, 165, 252, 145, 159, 0, 62, 0, 134,
+ 371, 108, 377, 223, 108, 109, 119, 120, 394, 138, 129, 143, 138, 125, 146, 125, 145, 129, 393,
+ 176, 146, 156, 157, 124, 140, 137, 190, 137, 137, 146, 146, 417, 100, 145, 143, 145, 140, 210,
+ 136, 146, 411, 154, 155, 108, 163, 416, 117, 118, 143, 138, 138, 163, 138, 165, 208, 165, 145,
+ 145, 159, 145, 211, 137, 130, 131, 221, 108, 109, 138, 140, 223, 137, 142, 138, 332, 137, 137,
+ 143, 138, 97, 137, 143, 143, 136, 102, 248, 143, 137, 143, 252, 148, 146, 150, 143, 143, 113,
+ 140, 146, 116, 210, 211, 210, 211, 174, 175, 268, 143, 125, 264, 146, 113, 129, 113, 280, 281,
+ 282, 283, 140, 143, 137, 254, 146, 193, 108, 109, 297, 146, 145, 115, 116, 378, 121, 122, 151,
+ 111, 112, 292, 208, 5, 6, 7, 151, 152, 153, 136, 163, 145, 165, 137, 305, 143, 144, 223,
+ 309, 276, 277, 136, 278, 279, 156, 158, 419, 157, 326, 327, 384, 123, 284, 285, 332, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 125, 139, 146, 146, 136, 136, 297, 146, 297, 145, 136,
+ 144, 210, 211, 136, 136, 139, 141, 137, 136, 140, 139, 273, 274, 275, 276, 277, 278, 279, 280,
+ 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 377, 240, 144, 387, 143, 65, 136, 141,
+ 137, 146, 384, 370, 139, 137, 18, 140, 393, 145, 265, 286, 146, 287, 290, 146, 288, 129, 403,
+ 289, 125, 129, 291, 6, 214, 336, 409, 419, 253, 372, 415, 314, 416, 372, 393, 113, -1, -1,
+ -1, 377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, 398, -1, -1, -1, 393, -1,
+ -1, 398, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 371, 372, -1, -1, -1, -1, 377, 378, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, 398,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 411, -1, -1, -1, -1, 416, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 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, -1, -1, 117,
+ 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136,
+ -1, -1, -1, 140, 141, -1, -1, -1, -1, 146, 147, 148, 149, 150, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 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, -1, -1, 117, 118, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, 140,
+ 141, -1, -1, -1, -1, 146, 147, 148, 149, 150, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 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, -1, 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, -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, 140, -1, -1, -1, -1,
+ -1, 146, 147, 148, 149, 150, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 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, -1, 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, -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, 140, -1, -1, -1, -1, -1, 146, 147, 148,
+ 149, 150, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 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, -1,
- -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 135, -1, -1, -1, 139, -1, -1, -1, -1, -1, 145, 146, 147, 148, 149, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, -1, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 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, -1, 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, -1, -1, 116, 117, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 145, 146, 147, 148, 149, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 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, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 135, 9, 10, 11, 12, 13, 14, -1, -1,
- -1, 145, 146, 147, 148, 149, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 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, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 135, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, 146, 147, 148, 149,
- -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, -1, 107, 108, -1, 11, 12, 13, 14, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, -1, -1, -1, -1, -1, 145, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 135, -1, -1, 138, 11, 12, 13, 14, -1, -1, -1, 146, 147, 148, 149, -1, -1,
- -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1,
- -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, -1, 116, 117, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1,
- 138, 11, 12, 13, 14, -1, -1, -1, 146, 147, 148, 149, -1, -1, -1, -1, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47,
- 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
- 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, 11, 12, 13, 14, -1, -1, -1,
- -1, -1, 145, 146, 147, 148, 149, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, -1, -1, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 135, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 146, 147, 148, 149, -1,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, -1,
- -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63,
- -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, -1, 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, -1, 116, 117, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 135, 9, 10, 11, 12,
- 13, 14, -1, -1, -1, -1, 146, 147, 148, 149, -1, -1, -1, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, -1, -1,
- 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, 11,
- 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 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, -1, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, -1,
- -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10,
- 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 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, -1, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- -1, -1, 108, -1, -1, -1, -1, -1, -1, 0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, 26, 27, 28,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 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,
+ -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, 146, 147, 148, 149, 150, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 62, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, -1, 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, -1, -1, 117, 118,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 136, 9,
+ 10, 11, 12, 13, 14, -1, -1, -1, 146, 147, 148, 149, 150, -1, -1, -1, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, -1, -1, 108, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ -1, 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, -1, -1, 117, 118, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 136, 9, 10, 11, 12, 13, 14,
+ -1, -1, -1, -1, 147, 148, 149, 150, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, 108, 109,
+ -1, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, 146, 47,
+ 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, -1, 117, 118, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, 139, 11, 12, 13,
+ 14, -1, -1, -1, 147, 148, 149, 150, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51,
+ 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, 139, 11, 12, 13, 14, -1, -1, -1,
+ 147, 148, 149, 150, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 136, 11, 12, 13, 14, -1, -1, -1, -1, -1, 146, 147, 148, 149, 150,
+ -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1,
+ -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, -1, 106, 107, 108, 109, 110, 111, 112, 113, 114, -1, -1, 117, 118, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 136, 11, 12,
+ 13, 14, -1, -1, -1, -1, -1, -1, 147, 148, 149, 150, -1, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50,
+ 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, 7, 136, 9, 10, 11, 12, 13, 14, -1, -1, -1,
+ -1, 147, 148, 149, 150, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, -1, -1, 108, 3, 4, 5, 6,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, 11, 12, 13, 14, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 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, -1, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, 11, 12, 13,
+ 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 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, -1, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1,
+ 109, -1, -1, -1, -1, -1, -1, 0, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 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, -1, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ -1, -1, 109, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, -1, -1, 109, 3, 4, 5, 6,
7, -1, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, -1, -1, 108, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
- -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, -1, 105, -1, 107, 108, 11, 12, 13, 14, 113, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 62, 63, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, -1, 105, -1, -1, 108};
+ 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, -1, -1, 109, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, 108, 109, 11, 12, 13, 14, 114, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 47, 48, 49, 50, 51, 52, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, 106, -1, -1, 109};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] = {
0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 26, 27, 28, 29, 30, 31,
32, 33, 34, 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, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 108, 191, 192, 193,
- 194, 195, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 213, 215, 216, 251, 252,
- 253, 209, 107, 108, 139, 160, 135, 145, 254, 136, 142, 196, 197, 198, 203, 208, 142, 145, 107,
- 160, 107, 145, 190, 206, 208, 137, 214, 0, 252, 213, 218, 139, 61, 107, 211, 212, 139, 234,
- 197, 196, 198, 160, 160, 135, 144, 214, 139, 145, 203, 208, 219, 220, 106, 107, 109, 110, 111,
- 112, 113, 116, 117, 135, 138, 146, 147, 148, 149, 161, 162, 163, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 189, 213, 137, 145,
- 219, 217, 144, 136, 142, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 64, 139, 140, 145,
- 172, 185, 186, 188, 191, 192, 213, 224, 225, 226, 227, 235, 236, 237, 239, 241, 243, 250, 214,
- 144, 214, 186, 223, 144, 208, 160, 221, 222, 140, 220, 172, 172, 188, 116, 117, 137, 141, 136,
- 136, 142, 63, 186, 135, 172, 150, 151, 152, 147, 149, 114, 115, 118, 119, 153, 154, 120, 121,
- 157, 156, 155, 122, 124, 123, 158, 138, 138, 189, 140, 219, 110, 111, 212, 145, 145, 245, 135,
- 135, 145, 145, 188, 135, 189, 143, 135, 140, 228, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 144, 187, 142, 145, 140, 225, 223, 144, 223, 221, 214, 142, 145, 107, 145, 136, 164, 188,
- 107, 113, 167, 186, 172, 172, 172, 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 178, 179,
- 180, 181, 182, 183, 188, 138, 140, 231, 232, 233, 246, 188, 145, 188, 143, 244, 235, 186, 186,
- 223, 145, 222, 137, 145, 138, 143, 64, 234, 226, 224, 236, 247, 136, 136, 188, 201, 203, 242,
- 229, 189, 186, 135, 242, 248, 249, 231, 238, 240, 160, 136, 140, 138, 188, 145, 136, 18, 227,
- 144, 226, 230, 234, 145, 136, 188, 230, 231, 223, 145};
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, 192, 193,
+ 194, 195, 196, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 214, 216, 217, 252,
+ 253, 254, 210, 108, 109, 140, 161, 136, 146, 255, 137, 143, 197, 198, 199, 204, 209, 143, 146,
+ 108, 161, 108, 146, 191, 207, 209, 138, 215, 0, 253, 214, 219, 140, 62, 108, 212, 213, 140,
+ 235, 198, 197, 199, 161, 161, 136, 145, 215, 140, 146, 204, 209, 220, 221, 107, 108, 110, 111,
+ 112, 113, 114, 117, 118, 136, 139, 147, 148, 149, 150, 162, 163, 164, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 190, 214, 138,
+ 146, 220, 218, 145, 137, 143, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 65, 140, 141,
+ 146, 173, 186, 187, 189, 192, 193, 214, 225, 226, 227, 228, 236, 237, 238, 240, 242, 244, 251,
+ 215, 145, 215, 187, 224, 145, 209, 161, 222, 223, 141, 221, 173, 173, 189, 117, 118, 138, 142,
+ 137, 137, 143, 64, 187, 136, 173, 151, 152, 153, 148, 150, 115, 116, 119, 120, 154, 155, 121,
+ 122, 158, 157, 156, 123, 125, 124, 159, 139, 139, 190, 141, 220, 111, 112, 213, 146, 146, 246,
+ 136, 136, 146, 146, 189, 136, 190, 144, 136, 141, 229, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 145, 188, 143, 146, 141, 226, 224, 145, 224, 222, 215, 143, 146, 108, 146, 137, 165,
+ 189, 108, 114, 168, 187, 173, 173, 173, 175, 175, 176, 176, 177, 177, 177, 177, 178, 178, 179,
+ 180, 181, 182, 183, 184, 189, 139, 141, 232, 233, 234, 247, 189, 146, 189, 144, 245, 236, 187,
+ 187, 224, 146, 223, 138, 146, 139, 144, 65, 235, 227, 225, 237, 248, 137, 137, 189, 202, 204,
+ 243, 230, 190, 187, 136, 243, 249, 250, 232, 239, 241, 161, 137, 141, 139, 189, 146, 137, 18,
+ 228, 145, 227, 231, 235, 146, 137, 189, 231, 232, 224, 146};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] = {
- 0, 159, 160, 160, 161, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 164,
- 165, 166, 166, 167, 167, 168, 168, 169, 169, 170, 171, 171, 171, 172, 172, 172, 172, 173, 173,
- 173, 173, 174, 174, 174, 174, 175, 175, 175, 176, 176, 176, 177, 177, 177, 177, 177, 178, 178,
- 178, 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, 184, 184, 185, 185, 186, 186, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 188, 188, 189, 190, 191, 191, 191, 191, 191, 191,
- 191, 191, 192, 193, 193, 194, 194, 195, 196, 196, 197, 197, 197, 197, 198, 199, 199, 199, 199,
- 199, 200, 200, 200, 200, 200, 201, 201, 202, 202, 203, 203, 204, 205, 206, 206, 206, 206, 206,
- 206, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 208, 209, 209,
- 209, 210, 211, 211, 212, 212, 212, 212, 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 217, 216, 218, 216, 219, 219, 220, 220, 221, 221, 222, 222, 223, 224,
- 225, 225, 226, 226, 226, 226, 226, 226, 226, 227, 228, 229, 227, 230, 230, 232, 231, 233, 231,
- 234, 234, 235, 235, 236, 236, 237, 238, 238, 240, 239, 241, 241, 242, 242, 244, 243, 245, 243,
- 246, 243, 247, 247, 248, 248, 249, 249, 250, 250, 250, 250, 250, 251, 251, 252, 252, 254, 253};
+ 0, 160, 161, 161, 162, 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164,
+ 165, 166, 167, 167, 168, 168, 169, 169, 170, 170, 171, 172, 172, 172, 173, 173, 173, 173,
+ 174, 174, 174, 174, 175, 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 178,
+ 178, 179, 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, 184, 184, 185, 185, 186, 186,
+ 187, 187, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 189, 189, 190, 191, 192,
+ 192, 192, 192, 192, 192, 192, 192, 193, 194, 194, 195, 195, 196, 197, 197, 198, 198, 198,
+ 198, 199, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 202, 202, 203, 203, 203, 204,
+ 204, 205, 206, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 209, 210, 210, 210, 211, 212, 212, 213, 213, 213, 213, 214,
+ 214, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
+ 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
+ 218, 217, 219, 217, 220, 220, 221, 221, 222, 222, 223, 223, 224, 225, 226, 226, 227, 227,
+ 227, 227, 227, 227, 227, 228, 229, 230, 228, 231, 231, 233, 232, 234, 232, 235, 235, 236,
+ 236, 237, 237, 238, 239, 239, 241, 240, 242, 242, 243, 243, 245, 244, 246, 244, 247, 244,
+ 248, 248, 249, 249, 250, 250, 251, 251, 251, 251, 251, 252, 252, 253, 253, 255, 254};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] = {
@@ -1477,12 +1483,12 @@
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, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 2, 4, 5,
6, 9, 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, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
- 3, 1, 3, 3, 1, 1, 2, 2, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 1, 3, 1, 3, 3, 1, 1, 2, 2, 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, 3, 1, 0, 6, 3, 2,
- 1, 4, 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, 1, 0, 3};
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, 4, 1, 3, 1, 2, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, 3, 1, 0, 6, 3,
+ 2, 1, 4, 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, 1, 0, 3};
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
@@ -3395,9 +3401,12 @@
case 124:
{
- (yyval.interm.typeQualifierBuilder) = context->createTypeQualifierBuilder((yylsp[0]));
- (yyval.interm.typeQualifierBuilder)
- ->appendQualifier((yyvsp[0].interm.qualifierWrapper));
+ if (!context->checkCanUseExtension((yylsp[0]),
+ TExtension::NV_shader_noperspective_interpolation))
+ {
+ context->error((yylsp[0]), "unsupported interpolation qualifier", "noperspective");
+ }
+ (yyval.interm.qualifier) = EvqNoPerspective;
}
break;
@@ -3405,7 +3414,7 @@
case 125:
{
- (yyval.interm.typeQualifierBuilder) = (yyvsp[-1].interm.typeQualifierBuilder);
+ (yyval.interm.typeQualifierBuilder) = context->createTypeQualifierBuilder((yylsp[0]));
(yyval.interm.typeQualifierBuilder)
->appendQualifier((yyvsp[0].interm.qualifierWrapper));
}
@@ -3415,7 +3424,9 @@
case 126:
{
- // empty
+ (yyval.interm.typeQualifierBuilder) = (yyvsp[-1].interm.typeQualifierBuilder);
+ (yyval.interm.typeQualifierBuilder)
+ ->appendQualifier((yyvsp[0].interm.qualifierWrapper));
}
break;
@@ -3431,13 +3442,21 @@
case 128:
{
+ // empty
+ }
+
+ break;
+
+ case 129:
+
+ {
context->checkLocalVariableConstStorageQualifier(*(yyvsp[0].interm.qualifierWrapper));
(yyval.interm.qualifierWrapper) = (yyvsp[0].interm.qualifierWrapper);
}
break;
- case 129:
+ case 130:
{
context->checkIsAtGlobalLevel((yylsp[0]), "layout");
@@ -3447,7 +3466,7 @@
break;
- case 130:
+ case 131:
{
(yyval.interm.qualifierWrapper) =
@@ -3456,7 +3475,7 @@
break;
- case 131:
+ case 132:
{
(yyval.interm.qualifierWrapper) =
@@ -3465,7 +3484,7 @@
break;
- case 132:
+ case 133:
{
context->checkIsAtGlobalLevel((yylsp[0]), "invariant");
@@ -3474,7 +3493,7 @@
break;
- case 133:
+ case 134:
{
(yyval.interm.qualifierWrapper) = new TPreciseQualifierWrapper((yylsp[0]));
@@ -3482,7 +3501,7 @@
break;
- case 134:
+ case 135:
{
VERTEX_ONLY("attribute", (yylsp[0]));
@@ -3493,7 +3512,7 @@
break;
- case 135:
+ case 136:
{
ES2_ONLY("varying", (yylsp[0]));
@@ -3502,7 +3521,7 @@
break;
- case 136:
+ case 137:
{
(yyval.interm.qualifierWrapper) = new TStorageQualifierWrapper(EvqConst, (yylsp[0]));
@@ -3510,7 +3529,7 @@
break;
- case 137:
+ case 138:
{
(yyval.interm.qualifierWrapper) = context->parseInQualifier((yylsp[0]));
@@ -3518,7 +3537,7 @@
break;
- case 138:
+ case 139:
{
(yyval.interm.qualifierWrapper) = context->parseOutQualifier((yylsp[0]));
@@ -3526,7 +3545,7 @@
break;
- case 139:
+ case 140:
{
(yyval.interm.qualifierWrapper) = context->parseInOutQualifier((yylsp[0]));
@@ -3534,7 +3553,7 @@
break;
- case 140:
+ case 141:
{
ES3_OR_NEWER("centroid", (yylsp[0]), "storage qualifier");
@@ -3543,7 +3562,7 @@
break;
- case 141:
+ case 142:
{
(yyval.interm.qualifierWrapper) =
@@ -3552,7 +3571,7 @@
break;
- case 142:
+ case 143:
{
ES3_1_ONLY("buffer", (yylsp[0]), "storage qualifier");
@@ -3562,7 +3581,7 @@
break;
- case 143:
+ case 144:
{
(yyval.interm.qualifierWrapper) = new TMemoryQualifierWrapper(EvqReadOnly, (yylsp[0]));
@@ -3570,7 +3589,7 @@
break;
- case 144:
+ case 145:
{
(yyval.interm.qualifierWrapper) = new TMemoryQualifierWrapper(EvqWriteOnly, (yylsp[0]));
@@ -3578,7 +3597,7 @@
break;
- case 145:
+ case 146:
{
(yyval.interm.qualifierWrapper) = new TMemoryQualifierWrapper(EvqCoherent, (yylsp[0]));
@@ -3586,7 +3605,7 @@
break;
- case 146:
+ case 147:
{
(yyval.interm.qualifierWrapper) = new TMemoryQualifierWrapper(EvqRestrict, (yylsp[0]));
@@ -3594,7 +3613,7 @@
break;
- case 147:
+ case 148:
{
(yyval.interm.qualifierWrapper) = new TMemoryQualifierWrapper(EvqVolatile, (yylsp[0]));
@@ -3602,7 +3621,7 @@
break;
- case 148:
+ case 149:
{
COMPUTE_ONLY("shared", (yylsp[0]));
@@ -3612,7 +3631,7 @@
break;
- case 149:
+ case 150:
{
(yyval.interm.type) = (yyvsp[0].interm.type);
@@ -3622,7 +3641,7 @@
break;
- case 150:
+ case 151:
{
(yyval.interm.precision) = EbpHigh;
@@ -3630,7 +3649,7 @@
break;
- case 151:
+ case 152:
{
(yyval.interm.precision) = EbpMedium;
@@ -3638,7 +3657,7 @@
break;
- case 152:
+ case 153:
{
(yyval.interm.precision) = EbpLow;
@@ -3646,7 +3665,7 @@
break;
- case 153:
+ case 154:
{
ES3_OR_NEWER("layout", (yylsp[-3]), "qualifier");
@@ -3655,7 +3674,7 @@
break;
- case 154:
+ case 155:
{
(yyval.interm.layoutQualifier) = (yyvsp[0].interm.layoutQualifier);
@@ -3663,7 +3682,7 @@
break;
- case 155:
+ case 156:
{
(yyval.interm.layoutQualifier) = context->joinLayoutQualifiers(
@@ -3672,7 +3691,7 @@
break;
- case 156:
+ case 157:
{
(yyval.interm.layoutQualifier) =
@@ -3681,15 +3700,6 @@
break;
- case 157:
-
- {
- (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(
- ImmutableString((yyvsp[-2].lex).string), (yylsp[-2]), (yyvsp[0].lex).i, (yylsp[0]));
- }
-
- break;
-
case 158:
{
@@ -3702,13 +3712,22 @@
case 159:
{
+ (yyval.interm.layoutQualifier) = context->parseLayoutQualifier(
+ ImmutableString((yyvsp[-2].lex).string), (yylsp[-2]), (yyvsp[0].lex).i, (yylsp[0]));
+ }
+
+ break;
+
+ case 160:
+
+ {
(yyval.interm.layoutQualifier) =
context->parseLayoutQualifier(ImmutableString("shared"), (yylsp[0]));
}
break;
- case 160:
+ case 161:
{
(yyval.interm.type)
@@ -3718,7 +3737,7 @@
break;
- case 161:
+ case 162:
{
(yyval.interm.type)
@@ -3729,7 +3748,7 @@
break;
- case 162:
+ case 163:
{
ES3_OR_NEWER("[]", (yylsp[-1]), "implicitly sized array");
@@ -3739,7 +3758,7 @@
break;
- case 163:
+ case 164:
{
(yyval.interm.arraySizes) = new TVector<unsigned int>();
@@ -3753,7 +3772,7 @@
break;
- case 164:
+ case 165:
{
ES3_1_ONLY("[]", (yylsp[-1]), "arrays of arrays");
@@ -3763,7 +3782,7 @@
break;
- case 165:
+ case 166:
{
ES3_1_ONLY("[]", (yylsp[-2]), "arrays of arrays");
@@ -3778,7 +3797,7 @@
break;
- case 166:
+ case 167:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtVoid, (yylsp[0]));
@@ -3786,18 +3805,10 @@
break;
- case 167:
-
- {
- (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- }
-
- break;
-
case 168:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
}
break;
@@ -3805,7 +3816,7 @@
case 169:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
}
break;
@@ -3813,7 +3824,7 @@
case 170:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
}
break;
@@ -3821,8 +3832,7 @@
case 171:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(2);
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
}
break;
@@ -3831,7 +3841,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(3);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(2);
}
break;
@@ -3840,7 +3850,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(4);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(3);
}
break;
@@ -3848,8 +3858,8 @@
case 174:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(2);
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).setAggregate(4);
}
break;
@@ -3858,7 +3868,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(3);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(2);
}
break;
@@ -3867,7 +3877,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(4);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(3);
}
break;
@@ -3875,8 +3885,8 @@
case 177:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(2);
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtBool, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).setAggregate(4);
}
break;
@@ -3885,7 +3895,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(3);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(2);
}
break;
@@ -3894,7 +3904,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(4);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(3);
}
break;
@@ -3902,8 +3912,8 @@
case 180:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(2);
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtInt, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).setAggregate(4);
}
break;
@@ -3912,7 +3922,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(3);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(2);
}
break;
@@ -3921,7 +3931,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setAggregate(4);
+ (yyval.interm.typeSpecifierNonArray).setAggregate(3);
}
break;
@@ -3929,8 +3939,8 @@
case 183:
{
- (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(2, 2);
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtUInt, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).setAggregate(4);
}
break;
@@ -3939,7 +3949,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(3, 3);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(2, 2);
}
break;
@@ -3948,7 +3958,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(4, 4);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(3, 3);
}
break;
@@ -3957,7 +3967,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(2, 3);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(4, 4);
}
break;
@@ -3966,7 +3976,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(3, 2);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(2, 3);
}
break;
@@ -3975,7 +3985,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(2, 4);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(3, 2);
}
break;
@@ -3984,7 +3994,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(4, 2);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(2, 4);
}
break;
@@ -3993,7 +4003,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(3, 4);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(4, 2);
}
break;
@@ -4002,7 +4012,7 @@
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
- (yyval.interm.typeSpecifierNonArray).setMatrix(4, 3);
+ (yyval.interm.typeSpecifierNonArray).setMatrix(3, 4);
}
break;
@@ -4010,6 +4020,15 @@
case 192:
{
+ (yyval.interm.typeSpecifierNonArray).initialize(EbtFloat, (yylsp[0]));
+ (yyval.interm.typeSpecifierNonArray).setMatrix(4, 3);
+ }
+
+ break;
+
+ case 193:
+
+ {
if (!context->checkCanUseExtension((yylsp[0]), TExtension::EXT_YUV_target))
{
context->error((yylsp[0]), "unsupported type", "yuvCscStandardEXT");
@@ -4019,7 +4038,7 @@
break;
- case 193:
+ case 194:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2D, (yylsp[0]));
@@ -4027,7 +4046,7 @@
break;
- case 194:
+ case 195:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler3D, (yylsp[0]));
@@ -4035,7 +4054,7 @@
break;
- case 195:
+ case 196:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSamplerCube, (yylsp[0]));
@@ -4043,7 +4062,7 @@
break;
- case 196:
+ case 197:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2DArray, (yylsp[0]));
@@ -4051,7 +4070,7 @@
break;
- case 197:
+ case 198:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2DMS, (yylsp[0]));
@@ -4059,7 +4078,7 @@
break;
- case 198:
+ case 199:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2DMSArray, (yylsp[0]));
@@ -4067,7 +4086,7 @@
break;
- case 199:
+ case 200:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISampler2D, (yylsp[0]));
@@ -4075,7 +4094,7 @@
break;
- case 200:
+ case 201:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISampler3D, (yylsp[0]));
@@ -4083,7 +4102,7 @@
break;
- case 201:
+ case 202:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISamplerCube, (yylsp[0]));
@@ -4091,7 +4110,7 @@
break;
- case 202:
+ case 203:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISampler2DArray, (yylsp[0]));
@@ -4099,7 +4118,7 @@
break;
- case 203:
+ case 204:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISampler2DMS, (yylsp[0]));
@@ -4107,7 +4126,7 @@
break;
- case 204:
+ case 205:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtISampler2DMSArray, (yylsp[0]));
@@ -4115,7 +4134,7 @@
break;
- case 205:
+ case 206:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSampler2D, (yylsp[0]));
@@ -4123,7 +4142,7 @@
break;
- case 206:
+ case 207:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSampler3D, (yylsp[0]));
@@ -4131,7 +4150,7 @@
break;
- case 207:
+ case 208:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSamplerCube, (yylsp[0]));
@@ -4139,7 +4158,7 @@
break;
- case 208:
+ case 209:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSampler2DArray, (yylsp[0]));
@@ -4147,7 +4166,7 @@
break;
- case 209:
+ case 210:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSampler2DMS, (yylsp[0]));
@@ -4155,7 +4174,7 @@
break;
- case 210:
+ case 211:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUSampler2DMSArray, (yylsp[0]));
@@ -4163,7 +4182,7 @@
break;
- case 211:
+ case 212:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2DShadow, (yylsp[0]));
@@ -4171,7 +4190,7 @@
break;
- case 212:
+ case 213:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSamplerCubeShadow, (yylsp[0]));
@@ -4179,7 +4198,7 @@
break;
- case 213:
+ case 214:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtSampler2DArrayShadow, (yylsp[0]));
@@ -4187,7 +4206,7 @@
break;
- case 214:
+ case 215:
{
if (!context->checkCanUseExtension((yylsp[0]), TExtension::WEBGL_video_texture))
@@ -4199,7 +4218,7 @@
break;
- case 215:
+ case 216:
{
constexpr std::array<TExtension, 3u> extensions{
@@ -4214,7 +4233,7 @@
break;
- case 216:
+ case 217:
{
if (!context->checkCanUseExtension((yylsp[0]), TExtension::EXT_YUV_target))
@@ -4226,7 +4245,7 @@
break;
- case 217:
+ case 218:
{
if (!context->checkCanUseExtension((yylsp[0]), TExtension::ARB_texture_rectangle))
@@ -4238,7 +4257,7 @@
break;
- case 218:
+ case 219:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtImage2D, (yylsp[0]));
@@ -4246,7 +4265,7 @@
break;
- case 219:
+ case 220:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtIImage2D, (yylsp[0]));
@@ -4254,7 +4273,7 @@
break;
- case 220:
+ case 221:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUImage2D, (yylsp[0]));
@@ -4262,7 +4281,7 @@
break;
- case 221:
+ case 222:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtImage3D, (yylsp[0]));
@@ -4270,7 +4289,7 @@
break;
- case 222:
+ case 223:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtIImage3D, (yylsp[0]));
@@ -4278,7 +4297,7 @@
break;
- case 223:
+ case 224:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUImage3D, (yylsp[0]));
@@ -4286,7 +4305,7 @@
break;
- case 224:
+ case 225:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtImage2DArray, (yylsp[0]));
@@ -4294,7 +4313,7 @@
break;
- case 225:
+ case 226:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtIImage2DArray, (yylsp[0]));
@@ -4302,7 +4321,7 @@
break;
- case 226:
+ case 227:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUImage2DArray, (yylsp[0]));
@@ -4310,7 +4329,7 @@
break;
- case 227:
+ case 228:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtImageCube, (yylsp[0]));
@@ -4318,7 +4337,7 @@
break;
- case 228:
+ case 229:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtIImageCube, (yylsp[0]));
@@ -4326,7 +4345,7 @@
break;
- case 229:
+ case 230:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtUImageCube, (yylsp[0]));
@@ -4334,7 +4353,7 @@
break;
- case 230:
+ case 231:
{
(yyval.interm.typeSpecifierNonArray).initialize(EbtAtomicCounter, (yylsp[0]));
@@ -4342,7 +4361,7 @@
break;
- case 231:
+ case 232:
{
(yyval.interm.typeSpecifierNonArray) = (yyvsp[0].interm.typeSpecifierNonArray);
@@ -4350,7 +4369,7 @@
break;
- case 232:
+ case 233:
{
// This is for user defined type names. The lexical phase looked up the type.
@@ -4360,7 +4379,7 @@
break;
- case 233:
+ case 234:
{
context->enterStructDeclaration((yylsp[-1]), ImmutableString((yyvsp[-1].lex).string));
@@ -4368,7 +4387,7 @@
break;
- case 234:
+ case 235:
{
(yyval.interm.typeSpecifierNonArray) = context->addStructure(
@@ -4378,7 +4397,7 @@
break;
- case 235:
+ case 236:
{
context->enterStructDeclaration((yylsp[0]), kEmptyImmutableString);
@@ -4386,7 +4405,7 @@
break;
- case 236:
+ case 237:
{
(yyval.interm.typeSpecifierNonArray) = context->addStructure(
@@ -4395,7 +4414,7 @@
break;
- case 237:
+ case 238:
{
(yyval.interm.fieldList) =
@@ -4404,7 +4423,7 @@
break;
- case 238:
+ case 239:
{
(yyval.interm.fieldList) = context->combineStructFieldLists(
@@ -4413,7 +4432,7 @@
break;
- case 239:
+ case 240:
{
(yyval.interm.fieldList) = context->addStructDeclaratorList(
@@ -4422,7 +4441,7 @@
break;
- case 240:
+ case 241:
{
// ES3 Only, but errors should be handled elsewhere
@@ -4433,7 +4452,7 @@
break;
- case 241:
+ case 242:
{
(yyval.interm.declaratorList) = new TDeclaratorList();
@@ -4442,7 +4461,7 @@
break;
- case 242:
+ case 243:
{
(yyval.interm.declaratorList)->push_back((yyvsp[0].interm.declarator));
@@ -4450,7 +4469,7 @@
break;
- case 243:
+ case 244:
{
(yyval.interm.declarator) =
@@ -4459,7 +4478,7 @@
break;
- case 244:
+ case 245:
{
(yyval.interm.declarator) = context->parseStructArrayDeclarator(
@@ -4468,7 +4487,7 @@
break;
- case 245:
+ case 246:
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
@@ -4476,18 +4495,10 @@
break;
- case 246:
-
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-
- break;
-
case 247:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermBlock);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
break;
@@ -4495,7 +4506,7 @@
case 248:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermBlock);
}
break;
@@ -4527,7 +4538,7 @@
case 252:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermSwitch);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
break;
@@ -4535,7 +4546,7 @@
case 253:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermCase);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermSwitch);
}
break;
@@ -4543,7 +4554,7 @@
case 254:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermCase);
}
break;
@@ -4559,8 +4570,7 @@
case 256:
{
- (yyval.interm.intermBlock) = new TIntermBlock();
- (yyval.interm.intermBlock)->setLine((yyloc));
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
break;
@@ -4568,7 +4578,8 @@
case 257:
{
- context->symbolTable.push();
+ (yyval.interm.intermBlock) = new TIntermBlock();
+ (yyval.interm.intermBlock)->setLine((yyloc));
}
break;
@@ -4576,7 +4587,7 @@
case 258:
{
- context->symbolTable.pop();
+ context->symbolTable.push();
}
break;
@@ -4584,24 +4595,24 @@
case 259:
{
+ context->symbolTable.pop();
+ }
+
+ break;
+
+ case 260:
+
+ {
(yyvsp[-2].interm.intermBlock)->setLine((yyloc));
(yyval.interm.intermBlock) = (yyvsp[-2].interm.intermBlock);
}
break;
- case 260:
-
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermBlock);
- }
-
- break;
-
case 261:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermBlock);
}
break;
@@ -4609,7 +4620,7 @@
case 262:
{
- context->symbolTable.push();
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
break;
@@ -4617,13 +4628,21 @@
case 263:
{
+ context->symbolTable.push();
+ }
+
+ break;
+
+ case 264:
+
+ {
context->symbolTable.pop();
(yyval.interm.intermNode) = (yyvsp[0].interm.intermBlock);
}
break;
- case 264:
+ case 265:
{
context->symbolTable.push();
@@ -4631,7 +4650,7 @@
break;
- case 265:
+ case 266:
{
context->symbolTable.pop();
@@ -4640,7 +4659,7 @@
break;
- case 266:
+ case 267:
{
(yyval.interm.intermBlock) = new TIntermBlock();
@@ -4649,7 +4668,7 @@
break;
- case 267:
+ case 268:
{
(yyvsp[-1].interm.intermBlock)->setLine((yyloc));
@@ -4658,7 +4677,7 @@
break;
- case 268:
+ case 269:
{
(yyval.interm.intermBlock) = new TIntermBlock();
@@ -4667,7 +4686,7 @@
break;
- case 269:
+ case 270:
{
(yyval.interm.intermBlock) = (yyvsp[-1].interm.intermBlock);
@@ -4676,7 +4695,7 @@
break;
- case 270:
+ case 271:
{
(yyval.interm.intermNode) = context->addEmptyStatement((yyloc));
@@ -4684,7 +4703,7 @@
break;
- case 271:
+ case 272:
{
(yyval.interm.intermNode) = (yyvsp[-1].interm.intermTypedNode);
@@ -4692,7 +4711,7 @@
break;
- case 272:
+ case 273:
{
(yyval.interm.intermNode) = context->addIfElse((yyvsp[-2].interm.intermTypedNode),
@@ -4701,7 +4720,7 @@
break;
- case 273:
+ case 274:
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
@@ -4710,7 +4729,7 @@
break;
- case 274:
+ case 275:
{
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
@@ -4719,7 +4738,7 @@
break;
- case 275:
+ case 276:
{
context->incrSwitchNestingLevel();
@@ -4727,7 +4746,7 @@
break;
- case 276:
+ case 277:
{
(yyval.interm.intermSwitch) = context->addSwitch(
@@ -4737,7 +4756,7 @@
break;
- case 277:
+ case 278:
{
(yyval.interm.intermCase) =
@@ -4746,7 +4765,7 @@
break;
- case 278:
+ case 279:
{
(yyval.interm.intermCase) = context->addDefault((yylsp[-1]));
@@ -4754,7 +4773,7 @@
break;
- case 279:
+ case 280:
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode);
@@ -4764,7 +4783,7 @@
break;
- case 280:
+ case 281:
{
(yyval.interm.intermNode) = context->addConditionInitializer(
@@ -4774,7 +4793,7 @@
break;
- case 281:
+ case 282:
{
context->symbolTable.push();
@@ -4783,7 +4802,7 @@
break;
- case 282:
+ case 283:
{
context->symbolTable.pop();
@@ -4795,7 +4814,7 @@
break;
- case 283:
+ case 284:
{
context->incrLoopNestingLevel();
@@ -4803,7 +4822,7 @@
break;
- case 284:
+ case 285:
{
(yyval.interm.intermNode) =
@@ -4814,7 +4833,7 @@
break;
- case 285:
+ case 286:
{
context->symbolTable.push();
@@ -4823,7 +4842,7 @@
break;
- case 286:
+ case 287:
{
context->symbolTable.pop();
@@ -4836,14 +4855,6 @@
break;
- case 287:
-
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-
- break;
-
case 288:
{
@@ -4863,7 +4874,7 @@
case 290:
{
- (yyval.interm.intermNode) = nullptr;
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
break;
@@ -4871,13 +4882,21 @@
case 291:
{
+ (yyval.interm.intermNode) = nullptr;
+ }
+
+ break;
+
+ case 292:
+
+ {
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
}
break;
- case 292:
+ case 293:
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
@@ -4886,7 +4905,7 @@
break;
- case 293:
+ case 294:
{
(yyval.interm.intermNode) = context->addBranch(EOpContinue, (yylsp[-1]));
@@ -4894,7 +4913,7 @@
break;
- case 294:
+ case 295:
{
(yyval.interm.intermNode) = context->addBranch(EOpBreak, (yylsp[-1]));
@@ -4902,7 +4921,7 @@
break;
- case 295:
+ case 296:
{
(yyval.interm.intermNode) = context->addBranch(EOpReturn, (yylsp[-1]));
@@ -4910,7 +4929,7 @@
break;
- case 296:
+ case 297:
{
(yyval.interm.intermNode) =
@@ -4919,7 +4938,7 @@
break;
- case 297:
+ case 298:
{
(yyval.interm.intermNode) = context->addBranch(EOpKill, (yylsp[-1]));
@@ -4927,7 +4946,7 @@
break;
- case 298:
+ case 299:
{
(yyval.interm.intermBlock) = new TIntermBlock();
@@ -4938,18 +4957,10 @@
break;
- case 299:
-
- {
- (yyval.interm.intermBlock)->appendStatement((yyvsp[0].interm.intermNode));
- }
-
- break;
-
case 300:
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ (yyval.interm.intermBlock)->appendStatement((yyvsp[0].interm.intermNode));
}
break;
@@ -4965,13 +4976,21 @@
case 302:
{
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ }
+
+ break;
+
+ case 303:
+
+ {
context->parseFunctionDefinitionHeader((yylsp[0]), (yyvsp[0].interm).function,
&((yyvsp[0].interm).intermFunctionPrototype));
}
break;
- case 303:
+ case 304:
{
(yyval.interm.intermNode) =
diff --git a/src/compiler/translator/glslang_tab_autogen.h b/src/compiler/translator/glslang_tab_autogen.h
index e0e8d64..6a11361 100644
--- a/src/compiler/translator/glslang_tab_autogen.h
+++ b/src/compiler/translator/glslang_tab_autogen.h
@@ -107,109 +107,110 @@
CENTROID = 308,
FLAT = 309,
SMOOTH = 310,
- READONLY = 311,
- WRITEONLY = 312,
- COHERENT = 313,
- RESTRICT = 314,
- VOLATILE = 315,
- SHARED = 316,
- STRUCT = 317,
- VOID_TYPE = 318,
- WHILE = 319,
- SAMPLER2D = 320,
- SAMPLERCUBE = 321,
- SAMPLER_EXTERNAL_OES = 322,
- SAMPLER2DRECT = 323,
- SAMPLER2DARRAY = 324,
- ISAMPLER2D = 325,
- ISAMPLER3D = 326,
- ISAMPLERCUBE = 327,
- ISAMPLER2DARRAY = 328,
- USAMPLER2D = 329,
- USAMPLER3D = 330,
- USAMPLERCUBE = 331,
- USAMPLER2DARRAY = 332,
- SAMPLER2DMS = 333,
- ISAMPLER2DMS = 334,
- USAMPLER2DMS = 335,
- SAMPLER2DMSARRAY = 336,
- ISAMPLER2DMSARRAY = 337,
- USAMPLER2DMSARRAY = 338,
- SAMPLER3D = 339,
- SAMPLER3DRECT = 340,
- SAMPLER2DSHADOW = 341,
- SAMPLERCUBESHADOW = 342,
- SAMPLER2DARRAYSHADOW = 343,
- SAMPLERVIDEOWEBGL = 344,
- SAMPLEREXTERNAL2DY2YEXT = 345,
- IMAGE2D = 346,
- IIMAGE2D = 347,
- UIMAGE2D = 348,
- IMAGE3D = 349,
- IIMAGE3D = 350,
- UIMAGE3D = 351,
- IMAGE2DARRAY = 352,
- IIMAGE2DARRAY = 353,
- UIMAGE2DARRAY = 354,
- IMAGECUBE = 355,
- IIMAGECUBE = 356,
- UIMAGECUBE = 357,
- ATOMICUINT = 358,
- LAYOUT = 359,
- YUVCSCSTANDARDEXT = 360,
- YUVCSCSTANDARDEXTCONSTANT = 361,
- IDENTIFIER = 362,
- TYPE_NAME = 363,
- FLOATCONSTANT = 364,
- INTCONSTANT = 365,
- UINTCONSTANT = 366,
- BOOLCONSTANT = 367,
- FIELD_SELECTION = 368,
- LEFT_OP = 369,
- RIGHT_OP = 370,
- INC_OP = 371,
- DEC_OP = 372,
- LE_OP = 373,
- GE_OP = 374,
- EQ_OP = 375,
- NE_OP = 376,
- AND_OP = 377,
- OR_OP = 378,
- XOR_OP = 379,
- MUL_ASSIGN = 380,
- DIV_ASSIGN = 381,
- ADD_ASSIGN = 382,
- MOD_ASSIGN = 383,
- LEFT_ASSIGN = 384,
- RIGHT_ASSIGN = 385,
- AND_ASSIGN = 386,
- XOR_ASSIGN = 387,
- OR_ASSIGN = 388,
- SUB_ASSIGN = 389,
- LEFT_PAREN = 390,
- RIGHT_PAREN = 391,
- LEFT_BRACKET = 392,
- RIGHT_BRACKET = 393,
- LEFT_BRACE = 394,
- RIGHT_BRACE = 395,
- DOT = 396,
- COMMA = 397,
- COLON = 398,
- EQUAL = 399,
- SEMICOLON = 400,
- BANG = 401,
- DASH = 402,
- TILDE = 403,
- PLUS = 404,
- STAR = 405,
- SLASH = 406,
- PERCENT = 407,
- LEFT_ANGLE = 408,
- RIGHT_ANGLE = 409,
- VERTICAL_BAR = 410,
- CARET = 411,
- AMPERSAND = 412,
- QUESTION = 413
+ NOPERSPECTIVE = 311,
+ READONLY = 312,
+ WRITEONLY = 313,
+ COHERENT = 314,
+ RESTRICT = 315,
+ VOLATILE = 316,
+ SHARED = 317,
+ STRUCT = 318,
+ VOID_TYPE = 319,
+ WHILE = 320,
+ SAMPLER2D = 321,
+ SAMPLERCUBE = 322,
+ SAMPLER_EXTERNAL_OES = 323,
+ SAMPLER2DRECT = 324,
+ SAMPLER2DARRAY = 325,
+ ISAMPLER2D = 326,
+ ISAMPLER3D = 327,
+ ISAMPLERCUBE = 328,
+ ISAMPLER2DARRAY = 329,
+ USAMPLER2D = 330,
+ USAMPLER3D = 331,
+ USAMPLERCUBE = 332,
+ USAMPLER2DARRAY = 333,
+ SAMPLER2DMS = 334,
+ ISAMPLER2DMS = 335,
+ USAMPLER2DMS = 336,
+ SAMPLER2DMSARRAY = 337,
+ ISAMPLER2DMSARRAY = 338,
+ USAMPLER2DMSARRAY = 339,
+ SAMPLER3D = 340,
+ SAMPLER3DRECT = 341,
+ SAMPLER2DSHADOW = 342,
+ SAMPLERCUBESHADOW = 343,
+ SAMPLER2DARRAYSHADOW = 344,
+ SAMPLERVIDEOWEBGL = 345,
+ SAMPLEREXTERNAL2DY2YEXT = 346,
+ IMAGE2D = 347,
+ IIMAGE2D = 348,
+ UIMAGE2D = 349,
+ IMAGE3D = 350,
+ IIMAGE3D = 351,
+ UIMAGE3D = 352,
+ IMAGE2DARRAY = 353,
+ IIMAGE2DARRAY = 354,
+ UIMAGE2DARRAY = 355,
+ IMAGECUBE = 356,
+ IIMAGECUBE = 357,
+ UIMAGECUBE = 358,
+ ATOMICUINT = 359,
+ LAYOUT = 360,
+ YUVCSCSTANDARDEXT = 361,
+ YUVCSCSTANDARDEXTCONSTANT = 362,
+ IDENTIFIER = 363,
+ TYPE_NAME = 364,
+ FLOATCONSTANT = 365,
+ INTCONSTANT = 366,
+ UINTCONSTANT = 367,
+ BOOLCONSTANT = 368,
+ FIELD_SELECTION = 369,
+ LEFT_OP = 370,
+ RIGHT_OP = 371,
+ INC_OP = 372,
+ DEC_OP = 373,
+ LE_OP = 374,
+ GE_OP = 375,
+ EQ_OP = 376,
+ NE_OP = 377,
+ AND_OP = 378,
+ OR_OP = 379,
+ XOR_OP = 380,
+ MUL_ASSIGN = 381,
+ DIV_ASSIGN = 382,
+ ADD_ASSIGN = 383,
+ MOD_ASSIGN = 384,
+ LEFT_ASSIGN = 385,
+ RIGHT_ASSIGN = 386,
+ AND_ASSIGN = 387,
+ XOR_ASSIGN = 388,
+ OR_ASSIGN = 389,
+ SUB_ASSIGN = 390,
+ LEFT_PAREN = 391,
+ RIGHT_PAREN = 392,
+ LEFT_BRACKET = 393,
+ RIGHT_BRACKET = 394,
+ LEFT_BRACE = 395,
+ RIGHT_BRACE = 396,
+ DOT = 397,
+ COMMA = 398,
+ COLON = 399,
+ EQUAL = 400,
+ SEMICOLON = 401,
+ BANG = 402,
+ DASH = 403,
+ TILDE = 404,
+ PLUS = 405,
+ STAR = 406,
+ SLASH = 407,
+ PERCENT = 408,
+ LEFT_ANGLE = 409,
+ RIGHT_ANGLE = 410,
+ VERTICAL_BAR = 411,
+ CARET = 412,
+ AMPERSAND = 413,
+ QUESTION = 414
};
#endif
diff --git a/src/compiler/translator/util.cpp b/src/compiler/translator/util.cpp
index dfabb32..cddbd43 100644
--- a/src/compiler/translator/util.cpp
+++ b/src/compiler/translator/util.cpp
@@ -33,6 +33,7 @@
{
case EvqSmoothIn:
case EvqFlatIn:
+ case EvqNoPerspectiveIn:
case EvqCentroidIn:
return true;
default:
@@ -519,6 +520,7 @@
case EvqVaryingOut:
case EvqSmoothOut:
case EvqFlatOut:
+ case EvqNoPerspectiveOut:
case EvqCentroidOut:
case EvqVertexOut:
case EvqGeometryOut:
@@ -538,6 +540,7 @@
case EvqVaryingIn:
case EvqSmoothIn:
case EvqFlatIn:
+ case EvqNoPerspectiveIn:
case EvqCentroidIn:
case EvqFragmentIn:
case EvqGeometryIn:
@@ -569,6 +572,10 @@
case EvqFlatOut:
return INTERPOLATION_FLAT;
+ case EvqNoPerspectiveIn:
+ case EvqNoPerspectiveOut:
+ return INTERPOLATION_NOPERSPECTIVE;
+
case EvqSmoothIn:
case EvqSmoothOut:
case EvqVertexOut:
diff --git a/src/libANGLE/Caps.cpp b/src/libANGLE/Caps.cpp
index 7bbdb45..600a321 100644
--- a/src/libANGLE/Caps.cpp
+++ b/src/libANGLE/Caps.cpp
@@ -950,6 +950,7 @@
map["GL_EXT_semaphore"] = enableableExtension(&Extensions::semaphore);
map["GL_EXT_semaphore_fd"] = enableableExtension(&Extensions::semaphoreFd);
map["GL_NV_EGL_stream_consumer_external"] = enableableExtension(&Extensions::eglStreamConsumerExternalNV);
+ map["GL_NV_shader_noperspective_interpolation"] = enableableExtension(&Extensions::noperspectiveInterpolationNV);
map["GL_ANGLE_semaphore_fuchsia"] = enableableExtension(&Extensions::semaphoreFuchsiaANGLE);
map["GL_EXT_unpack_subimage"] = enableableExtension(&Extensions::unpackSubimage);
map["GL_NV_pack_subimage"] = enableableExtension(&Extensions::packSubimage);
diff --git a/src/libANGLE/Caps.h b/src/libANGLE/Caps.h
index 62eadd1..98e2d5a 100644
--- a/src/libANGLE/Caps.h
+++ b/src/libANGLE/Caps.h
@@ -431,6 +431,9 @@
// NV_pack_subimage
bool packSubimage = false;
+ // GL_NV_shader_noperspective_interpolation
+ bool noperspectiveInterpolationNV = false;
+
// GL_OES_vertex_half_float
bool vertexHalfFloatOES = false;
diff --git a/src/libANGLE/Compiler.cpp b/src/libANGLE/Compiler.cpp
index 9dde504..d7822d2 100644
--- a/src/libANGLE/Compiler.cpp
+++ b/src/libANGLE/Compiler.cpp
@@ -92,11 +92,12 @@
mResources.EXT_shader_texture_lod = extensions.shaderTextureLOD;
mResources.EXT_shader_non_constant_global_initializers =
extensions.shaderNonConstGlobalInitializersEXT;
- mResources.OES_EGL_image_external = extensions.eglImageExternalOES;
- mResources.OES_EGL_image_external_essl3 = extensions.eglImageExternalEssl3OES;
- mResources.NV_EGL_stream_consumer_external = extensions.eglStreamConsumerExternalNV;
- mResources.ARB_texture_rectangle = extensions.textureRectangle;
- mResources.EXT_gpu_shader5 = extensions.gpuShader5EXT;
+ mResources.OES_EGL_image_external = extensions.eglImageExternalOES;
+ mResources.OES_EGL_image_external_essl3 = extensions.eglImageExternalEssl3OES;
+ mResources.NV_EGL_stream_consumer_external = extensions.eglStreamConsumerExternalNV;
+ mResources.NV_shader_noperspective_interpolation = extensions.noperspectiveInterpolationNV;
+ mResources.ARB_texture_rectangle = extensions.textureRectangle;
+ mResources.EXT_gpu_shader5 = extensions.gpuShader5EXT;
mResources.OES_texture_storage_multisample_2d_array =
extensions.textureStorageMultisample2DArrayOES;
mResources.OES_texture_3D = extensions.texture3DOES;
diff --git a/src/libANGLE/renderer/gl/renderergl_utils.cpp b/src/libANGLE/renderer/gl/renderergl_utils.cpp
index 7cfb983..e19a953 100644
--- a/src/libANGLE/renderer/gl/renderergl_utils.cpp
+++ b/src/libANGLE/renderer/gl/renderergl_utils.cpp
@@ -1226,7 +1226,8 @@
extensions->unpackSubimage = functions->standard == STANDARD_GL_DESKTOP ||
functions->isAtLeastGLES(gl::Version(3, 0)) ||
functions->hasGLESExtension("GL_EXT_unpack_subimage");
- extensions->packSubimage = functions->standard == STANDARD_GL_DESKTOP ||
+ extensions->noperspectiveInterpolationNV = functions->isAtLeastGL(gl::Version(3, 0));
+ extensions->packSubimage = functions->standard == STANDARD_GL_DESKTOP ||
functions->isAtLeastGLES(gl::Version(3, 0)) ||
functions->hasGLESExtension("GL_NV_pack_subimage");
extensions->vertexArrayObjectOES = functions->isAtLeastGL(gl::Version(3, 0)) ||
diff --git a/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp b/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
index 4f6c93a..72f342e 100644
--- a/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
@@ -157,6 +157,9 @@
// Vulkan natively supports standard derivatives
mNativeExtensions.standardDerivativesOES = true;
+ // Vulkan natively supports noperspective interpolation
+ mNativeExtensions.noperspectiveInterpolationNV = true;
+
// Vulkan natively supports 32-bit indices, entry in kIndexTypeMap
mNativeExtensions.elementIndexUintOES = true;
diff --git a/src/tests/angle_end2end_tests.gni b/src/tests/angle_end2end_tests.gni
index 3bf9875..6f501f1 100644
--- a/src/tests/angle_end2end_tests.gni
+++ b/src/tests/angle_end2end_tests.gni
@@ -106,6 +106,7 @@
"gl_tests/SRGBTextureTest.cpp",
"gl_tests/SamplersTest.cpp",
"gl_tests/SemaphoreTest.cpp",
+ "gl_tests/ShaderInterpTest.cpp",
"gl_tests/ShaderNonConstGlobalInitializerTest.cpp",
"gl_tests/ShaderStorageBufferTest.cpp",
"gl_tests/SimpleOperationTest.cpp",
diff --git a/src/tests/gl_tests/ShaderInterpTest.cpp b/src/tests/gl_tests/ShaderInterpTest.cpp
new file mode 100644
index 0000000..41115e3
--- /dev/null
+++ b/src/tests/gl_tests/ShaderInterpTest.cpp
@@ -0,0 +1,212 @@
+//
+// Copyright 2020 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Tests for shader interpolation qualifiers
+//
+
+#include "common/mathutil.h"
+#include "test_utils/ANGLETest.h"
+#include "test_utils/gl_raii.h"
+
+using namespace angle;
+
+constexpr int kPixelColorThreshhold = 8;
+
+class ShaderInterpTest : public ANGLETest
+{
+ protected:
+ ShaderInterpTest() : ANGLETest()
+ {
+ setWindowWidth(128);
+ setWindowHeight(128);
+ }
+
+ void draw(GLuint program, float skew)
+ {
+ glUseProgram(program);
+
+ std::array<Vector4, 3> vertices;
+ vertices[0] = {-1.0, -1.0, 0.0, 1.0};
+ vertices[1] = {1.0, -1.0, 0.0, 1.0};
+ vertices[2] = {0.0, 1.0 * skew, 0.0, skew};
+
+ std::array<Vector4, 3> colors;
+ colors[0] = {1.0, 0.0, 0.0, 1.0};
+ colors[1] = {0.0, 1.0, 0.0, 1.0};
+ colors[2] = {0.0, 0.0, 1.0, 1.0};
+
+ GLint positionLocation = glGetAttribLocation(program, "position");
+ GLint colorLocation = glGetAttribLocation(program, "vertex_color");
+
+ glVertexAttribPointer(positionLocation, 4, GL_FLOAT, GL_FALSE, 0, vertices.data());
+ glVertexAttribPointer(colorLocation, 4, GL_FLOAT, GL_FALSE, 0, colors.data());
+
+ glEnableVertexAttribArray(positionLocation);
+ glEnableVertexAttribArray(colorLocation);
+
+ glDrawArrays(GL_TRIANGLES, 0, 3);
+ }
+};
+
+// Test that regular "smooth" interpolation works correctly
+TEST_P(ShaderInterpTest, Smooth)
+{
+ const char *vertSrc = R"(#version 300 es
+precision highp float;
+in vec4 position;
+in vec4 vertex_color;
+smooth out vec4 interp_color;
+
+void main()
+{
+ gl_Position = position;
+ interp_color = vertex_color;
+}
+)";
+ const char *fragSrc = R"(#version 300 es
+precision highp float;
+smooth in vec4 interp_color;
+out vec4 fragColor;
+
+void main()
+{
+ fragColor = interp_color;
+}
+)";
+
+ ANGLE_GL_PROGRAM(program, vertSrc, fragSrc);
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(program, 1.0);
+ EXPECT_PIXEL_COLOR_NEAR(64, 64, GLColor(62, 64, 128, 255), kPixelColorThreshhold);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(program, 2.0);
+ EXPECT_PIXEL_COLOR_NEAR(64, 64, GLColor(83, 86, 86, 255), kPixelColorThreshhold);
+}
+
+// Test that uninterpolated "Flat" interpolation works correctly
+TEST_P(ShaderInterpTest, Flat)
+{
+ // TODO: anglebug.com/4085
+ // No vendors currently support VK_EXT_provoking_vertex, which is necessary for conformant flat
+ // shading. SwiftShader does technically support this extension, but as it has not yet been
+ // ratified by Khronos, the vulkan validation layers do not recognize the create info struct,
+ // causing it to be stripped and thus causing the extension to behave as if it is disabled.
+ ANGLE_SKIP_TEST_IF(IsVulkan());
+
+ const char *vertSrc = R"(#version 300 es
+precision highp float;
+in vec4 position;
+in vec4 vertex_color;
+flat out vec4 interp_color;
+
+void main()
+{
+ gl_Position = position;
+ interp_color = vertex_color;
+}
+)";
+ const char *fragSrc = R"(#version 300 es
+precision highp float;
+flat in vec4 interp_color;
+out vec4 fragColor;
+
+void main()
+{
+ fragColor = interp_color;
+}
+)";
+
+ ANGLE_GL_PROGRAM(program, vertSrc, fragSrc);
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(program, 1.0);
+ GLColor smooth_reference;
+ glReadPixels(64, 64, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &smooth_reference);
+ EXPECT_PIXEL_COLOR_EQ(64, 64, GLColor(0, 0, 255, 255));
+}
+
+// Test that "noperspective" interpolation correctly interpolates in screenspace
+TEST_P(ShaderInterpTest, NoPerspective)
+{
+ ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_NV_shader_noperspective_interpolation"));
+
+ const char *vertSrcSmooth = R"(#version 300 es
+precision highp float;
+in vec4 position;
+in vec4 vertex_color;
+smooth out vec4 interp_color;
+
+void main()
+{
+ gl_Position = position;
+ interp_color = vertex_color;
+}
+)";
+ const char *fragSrcSmooth = R"(#version 300 es
+precision highp float;
+smooth in vec4 interp_color;
+out vec4 fragColor;
+
+void main()
+{
+ fragColor = interp_color;
+}
+)";
+ ANGLE_GL_PROGRAM(programSmooth, vertSrcSmooth, fragSrcSmooth);
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(programSmooth, 1.0);
+ GLColor smooth_reference;
+ glReadPixels(64, 64, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &smooth_reference);
+
+ const char *vertSrcNoPerspective = R"(#version 300 es
+#extension GL_NV_shader_noperspective_interpolation : require
+
+#ifndef GL_NV_shader_noperspective_interpolation
+#error GL_NV_shader_noperspective_interpolation is not defined
+#endif
+
+precision highp float;
+in vec4 position;
+in vec4 vertex_color;
+noperspective out vec4 interp_color;
+
+void main()
+{
+ gl_Position = position;
+ interp_color = vertex_color;
+}
+)";
+ const char *fragSrcNoPerspective = R"(#version 300 es
+#extension GL_NV_shader_noperspective_interpolation : require
+
+#ifndef GL_NV_shader_noperspective_interpolation
+#error GL_NV_shader_noperspective_interpolation is not defined
+#endif
+
+precision highp float;
+noperspective in vec4 interp_color;
+out vec4 fragColor;
+
+void main()
+{
+ fragColor = interp_color;
+}
+)";
+ ANGLE_GL_PROGRAM(programNoPerspective, vertSrcNoPerspective, fragSrcNoPerspective);
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(programNoPerspective, 1.0);
+ EXPECT_PIXEL_COLOR_EQ(64, 64, smooth_reference);
+
+ glClear(GL_COLOR_BUFFER_BIT);
+ draw(programNoPerspective, 2.0);
+ EXPECT_PIXEL_COLOR_EQ(64, 64, smooth_reference);
+}
+
+ANGLE_INSTANTIATE_TEST_ES3(ShaderInterpTest);
\ No newline at end of file