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