Remove type categories from the GLSL AST

Type categories are now handled at semantic analysis time
so we don't need to track them at syntax analysis time.
This commit is contained in:
Rhys Weatherley
2010-11-29 13:04:54 +10:00
parent 614127a557
commit c173959f89
5 changed files with 179 additions and 221 deletions

View File

@@ -368,9 +368,9 @@ private:
return node; return node;
} }
TypeAST *makeBasicType(int token, BasicTypeAST::Category category) TypeAST *makeBasicType(int token)
{ {
TypeAST *type = new (_engine->pool()) BasicTypeAST(token, spell[token], category); TypeAST *type = new (_engine->pool()) BasicTypeAST(token, spell[token]);
type->lineno = yyloc >= 0 ? (_tokens[yyloc].line + 1) : 0; type->lineno = yyloc >= 0 ? (_tokens[yyloc].line + 1) : 0;
return type; return type;
} }
@@ -1800,595 +1800,595 @@ case $rule_number: {
type_specifier_nonarray ::= VOID ; type_specifier_nonarray ::= VOID ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_VOID, TypeAST::Void); ast(1) = makeBasicType(T_VOID);
} break; } break;
./ ./
type_specifier_nonarray ::= FLOAT ; type_specifier_nonarray ::= FLOAT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_FLOAT, TypeAST::Primitive); ast(1) = makeBasicType(T_FLOAT);
} break; } break;
./ ./
type_specifier_nonarray ::= DOUBLE ; type_specifier_nonarray ::= DOUBLE ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DOUBLE, TypeAST::Primitive); ast(1) = makeBasicType(T_DOUBLE);
} break; } break;
./ ./
type_specifier_nonarray ::= INT ; type_specifier_nonarray ::= INT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_INT, TypeAST::Primitive); ast(1) = makeBasicType(T_INT);
} break; } break;
./ ./
type_specifier_nonarray ::= UINT ; type_specifier_nonarray ::= UINT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_UINT, TypeAST::Primitive); ast(1) = makeBasicType(T_UINT);
} break; } break;
./ ./
type_specifier_nonarray ::= BOOL ; type_specifier_nonarray ::= BOOL ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_BOOL, TypeAST::Primitive); ast(1) = makeBasicType(T_BOOL);
} break; } break;
./ ./
type_specifier_nonarray ::= VEC2 ; type_specifier_nonarray ::= VEC2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_VEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_VEC2);
} break; } break;
./ ./
type_specifier_nonarray ::= VEC3 ; type_specifier_nonarray ::= VEC3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_VEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_VEC3);
} break; } break;
./ ./
type_specifier_nonarray ::= VEC4 ; type_specifier_nonarray ::= VEC4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_VEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_VEC4);
} break; } break;
./ ./
type_specifier_nonarray ::= DVEC2 ; type_specifier_nonarray ::= DVEC2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_DVEC2);
} break; } break;
./ ./
type_specifier_nonarray ::= DVEC3 ; type_specifier_nonarray ::= DVEC3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_DVEC3);
} break; } break;
./ ./
type_specifier_nonarray ::= DVEC4 ; type_specifier_nonarray ::= DVEC4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_DVEC4);
} break; } break;
./ ./
type_specifier_nonarray ::= BVEC2 ; type_specifier_nonarray ::= BVEC2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_BVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_BVEC2);
} break; } break;
./ ./
type_specifier_nonarray ::= BVEC3 ; type_specifier_nonarray ::= BVEC3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_BVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_BVEC3);
} break; } break;
./ ./
type_specifier_nonarray ::= BVEC4 ; type_specifier_nonarray ::= BVEC4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_BVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_BVEC4);
} break; } break;
./ ./
type_specifier_nonarray ::= IVEC2 ; type_specifier_nonarray ::= IVEC2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_IVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_IVEC2);
} break; } break;
./ ./
type_specifier_nonarray ::= IVEC3 ; type_specifier_nonarray ::= IVEC3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_IVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_IVEC3);
} break; } break;
./ ./
type_specifier_nonarray ::= IVEC4 ; type_specifier_nonarray ::= IVEC4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_IVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_IVEC4);
} break; } break;
./ ./
type_specifier_nonarray ::= UVEC2 ; type_specifier_nonarray ::= UVEC2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_UVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_UVEC2);
} break; } break;
./ ./
type_specifier_nonarray ::= UVEC3 ; type_specifier_nonarray ::= UVEC3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_UVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_UVEC3);
} break; } break;
./ ./
type_specifier_nonarray ::= UVEC4 ; type_specifier_nonarray ::= UVEC4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_UVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_UVEC4);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT2 ; type_specifier_nonarray ::= MAT2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT3 ; type_specifier_nonarray ::= MAT3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT4 ; type_specifier_nonarray ::= MAT4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT2X2 ; type_specifier_nonarray ::= MAT2X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT2X3 ; type_specifier_nonarray ::= MAT2X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT2X3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2X3);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT2X4 ; type_specifier_nonarray ::= MAT2X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT2X4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2X4);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT3X2 ; type_specifier_nonarray ::= MAT3X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT3X2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3X2);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT3X3 ; type_specifier_nonarray ::= MAT3X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT3X4 ; type_specifier_nonarray ::= MAT3X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT3X4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3X4);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT4X2 ; type_specifier_nonarray ::= MAT4X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT4X2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4X2);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT4X3 ; type_specifier_nonarray ::= MAT4X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT4X3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4X3);
} break; } break;
./ ./
type_specifier_nonarray ::= MAT4X4 ; type_specifier_nonarray ::= MAT4X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_MAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT2 ; type_specifier_nonarray ::= DMAT2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT3 ; type_specifier_nonarray ::= DMAT3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT4 ; type_specifier_nonarray ::= DMAT4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT2X2 ; type_specifier_nonarray ::= DMAT2X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT2X3 ; type_specifier_nonarray ::= DMAT2X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT2X3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2X3);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT2X4 ; type_specifier_nonarray ::= DMAT2X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT2X4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2X4);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT3X2 ; type_specifier_nonarray ::= DMAT3X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT3X2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3X2);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT3X3 ; type_specifier_nonarray ::= DMAT3X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT3X4 ; type_specifier_nonarray ::= DMAT3X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT3X4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3X4);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT4X2 ; type_specifier_nonarray ::= DMAT4X2 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT4X2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4X2);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT4X3 ; type_specifier_nonarray ::= DMAT4X3 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT4X3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4X3);
} break; } break;
./ ./
type_specifier_nonarray ::= DMAT4X4 ; type_specifier_nonarray ::= DMAT4X4 ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_DMAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER1D ; type_specifier_nonarray ::= SAMPLER1D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_SAMPLER1D);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2D ; type_specifier_nonarray ::= SAMPLER2D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_SAMPLER2D);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER3D ; type_specifier_nonarray ::= SAMPLER3D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_SAMPLER3D);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLERCUBE ; type_specifier_nonarray ::= SAMPLERCUBE ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_SAMPLERCUBE);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER1DSHADOW ; type_specifier_nonarray ::= SAMPLER1DSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER1DSHADOW, TypeAST::Sampler1DShadow); ast(1) = makeBasicType(T_SAMPLER1DSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DSHADOW ; type_specifier_nonarray ::= SAMPLER2DSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DSHADOW, TypeAST::Sampler2DShadow); ast(1) = makeBasicType(T_SAMPLER2DSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLERCUBESHADOW ; type_specifier_nonarray ::= SAMPLERCUBESHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLERCUBESHADOW, TypeAST::SamplerCubeShadow); ast(1) = makeBasicType(T_SAMPLERCUBESHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER1DARRAY ; type_specifier_nonarray ::= SAMPLER1DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_SAMPLER1DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DARRAY ; type_specifier_nonarray ::= SAMPLER2DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_SAMPLER2DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER1DARRAYSHADOW ; type_specifier_nonarray ::= SAMPLER1DARRAYSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW, TypeAST::Sampler1DArrayShadow); ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DARRAYSHADOW ; type_specifier_nonarray ::= SAMPLER2DARRAYSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW, TypeAST::Sampler2DArrayShadow); ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLERCUBEARRAY ; type_specifier_nonarray ::= SAMPLERCUBEARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLERCUBEARRAY, TypeAST::SamplerCubeShadow); ast(1) = makeBasicType(T_SAMPLERCUBEARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLERCUBEARRAYSHADOW ; type_specifier_nonarray ::= SAMPLERCUBEARRAYSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW, TypeAST::SamplerCubeArrayShadow); ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER1D ; type_specifier_nonarray ::= ISAMPLER1D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_ISAMPLER1D);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER2D ; type_specifier_nonarray ::= ISAMPLER2D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_ISAMPLER2D);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER3D ; type_specifier_nonarray ::= ISAMPLER3D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_ISAMPLER3D);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLERCUBE ; type_specifier_nonarray ::= ISAMPLERCUBE ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_ISAMPLERCUBE);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER1DARRAY ; type_specifier_nonarray ::= ISAMPLER1DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_ISAMPLER1DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER2DARRAY ; type_specifier_nonarray ::= ISAMPLER2DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_ISAMPLER2DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLERCUBEARRAY ; type_specifier_nonarray ::= ISAMPLERCUBEARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY, TypeAST::SamplerCubeArray); ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER1D ; type_specifier_nonarray ::= USAMPLER1D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_USAMPLER1D);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER2D ; type_specifier_nonarray ::= USAMPLER2D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_USAMPLER2D);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER3D ; type_specifier_nonarray ::= USAMPLER3D ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_USAMPLER3D);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLERCUBE ; type_specifier_nonarray ::= USAMPLERCUBE ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_USAMPLERCUBE);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER1DARRAY ; type_specifier_nonarray ::= USAMPLER1DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_USAMPLER1DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER2DARRAY ; type_specifier_nonarray ::= USAMPLER2DARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_USAMPLER2DARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLERCUBEARRAY ; type_specifier_nonarray ::= USAMPLERCUBEARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLERCUBEARRAY, TypeAST::SamplerCubeArray); ast(1) = makeBasicType(T_USAMPLERCUBEARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DRECT ; type_specifier_nonarray ::= SAMPLER2DRECT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_SAMPLER2DRECT);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DRECTSHADOW ; type_specifier_nonarray ::= SAMPLER2DRECTSHADOW ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW, TypeAST::Sampler2DRectShadow); ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER2DRECT ; type_specifier_nonarray ::= ISAMPLER2DRECT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_ISAMPLER2DRECT);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER2DRECT ; type_specifier_nonarray ::= USAMPLER2DRECT ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_USAMPLER2DRECT);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLERBUFFER ; type_specifier_nonarray ::= SAMPLERBUFFER ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_SAMPLERBUFFER);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLERBUFFER ; type_specifier_nonarray ::= ISAMPLERBUFFER ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_ISAMPLERBUFFER);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLERBUFFER ; type_specifier_nonarray ::= USAMPLERBUFFER ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_USAMPLERBUFFER);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DMS ; type_specifier_nonarray ::= SAMPLER2DMS ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_SAMPLER2DMS);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER2DMS ; type_specifier_nonarray ::= ISAMPLER2DMS ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_ISAMPLER2DMS);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER2DMS ; type_specifier_nonarray ::= USAMPLER2DMS ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_USAMPLER2DMS);
} break; } break;
./ ./
type_specifier_nonarray ::= SAMPLER2DMSARRAY ; type_specifier_nonarray ::= SAMPLER2DMSARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_SAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_SAMPLER2DMSARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= ISAMPLER2DMSARRAY ; type_specifier_nonarray ::= ISAMPLER2DMSARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY);
} break; } break;
./ ./
type_specifier_nonarray ::= USAMPLER2DMSARRAY ; type_specifier_nonarray ::= USAMPLER2DMSARRAY ;
/. /.
case $rule_number: { case $rule_number: {
ast(1) = makeBasicType(T_USAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_USAMPLER2DMSARRAY);
} break; } break;
./ ./

