Web: Prune grammar and lexor down to needed subset.
About 60K smaller (20% the target size is these units of 300K). Over 300 fewer #ifdef. This adds a new glslang.m4 file that needs to be processed by m4 to get the glslang.y file needed by bison. See comment in glslang.m4 for more detail. This updates the updateGrammar script to do the .m4 -> .y processing, to conditionally exclude grammar not needed for the web build.
This commit is contained in:
parent
a28f7a75d1
commit
441b2ac4d1
@ -7,6 +7,7 @@ else(WIN32)
|
||||
endif(WIN32)
|
||||
|
||||
set(SOURCES
|
||||
MachineIndependent/glslang.m4
|
||||
MachineIndependent/glslang.y
|
||||
MachineIndependent/glslang_tab.cpp
|
||||
MachineIndependent/attribute.cpp
|
||||
@ -71,15 +72,6 @@ set(HEADERS
|
||||
MachineIndependent/preprocessor/PpContext.h
|
||||
MachineIndependent/preprocessor/PpTokens.h)
|
||||
|
||||
# This might be useful for making grammar changes:
|
||||
#
|
||||
# find_package(BISON)
|
||||
# add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp.h
|
||||
# COMMAND ${BISON_EXECUTABLE} --defines=${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp.h -t ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang.y -o ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp
|
||||
# MAIN_DEPENDENCY MachineIndependent/glslang.y
|
||||
# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
# set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp)
|
||||
|
||||
glslang_pch(SOURCES MachineIndependent/pch.cpp)
|
||||
|
||||
add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS})
|
||||
|
||||
@ -341,9 +341,14 @@ void TScanContext::fillInKeywordMap()
|
||||
|
||||
(*KeywordMap)["const"] = CONST;
|
||||
(*KeywordMap)["uniform"] = UNIFORM;
|
||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
||||
(*KeywordMap)["in"] = IN;
|
||||
(*KeywordMap)["out"] = OUT;
|
||||
(*KeywordMap)["smooth"] = SMOOTH;
|
||||
(*KeywordMap)["flat"] = FLAT;
|
||||
(*KeywordMap)["centroid"] = CENTROID;
|
||||
(*KeywordMap)["invariant"] = INVARIANT;
|
||||
(*KeywordMap)["packed"] = PACKED;
|
||||
(*KeywordMap)["resource"] = RESOURCE;
|
||||
(*KeywordMap)["inout"] = INOUT;
|
||||
(*KeywordMap)["struct"] = STRUCT;
|
||||
(*KeywordMap)["break"] = BREAK;
|
||||
@ -356,7 +361,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["default"] = DEFAULT;
|
||||
(*KeywordMap)["if"] = IF;
|
||||
(*KeywordMap)["else"] = ELSE;
|
||||
(*KeywordMap)["demote"] = DEMOTE;
|
||||
(*KeywordMap)["discard"] = DISCARD;
|
||||
(*KeywordMap)["return"] = RETURN;
|
||||
(*KeywordMap)["void"] = VOID;
|
||||
@ -377,8 +381,33 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["mat4"] = MAT4;
|
||||
(*KeywordMap)["true"] = BOOLCONSTANT;
|
||||
(*KeywordMap)["false"] = BOOLCONSTANT;
|
||||
(*KeywordMap)["layout"] = LAYOUT;
|
||||
(*KeywordMap)["shared"] = SHARED;
|
||||
(*KeywordMap)["highp"] = HIGH_PRECISION;
|
||||
(*KeywordMap)["mediump"] = MEDIUM_PRECISION;
|
||||
(*KeywordMap)["lowp"] = LOW_PRECISION;
|
||||
(*KeywordMap)["superp"] = SUPERP;
|
||||
(*KeywordMap)["precision"] = PRECISION;
|
||||
(*KeywordMap)["mat2x2"] = MAT2X2;
|
||||
(*KeywordMap)["mat2x3"] = MAT2X3;
|
||||
(*KeywordMap)["mat2x4"] = MAT2X4;
|
||||
(*KeywordMap)["mat3x2"] = MAT3X2;
|
||||
(*KeywordMap)["mat3x3"] = MAT3X3;
|
||||
(*KeywordMap)["mat3x4"] = MAT3X4;
|
||||
(*KeywordMap)["mat4x2"] = MAT4X2;
|
||||
(*KeywordMap)["mat4x3"] = MAT4X3;
|
||||
(*KeywordMap)["mat4x4"] = MAT4X4;
|
||||
(*KeywordMap)["uint"] = UINT;
|
||||
(*KeywordMap)["uvec2"] = UVEC2;
|
||||
(*KeywordMap)["uvec3"] = UVEC3;
|
||||
(*KeywordMap)["uvec4"] = UVEC4;
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
(*KeywordMap)["nonuniformEXT"] = NONUNIFORM;
|
||||
(*KeywordMap)["demote"] = DEMOTE;
|
||||
(*KeywordMap)["attribute"] = ATTRIBUTE;
|
||||
(*KeywordMap)["varying"] = VARYING;
|
||||
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
||||
(*KeywordMap)["buffer"] = BUFFER;
|
||||
(*KeywordMap)["coherent"] = COHERENT;
|
||||
(*KeywordMap)["devicecoherent"] = DEVICECOHERENT;
|
||||
@ -391,24 +420,9 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["writeonly"] = WRITEONLY;
|
||||
(*KeywordMap)["atomic_uint"] = ATOMIC_UINT;
|
||||
(*KeywordMap)["volatile"] = VOLATILE;
|
||||
(*KeywordMap)["layout"] = LAYOUT;
|
||||
(*KeywordMap)["shared"] = SHARED;
|
||||
(*KeywordMap)["patch"] = PATCH;
|
||||
(*KeywordMap)["sample"] = SAMPLE;
|
||||
(*KeywordMap)["subroutine"] = SUBROUTINE;
|
||||
(*KeywordMap)["highp"] = HIGH_PRECISION;
|
||||
(*KeywordMap)["mediump"] = MEDIUM_PRECISION;
|
||||
(*KeywordMap)["lowp"] = LOW_PRECISION;
|
||||
(*KeywordMap)["precision"] = PRECISION;
|
||||
(*KeywordMap)["mat2x2"] = MAT2X2;
|
||||
(*KeywordMap)["mat2x3"] = MAT2X3;
|
||||
(*KeywordMap)["mat2x4"] = MAT2X4;
|
||||
(*KeywordMap)["mat3x2"] = MAT3X2;
|
||||
(*KeywordMap)["mat3x3"] = MAT3X3;
|
||||
(*KeywordMap)["mat3x4"] = MAT3X4;
|
||||
(*KeywordMap)["mat4x2"] = MAT4X2;
|
||||
(*KeywordMap)["mat4x3"] = MAT4X3;
|
||||
(*KeywordMap)["mat4x4"] = MAT4X4;
|
||||
(*KeywordMap)["dmat2"] = DMAT2;
|
||||
(*KeywordMap)["dmat3"] = DMAT3;
|
||||
(*KeywordMap)["dmat4"] = DMAT4;
|
||||
@ -458,11 +472,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["dvec2"] = DVEC2;
|
||||
(*KeywordMap)["dvec3"] = DVEC3;
|
||||
(*KeywordMap)["dvec4"] = DVEC4;
|
||||
(*KeywordMap)["uint"] = UINT;
|
||||
(*KeywordMap)["uvec2"] = UVEC2;
|
||||
(*KeywordMap)["uvec3"] = UVEC3;
|
||||
(*KeywordMap)["uvec4"] = UVEC4;
|
||||
|
||||
(*KeywordMap)["int64_t"] = INT64_T;
|
||||
(*KeywordMap)["uint64_t"] = UINT64_T;
|
||||
(*KeywordMap)["i64vec2"] = I64VEC2;
|
||||
@ -549,6 +558,7 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["f64mat4x2"] = F64MAT4X2;
|
||||
(*KeywordMap)["f64mat4x3"] = F64MAT4X3;
|
||||
(*KeywordMap)["f64mat4x4"] = F64MAT4X4;
|
||||
#endif
|
||||
|
||||
(*KeywordMap)["sampler2D"] = SAMPLER2D;
|
||||
(*KeywordMap)["samplerCube"] = SAMPLERCUBE;
|
||||
@ -556,12 +566,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["samplerCubeArrayShadow"] = SAMPLERCUBEARRAYSHADOW;
|
||||
(*KeywordMap)["isamplerCubeArray"] = ISAMPLERCUBEARRAY;
|
||||
(*KeywordMap)["usamplerCubeArray"] = USAMPLERCUBEARRAY;
|
||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
||||
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
||||
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
||||
(*KeywordMap)["samplerCubeShadow"] = SAMPLERCUBESHADOW;
|
||||
(*KeywordMap)["sampler2DArray"] = SAMPLER2DARRAY;
|
||||
(*KeywordMap)["sampler2DArrayShadow"] = SAMPLER2DARRAYSHADOW;
|
||||
@ -573,6 +577,16 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["usampler3D"] = USAMPLER3D;
|
||||
(*KeywordMap)["usamplerCube"] = USAMPLERCUBE;
|
||||
(*KeywordMap)["usampler2DArray"] = USAMPLER2DARRAY;
|
||||
(*KeywordMap)["sampler3D"] = SAMPLER3D;
|
||||
(*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW;
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
(*KeywordMap)["sampler1DArrayShadow"] = SAMPLER1DARRAYSHADOW;
|
||||
(*KeywordMap)["isampler1DArray"] = ISAMPLER1DARRAY;
|
||||
(*KeywordMap)["usampler1D"] = USAMPLER1D;
|
||||
(*KeywordMap)["isampler1D"] = ISAMPLER1D;
|
||||
(*KeywordMap)["usampler1DArray"] = USAMPLER1DARRAY;
|
||||
(*KeywordMap)["samplerBuffer"] = SAMPLERBUFFER;
|
||||
(*KeywordMap)["isampler2DRect"] = ISAMPLER2DRECT;
|
||||
(*KeywordMap)["usampler2DRect"] = USAMPLER2DRECT;
|
||||
(*KeywordMap)["isamplerBuffer"] = ISAMPLERBUFFER;
|
||||
@ -585,8 +599,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["usampler2DMSArray"] = USAMPLER2DMSARRAY;
|
||||
(*KeywordMap)["sampler1D"] = SAMPLER1D;
|
||||
(*KeywordMap)["sampler1DShadow"] = SAMPLER1DSHADOW;
|
||||
(*KeywordMap)["sampler3D"] = SAMPLER3D;
|
||||
(*KeywordMap)["sampler2DShadow"] = SAMPLER2DSHADOW;
|
||||
(*KeywordMap)["sampler2DRect"] = SAMPLER2DRECT;
|
||||
(*KeywordMap)["sampler2DRectShadow"] = SAMPLER2DRECTSHADOW;
|
||||
(*KeywordMap)["sampler1DArray"] = SAMPLER1DARRAY;
|
||||
@ -639,7 +651,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["usubpassInput"] = USUBPASSINPUT;
|
||||
(*KeywordMap)["usubpassInputMS"] = USUBPASSINPUTMS;
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
(*KeywordMap)["f16sampler1D"] = F16SAMPLER1D;
|
||||
(*KeywordMap)["f16sampler2D"] = F16SAMPLER2D;
|
||||
(*KeywordMap)["f16sampler3D"] = F16SAMPLER3D;
|
||||
@ -685,25 +696,10 @@ void TScanContext::fillInKeywordMap()
|
||||
|
||||
(*KeywordMap)["f16subpassInput"] = F16SUBPASSINPUT;
|
||||
(*KeywordMap)["f16subpassInputMS"] = F16SUBPASSINPUTMS;
|
||||
#endif
|
||||
|
||||
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
|
||||
(*KeywordMap)["smooth"] = SMOOTH;
|
||||
(*KeywordMap)["flat"] = FLAT;
|
||||
#ifdef AMD_EXTENSIONS
|
||||
(*KeywordMap)["__explicitInterpAMD"] = EXPLICITINTERPAMD;
|
||||
#endif
|
||||
(*KeywordMap)["centroid"] = CENTROID;
|
||||
#ifdef NV_EXTENSIONS
|
||||
(*KeywordMap)["pervertexNV"] = PERVERTEXNV;
|
||||
#endif
|
||||
(*KeywordMap)["precise"] = PRECISE;
|
||||
(*KeywordMap)["invariant"] = INVARIANT;
|
||||
(*KeywordMap)["packed"] = PACKED;
|
||||
(*KeywordMap)["resource"] = RESOURCE;
|
||||
(*KeywordMap)["superp"] = SUPERP;
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
(*KeywordMap)["rayPayloadNV"] = PAYLOADNV;
|
||||
(*KeywordMap)["rayPayloadInNV"] = PAYLOADINNV;
|
||||
(*KeywordMap)["hitAttributeNV"] = HITATTRNV;
|
||||
@ -713,7 +709,6 @@ void TScanContext::fillInKeywordMap()
|
||||
(*KeywordMap)["perprimitiveNV"] = PERPRIMITIVENV;
|
||||
(*KeywordMap)["perviewNV"] = PERVIEWNV;
|
||||
(*KeywordMap)["taskNV"] = PERTASKNV;
|
||||
#endif
|
||||
|
||||
(*KeywordMap)["fcoopmatNV"] = FCOOPMATNV;
|
||||
|
||||
@ -756,6 +751,7 @@ void TScanContext::fillInKeywordMap()
|
||||
ReservedSet->insert("cast");
|
||||
ReservedSet->insert("namespace");
|
||||
ReservedSet->insert("using");
|
||||
#endif
|
||||
}
|
||||
|
||||
void TScanContext::deleteKeywordMap()
|
||||
@ -842,13 +838,15 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token)
|
||||
|
||||
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
|
||||
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
|
||||
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
||||
#ifndef GLSLANG_WEB
|
||||
case PpAtomConstInt16: parserToken->sType.lex.i = ppToken.ival; return INT16CONSTANT;
|
||||
case PpAtomConstUint16: parserToken->sType.lex.i = ppToken.ival; return UINT16CONSTANT;
|
||||
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
|
||||
case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT;
|
||||
case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT;
|
||||
case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT;
|
||||
case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT;
|
||||
#endif
|
||||
case PpAtomIdentifier:
|
||||
{
|
||||
int token = tokenizeIdentifier();
|
||||
@ -870,8 +868,10 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token)
|
||||
|
||||
int TScanContext::tokenizeIdentifier()
|
||||
{
|
||||
#ifndef GLSLANG_WEB
|
||||
if (ReservedSet->find(tokenText) != ReservedSet->end())
|
||||
return reservedWord();
|
||||
#endif
|
||||
|
||||
auto it = KeywordMap->find(tokenText);
|
||||
if (it == KeywordMap->end()) {
|
||||
@ -902,12 +902,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterStruct = true;
|
||||
return keyword;
|
||||
|
||||
case NONUNIFORM:
|
||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
|
||||
case SWITCH:
|
||||
case DEFAULT:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
@ -943,20 +937,66 @@ int TScanContext::tokenizeIdentifier()
|
||||
parserToken->sType.lex.b = false;
|
||||
return keyword;
|
||||
|
||||
case SMOOTH:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 130))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
case FLAT:
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300)
|
||||
reservedWord();
|
||||
else if (parseContext.profile != EEsProfile && parseContext.version < 130)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
case CENTROID:
|
||||
if (parseContext.version < 120)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
case INVARIANT:
|
||||
if (parseContext.profile != EEsProfile && parseContext.version < 120)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
case PACKED:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 330))
|
||||
return reservedWord();
|
||||
return identifierOrType();
|
||||
|
||||
case RESOURCE:
|
||||
{
|
||||
bool reserved = (parseContext.profile == EEsProfile && parseContext.version >= 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version >= 420);
|
||||
return identifierOrReserved(reserved);
|
||||
}
|
||||
case SUPERP:
|
||||
{
|
||||
bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130;
|
||||
return identifierOrReserved(reserved);
|
||||
}
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
case NOPERSPECTIVE:
|
||||
if (parseContext.profile == EEsProfile && parseContext.version >= 300 &&
|
||||
parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation))
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(130);
|
||||
|
||||
case NONUNIFORM:
|
||||
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
case ATTRIBUTE:
|
||||
case VARYING:
|
||||
if (parseContext.profile == EEsProfile && parseContext.version >= 300)
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case BUFFER:
|
||||
afterBuffer = true;
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 310) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 430))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case PAYLOADNV:
|
||||
case PAYLOADINNV:
|
||||
case HITATTRNV:
|
||||
@ -968,8 +1008,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
&& parseContext.extensionTurnedOn(E_GL_NV_ray_tracing)))
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case ATOMIC_UINT:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version >= 310) ||
|
||||
parseContext.extensionTurnedOn(E_GL_ARB_shader_atomic_counters))
|
||||
@ -988,7 +1026,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
if (parseContext.profile == EEsProfile && parseContext.version >= 310)
|
||||
return keyword;
|
||||
return es30ReservedFromGLSL(parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store) ? 130 : 420);
|
||||
|
||||
case VOLATILE:
|
||||
if (parseContext.profile == EEsProfile && parseContext.version >= 310)
|
||||
return keyword;
|
||||
@ -996,24 +1033,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
(parseContext.version < 420 && ! parseContext.extensionTurnedOn(E_GL_ARB_shader_image_load_store))))
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case LAYOUT:
|
||||
{
|
||||
const int numLayoutExts = 2;
|
||||
const char* layoutExts[numLayoutExts] = { E_GL_ARB_shading_language_420pack,
|
||||
E_GL_ARB_explicit_attrib_location };
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 140 &&
|
||||
! parseContext.extensionsTurnedOn(numLayoutExts, layoutExts)))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
}
|
||||
case SHARED:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 140))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case PATCH:
|
||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||
(parseContext.profile == EEsProfile &&
|
||||
@ -1032,6 +1051,24 @@ int TScanContext::tokenizeIdentifier()
|
||||
|
||||
case SUBROUTINE:
|
||||
return es30ReservedFromGLSL(400);
|
||||
#endif
|
||||
|
||||
case LAYOUT:
|
||||
{
|
||||
const int numLayoutExts = 2;
|
||||
const char* layoutExts[numLayoutExts] = { E_GL_ARB_shading_language_420pack,
|
||||
E_GL_ARB_explicit_attrib_location };
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 140 &&
|
||||
! parseContext.extensionsTurnedOn(numLayoutExts, layoutExts)))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
}
|
||||
case SHARED:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 140))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case HIGH_PRECISION:
|
||||
case MEDIUM_PRECISION:
|
||||
@ -1050,6 +1087,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
case MAT4X4:
|
||||
return matNxM();
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
case DMAT2:
|
||||
case DMAT3:
|
||||
case DMAT4:
|
||||
@ -1172,10 +1210,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterType = true;
|
||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version >= 450 &&
|
||||
(
|
||||
#ifdef AMD_EXTENSIONS
|
||||
parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) ||
|
||||
#endif
|
||||
(parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_int16) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_int16))))
|
||||
@ -1251,10 +1286,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterType = true;
|
||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version >= 450 &&
|
||||
(
|
||||
#ifdef AMD_EXTENSIONS
|
||||
parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) ||
|
||||
#endif
|
||||
(parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_16bit_storage) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float16))))
|
||||
@ -1277,15 +1309,13 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterType = true;
|
||||
if (parseContext.symbolTable.atBuiltInLevel() ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version >= 450 &&
|
||||
(
|
||||
#ifdef AMD_EXTENSIONS
|
||||
parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) ||
|
||||
#endif
|
||||
(parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types) ||
|
||||
parseContext.extensionTurnedOn(E_GL_EXT_shader_explicit_arithmetic_types_float16))))
|
||||
return keyword;
|
||||
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case SAMPLERCUBEARRAY:
|
||||
case SAMPLERCUBEARRAYSHADOW:
|
||||
@ -1299,14 +1329,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case ISAMPLER1D:
|
||||
case ISAMPLER1DARRAY:
|
||||
case SAMPLER1DARRAYSHADOW:
|
||||
case USAMPLER1D:
|
||||
case USAMPLER1DARRAY:
|
||||
afterType = true;
|
||||
return es30ReservedFromGLSL(130);
|
||||
|
||||
case UINT:
|
||||
case UVEC2:
|
||||
case UVEC3:
|
||||
@ -1325,6 +1347,30 @@ int TScanContext::tokenizeIdentifier()
|
||||
afterType = true;
|
||||
return nonreservedKeyword(300, 130);
|
||||
|
||||
case SAMPLER3D:
|
||||
afterType = true;
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300) {
|
||||
if (!parseContext.extensionTurnedOn(E_GL_OES_texture_3D))
|
||||
reservedWord();
|
||||
}
|
||||
return keyword;
|
||||
|
||||
case SAMPLER2DSHADOW:
|
||||
afterType = true;
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300) {
|
||||
if (!parseContext.extensionTurnedOn(E_GL_EXT_shadow_samplers))
|
||||
reservedWord();
|
||||
}
|
||||
return keyword;
|
||||
|
||||
#ifndef GLSLANG_WEB
|
||||
case ISAMPLER1D:
|
||||
case ISAMPLER1DARRAY:
|
||||
case SAMPLER1DARRAYSHADOW:
|
||||
case USAMPLER1D:
|
||||
case USAMPLER1DARRAY:
|
||||
afterType = true;
|
||||
return es30ReservedFromGLSL(130);
|
||||
case ISAMPLER2DRECT:
|
||||
case USAMPLER2DRECT:
|
||||
afterType = true;
|
||||
@ -1369,22 +1415,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
reservedWord();
|
||||
return keyword;
|
||||
|
||||
case SAMPLER3D:
|
||||
afterType = true;
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300) {
|
||||
if (!parseContext.extensionTurnedOn(E_GL_OES_texture_3D))
|
||||
reservedWord();
|
||||
}
|
||||
return keyword;
|
||||
|
||||
case SAMPLER2DSHADOW:
|
||||
afterType = true;
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300) {
|
||||
if (!parseContext.extensionTurnedOn(E_GL_EXT_shadow_samplers))
|
||||
reservedWord();
|
||||
}
|
||||
return keyword;
|
||||
|
||||
case SAMPLER2DRECT:
|
||||
case SAMPLER2DRECTSHADOW:
|
||||
afterType = true;
|
||||
@ -1473,7 +1503,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
else
|
||||
return identifierOrType();
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
case F16SAMPLER1D:
|
||||
case F16SAMPLER2D:
|
||||
case F16SAMPLER3D:
|
||||
@ -1525,50 +1554,19 @@ int TScanContext::tokenizeIdentifier()
|
||||
parseContext.profile != EEsProfile && parseContext.version >= 450))
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case NOPERSPECTIVE:
|
||||
#ifdef NV_EXTENSIONS
|
||||
if (parseContext.profile == EEsProfile && parseContext.version >= 300 &&
|
||||
parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation))
|
||||
return keyword;
|
||||
#endif
|
||||
return es30ReservedFromGLSL(130);
|
||||
|
||||
case SMOOTH:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 130))
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
#ifdef AMD_EXTENSIONS
|
||||
case EXPLICITINTERPAMD:
|
||||
if (parseContext.profile != EEsProfile && parseContext.version >= 450 &&
|
||||
parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter))
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case PERVERTEXNV:
|
||||
if (((parseContext.profile != EEsProfile && parseContext.version >= 450) ||
|
||||
(parseContext.profile == EEsProfile && parseContext.version >= 320)) &&
|
||||
parseContext.extensionTurnedOn(E_GL_NV_fragment_shader_barycentric))
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case FLAT:
|
||||
if (parseContext.profile == EEsProfile && parseContext.version < 300)
|
||||
reservedWord();
|
||||
else if (parseContext.profile != EEsProfile && parseContext.version < 130)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case CENTROID:
|
||||
if (parseContext.version < 120)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case PRECISE:
|
||||
if ((parseContext.profile == EEsProfile &&
|
||||
@ -1581,30 +1579,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
}
|
||||
return identifierOrType();
|
||||
|
||||
case INVARIANT:
|
||||
if (parseContext.profile != EEsProfile && parseContext.version < 120)
|
||||
return identifierOrType();
|
||||
return keyword;
|
||||
|
||||
case PACKED:
|
||||
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version < 330))
|
||||
return reservedWord();
|
||||
return identifierOrType();
|
||||
|
||||
case RESOURCE:
|
||||
{
|
||||
bool reserved = (parseContext.profile == EEsProfile && parseContext.version >= 300) ||
|
||||
(parseContext.profile != EEsProfile && parseContext.version >= 420);
|
||||
return identifierOrReserved(reserved);
|
||||
}
|
||||
case SUPERP:
|
||||
{
|
||||
bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130;
|
||||
return identifierOrReserved(reserved);
|
||||
}
|
||||
|
||||
#ifdef NV_EXTENSIONS
|
||||
case PERPRIMITIVENV:
|
||||
case PERVIEWNV:
|
||||
case PERTASKNV:
|
||||
@ -1613,7 +1587,6 @@ int TScanContext::tokenizeIdentifier()
|
||||
parseContext.extensionTurnedOn(E_GL_NV_mesh_shader))
|
||||
return keyword;
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
case FCOOPMATNV:
|
||||
afterType = true;
|
||||
@ -1627,6 +1600,7 @@ int TScanContext::tokenizeIdentifier()
|
||||
return keyword;
|
||||
else
|
||||
return identifierOrType();
|
||||
#endif
|
||||
|
||||
default:
|
||||
parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc);
|
||||
|
||||
3780
glslang/MachineIndependent/glslang.m4
Normal file
3780
glslang/MachineIndependent/glslang.m4
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -45,412 +45,412 @@ extern int yydebug;
|
||||
# define YYTOKENTYPE
|
||||
enum yytokentype
|
||||
{
|
||||
ATTRIBUTE = 258,
|
||||
VARYING = 259,
|
||||
FLOAT16_T = 260,
|
||||
FLOAT = 261,
|
||||
FLOAT32_T = 262,
|
||||
DOUBLE = 263,
|
||||
FLOAT64_T = 264,
|
||||
CONST = 265,
|
||||
BOOL = 266,
|
||||
INT = 267,
|
||||
UINT = 268,
|
||||
INT64_T = 269,
|
||||
UINT64_T = 270,
|
||||
INT32_T = 271,
|
||||
UINT32_T = 272,
|
||||
INT16_T = 273,
|
||||
UINT16_T = 274,
|
||||
INT8_T = 275,
|
||||
UINT8_T = 276,
|
||||
BREAK = 277,
|
||||
CONTINUE = 278,
|
||||
DO = 279,
|
||||
ELSE = 280,
|
||||
FOR = 281,
|
||||
IF = 282,
|
||||
DISCARD = 283,
|
||||
RETURN = 284,
|
||||
SWITCH = 285,
|
||||
CASE = 286,
|
||||
DEFAULT = 287,
|
||||
SUBROUTINE = 288,
|
||||
DEMOTE = 289,
|
||||
BVEC2 = 290,
|
||||
BVEC3 = 291,
|
||||
BVEC4 = 292,
|
||||
IVEC2 = 293,
|
||||
IVEC3 = 294,
|
||||
IVEC4 = 295,
|
||||
UVEC2 = 296,
|
||||
UVEC3 = 297,
|
||||
UVEC4 = 298,
|
||||
I64VEC2 = 299,
|
||||
I64VEC3 = 300,
|
||||
I64VEC4 = 301,
|
||||
U64VEC2 = 302,
|
||||
U64VEC3 = 303,
|
||||
U64VEC4 = 304,
|
||||
I32VEC2 = 305,
|
||||
I32VEC3 = 306,
|
||||
I32VEC4 = 307,
|
||||
U32VEC2 = 308,
|
||||
U32VEC3 = 309,
|
||||
U32VEC4 = 310,
|
||||
I16VEC2 = 311,
|
||||
I16VEC3 = 312,
|
||||
I16VEC4 = 313,
|
||||
U16VEC2 = 314,
|
||||
U16VEC3 = 315,
|
||||
U16VEC4 = 316,
|
||||
I8VEC2 = 317,
|
||||
I8VEC3 = 318,
|
||||
I8VEC4 = 319,
|
||||
U8VEC2 = 320,
|
||||
U8VEC3 = 321,
|
||||
U8VEC4 = 322,
|
||||
VEC2 = 323,
|
||||
VEC3 = 324,
|
||||
VEC4 = 325,
|
||||
MAT2 = 326,
|
||||
MAT3 = 327,
|
||||
MAT4 = 328,
|
||||
CENTROID = 329,
|
||||
IN = 330,
|
||||
OUT = 331,
|
||||
INOUT = 332,
|
||||
UNIFORM = 333,
|
||||
PATCH = 334,
|
||||
SAMPLE = 335,
|
||||
BUFFER = 336,
|
||||
SHARED = 337,
|
||||
NONUNIFORM = 338,
|
||||
PAYLOADNV = 339,
|
||||
PAYLOADINNV = 340,
|
||||
HITATTRNV = 341,
|
||||
CALLDATANV = 342,
|
||||
CALLDATAINNV = 343,
|
||||
COHERENT = 344,
|
||||
VOLATILE = 345,
|
||||
RESTRICT = 346,
|
||||
READONLY = 347,
|
||||
WRITEONLY = 348,
|
||||
DEVICECOHERENT = 349,
|
||||
QUEUEFAMILYCOHERENT = 350,
|
||||
WORKGROUPCOHERENT = 351,
|
||||
SUBGROUPCOHERENT = 352,
|
||||
NONPRIVATE = 353,
|
||||
DVEC2 = 354,
|
||||
DVEC3 = 355,
|
||||
DVEC4 = 356,
|
||||
DMAT2 = 357,
|
||||
DMAT3 = 358,
|
||||
DMAT4 = 359,
|
||||
F16VEC2 = 360,
|
||||
F16VEC3 = 361,
|
||||
F16VEC4 = 362,
|
||||
F16MAT2 = 363,
|
||||
F16MAT3 = 364,
|
||||
F16MAT4 = 365,
|
||||
F32VEC2 = 366,
|
||||
F32VEC3 = 367,
|
||||
F32VEC4 = 368,
|
||||
F32MAT2 = 369,
|
||||
F32MAT3 = 370,
|
||||
F32MAT4 = 371,
|
||||
F64VEC2 = 372,
|
||||
F64VEC3 = 373,
|
||||
F64VEC4 = 374,
|
||||
F64MAT2 = 375,
|
||||
F64MAT3 = 376,
|
||||
F64MAT4 = 377,
|
||||
NOPERSPECTIVE = 378,
|
||||
FLAT = 379,
|
||||
SMOOTH = 380,
|
||||
LAYOUT = 381,
|
||||
EXPLICITINTERPAMD = 382,
|
||||
PERVERTEXNV = 383,
|
||||
PERPRIMITIVENV = 384,
|
||||
PERVIEWNV = 385,
|
||||
PERTASKNV = 386,
|
||||
MAT2X2 = 387,
|
||||
MAT2X3 = 388,
|
||||
MAT2X4 = 389,
|
||||
MAT3X2 = 390,
|
||||
MAT3X3 = 391,
|
||||
MAT3X4 = 392,
|
||||
MAT4X2 = 393,
|
||||
MAT4X3 = 394,
|
||||
MAT4X4 = 395,
|
||||
DMAT2X2 = 396,
|
||||
DMAT2X3 = 397,
|
||||
DMAT2X4 = 398,
|
||||
DMAT3X2 = 399,
|
||||
DMAT3X3 = 400,
|
||||
DMAT3X4 = 401,
|
||||
DMAT4X2 = 402,
|
||||
DMAT4X3 = 403,
|
||||
DMAT4X4 = 404,
|
||||
F16MAT2X2 = 405,
|
||||
F16MAT2X3 = 406,
|
||||
F16MAT2X4 = 407,
|
||||
F16MAT3X2 = 408,
|
||||
F16MAT3X3 = 409,
|
||||
F16MAT3X4 = 410,
|
||||
F16MAT4X2 = 411,
|
||||
F16MAT4X3 = 412,
|
||||
F16MAT4X4 = 413,
|
||||
F32MAT2X2 = 414,
|
||||
F32MAT2X3 = 415,
|
||||
F32MAT2X4 = 416,
|
||||
F32MAT3X2 = 417,
|
||||
F32MAT3X3 = 418,
|
||||
F32MAT3X4 = 419,
|
||||
F32MAT4X2 = 420,
|
||||
F32MAT4X3 = 421,
|
||||
F32MAT4X4 = 422,
|
||||
F64MAT2X2 = 423,
|
||||
F64MAT2X3 = 424,
|
||||
F64MAT2X4 = 425,
|
||||
F64MAT3X2 = 426,
|
||||
F64MAT3X3 = 427,
|
||||
F64MAT3X4 = 428,
|
||||
F64MAT4X2 = 429,
|
||||
F64MAT4X3 = 430,
|
||||
F64MAT4X4 = 431,
|
||||
ATOMIC_UINT = 432,
|
||||
ACCSTRUCTNV = 433,
|
||||
FCOOPMATNV = 434,
|
||||
SAMPLER1D = 435,
|
||||
SAMPLER2D = 436,
|
||||
SAMPLER3D = 437,
|
||||
SAMPLERCUBE = 438,
|
||||
SAMPLER1DSHADOW = 439,
|
||||
SAMPLER2DSHADOW = 440,
|
||||
SAMPLERCUBESHADOW = 441,
|
||||
SAMPLER1DARRAY = 442,
|
||||
SAMPLER2DARRAY = 443,
|
||||
SAMPLER1DARRAYSHADOW = 444,
|
||||
SAMPLER2DARRAYSHADOW = 445,
|
||||
ISAMPLER1D = 446,
|
||||
ISAMPLER2D = 447,
|
||||
ISAMPLER3D = 448,
|
||||
ISAMPLERCUBE = 449,
|
||||
ISAMPLER1DARRAY = 450,
|
||||
ISAMPLER2DARRAY = 451,
|
||||
USAMPLER1D = 452,
|
||||
USAMPLER2D = 453,
|
||||
USAMPLER3D = 454,
|
||||
USAMPLERCUBE = 455,
|
||||
USAMPLER1DARRAY = 456,
|
||||
USAMPLER2DARRAY = 457,
|
||||
SAMPLER2DRECT = 458,
|
||||
SAMPLER2DRECTSHADOW = 459,
|
||||
ISAMPLER2DRECT = 460,
|
||||
USAMPLER2DRECT = 461,
|
||||
SAMPLERBUFFER = 462,
|
||||
ISAMPLERBUFFER = 463,
|
||||
USAMPLERBUFFER = 464,
|
||||
SAMPLERCUBEARRAY = 465,
|
||||
SAMPLERCUBEARRAYSHADOW = 466,
|
||||
ISAMPLERCUBEARRAY = 467,
|
||||
USAMPLERCUBEARRAY = 468,
|
||||
SAMPLER2DMS = 469,
|
||||
ISAMPLER2DMS = 470,
|
||||
USAMPLER2DMS = 471,
|
||||
SAMPLER2DMSARRAY = 472,
|
||||
ISAMPLER2DMSARRAY = 473,
|
||||
USAMPLER2DMSARRAY = 474,
|
||||
SAMPLEREXTERNALOES = 475,
|
||||
SAMPLEREXTERNAL2DY2YEXT = 476,
|
||||
F16SAMPLER1D = 477,
|
||||
F16SAMPLER2D = 478,
|
||||
F16SAMPLER3D = 479,
|
||||
F16SAMPLER2DRECT = 480,
|
||||
F16SAMPLERCUBE = 481,
|
||||
F16SAMPLER1DARRAY = 482,
|
||||
F16SAMPLER2DARRAY = 483,
|
||||
F16SAMPLERCUBEARRAY = 484,
|
||||
F16SAMPLERBUFFER = 485,
|
||||
F16SAMPLER2DMS = 486,
|
||||
F16SAMPLER2DMSARRAY = 487,
|
||||
F16SAMPLER1DSHADOW = 488,
|
||||
F16SAMPLER2DSHADOW = 489,
|
||||
F16SAMPLER1DARRAYSHADOW = 490,
|
||||
F16SAMPLER2DARRAYSHADOW = 491,
|
||||
F16SAMPLER2DRECTSHADOW = 492,
|
||||
F16SAMPLERCUBESHADOW = 493,
|
||||
F16SAMPLERCUBEARRAYSHADOW = 494,
|
||||
SAMPLER = 495,
|
||||
SAMPLERSHADOW = 496,
|
||||
TEXTURE1D = 497,
|
||||
TEXTURE2D = 498,
|
||||
TEXTURE3D = 499,
|
||||
TEXTURECUBE = 500,
|
||||
TEXTURE1DARRAY = 501,
|
||||
TEXTURE2DARRAY = 502,
|
||||
ITEXTURE1D = 503,
|
||||
ITEXTURE2D = 504,
|
||||
ITEXTURE3D = 505,
|
||||
ITEXTURECUBE = 506,
|
||||
ITEXTURE1DARRAY = 507,
|
||||
ITEXTURE2DARRAY = 508,
|
||||
UTEXTURE1D = 509,
|
||||
UTEXTURE2D = 510,
|
||||
UTEXTURE3D = 511,
|
||||
UTEXTURECUBE = 512,
|
||||
UTEXTURE1DARRAY = 513,
|
||||
UTEXTURE2DARRAY = 514,
|
||||
TEXTURE2DRECT = 515,
|
||||
ITEXTURE2DRECT = 516,
|
||||
UTEXTURE2DRECT = 517,
|
||||
TEXTUREBUFFER = 518,
|
||||
ITEXTUREBUFFER = 519,
|
||||
UTEXTUREBUFFER = 520,
|
||||
TEXTURECUBEARRAY = 521,
|
||||
ITEXTURECUBEARRAY = 522,
|
||||
UTEXTURECUBEARRAY = 523,
|
||||
TEXTURE2DMS = 524,
|
||||
ITEXTURE2DMS = 525,
|
||||
UTEXTURE2DMS = 526,
|
||||
TEXTURE2DMSARRAY = 527,
|
||||
ITEXTURE2DMSARRAY = 528,
|
||||
UTEXTURE2DMSARRAY = 529,
|
||||
F16TEXTURE1D = 530,
|
||||
F16TEXTURE2D = 531,
|
||||
F16TEXTURE3D = 532,
|
||||
F16TEXTURE2DRECT = 533,
|
||||
F16TEXTURECUBE = 534,
|
||||
F16TEXTURE1DARRAY = 535,
|
||||
F16TEXTURE2DARRAY = 536,
|
||||
F16TEXTURECUBEARRAY = 537,
|
||||
F16TEXTUREBUFFER = 538,
|
||||
F16TEXTURE2DMS = 539,
|
||||
F16TEXTURE2DMSARRAY = 540,
|
||||
SUBPASSINPUT = 541,
|
||||
SUBPASSINPUTMS = 542,
|
||||
ISUBPASSINPUT = 543,
|
||||
ISUBPASSINPUTMS = 544,
|
||||
USUBPASSINPUT = 545,
|
||||
USUBPASSINPUTMS = 546,
|
||||
F16SUBPASSINPUT = 547,
|
||||
F16SUBPASSINPUTMS = 548,
|
||||
IMAGE1D = 549,
|
||||
IIMAGE1D = 550,
|
||||
UIMAGE1D = 551,
|
||||
IMAGE2D = 552,
|
||||
IIMAGE2D = 553,
|
||||
UIMAGE2D = 554,
|
||||
IMAGE3D = 555,
|
||||
IIMAGE3D = 556,
|
||||
UIMAGE3D = 557,
|
||||
IMAGE2DRECT = 558,
|
||||
IIMAGE2DRECT = 559,
|
||||
UIMAGE2DRECT = 560,
|
||||
IMAGECUBE = 561,
|
||||
IIMAGECUBE = 562,
|
||||
UIMAGECUBE = 563,
|
||||
IMAGEBUFFER = 564,
|
||||
IIMAGEBUFFER = 565,
|
||||
UIMAGEBUFFER = 566,
|
||||
IMAGE1DARRAY = 567,
|
||||
IIMAGE1DARRAY = 568,
|
||||
UIMAGE1DARRAY = 569,
|
||||
IMAGE2DARRAY = 570,
|
||||
IIMAGE2DARRAY = 571,
|
||||
UIMAGE2DARRAY = 572,
|
||||
IMAGECUBEARRAY = 573,
|
||||
IIMAGECUBEARRAY = 574,
|
||||
UIMAGECUBEARRAY = 575,
|
||||
IMAGE2DMS = 576,
|
||||
IIMAGE2DMS = 577,
|
||||
UIMAGE2DMS = 578,
|
||||
IMAGE2DMSARRAY = 579,
|
||||
IIMAGE2DMSARRAY = 580,
|
||||
UIMAGE2DMSARRAY = 581,
|
||||
F16IMAGE1D = 582,
|
||||
F16IMAGE2D = 583,
|
||||
F16IMAGE3D = 584,
|
||||
F16IMAGE2DRECT = 585,
|
||||
F16IMAGECUBE = 586,
|
||||
F16IMAGE1DARRAY = 587,
|
||||
F16IMAGE2DARRAY = 588,
|
||||
F16IMAGECUBEARRAY = 589,
|
||||
F16IMAGEBUFFER = 590,
|
||||
F16IMAGE2DMS = 591,
|
||||
F16IMAGE2DMSARRAY = 592,
|
||||
STRUCT = 593,
|
||||
VOID = 594,
|
||||
WHILE = 595,
|
||||
IDENTIFIER = 596,
|
||||
TYPE_NAME = 597,
|
||||
FLOATCONSTANT = 598,
|
||||
DOUBLECONSTANT = 599,
|
||||
INT16CONSTANT = 600,
|
||||
UINT16CONSTANT = 601,
|
||||
INT32CONSTANT = 602,
|
||||
UINT32CONSTANT = 603,
|
||||
INTCONSTANT = 604,
|
||||
UINTCONSTANT = 605,
|
||||
INT64CONSTANT = 606,
|
||||
UINT64CONSTANT = 607,
|
||||
BOOLCONSTANT = 608,
|
||||
FLOAT16CONSTANT = 609,
|
||||
LEFT_OP = 610,
|
||||
RIGHT_OP = 611,
|
||||
INC_OP = 612,
|
||||
DEC_OP = 613,
|
||||
LE_OP = 614,
|
||||
GE_OP = 615,
|
||||
EQ_OP = 616,
|
||||
NE_OP = 617,
|
||||
AND_OP = 618,
|
||||
OR_OP = 619,
|
||||
XOR_OP = 620,
|
||||
MUL_ASSIGN = 621,
|
||||
DIV_ASSIGN = 622,
|
||||
ADD_ASSIGN = 623,
|
||||
MOD_ASSIGN = 624,
|
||||
LEFT_ASSIGN = 625,
|
||||
RIGHT_ASSIGN = 626,
|
||||
AND_ASSIGN = 627,
|
||||
XOR_ASSIGN = 628,
|
||||
OR_ASSIGN = 629,
|
||||
SUB_ASSIGN = 630,
|
||||
LEFT_PAREN = 631,
|
||||
RIGHT_PAREN = 632,
|
||||
LEFT_BRACKET = 633,
|
||||
RIGHT_BRACKET = 634,
|
||||
LEFT_BRACE = 635,
|
||||
RIGHT_BRACE = 636,
|
||||
DOT = 637,
|
||||
COMMA = 638,
|
||||
COLON = 639,
|
||||
EQUAL = 640,
|
||||
SEMICOLON = 641,
|
||||
BANG = 642,
|
||||
DASH = 643,
|
||||
TILDE = 644,
|
||||
PLUS = 645,
|
||||
STAR = 646,
|
||||
SLASH = 647,
|
||||
PERCENT = 648,
|
||||
LEFT_ANGLE = 649,
|
||||
RIGHT_ANGLE = 650,
|
||||
VERTICAL_BAR = 651,
|
||||
CARET = 652,
|
||||
AMPERSAND = 653,
|
||||
QUESTION = 654,
|
||||
INVARIANT = 655,
|
||||
PRECISE = 656,
|
||||
HIGH_PRECISION = 657,
|
||||
MEDIUM_PRECISION = 658,
|
||||
LOW_PRECISION = 659,
|
||||
PRECISION = 660,
|
||||
PACKED = 661,
|
||||
RESOURCE = 662,
|
||||
SUPERP = 663
|
||||
CONST = 258,
|
||||
BOOL = 259,
|
||||
INT = 260,
|
||||
UINT = 261,
|
||||
FLOAT = 262,
|
||||
BVEC2 = 263,
|
||||
BVEC3 = 264,
|
||||
BVEC4 = 265,
|
||||
IVEC2 = 266,
|
||||
IVEC3 = 267,
|
||||
IVEC4 = 268,
|
||||
UVEC2 = 269,
|
||||
UVEC3 = 270,
|
||||
UVEC4 = 271,
|
||||
VEC2 = 272,
|
||||
VEC3 = 273,
|
||||
VEC4 = 274,
|
||||
MAT2 = 275,
|
||||
MAT3 = 276,
|
||||
MAT4 = 277,
|
||||
MAT2X2 = 278,
|
||||
MAT2X3 = 279,
|
||||
MAT2X4 = 280,
|
||||
MAT3X2 = 281,
|
||||
MAT3X3 = 282,
|
||||
MAT3X4 = 283,
|
||||
MAT4X2 = 284,
|
||||
MAT4X3 = 285,
|
||||
MAT4X4 = 286,
|
||||
SAMPLER2D = 287,
|
||||
SAMPLER3D = 288,
|
||||
SAMPLERCUBE = 289,
|
||||
SAMPLER2DSHADOW = 290,
|
||||
SAMPLERCUBESHADOW = 291,
|
||||
SAMPLER2DARRAY = 292,
|
||||
SAMPLER2DARRAYSHADOW = 293,
|
||||
ISAMPLER2D = 294,
|
||||
ISAMPLER3D = 295,
|
||||
ISAMPLERCUBE = 296,
|
||||
ISAMPLER2DARRAY = 297,
|
||||
USAMPLER2D = 298,
|
||||
USAMPLER3D = 299,
|
||||
USAMPLERCUBE = 300,
|
||||
USAMPLER2DARRAY = 301,
|
||||
SAMPLERCUBEARRAY = 302,
|
||||
SAMPLERCUBEARRAYSHADOW = 303,
|
||||
ISAMPLERCUBEARRAY = 304,
|
||||
USAMPLERCUBEARRAY = 305,
|
||||
ATTRIBUTE = 306,
|
||||
VARYING = 307,
|
||||
FLOAT16_T = 308,
|
||||
FLOAT32_T = 309,
|
||||
DOUBLE = 310,
|
||||
FLOAT64_T = 311,
|
||||
INT64_T = 312,
|
||||
UINT64_T = 313,
|
||||
INT32_T = 314,
|
||||
UINT32_T = 315,
|
||||
INT16_T = 316,
|
||||
UINT16_T = 317,
|
||||
INT8_T = 318,
|
||||
UINT8_T = 319,
|
||||
I64VEC2 = 320,
|
||||
I64VEC3 = 321,
|
||||
I64VEC4 = 322,
|
||||
U64VEC2 = 323,
|
||||
U64VEC3 = 324,
|
||||
U64VEC4 = 325,
|
||||
I32VEC2 = 326,
|
||||
I32VEC3 = 327,
|
||||
I32VEC4 = 328,
|
||||
U32VEC2 = 329,
|
||||
U32VEC3 = 330,
|
||||
U32VEC4 = 331,
|
||||
I16VEC2 = 332,
|
||||
I16VEC3 = 333,
|
||||
I16VEC4 = 334,
|
||||
U16VEC2 = 335,
|
||||
U16VEC3 = 336,
|
||||
U16VEC4 = 337,
|
||||
I8VEC2 = 338,
|
||||
I8VEC3 = 339,
|
||||
I8VEC4 = 340,
|
||||
U8VEC2 = 341,
|
||||
U8VEC3 = 342,
|
||||
U8VEC4 = 343,
|
||||
DVEC2 = 344,
|
||||
DVEC3 = 345,
|
||||
DVEC4 = 346,
|
||||
DMAT2 = 347,
|
||||
DMAT3 = 348,
|
||||
DMAT4 = 349,
|
||||
F16VEC2 = 350,
|
||||
F16VEC3 = 351,
|
||||
F16VEC4 = 352,
|
||||
F16MAT2 = 353,
|
||||
F16MAT3 = 354,
|
||||
F16MAT4 = 355,
|
||||
F32VEC2 = 356,
|
||||
F32VEC3 = 357,
|
||||
F32VEC4 = 358,
|
||||
F32MAT2 = 359,
|
||||
F32MAT3 = 360,
|
||||
F32MAT4 = 361,
|
||||
F64VEC2 = 362,
|
||||
F64VEC3 = 363,
|
||||
F64VEC4 = 364,
|
||||
F64MAT2 = 365,
|
||||
F64MAT3 = 366,
|
||||
F64MAT4 = 367,
|
||||
DMAT2X2 = 368,
|
||||
DMAT2X3 = 369,
|
||||
DMAT2X4 = 370,
|
||||
DMAT3X2 = 371,
|
||||
DMAT3X3 = 372,
|
||||
DMAT3X4 = 373,
|
||||
DMAT4X2 = 374,
|
||||
DMAT4X3 = 375,
|
||||
DMAT4X4 = 376,
|
||||
F16MAT2X2 = 377,
|
||||
F16MAT2X3 = 378,
|
||||
F16MAT2X4 = 379,
|
||||
F16MAT3X2 = 380,
|
||||
F16MAT3X3 = 381,
|
||||
F16MAT3X4 = 382,
|
||||
F16MAT4X2 = 383,
|
||||
F16MAT4X3 = 384,
|
||||
F16MAT4X4 = 385,
|
||||
F32MAT2X2 = 386,
|
||||
F32MAT2X3 = 387,
|
||||
F32MAT2X4 = 388,
|
||||
F32MAT3X2 = 389,
|
||||
F32MAT3X3 = 390,
|
||||
F32MAT3X4 = 391,
|
||||
F32MAT4X2 = 392,
|
||||
F32MAT4X3 = 393,
|
||||
F32MAT4X4 = 394,
|
||||
F64MAT2X2 = 395,
|
||||
F64MAT2X3 = 396,
|
||||
F64MAT2X4 = 397,
|
||||
F64MAT3X2 = 398,
|
||||
F64MAT3X3 = 399,
|
||||
F64MAT3X4 = 400,
|
||||
F64MAT4X2 = 401,
|
||||
F64MAT4X3 = 402,
|
||||
F64MAT4X4 = 403,
|
||||
ATOMIC_UINT = 404,
|
||||
ACCSTRUCTNV = 405,
|
||||
FCOOPMATNV = 406,
|
||||
SAMPLER1D = 407,
|
||||
SAMPLER1DARRAY = 408,
|
||||
SAMPLER1DARRAYSHADOW = 409,
|
||||
ISAMPLER1D = 410,
|
||||
SAMPLER1DSHADOW = 411,
|
||||
SAMPLER2DRECT = 412,
|
||||
SAMPLER2DRECTSHADOW = 413,
|
||||
ISAMPLER2DRECT = 414,
|
||||
USAMPLER2DRECT = 415,
|
||||
SAMPLERBUFFER = 416,
|
||||
ISAMPLERBUFFER = 417,
|
||||
USAMPLERBUFFER = 418,
|
||||
SAMPLER2DMS = 419,
|
||||
ISAMPLER2DMS = 420,
|
||||
USAMPLER2DMS = 421,
|
||||
SAMPLER2DMSARRAY = 422,
|
||||
ISAMPLER2DMSARRAY = 423,
|
||||
USAMPLER2DMSARRAY = 424,
|
||||
SAMPLEREXTERNALOES = 425,
|
||||
SAMPLEREXTERNAL2DY2YEXT = 426,
|
||||
ISAMPLER1DARRAY = 427,
|
||||
USAMPLER1D = 428,
|
||||
USAMPLER1DARRAY = 429,
|
||||
F16SAMPLER1D = 430,
|
||||
F16SAMPLER2D = 431,
|
||||
F16SAMPLER3D = 432,
|
||||
F16SAMPLER2DRECT = 433,
|
||||
F16SAMPLERCUBE = 434,
|
||||
F16SAMPLER1DARRAY = 435,
|
||||
F16SAMPLER2DARRAY = 436,
|
||||
F16SAMPLERCUBEARRAY = 437,
|
||||
F16SAMPLERBUFFER = 438,
|
||||
F16SAMPLER2DMS = 439,
|
||||
F16SAMPLER2DMSARRAY = 440,
|
||||
F16SAMPLER1DSHADOW = 441,
|
||||
F16SAMPLER2DSHADOW = 442,
|
||||
F16SAMPLER1DARRAYSHADOW = 443,
|
||||
F16SAMPLER2DARRAYSHADOW = 444,
|
||||
F16SAMPLER2DRECTSHADOW = 445,
|
||||
F16SAMPLERCUBESHADOW = 446,
|
||||
F16SAMPLERCUBEARRAYSHADOW = 447,
|
||||
IMAGE1D = 448,
|
||||
IIMAGE1D = 449,
|
||||
UIMAGE1D = 450,
|
||||
IMAGE2D = 451,
|
||||
IIMAGE2D = 452,
|
||||
UIMAGE2D = 453,
|
||||
IMAGE3D = 454,
|
||||
IIMAGE3D = 455,
|
||||
UIMAGE3D = 456,
|
||||
IMAGE2DRECT = 457,
|
||||
IIMAGE2DRECT = 458,
|
||||
UIMAGE2DRECT = 459,
|
||||
IMAGECUBE = 460,
|
||||
IIMAGECUBE = 461,
|
||||
UIMAGECUBE = 462,
|
||||
IMAGEBUFFER = 463,
|
||||
IIMAGEBUFFER = 464,
|
||||
UIMAGEBUFFER = 465,
|
||||
IMAGE1DARRAY = 466,
|
||||
IIMAGE1DARRAY = 467,
|
||||
UIMAGE1DARRAY = 468,
|
||||
IMAGE2DARRAY = 469,
|
||||
IIMAGE2DARRAY = 470,
|
||||
UIMAGE2DARRAY = 471,
|
||||
IMAGECUBEARRAY = 472,
|
||||
IIMAGECUBEARRAY = 473,
|
||||
UIMAGECUBEARRAY = 474,
|
||||
IMAGE2DMS = 475,
|
||||
IIMAGE2DMS = 476,
|
||||
UIMAGE2DMS = 477,
|
||||
IMAGE2DMSARRAY = 478,
|
||||
IIMAGE2DMSARRAY = 479,
|
||||
UIMAGE2DMSARRAY = 480,
|
||||
F16IMAGE1D = 481,
|
||||
F16IMAGE2D = 482,
|
||||
F16IMAGE3D = 483,
|
||||
F16IMAGE2DRECT = 484,
|
||||
F16IMAGECUBE = 485,
|
||||
F16IMAGE1DARRAY = 486,
|
||||
F16IMAGE2DARRAY = 487,
|
||||
F16IMAGECUBEARRAY = 488,
|
||||
F16IMAGEBUFFER = 489,
|
||||
F16IMAGE2DMS = 490,
|
||||
F16IMAGE2DMSARRAY = 491,
|
||||
SAMPLER = 492,
|
||||
SAMPLERSHADOW = 493,
|
||||
TEXTURE1D = 494,
|
||||
TEXTURE2D = 495,
|
||||
TEXTURE3D = 496,
|
||||
TEXTURECUBE = 497,
|
||||
TEXTURE1DARRAY = 498,
|
||||
TEXTURE2DARRAY = 499,
|
||||
ITEXTURE1D = 500,
|
||||
ITEXTURE2D = 501,
|
||||
ITEXTURE3D = 502,
|
||||
ITEXTURECUBE = 503,
|
||||
ITEXTURE1DARRAY = 504,
|
||||
ITEXTURE2DARRAY = 505,
|
||||
UTEXTURE1D = 506,
|
||||
UTEXTURE2D = 507,
|
||||
UTEXTURE3D = 508,
|
||||
UTEXTURECUBE = 509,
|
||||
UTEXTURE1DARRAY = 510,
|
||||
UTEXTURE2DARRAY = 511,
|
||||
TEXTURE2DRECT = 512,
|
||||
ITEXTURE2DRECT = 513,
|
||||
UTEXTURE2DRECT = 514,
|
||||
TEXTUREBUFFER = 515,
|
||||
ITEXTUREBUFFER = 516,
|
||||
UTEXTUREBUFFER = 517,
|
||||
TEXTURECUBEARRAY = 518,
|
||||
ITEXTURECUBEARRAY = 519,
|
||||
UTEXTURECUBEARRAY = 520,
|
||||
TEXTURE2DMS = 521,
|
||||
ITEXTURE2DMS = 522,
|
||||
UTEXTURE2DMS = 523,
|
||||
TEXTURE2DMSARRAY = 524,
|
||||
ITEXTURE2DMSARRAY = 525,
|
||||
UTEXTURE2DMSARRAY = 526,
|
||||
F16TEXTURE1D = 527,
|
||||
F16TEXTURE2D = 528,
|
||||
F16TEXTURE3D = 529,
|
||||
F16TEXTURE2DRECT = 530,
|
||||
F16TEXTURECUBE = 531,
|
||||
F16TEXTURE1DARRAY = 532,
|
||||
F16TEXTURE2DARRAY = 533,
|
||||
F16TEXTURECUBEARRAY = 534,
|
||||
F16TEXTUREBUFFER = 535,
|
||||
F16TEXTURE2DMS = 536,
|
||||
F16TEXTURE2DMSARRAY = 537,
|
||||
SUBPASSINPUT = 538,
|
||||
SUBPASSINPUTMS = 539,
|
||||
ISUBPASSINPUT = 540,
|
||||
ISUBPASSINPUTMS = 541,
|
||||
USUBPASSINPUT = 542,
|
||||
USUBPASSINPUTMS = 543,
|
||||
F16SUBPASSINPUT = 544,
|
||||
F16SUBPASSINPUTMS = 545,
|
||||
LEFT_OP = 546,
|
||||
RIGHT_OP = 547,
|
||||
INC_OP = 548,
|
||||
DEC_OP = 549,
|
||||
LE_OP = 550,
|
||||
GE_OP = 551,
|
||||
EQ_OP = 552,
|
||||
NE_OP = 553,
|
||||
AND_OP = 554,
|
||||
OR_OP = 555,
|
||||
XOR_OP = 556,
|
||||
MUL_ASSIGN = 557,
|
||||
DIV_ASSIGN = 558,
|
||||
ADD_ASSIGN = 559,
|
||||
MOD_ASSIGN = 560,
|
||||
LEFT_ASSIGN = 561,
|
||||
RIGHT_ASSIGN = 562,
|
||||
AND_ASSIGN = 563,
|
||||
XOR_ASSIGN = 564,
|
||||
OR_ASSIGN = 565,
|
||||
SUB_ASSIGN = 566,
|
||||
LEFT_PAREN = 567,
|
||||
RIGHT_PAREN = 568,
|
||||
LEFT_BRACKET = 569,
|
||||
RIGHT_BRACKET = 570,
|
||||
LEFT_BRACE = 571,
|
||||
RIGHT_BRACE = 572,
|
||||
DOT = 573,
|
||||
COMMA = 574,
|
||||
COLON = 575,
|
||||
EQUAL = 576,
|
||||
SEMICOLON = 577,
|
||||
BANG = 578,
|
||||
DASH = 579,
|
||||
TILDE = 580,
|
||||
PLUS = 581,
|
||||
STAR = 582,
|
||||
SLASH = 583,
|
||||
PERCENT = 584,
|
||||
LEFT_ANGLE = 585,
|
||||
RIGHT_ANGLE = 586,
|
||||
VERTICAL_BAR = 587,
|
||||
CARET = 588,
|
||||
AMPERSAND = 589,
|
||||
QUESTION = 590,
|
||||
INVARIANT = 591,
|
||||
HIGH_PRECISION = 592,
|
||||
MEDIUM_PRECISION = 593,
|
||||
LOW_PRECISION = 594,
|
||||
PRECISION = 595,
|
||||
PACKED = 596,
|
||||
RESOURCE = 597,
|
||||
SUPERP = 598,
|
||||
FLOATCONSTANT = 599,
|
||||
INTCONSTANT = 600,
|
||||
UINTCONSTANT = 601,
|
||||
BOOLCONSTANT = 602,
|
||||
IDENTIFIER = 603,
|
||||
TYPE_NAME = 604,
|
||||
CENTROID = 605,
|
||||
IN = 606,
|
||||
OUT = 607,
|
||||
INOUT = 608,
|
||||
STRUCT = 609,
|
||||
VOID = 610,
|
||||
WHILE = 611,
|
||||
BREAK = 612,
|
||||
CONTINUE = 613,
|
||||
DO = 614,
|
||||
ELSE = 615,
|
||||
FOR = 616,
|
||||
IF = 617,
|
||||
DISCARD = 618,
|
||||
RETURN = 619,
|
||||
SWITCH = 620,
|
||||
CASE = 621,
|
||||
DEFAULT = 622,
|
||||
UNIFORM = 623,
|
||||
SHARED = 624,
|
||||
FLAT = 625,
|
||||
SMOOTH = 626,
|
||||
LAYOUT = 627,
|
||||
DOUBLECONSTANT = 628,
|
||||
INT16CONSTANT = 629,
|
||||
UINT16CONSTANT = 630,
|
||||
FLOAT16CONSTANT = 631,
|
||||
INT32CONSTANT = 632,
|
||||
UINT32CONSTANT = 633,
|
||||
INT64CONSTANT = 634,
|
||||
UINT64CONSTANT = 635,
|
||||
SUBROUTINE = 636,
|
||||
DEMOTE = 637,
|
||||
PAYLOADNV = 638,
|
||||
PAYLOADINNV = 639,
|
||||
HITATTRNV = 640,
|
||||
CALLDATANV = 641,
|
||||
CALLDATAINNV = 642,
|
||||
PATCH = 643,
|
||||
SAMPLE = 644,
|
||||
BUFFER = 645,
|
||||
NONUNIFORM = 646,
|
||||
COHERENT = 647,
|
||||
VOLATILE = 648,
|
||||
RESTRICT = 649,
|
||||
READONLY = 650,
|
||||
WRITEONLY = 651,
|
||||
DEVICECOHERENT = 652,
|
||||
QUEUEFAMILYCOHERENT = 653,
|
||||
WORKGROUPCOHERENT = 654,
|
||||
SUBGROUPCOHERENT = 655,
|
||||
NONPRIVATE = 656,
|
||||
NOPERSPECTIVE = 657,
|
||||
EXPLICITINTERPAMD = 658,
|
||||
PERVERTEXNV = 659,
|
||||
PERPRIMITIVENV = 660,
|
||||
PERVIEWNV = 661,
|
||||
PERTASKNV = 662,
|
||||
PRECISE = 663
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -459,7 +459,7 @@ extern int yydebug;
|
||||
|
||||
union YYSTYPE
|
||||
{
|
||||
#line 71 "MachineIndependent/glslang.y" /* yacc.c:1909 */
|
||||
#line 96 "MachineIndependent/glslang.y" /* yacc.c:1909 */
|
||||
|
||||
struct {
|
||||
glslang::TSourceLoc loc;
|
||||
|
||||
@ -1,3 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/bash
|
||||
|
||||
if [ "$1" = 'web' ]
|
||||
then
|
||||
m4 -P -DGLSLANG_WEB MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
||||
elif [ "$#" -eq 0 ]
|
||||
then
|
||||
m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
|
||||
else
|
||||
echo usage:
|
||||
echo $0 web
|
||||
echo $0
|
||||
exit
|
||||
fi
|
||||
|
||||
bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user