Change TType member from "type" to "basicType". It was very confusing.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21094 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-04-10 02:28:55 +00:00
parent f6648dc12c
commit ed3197921e
4 changed files with 160 additions and 160 deletions

View File

@ -288,7 +288,7 @@ public:
class TPublicType { class TPublicType {
public: public:
TBasicType type; TBasicType basicType;
TSampler sampler; TSampler sampler;
TQualifier qualifier; TQualifier qualifier;
int vectorSize : 4; int vectorSize : 4;
@ -300,7 +300,7 @@ public:
void initType(int ln = 0) void initType(int ln = 0)
{ {
type = EbtVoid; basicType = EbtVoid;
vectorSize = 1; vectorSize = 1;
matrixRows = 0; matrixRows = 0;
matrixCols = 0; matrixCols = 0;
@ -352,7 +352,7 @@ class TType {
public: public:
POOL_ALLOCATOR_NEW_DELETE(GlobalPoolAllocator) POOL_ALLOCATOR_NEW_DELETE(GlobalPoolAllocator)
TType(TBasicType t, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0) : TType(TBasicType t, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0) :
type(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0), basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0),
structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0),
fieldName(0), mangled(0), typeName(0) fieldName(0), mangled(0), typeName(0)
{ {
@ -361,7 +361,7 @@ public:
qualifier.storage = q; qualifier.storage = q;
} }
TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0) : TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0) :
type(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0), basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0),
structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0),
fieldName(0), mangled(0), typeName(0) fieldName(0), mangled(0), typeName(0)
{ {
@ -372,7 +372,7 @@ public:
assert(p >= 0 && p <= EpqHigh); assert(p >= 0 && p <= EpqHigh);
} }
explicit TType(const TPublicType &p) : explicit TType(const TPublicType &p) :
type(p.type), vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), arraySizes(p.arraySizes), basicType(p.basicType), vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), arraySizes(p.arraySizes),
structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0), typeName(0) structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0), typeName(0)
{ {
sampler = p.sampler; sampler = p.sampler;
@ -383,7 +383,7 @@ public:
} }
} }
TType(TTypeList* userDef, const TString& n, TStorageQualifier blockQualifier = EvqGlobal) : TType(TTypeList* userDef, const TString& n, TStorageQualifier blockQualifier = EvqGlobal) :
type(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), arraySizes(0), basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), arraySizes(0),
structure(userDef), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0) structure(userDef), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0)
{ {
sampler.clear(); sampler.clear();
@ -391,7 +391,7 @@ public:
// is it an interface block? // is it an interface block?
if (blockQualifier != EvqGlobal) { if (blockQualifier != EvqGlobal) {
qualifier.storage = blockQualifier; qualifier.storage = blockQualifier;
type = EbtBlock; basicType = EbtBlock;
} }
typeName = NewPoolTString(n.c_str()); typeName = NewPoolTString(n.c_str());
} }
@ -402,7 +402,7 @@ public:
void copyType(const TType& copyOf, const TStructureMap& remapper) void copyType(const TType& copyOf, const TStructureMap& remapper)
{ {
type = copyOf.type; basicType = copyOf.basicType;
sampler = copyOf.sampler; sampler = copyOf.sampler;
qualifier = copyOf.qualifier; qualifier = copyOf.qualifier;
vectorSize = copyOf.vectorSize; vectorSize = copyOf.vectorSize;
@ -472,7 +472,7 @@ public:
virtual void setElementType(TBasicType t, int s, int mc, int mr, const TType* userDef) virtual void setElementType(TBasicType t, int s, int mc, int mr, const TType* userDef)
{ {
type = t; basicType = t;
vectorSize = s; vectorSize = s;
matrixCols = mc; matrixCols = mc;
matrixRows = mr; matrixRows = mr;
@ -494,7 +494,7 @@ public:
return *fieldName; return *fieldName;
} }
virtual TBasicType getBasicType() const { return type; } virtual TBasicType getBasicType() const { return basicType; }
virtual const TSampler& getSampler() const { return sampler; } virtual const TSampler& getSampler() const { return sampler; }
virtual TQualifier& getQualifier() { return qualifier; } virtual TQualifier& getQualifier() { return qualifier; }
virtual const TQualifier& getQualifier() const { return qualifier; } virtual const TQualifier& getQualifier() const { return qualifier; }
@ -519,7 +519,7 @@ public:
TType* getArrayInformationType() { return arrayInformationType; } TType* getArrayInformationType() { return arrayInformationType; }
virtual bool isVector() const { return vectorSize > 1; } virtual bool isVector() const { return vectorSize > 1; }
const char* getBasicString() const { const char* getBasicString() const {
return TType::getBasicString(type); return TType::getBasicString(basicType);
} }
static const char* getBasicString(TBasicType t) { static const char* getBasicString(TBasicType t) {
switch (t) { switch (t) {
@ -604,7 +604,7 @@ public:
TString getCompleteTypeString() const TString getCompleteTypeString() const
{ {
if (type == EbtSampler) if (basicType == EbtSampler)
return sampler.getString(); return sampler.getString();
else else
return getBasicString(); return getBasicString();
@ -645,7 +645,7 @@ public:
bool sameElementType(const TType& right) const bool sameElementType(const TType& right) const
{ {
return type == right.type && return basicType == right.basicType &&
sampler == right.sampler && sampler == right.sampler &&
vectorSize == right.vectorSize && vectorSize == right.vectorSize &&
matrixCols == right.matrixCols && matrixCols == right.matrixCols &&
@ -670,7 +670,7 @@ protected:
void buildMangledName(TString&); void buildMangledName(TString&);
int getStructSize() const; int getStructSize() const;
TBasicType type : 8; TBasicType basicType : 8;
int vectorSize : 4; int vectorSize : 4;
int matrixCols : 4; int matrixCols : 4;
int matrixRows : 4; int matrixRows : 4;

View File

@ -577,7 +577,7 @@ bool TParseContext::constructorErrorCheck(int line, TIntermNode* node, TFunction
// //
bool TParseContext::voidErrorCheck(int line, const TString& identifier, const TPublicType& pubType) bool TParseContext::voidErrorCheck(int line, const TString& identifier, const TPublicType& pubType)
{ {
if (pubType.type == EbtVoid) { if (pubType.basicType == EbtVoid) {
error(line, "illegal use of type 'void'", identifier.c_str(), ""); error(line, "illegal use of type 'void'", identifier.c_str(), "");
return true; return true;
} }
@ -605,7 +605,7 @@ bool TParseContext::boolErrorCheck(int line, const TIntermTyped* type)
// //
bool TParseContext::boolErrorCheck(int line, const TPublicType& pType) bool TParseContext::boolErrorCheck(int line, const TPublicType& pType)
{ {
if (pType.type != EbtBool || pType.arraySizes || pType.matrixCols > 1 || (pType.vectorSize > 1)) { if (pType.basicType != EbtBool || pType.arraySizes || pType.matrixCols > 1 || (pType.vectorSize > 1)) {
error(line, "boolean expression expected", "", ""); error(line, "boolean expression expected", "", "");
return true; return true;
} }
@ -615,16 +615,16 @@ bool TParseContext::boolErrorCheck(int line, const TPublicType& pType)
bool TParseContext::samplerErrorCheck(int line, const TPublicType& pType, const char* reason) bool TParseContext::samplerErrorCheck(int line, const TPublicType& pType, const char* reason)
{ {
if (pType.type == EbtStruct) { if (pType.basicType == EbtStruct) {
if (containsSampler(*pType.userDef)) { if (containsSampler(*pType.userDef)) {
error(line, reason, TType::getBasicString(pType.type), "(structure cannot contain a sampler or image)"); error(line, reason, TType::getBasicString(pType.basicType), "(structure cannot contain a sampler or image)");
return true; return true;
} }
return false; return false;
} else if (pType.type == EbtSampler) { } else if (pType.basicType == EbtSampler) {
error(line, reason, TType::getBasicString(pType.type), ""); error(line, reason, TType::getBasicString(pType.basicType), "");
return true; return true;
} }
@ -672,13 +672,13 @@ bool TParseContext::globalQualifierFixAndErrorCheck(int line, TQualifier& qualif
// now, knowing it is a shader in/out, do all the in/out semantic checks // now, knowing it is a shader in/out, do all the in/out semantic checks
if (publicType.type == EbtBool) { if (publicType.basicType == EbtBool) {
error(line, "cannot be bool", getStorageQualifierString(qualifier.storage), ""); error(line, "cannot be bool", getStorageQualifierString(qualifier.storage), "");
return true; return true;
} }
if (language == EShLangVertex && qualifier.storage == EvqVaryingIn) { if (language == EShLangVertex && qualifier.storage == EvqVaryingIn) {
if (publicType.type == EbtStruct) { if (publicType.basicType == EbtStruct) {
error(line, "cannot be a structure or array", getStorageQualifierString(qualifier.storage), ""); error(line, "cannot be a structure or array", getStorageQualifierString(qualifier.storage), "");
return true; return true;
} }
@ -690,17 +690,17 @@ bool TParseContext::globalQualifierFixAndErrorCheck(int line, TQualifier& qualif
if (language == EShLangFragment && qualifier.storage == EvqVaryingOut) { if (language == EShLangFragment && qualifier.storage == EvqVaryingOut) {
profileRequires(line, EEsProfile, 300, 0, "fragment shader output"); profileRequires(line, EEsProfile, 300, 0, "fragment shader output");
if (publicType.type == EbtStruct) { if (publicType.basicType == EbtStruct) {
error(line, "cannot be a structure", getStorageQualifierString(qualifier.storage), ""); error(line, "cannot be a structure", getStorageQualifierString(qualifier.storage), "");
return true; return true;
} }
} }
if (publicType.type == EbtInt || publicType.type == EbtUint || publicType.type == EbtDouble) { if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || publicType.basicType == EbtDouble) {
profileRequires(line, EEsProfile, 300, 0, "shader input/output"); profileRequires(line, EEsProfile, 300, 0, "shader input/output");
if (language != EShLangVertex && qualifier.storage == EvqVaryingIn && ! qualifier.flat || if (language != EShLangVertex && qualifier.storage == EvqVaryingIn && ! qualifier.flat ||
language != EShLangFragment && qualifier.storage == EvqVaryingOut && ! qualifier.flat) { language != EShLangFragment && qualifier.storage == EvqVaryingOut && ! qualifier.flat) {
error(line, "must be qualified as 'flat'", getStorageQualifierString(qualifier.storage), TType::getBasicString(publicType.type)); error(line, "must be qualified as 'flat'", getStorageQualifierString(qualifier.storage), TType::getBasicString(publicType.basicType));
return true; return true;
} }
@ -776,7 +776,7 @@ bool TParseContext::mergeQualifiersErrorCheck(int line, TPublicType& dst, const
void TParseContext::setDefaultPrecision(int line, TPublicType& publicType, TPrecisionQualifier qualifier) void TParseContext::setDefaultPrecision(int line, TPublicType& publicType, TPrecisionQualifier qualifier)
{ {
TBasicType basicType = publicType.type; TBasicType basicType = publicType.basicType;
if (basicType == EbtSampler || basicType == EbtInt || basicType == EbtFloat) { if (basicType == EbtSampler || basicType == EbtInt || basicType == EbtFloat) {
if (publicType.isScalar()) { if (publicType.isScalar()) {
@ -1478,7 +1478,7 @@ void TParseContext::addBlock(int line, TPublicType& qualifier, const TString& bl
return; return;
} }
if (qualifier.type != EbtVoid) { if (qualifier.basicType != EbtVoid) {
error(line, "interface blocks cannot be declared with a type", blockName.c_str(), ""); error(line, "interface blocks cannot be declared with a type", blockName.c_str(), "");
recover(); recover();

View File

@ -55,7 +55,7 @@ void TType::buildMangledName(TString& mangledName)
else if (isVector()) else if (isVector())
mangledName += 'v'; mangledName += 'v';
switch (type) { switch (basicType) {
case EbtFloat: mangledName += 'f'; break; case EbtFloat: mangledName += 'f'; break;
case EbtDouble: mangledName += 'd'; break; case EbtDouble: mangledName += 'd'; break;
case EbtInt: mangledName += 'i'; break; case EbtInt: mangledName += 'i'; break;

View File

@ -652,7 +652,7 @@ function_identifier
$$.function = function; $$.function = function;
} else { } else {
TOperator op = EOpNull; TOperator op = EOpNull;
switch ($1.type) { switch ($1.basicType) {
case EbtFloat: case EbtFloat:
if ($1.matrixCols) { if ($1.matrixCols) {
switch ($1.matrixCols) { switch ($1.matrixCols) {
@ -760,9 +760,9 @@ function_identifier
default: break; // some compilers want this default: break; // some compilers want this
} }
if (op == EOpNull) { if (op == EOpNull) {
parseContext.error($1.line, "cannot construct this type", TType::getBasicString($1.type), ""); parseContext.error($1.line, "cannot construct this type", TType::getBasicString($1.basicType), "");
parseContext.recover(); parseContext.recover();
$1.type = EbtFloat; $1.basicType = EbtFloat;
op = EOpConstructFloat; op = EOpConstructFloat;
} }
TString tempString = ""; TString tempString = "";
@ -1318,7 +1318,7 @@ parameter_declarator
parseContext.profileRequires($1.line, ENoProfile, 120, "GL_3DL_array_objects", "arrayed type"); parseContext.profileRequires($1.line, ENoProfile, 120, "GL_3DL_array_objects", "arrayed type");
parseContext.profileRequires($1.line, EEsProfile, 300, 0, "arrayed type"); parseContext.profileRequires($1.line, EEsProfile, 300, 0, "arrayed type");
} }
if ($1.type == EbtVoid) { if ($1.basicType == EbtVoid) {
parseContext.error($2.line, "illegal use of type 'void'", $2.string->c_str(), ""); parseContext.error($2.line, "illegal use of type 'void'", $2.string->c_str(), "");
parseContext.recover(); parseContext.recover();
} }
@ -1662,8 +1662,8 @@ type_qualifier
} }
| type_qualifier single_type_qualifier { | type_qualifier single_type_qualifier {
$$ = $1; $$ = $1;
if ($$.type == EbtVoid) if ($$.basicType == EbtVoid)
$$.type = $2.type; $$.basicType = $2.basicType;
if (parseContext.mergeQualifiersErrorCheck($$.line, $$, $2, false)) if (parseContext.mergeQualifiersErrorCheck($$.line, $$, $2, false))
parseContext.recover(); parseContext.recover();
@ -1830,11 +1830,11 @@ type_name_list
type_specifier type_specifier
: type_specifier_nonarray { : type_specifier_nonarray {
$$ = $1; $$ = $1;
$$.qualifier.precision = parseContext.defaultPrecision[$$.type]; $$.qualifier.precision = parseContext.defaultPrecision[$$.basicType];
} }
| type_specifier_nonarray array_specifier { | type_specifier_nonarray array_specifier {
$$ = $1; $$ = $1;
$$.qualifier.precision = parseContext.defaultPrecision[$$.type]; $$.qualifier.precision = parseContext.defaultPrecision[$$.basicType];
$$.arraySizes = $2.arraySizes; $$.arraySizes = $2.arraySizes;
} }
; ;
@ -1871,619 +1871,619 @@ array_specifier
type_specifier_nonarray type_specifier_nonarray
: VOID { : VOID {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtVoid; $$.basicType = EbtVoid;
} }
| FLOAT { | FLOAT {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
} }
| DOUBLE { | DOUBLE {
parseContext.doubleCheck($1.line, "double"); parseContext.doubleCheck($1.line, "double");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
} }
| INT { | INT {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtInt; $$.basicType = EbtInt;
} }
| UINT { | UINT {
parseContext.fullIntegerCheck($1.line, "unsigned integer"); parseContext.fullIntegerCheck($1.line, "unsigned integer");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtUint; $$.basicType = EbtUint;
} }
| BOOL { | BOOL {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtBool; $$.basicType = EbtBool;
} }
| VEC2 { | VEC2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setVector(2); $$.setVector(2);
} }
| VEC3 { | VEC3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setVector(3); $$.setVector(3);
} }
| VEC4 { | VEC4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setVector(4); $$.setVector(4);
} }
| DVEC2 { | DVEC2 {
parseContext.doubleCheck($1.line, "double vector"); parseContext.doubleCheck($1.line, "double vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setVector(2); $$.setVector(2);
} }
| DVEC3 { | DVEC3 {
parseContext.doubleCheck($1.line, "double vector"); parseContext.doubleCheck($1.line, "double vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setVector(3); $$.setVector(3);
} }
| DVEC4 { | DVEC4 {
parseContext.doubleCheck($1.line, "double vector"); parseContext.doubleCheck($1.line, "double vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setVector(4); $$.setVector(4);
} }
| BVEC2 { | BVEC2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtBool; $$.basicType = EbtBool;
$$.setVector(2); $$.setVector(2);
} }
| BVEC3 { | BVEC3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtBool; $$.basicType = EbtBool;
$$.setVector(3); $$.setVector(3);
} }
| BVEC4 { | BVEC4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtBool; $$.basicType = EbtBool;
$$.setVector(4); $$.setVector(4);
} }
| IVEC2 { | IVEC2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtInt; $$.basicType = EbtInt;
$$.setVector(2); $$.setVector(2);
} }
| IVEC3 { | IVEC3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtInt; $$.basicType = EbtInt;
$$.setVector(3); $$.setVector(3);
} }
| IVEC4 { | IVEC4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtInt; $$.basicType = EbtInt;
$$.setVector(4); $$.setVector(4);
} }
| UVEC2 { | UVEC2 {
parseContext.fullIntegerCheck($1.line, "unsigned integer vector"); parseContext.fullIntegerCheck($1.line, "unsigned integer vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtUint; $$.basicType = EbtUint;
$$.setVector(2); $$.setVector(2);
} }
| UVEC3 { | UVEC3 {
parseContext.fullIntegerCheck($1.line, "unsigned integer vector"); parseContext.fullIntegerCheck($1.line, "unsigned integer vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtUint; $$.basicType = EbtUint;
$$.setVector(3); $$.setVector(3);
} }
| UVEC4 { | UVEC4 {
parseContext.fullIntegerCheck($1.line, "unsigned integer vector"); parseContext.fullIntegerCheck($1.line, "unsigned integer vector");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtUint; $$.basicType = EbtUint;
$$.setVector(4); $$.setVector(4);
} }
| MAT2 { | MAT2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(2, 2); $$.setMatrix(2, 2);
} }
| MAT3 { | MAT3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(3, 3); $$.setMatrix(3, 3);
} }
| MAT4 { | MAT4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(4, 4); $$.setMatrix(4, 4);
} }
| MAT2X2 { | MAT2X2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(2, 2); $$.setMatrix(2, 2);
} }
| MAT2X3 { | MAT2X3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(2, 3); $$.setMatrix(2, 3);
} }
| MAT2X4 { | MAT2X4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(2, 4); $$.setMatrix(2, 4);
} }
| MAT3X2 { | MAT3X2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(3, 2); $$.setMatrix(3, 2);
} }
| MAT3X3 { | MAT3X3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(3, 3); $$.setMatrix(3, 3);
} }
| MAT3X4 { | MAT3X4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(3, 4); $$.setMatrix(3, 4);
} }
| MAT4X2 { | MAT4X2 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(4, 2); $$.setMatrix(4, 2);
} }
| MAT4X3 { | MAT4X3 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(4, 3); $$.setMatrix(4, 3);
} }
| MAT4X4 { | MAT4X4 {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtFloat; $$.basicType = EbtFloat;
$$.setMatrix(4, 4); $$.setMatrix(4, 4);
} }
| DMAT2 { | DMAT2 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(2, 2); $$.setMatrix(2, 2);
} }
| DMAT3 { | DMAT3 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(3, 3); $$.setMatrix(3, 3);
} }
| DMAT4 { | DMAT4 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(4, 4); $$.setMatrix(4, 4);
} }
| DMAT2X2 { | DMAT2X2 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(2, 2); $$.setMatrix(2, 2);
} }
| DMAT2X3 { | DMAT2X3 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(2, 3); $$.setMatrix(2, 3);
} }
| DMAT2X4 { | DMAT2X4 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(2, 4); $$.setMatrix(2, 4);
} }
| DMAT3X2 { | DMAT3X2 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(3, 2); $$.setMatrix(3, 2);
} }
| DMAT3X3 { | DMAT3X3 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(3, 3); $$.setMatrix(3, 3);
} }
| DMAT3X4 { | DMAT3X4 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(3, 4); $$.setMatrix(3, 4);
} }
| DMAT4X2 { | DMAT4X2 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(4, 2); $$.setMatrix(4, 2);
} }
| DMAT4X3 { | DMAT4X3 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(4, 3); $$.setMatrix(4, 3);
} }
| DMAT4X4 { | DMAT4X4 {
parseContext.doubleCheck($1.line, "double matrix"); parseContext.doubleCheck($1.line, "double matrix");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtDouble; $$.basicType = EbtDouble;
$$.setMatrix(4, 4); $$.setMatrix(4, 4);
} }
| ATOMIC_UINT { | ATOMIC_UINT {
// TODO: add type // TODO: add type
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtInt; $$.basicType = EbtInt;
} }
| SAMPLER1D { | SAMPLER1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D); $$.sampler.set(EbtFloat, Esd1D);
} }
| SAMPLER2D { | SAMPLER2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D); $$.sampler.set(EbtFloat, Esd2D);
} }
| SAMPLER3D { | SAMPLER3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd3D); $$.sampler.set(EbtFloat, Esd3D);
} }
| SAMPLERCUBE { | SAMPLERCUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube); $$.sampler.set(EbtFloat, EsdCube);
} }
| SAMPLER1DSHADOW { | SAMPLER1DSHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, false, true); $$.sampler.set(EbtFloat, Esd1D, false, true);
} }
| SAMPLER2DSHADOW { | SAMPLER2DSHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, false, true); $$.sampler.set(EbtFloat, Esd2D, false, true);
} }
| SAMPLERCUBESHADOW { | SAMPLERCUBESHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, false, true); $$.sampler.set(EbtFloat, EsdCube, false, true);
} }
| SAMPLER1DARRAY { | SAMPLER1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true); $$.sampler.set(EbtFloat, Esd1D, true);
} }
| SAMPLER2DARRAY { | SAMPLER2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, true); $$.sampler.set(EbtFloat, Esd2D, true);
} }
| SAMPLER1DARRAYSHADOW { | SAMPLER1DARRAYSHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd1D, true, true); $$.sampler.set(EbtFloat, Esd1D, true, true);
} }
| SAMPLER2DARRAYSHADOW { | SAMPLER2DARRAYSHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, true, true); $$.sampler.set(EbtFloat, Esd2D, true, true);
} }
| SAMPLERCUBEARRAY { | SAMPLERCUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, true); $$.sampler.set(EbtFloat, EsdCube, true);
} }
| SAMPLERCUBEARRAYSHADOW { | SAMPLERCUBEARRAYSHADOW {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdCube, true, true); $$.sampler.set(EbtFloat, EsdCube, true, true);
} }
| ISAMPLER1D { | ISAMPLER1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd1D); $$.sampler.set(EbtInt, Esd1D);
} }
| ISAMPLER2D { | ISAMPLER2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd2D); $$.sampler.set(EbtInt, Esd2D);
} }
| ISAMPLER3D { | ISAMPLER3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd3D); $$.sampler.set(EbtInt, Esd3D);
} }
| ISAMPLERCUBE { | ISAMPLERCUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdCube); $$.sampler.set(EbtInt, EsdCube);
} }
| ISAMPLER1DARRAY { | ISAMPLER1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd1D, true); $$.sampler.set(EbtInt, Esd1D, true);
} }
| ISAMPLER2DARRAY { | ISAMPLER2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd2D, true); $$.sampler.set(EbtInt, Esd2D, true);
} }
| ISAMPLERCUBEARRAY { | ISAMPLERCUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd3D, true); $$.sampler.set(EbtInt, Esd3D, true);
} }
| USAMPLER1D { | USAMPLER1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd1D); $$.sampler.set(EbtUint, Esd1D);
} }
| USAMPLER2D { | USAMPLER2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D); $$.sampler.set(EbtUint, Esd2D);
} }
| USAMPLER3D { | USAMPLER3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd3D); $$.sampler.set(EbtUint, Esd3D);
} }
| USAMPLERCUBE { | USAMPLERCUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, EsdCube); $$.sampler.set(EbtUint, EsdCube);
} }
| USAMPLER1DARRAY { | USAMPLER1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd1D, true); $$.sampler.set(EbtUint, Esd1D, true);
} }
| USAMPLER2DARRAY { | USAMPLER2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true); $$.sampler.set(EbtUint, Esd2D, true);
} }
| USAMPLERCUBEARRAY { | USAMPLERCUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, EsdCube, true); $$.sampler.set(EbtUint, EsdCube, true);
} }
| SAMPLER2DRECT { | SAMPLER2DRECT {
parseContext.profileRequires($1.line, ENoProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture"); parseContext.profileRequires($1.line, ENoProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdRect); $$.sampler.set(EbtFloat, EsdRect);
} }
| SAMPLER2DRECTSHADOW { | SAMPLER2DRECTSHADOW {
parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture"); parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdRect, false, true); $$.sampler.set(EbtFloat, EsdRect, false, true);
} }
| ISAMPLER2DRECT { | ISAMPLER2DRECT {
parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture"); parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdRect); $$.sampler.set(EbtInt, EsdRect);
} }
| USAMPLER2DRECT { | USAMPLER2DRECT {
parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture"); parseContext.profileRequires($1.line, ECoreProfile, 140, "GL_ARB_texture_rectangle", "rectangle texture");
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, EsdRect); $$.sampler.set(EbtUint, EsdRect);
} }
| SAMPLERBUFFER { | SAMPLERBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, EsdBuffer); $$.sampler.set(EbtFloat, EsdBuffer);
} }
| ISAMPLERBUFFER { | ISAMPLERBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, EsdBuffer); $$.sampler.set(EbtInt, EsdBuffer);
} }
| USAMPLERBUFFER { | USAMPLERBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, EsdBuffer); $$.sampler.set(EbtUint, EsdBuffer);
} }
| SAMPLER2DMS { | SAMPLER2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, false, false, true); $$.sampler.set(EbtFloat, Esd2D, false, false, true);
} }
| ISAMPLER2DMS { | ISAMPLER2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd2D, false, false, true); $$.sampler.set(EbtInt, Esd2D, false, false, true);
} }
| USAMPLER2DMS { | USAMPLER2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, false, false, true); $$.sampler.set(EbtUint, Esd2D, false, false, true);
} }
| SAMPLER2DMSARRAY { | SAMPLER2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtFloat, Esd2D, true, false, true); $$.sampler.set(EbtFloat, Esd2D, true, false, true);
} }
| ISAMPLER2DMSARRAY { | ISAMPLER2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtInt, Esd2D, true, false, true); $$.sampler.set(EbtInt, Esd2D, true, false, true);
} }
| USAMPLER2DMSARRAY { | USAMPLER2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.set(EbtUint, Esd2D, true, false, true); $$.sampler.set(EbtUint, Esd2D, true, false, true);
} }
| IMAGE1D { | IMAGE1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D); $$.sampler.setImage(EbtFloat, Esd1D);
} }
| IIMAGE1D { | IIMAGE1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd1D); $$.sampler.setImage(EbtInt, Esd1D);
} }
| UIMAGE1D { | UIMAGE1D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd1D); $$.sampler.setImage(EbtUint, Esd1D);
} }
| IMAGE2D { | IMAGE2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D); $$.sampler.setImage(EbtFloat, Esd2D);
} }
| IIMAGE2D { | IIMAGE2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd2D); $$.sampler.setImage(EbtInt, Esd2D);
} }
| UIMAGE2D { | UIMAGE2D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D); $$.sampler.setImage(EbtUint, Esd2D);
} }
| IMAGE3D { | IMAGE3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd3D); $$.sampler.setImage(EbtFloat, Esd3D);
} }
| IIMAGE3D { | IIMAGE3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd3D); $$.sampler.setImage(EbtInt, Esd3D);
} }
| UIMAGE3D { | UIMAGE3D {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd3D); $$.sampler.setImage(EbtUint, Esd3D);
} }
| IMAGE2DRECT { | IMAGE2DRECT {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdRect); $$.sampler.setImage(EbtFloat, EsdRect);
} }
| IIMAGE2DRECT { | IIMAGE2DRECT {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, EsdRect); $$.sampler.setImage(EbtInt, EsdRect);
} }
| UIMAGE2DRECT { | UIMAGE2DRECT {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, EsdRect); $$.sampler.setImage(EbtUint, EsdRect);
} }
| IMAGECUBE { | IMAGECUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube); $$.sampler.setImage(EbtFloat, EsdCube);
} }
| IIMAGECUBE { | IIMAGECUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, EsdCube); $$.sampler.setImage(EbtInt, EsdCube);
} }
| UIMAGECUBE { | UIMAGECUBE {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, EsdCube); $$.sampler.setImage(EbtUint, EsdCube);
} }
| IMAGEBUFFER { | IMAGEBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdBuffer); $$.sampler.setImage(EbtFloat, EsdBuffer);
} }
| IIMAGEBUFFER { | IIMAGEBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, EsdBuffer); $$.sampler.setImage(EbtInt, EsdBuffer);
} }
| UIMAGEBUFFER { | UIMAGEBUFFER {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, EsdBuffer); $$.sampler.setImage(EbtUint, EsdBuffer);
} }
| IMAGE1DARRAY { | IMAGE1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd1D, true); $$.sampler.setImage(EbtFloat, Esd1D, true);
} }
| IIMAGE1DARRAY { | IIMAGE1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd1D, true); $$.sampler.setImage(EbtInt, Esd1D, true);
} }
| UIMAGE1DARRAY { | UIMAGE1DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd1D, true); $$.sampler.setImage(EbtUint, Esd1D, true);
} }
| IMAGE2DARRAY { | IMAGE2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true); $$.sampler.setImage(EbtFloat, Esd2D, true);
} }
| IIMAGE2DARRAY { | IIMAGE2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd2D, true); $$.sampler.setImage(EbtInt, Esd2D, true);
} }
| UIMAGE2DARRAY { | UIMAGE2DARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D, true); $$.sampler.setImage(EbtUint, Esd2D, true);
} }
| IMAGECUBEARRAY { | IMAGECUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, EsdCube, true); $$.sampler.setImage(EbtFloat, EsdCube, true);
} }
| IIMAGECUBEARRAY { | IIMAGECUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, EsdCube, true); $$.sampler.setImage(EbtInt, EsdCube, true);
} }
| UIMAGECUBEARRAY { | UIMAGECUBEARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, EsdCube, true); $$.sampler.setImage(EbtUint, EsdCube, true);
} }
| IMAGE2DMS { | IMAGE2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, false, false, true); $$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
} }
| IIMAGE2DMS { | IIMAGE2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd2D, false, false, true); $$.sampler.setImage(EbtInt, Esd2D, false, false, true);
} }
| UIMAGE2DMS { | UIMAGE2DMS {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D, false, false, true); $$.sampler.setImage(EbtUint, Esd2D, false, false, true);
} }
| IMAGE2DMSARRAY { | IMAGE2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtFloat, Esd2D, true, false, true); $$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
} }
| IIMAGE2DMSARRAY { | IIMAGE2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtInt, Esd2D, true, false, true); $$.sampler.setImage(EbtInt, Esd2D, true, false, true);
} }
| UIMAGE2DMSARRAY { | UIMAGE2DMSARRAY {
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtSampler; $$.basicType = EbtSampler;
$$.sampler.setImage(EbtUint, Esd2D, true, false, true); $$.sampler.setImage(EbtUint, Esd2D, true, false, true);
} }
| struct_specifier { | struct_specifier {
@ -2498,7 +2498,7 @@ type_specifier_nonarray
if (TVariable* variable = ($1.symbol)->getAsVariable()) { if (TVariable* variable = ($1.symbol)->getAsVariable()) {
const TType& structure = variable->getType(); const TType& structure = variable->getType();
$$.init($1.line, parseContext.symbolTable.atGlobalLevel()); $$.init($1.line, parseContext.symbolTable.atGlobalLevel());
$$.type = EbtStruct; $$.basicType = EbtStruct;
$$.userDef = &structure; $$.userDef = &structure;
} else { } else {
parseContext.error($1.line, "expected type name", $1.string->c_str(), ""); parseContext.error($1.line, "expected type name", $1.string->c_str(), "");
@ -2538,13 +2538,13 @@ struct_specifier
parseContext.recover(); parseContext.recover();
} }
$$.init($1.line); $$.init($1.line);
$$.type = EbtStruct; $$.basicType = EbtStruct;
$$.userDef = structure; $$.userDef = structure;
} }
| STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE { | STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE {
TType* structure = new TType($3, TString("")); TType* structure = new TType($3, TString(""));
$$.init($1.line); $$.init($1.line);
$$.type = EbtStruct; $$.basicType = EbtStruct;
$$.userDef = structure; $$.userDef = structure;
} }
; ;
@ -2583,7 +2583,7 @@ struct_declaration
// //
// Careful not to replace already know aspects of type, like array-ness // Careful not to replace already know aspects of type, like array-ness
// //
(*$$)[i].type->setElementType($1.type, $1.vectorSize, $1.matrixCols, $1.matrixRows, $1.userDef); (*$$)[i].type->setElementType($1.basicType, $1.vectorSize, $1.matrixCols, $1.matrixRows, $1.userDef);
if ($1.arraySizes) if ($1.arraySizes)
(*$$)[i].type->setArraySizes($1.arraySizes); (*$$)[i].type->setArraySizes($1.arraySizes);
@ -2607,7 +2607,7 @@ struct_declaration
// //
// Careful not to replace already know aspects of type, like array-ness // Careful not to replace already know aspects of type, like array-ness
// //
(*$$)[i].type->setElementType($2.type, $2.vectorSize, $2.matrixCols, $2.matrixRows, $2.userDef); (*$$)[i].type->setElementType($2.basicType, $2.vectorSize, $2.matrixCols, $2.matrixRows, $2.userDef);
(*$$)[i].type->getQualifier() = $2.qualifier; (*$$)[i].type->getQualifier() = $2.qualifier;
if ($2.arraySizes) if ($2.arraySizes)
(*$$)[i].type->setArraySizes($2.arraySizes); (*$$)[i].type->setArraySizes($2.arraySizes);