View File

@@ -222,8 +222,8 @@ void DeclarationStatementAST::accept0(Visitor *visitor)
visitor->endVisit(this); visitor->endVisit(this);
} }
BasicTypeAST::BasicTypeAST(int _token, const char *_name, Category _category) BasicTypeAST::BasicTypeAST(int _token, const char *_name)
: TypeAST(Kind_BasicType), token(_token), name(_name), categ(_category) : TypeAST(Kind_BasicType), token(_token), name(_name)
{ {
switch (token) { switch (token) {
case GLSLParserTable::T_VOID: case GLSLParserTable::T_VOID:

View File

@@ -668,36 +668,6 @@ public:
Highp Highp
}; };
enum Category
{
Void,
Primitive,
Vector2,
Vector3,
Vector4,
Matrix,
Sampler1D,
Sampler2D,
Sampler3D,
SamplerCube,
Sampler1DShadow,
Sampler2DShadow,
SamplerCubeShadow,
Sampler1DArray,
Sampler2DArray,
SamplerCubeArray,
Sampler1DArrayShadow,
Sampler2DArrayShadow,
SamplerCubeArrayShadow,
Sampler2DRect,
Sampler2DRectShadow,
Sampler2DMS,
Sampler2DMSArray,
SamplerBuffer,
Array,
Struct
};
virtual TypeAST *asType() { return this; } virtual TypeAST *asType() { return this; }
virtual Precision precision() const = 0; virtual Precision precision() const = 0;
@@ -705,15 +675,13 @@ public:
// Set the precision for the innermost basic type. Returns false if it // Set the precision for the innermost basic type. Returns false if it
// is not valid to set a precision (e.g. structs). // is not valid to set a precision (e.g. structs).
virtual bool setPrecision(Precision precision) = 0; virtual bool setPrecision(Precision precision) = 0;
virtual Category category() const = 0;
}; };
class GLSL_EXPORT BasicTypeAST: public TypeAST class GLSL_EXPORT BasicTypeAST: public TypeAST
{ {
public: public:
// Pass the parser's token code: T_VOID, T_VEC4, etc. // Pass the parser's token code: T_VOID, T_VEC4, etc.
BasicTypeAST(int _token, const char *_name, Category _category); BasicTypeAST(int _token, const char *_name);
virtual BasicTypeAST *asBasicType() { return this; } virtual BasicTypeAST *asBasicType() { return this; }
@@ -722,13 +690,10 @@ public:
virtual Precision precision() const; virtual Precision precision() const;
virtual bool setPrecision(Precision precision); virtual bool setPrecision(Precision precision);
virtual Category category() const { return categ; }
public: // attributes public: // attributes
Precision prec; Precision prec;
int token; int token;
const char *name; const char *name;
Category categ;
}; };
class GLSL_EXPORT NamedTypeAST: public TypeAST class GLSL_EXPORT NamedTypeAST: public TypeAST
@@ -743,8 +708,6 @@ public:
virtual Precision precision() const; virtual Precision precision() const;
virtual bool setPrecision(Precision precision); virtual bool setPrecision(Precision precision);
virtual Category category() const { return Struct; }
public: // attributes public: // attributes
const QString *name; const QString *name;
}; };
@@ -764,8 +727,6 @@ public:
virtual Precision precision() const; virtual Precision precision() const;
virtual bool setPrecision(Precision precision); virtual bool setPrecision(Precision precision);
virtual Category category() const { return Array; }
public: // attributes public: // attributes
TypeAST *elementType; TypeAST *elementType;
ExpressionAST *size; ExpressionAST *size;
@@ -810,8 +771,6 @@ public:
// be copied into the "array holes" of all fields. // be copied into the "array holes" of all fields.
static List<Field *> *fixInnerTypes(TypeAST *innerType, List<Field *> *fields); static List<Field *> *fixInnerTypes(TypeAST *innerType, List<Field *> *fields);
virtual Category category() const { return Struct; }
public: // attributes public: // attributes
const QString *name; const QString *name;
List<Field *> *fields; List<Field *> *fields;
@@ -858,7 +817,8 @@ public:
Smooth = 0x00000100, Smooth = 0x00000100,
Flat = 0x00000200, Flat = 0x00000200,
NoPerspective = 0x00000300, NoPerspective = 0x00000300,
Invariant = 0x00010000 Invariant = 0x00010000,
Struct = 0x00020000
}; };
virtual QualifiedTypeAST *asQualifiedType() { return this; } virtual QualifiedTypeAST *asQualifiedType() { return this; }
@@ -868,8 +828,6 @@ public:
virtual Precision precision() const { return type->precision(); } virtual Precision precision() const { return type->precision(); }
virtual bool setPrecision(Precision precision) { return type->setPrecision(precision); } virtual bool setPrecision(Precision precision) { return type->setPrecision(precision); }
virtual Category category() const { return type->category(); }
public: // attributes public: // attributes
int qualifiers; int qualifiers;
TypeAST *type; TypeAST *type;

View File

@@ -1247,511 +1247,511 @@ case 158: {
#line 1801 "./glsl.g" #line 1801 "./glsl.g"
case 159: { case 159: {
ast(1) = makeBasicType(T_VOID, TypeAST::Void); ast(1) = makeBasicType(T_VOID);
} break; } break;
#line 1808 "./glsl.g" #line 1808 "./glsl.g"
case 160: { case 160: {
ast(1) = makeBasicType(T_FLOAT, TypeAST::Primitive); ast(1) = makeBasicType(T_FLOAT);
} break; } break;
#line 1815 "./glsl.g" #line 1815 "./glsl.g"
case 161: { case 161: {
ast(1) = makeBasicType(T_DOUBLE, TypeAST::Primitive); ast(1) = makeBasicType(T_DOUBLE);
} break; } break;
#line 1822 "./glsl.g" #line 1822 "./glsl.g"
case 162: { case 162: {
ast(1) = makeBasicType(T_INT, TypeAST::Primitive); ast(1) = makeBasicType(T_INT);
} break; } break;
#line 1829 "./glsl.g" #line 1829 "./glsl.g"
case 163: { case 163: {
ast(1) = makeBasicType(T_UINT, TypeAST::Primitive); ast(1) = makeBasicType(T_UINT);
} break; } break;
#line 1836 "./glsl.g" #line 1836 "./glsl.g"
case 164: { case 164: {
ast(1) = makeBasicType(T_BOOL, TypeAST::Primitive); ast(1) = makeBasicType(T_BOOL);
} break; } break;
#line 1843 "./glsl.g" #line 1843 "./glsl.g"
case 165: { case 165: {
ast(1) = makeBasicType(T_VEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_VEC2);
} break; } break;
#line 1850 "./glsl.g" #line 1850 "./glsl.g"
case 166: { case 166: {
ast(1) = makeBasicType(T_VEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_VEC3);
} break; } break;
#line 1857 "./glsl.g" #line 1857 "./glsl.g"
case 167: { case 167: {
ast(1) = makeBasicType(T_VEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_VEC4);
} break; } break;
#line 1864 "./glsl.g" #line 1864 "./glsl.g"
case 168: { case 168: {
ast(1) = makeBasicType(T_DVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_DVEC2);
} break; } break;
#line 1871 "./glsl.g" #line 1871 "./glsl.g"
case 169: { case 169: {
ast(1) = makeBasicType(T_DVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_DVEC3);
} break; } break;
#line 1878 "./glsl.g" #line 1878 "./glsl.g"
case 170: { case 170: {
ast(1) = makeBasicType(T_DVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_DVEC4);
} break; } break;
#line 1885 "./glsl.g" #line 1885 "./glsl.g"
case 171: { case 171: {
ast(1) = makeBasicType(T_BVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_BVEC2);
} break; } break;
#line 1892 "./glsl.g" #line 1892 "./glsl.g"
case 172: { case 172: {
ast(1) = makeBasicType(T_BVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_BVEC3);
} break; } break;
#line 1899 "./glsl.g" #line 1899 "./glsl.g"
case 173: { case 173: {
ast(1) = makeBasicType(T_BVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_BVEC4);
} break; } break;
#line 1906 "./glsl.g" #line 1906 "./glsl.g"
case 174: { case 174: {
ast(1) = makeBasicType(T_IVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_IVEC2);
} break; } break;
#line 1913 "./glsl.g" #line 1913 "./glsl.g"
case 175: { case 175: {
ast(1) = makeBasicType(T_IVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_IVEC3);
} break; } break;
#line 1920 "./glsl.g" #line 1920 "./glsl.g"
case 176: { case 176: {
ast(1) = makeBasicType(T_IVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_IVEC4);
} break; } break;
#line 1927 "./glsl.g" #line 1927 "./glsl.g"
case 177: { case 177: {
ast(1) = makeBasicType(T_UVEC2, TypeAST::Vector2); ast(1) = makeBasicType(T_UVEC2);
} break; } break;
#line 1934 "./glsl.g" #line 1934 "./glsl.g"
case 178: { case 178: {
ast(1) = makeBasicType(T_UVEC3, TypeAST::Vector3); ast(1) = makeBasicType(T_UVEC3);
} break; } break;
#line 1941 "./glsl.g" #line 1941 "./glsl.g"
case 179: { case 179: {
ast(1) = makeBasicType(T_UVEC4, TypeAST::Vector4); ast(1) = makeBasicType(T_UVEC4);
} break; } break;
#line 1948 "./glsl.g" #line 1948 "./glsl.g"
case 180: { case 180: {
ast(1) = makeBasicType(T_MAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2);
} break; } break;
#line 1955 "./glsl.g" #line 1955 "./glsl.g"
case 181: { case 181: {
ast(1) = makeBasicType(T_MAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3);
} break; } break;
#line 1962 "./glsl.g" #line 1962 "./glsl.g"
case 182: { case 182: {
ast(1) = makeBasicType(T_MAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4);
} break; } break;
#line 1969 "./glsl.g" #line 1969 "./glsl.g"
case 183: { case 183: {
ast(1) = makeBasicType(T_MAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2);
} break; } break;
#line 1976 "./glsl.g" #line 1976 "./glsl.g"
case 184: { case 184: {
ast(1) = makeBasicType(T_MAT2X3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2X3);
} break; } break;
#line 1983 "./glsl.g" #line 1983 "./glsl.g"
case 185: { case 185: {
ast(1) = makeBasicType(T_MAT2X4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT2X4);
} break; } break;
#line 1990 "./glsl.g" #line 1990 "./glsl.g"
case 186: { case 186: {
ast(1) = makeBasicType(T_MAT3X2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3X2);
} break; } break;
#line 1997 "./glsl.g" #line 1997 "./glsl.g"
case 187: { case 187: {
ast(1) = makeBasicType(T_MAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3);
} break; } break;
#line 2004 "./glsl.g" #line 2004 "./glsl.g"
case 188: { case 188: {
ast(1) = makeBasicType(T_MAT3X4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT3X4);
} break; } break;
#line 2011 "./glsl.g" #line 2011 "./glsl.g"
case 189: { case 189: {
ast(1) = makeBasicType(T_MAT4X2, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4X2);
} break; } break;
#line 2018 "./glsl.g" #line 2018 "./glsl.g"
case 190: { case 190: {
ast(1) = makeBasicType(T_MAT4X3, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4X3);
} break; } break;
#line 2025 "./glsl.g" #line 2025 "./glsl.g"
case 191: { case 191: {
ast(1) = makeBasicType(T_MAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_MAT4);
} break; } break;
#line 2032 "./glsl.g" #line 2032 "./glsl.g"
case 192: { case 192: {
ast(1) = makeBasicType(T_DMAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2);
} break; } break;
#line 2039 "./glsl.g" #line 2039 "./glsl.g"
case 193: { case 193: {
ast(1) = makeBasicType(T_DMAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3);
} break; } break;
#line 2046 "./glsl.g" #line 2046 "./glsl.g"
case 194: { case 194: {
ast(1) = makeBasicType(T_DMAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4);
} break; } break;
#line 2053 "./glsl.g" #line 2053 "./glsl.g"
case 195: { case 195: {
ast(1) = makeBasicType(T_DMAT2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2);
} break; } break;
#line 2060 "./glsl.g" #line 2060 "./glsl.g"
case 196: { case 196: {
ast(1) = makeBasicType(T_DMAT2X3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2X3);
} break; } break;
#line 2067 "./glsl.g" #line 2067 "./glsl.g"
case 197: { case 197: {
ast(1) = makeBasicType(T_DMAT2X4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT2X4);
} break; } break;
#line 2074 "./glsl.g" #line 2074 "./glsl.g"
case 198: { case 198: {
ast(1) = makeBasicType(T_DMAT3X2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3X2);
} break; } break;
#line 2081 "./glsl.g" #line 2081 "./glsl.g"
case 199: { case 199: {
ast(1) = makeBasicType(T_DMAT3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3);
} break; } break;
#line 2088 "./glsl.g" #line 2088 "./glsl.g"
case 200: { case 200: {
ast(1) = makeBasicType(T_DMAT3X4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT3X4);
} break; } break;
#line 2095 "./glsl.g" #line 2095 "./glsl.g"
case 201: { case 201: {
ast(1) = makeBasicType(T_DMAT4X2, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4X2);
} break; } break;
#line 2102 "./glsl.g" #line 2102 "./glsl.g"
case 202: { case 202: {
ast(1) = makeBasicType(T_DMAT4X3, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4X3);
} break; } break;
#line 2109 "./glsl.g" #line 2109 "./glsl.g"
case 203: { case 203: {
ast(1) = makeBasicType(T_DMAT4, TypeAST::Matrix); ast(1) = makeBasicType(T_DMAT4);
} break; } break;
#line 2116 "./glsl.g" #line 2116 "./glsl.g"
case 204: { case 204: {
ast(1) = makeBasicType(T_SAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_SAMPLER1D);
} break; } break;
#line 2123 "./glsl.g" #line 2123 "./glsl.g"
case 205: { case 205: {
ast(1) = makeBasicType(T_SAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_SAMPLER2D);
} break; } break;
#line 2130 "./glsl.g" #line 2130 "./glsl.g"
case 206: { case 206: {
ast(1) = makeBasicType(T_SAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_SAMPLER3D);
} break; } break;
#line 2137 "./glsl.g" #line 2137 "./glsl.g"
case 207: { case 207: {
ast(1) = makeBasicType(T_SAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_SAMPLERCUBE);
} break; } break;
#line 2144 "./glsl.g" #line 2144 "./glsl.g"
case 208: { case 208: {
ast(1) = makeBasicType(T_SAMPLER1DSHADOW, TypeAST::Sampler1DShadow); ast(1) = makeBasicType(T_SAMPLER1DSHADOW);
} break; } break;
#line 2151 "./glsl.g" #line 2151 "./glsl.g"
case 209: { case 209: {
ast(1) = makeBasicType(T_SAMPLER2DSHADOW, TypeAST::Sampler2DShadow); ast(1) = makeBasicType(T_SAMPLER2DSHADOW);
} break; } break;
#line 2158 "./glsl.g" #line 2158 "./glsl.g"
case 210: { case 210: {
ast(1) = makeBasicType(T_SAMPLERCUBESHADOW, TypeAST::SamplerCubeShadow); ast(1) = makeBasicType(T_SAMPLERCUBESHADOW);
} break; } break;
#line 2165 "./glsl.g" #line 2165 "./glsl.g"
case 211: { case 211: {
ast(1) = makeBasicType(T_SAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_SAMPLER1DARRAY);
} break; } break;
#line 2172 "./glsl.g" #line 2172 "./glsl.g"
case 212: { case 212: {
ast(1) = makeBasicType(T_SAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_SAMPLER2DARRAY);
} break; } break;
#line 2179 "./glsl.g" #line 2179 "./glsl.g"
case 213: { case 213: {
ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW, TypeAST::Sampler1DArrayShadow); ast(1) = makeBasicType(T_SAMPLER1DARRAYSHADOW);
} break; } break;
#line 2186 "./glsl.g" #line 2186 "./glsl.g"
case 214: { case 214: {
ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW, TypeAST::Sampler2DArrayShadow); ast(1) = makeBasicType(T_SAMPLER2DARRAYSHADOW);
} break; } break;
#line 2193 "./glsl.g" #line 2193 "./glsl.g"
case 215: { case 215: {
ast(1) = makeBasicType(T_SAMPLERCUBEARRAY, TypeAST::SamplerCubeShadow); ast(1) = makeBasicType(T_SAMPLERCUBEARRAY);
} break; } break;
#line 2200 "./glsl.g" #line 2200 "./glsl.g"
case 216: { case 216: {
ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW, TypeAST::SamplerCubeArrayShadow); ast(1) = makeBasicType(T_SAMPLERCUBEARRAYSHADOW);
} break; } break;
#line 2207 "./glsl.g" #line 2207 "./glsl.g"
case 217: { case 217: {
ast(1) = makeBasicType(T_ISAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_ISAMPLER1D);
} break; } break;
#line 2214 "./glsl.g" #line 2214 "./glsl.g"
case 218: { case 218: {
ast(1) = makeBasicType(T_ISAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_ISAMPLER2D);
} break; } break;
#line 2221 "./glsl.g" #line 2221 "./glsl.g"
case 219: { case 219: {
ast(1) = makeBasicType(T_ISAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_ISAMPLER3D);
} break; } break;
#line 2228 "./glsl.g" #line 2228 "./glsl.g"
case 220: { case 220: {
ast(1) = makeBasicType(T_ISAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_ISAMPLERCUBE);
} break; } break;
#line 2235 "./glsl.g" #line 2235 "./glsl.g"
case 221: { case 221: {
ast(1) = makeBasicType(T_ISAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_ISAMPLER1DARRAY);
} break; } break;
#line 2242 "./glsl.g" #line 2242 "./glsl.g"
case 222: { case 222: {
ast(1) = makeBasicType(T_ISAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_ISAMPLER2DARRAY);
} break; } break;
#line 2249 "./glsl.g" #line 2249 "./glsl.g"
case 223: { case 223: {
ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY, TypeAST::SamplerCubeArray); ast(1) = makeBasicType(T_ISAMPLERCUBEARRAY);
} break; } break;
#line 2256 "./glsl.g" #line 2256 "./glsl.g"
case 224: { case 224: {
ast(1) = makeBasicType(T_USAMPLER1D, TypeAST::Sampler1D); ast(1) = makeBasicType(T_USAMPLER1D);
} break; } break;
#line 2263 "./glsl.g" #line 2263 "./glsl.g"
case 225: { case 225: {
ast(1) = makeBasicType(T_USAMPLER2D, TypeAST::Sampler2D); ast(1) = makeBasicType(T_USAMPLER2D);
} break; } break;
#line 2270 "./glsl.g" #line 2270 "./glsl.g"
case 226: { case 226: {
ast(1) = makeBasicType(T_USAMPLER3D, TypeAST::Sampler3D); ast(1) = makeBasicType(T_USAMPLER3D);
} break; } break;
#line 2277 "./glsl.g" #line 2277 "./glsl.g"
case 227: { case 227: {
ast(1) = makeBasicType(T_USAMPLERCUBE, TypeAST::SamplerCube); ast(1) = makeBasicType(T_USAMPLERCUBE);
} break; } break;
#line 2284 "./glsl.g" #line 2284 "./glsl.g"
case 228: { case 228: {
ast(1) = makeBasicType(T_USAMPLER1DARRAY, TypeAST::Sampler1DArray); ast(1) = makeBasicType(T_USAMPLER1DARRAY);
} break; } break;
#line 2291 "./glsl.g" #line 2291 "./glsl.g"
case 229: { case 229: {
ast(1) = makeBasicType(T_USAMPLER2DARRAY, TypeAST::Sampler2DArray); ast(1) = makeBasicType(T_USAMPLER2DARRAY);
} break; } break;
#line 2298 "./glsl.g" #line 2298 "./glsl.g"
case 230: { case 230: {
ast(1) = makeBasicType(T_USAMPLERCUBEARRAY, TypeAST::SamplerCubeArray); ast(1) = makeBasicType(T_USAMPLERCUBEARRAY);
} break; } break;
#line 2305 "./glsl.g" #line 2305 "./glsl.g"
case 231: { case 231: {
ast(1) = makeBasicType(T_SAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_SAMPLER2DRECT);
} break; } break;
#line 2312 "./glsl.g" #line 2312 "./glsl.g"
case 232: { case 232: {
ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW, TypeAST::Sampler2DRectShadow); ast(1) = makeBasicType(T_SAMPLER2DRECTSHADOW);
} break; } break;
#line 2319 "./glsl.g" #line 2319 "./glsl.g"
case 233: { case 233: {
ast(1) = makeBasicType(T_ISAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_ISAMPLER2DRECT);
} break; } break;
#line 2326 "./glsl.g" #line 2326 "./glsl.g"
case 234: { case 234: {
ast(1) = makeBasicType(T_USAMPLER2DRECT, TypeAST::Sampler2DRect); ast(1) = makeBasicType(T_USAMPLER2DRECT);
} break; } break;
#line 2333 "./glsl.g" #line 2333 "./glsl.g"
case 235: { case 235: {
ast(1) = makeBasicType(T_SAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_SAMPLERBUFFER);
} break; } break;
#line 2340 "./glsl.g" #line 2340 "./glsl.g"
case 236: { case 236: {
ast(1) = makeBasicType(T_ISAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_ISAMPLERBUFFER);
} break; } break;
#line 2347 "./glsl.g" #line 2347 "./glsl.g"
case 237: { case 237: {
ast(1) = makeBasicType(T_USAMPLERBUFFER, TypeAST::SamplerBuffer); ast(1) = makeBasicType(T_USAMPLERBUFFER);
} break; } break;
#line 2354 "./glsl.g" #line 2354 "./glsl.g"
case 238: { case 238: {
ast(1) = makeBasicType(T_SAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_SAMPLER2DMS);
} break; } break;
#line 2361 "./glsl.g" #line 2361 "./glsl.g"
case 239: { case 239: {
ast(1) = makeBasicType(T_ISAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_ISAMPLER2DMS);
} break; } break;
#line 2368 "./glsl.g" #line 2368 "./glsl.g"
case 240: { case 240: {
ast(1) = makeBasicType(T_USAMPLER2DMS, TypeAST::Sampler2DMS); ast(1) = makeBasicType(T_USAMPLER2DMS);
} break; } break;
#line 2375 "./glsl.g" #line 2375 "./glsl.g"
case 241: { case 241: {
ast(1) = makeBasicType(T_SAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_SAMPLER2DMSARRAY);
} break; } break;
#line 2382 "./glsl.g" #line 2382 "./glsl.g"
case 242: { case 242: {
ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_ISAMPLER2DMSARRAY);
} break; } break;
#line 2389 "./glsl.g" #line 2389 "./glsl.g"
case 243: { case 243: {
ast(1) = makeBasicType(T_USAMPLER2DMSARRAY, TypeAST::Sampler2DMSArray); ast(1) = makeBasicType(T_USAMPLER2DMSARRAY);
} break; } break;
#line 2396 "./glsl.g" #line 2396 "./glsl.g"

View File

@@ -157,9 +157,9 @@ private:
return node; return node;
} }
TypeAST *makeBasicType(int token, BasicTypeAST::Category category) TypeAST *makeBasicType(int token)
{ {
TypeAST *type = new (_engine->pool()) BasicTypeAST(token, spell[token], category); TypeAST *type = new (_engine->pool()) BasicTypeAST(token, spell[token]);
type->lineno = yyloc >= 0 ? (_tokens[yyloc].line + 1) : 0; type->lineno = yyloc >= 0 ? (_tokens[yyloc].line + 1) : 0;
return type; return type;
} }