Commit 3c20f806 by Nicolas Capens

Implement shader compiler support for uint scalars.

Bug 19331817 Change-Id: Ie901756ef4fdbab1dfa6ae01c77104fc84de247f Reviewed-on: https://swiftshader-review.googlesource.com/2312Reviewed-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent 309a1d98
......@@ -38,6 +38,7 @@ enum TBasicType
EbtVoid,
EbtFloat,
EbtInt,
EbtUInt,
EbtBool,
EbtGuardSamplerBegin, // non type: see implementation of IsSampler()
EbtSampler2D,
......@@ -57,6 +58,7 @@ inline const char* getBasicString(TBasicType t)
case EbtVoid: return "void";
case EbtFloat: return "float";
case EbtInt: return "int";
case EbtUInt: return "uint";
case EbtBool: return "bool";
case EbtSampler2D: return "sampler2D";
case EbtSamplerCube: return "samplerCube";
......
......@@ -26,6 +26,7 @@ public:
switch (constant.type)
{
case EbtInt: setFConst(static_cast<float>(constant.getIConst())); break;
case EbtUInt: setFConst(static_cast<float>(constant.getUConst())); break;
case EbtBool: setFConst(static_cast<float>(constant.getBConst())); break;
case EbtFloat: setFConst(static_cast<float>(constant.getFConst())); break;
default: return false;
......@@ -35,15 +36,27 @@ public:
switch (constant.type)
{
case EbtInt: setIConst(static_cast<int>(constant.getIConst())); break;
case EbtUInt: setIConst(static_cast<int>(constant.getUConst())); break;
case EbtBool: setIConst(static_cast<int>(constant.getBConst())); break;
case EbtFloat: setIConst(static_cast<int>(constant.getFConst())); break;
default: return false;
}
break;
case EbtUInt:
switch (constant.type)
{
case EbtInt: setUConst(static_cast<unsigned int>(constant.getIConst())); break;
case EbtUInt: setUConst(static_cast<unsigned int>(constant.getUConst())); break;
case EbtBool: setUConst(static_cast<unsigned int>(constant.getBConst())); break;
case EbtFloat: setUConst(static_cast<unsigned int>(constant.getFConst())); break;
default: return false;
}
break;
case EbtBool:
switch (constant.type)
{
case EbtInt: setBConst(constant.getIConst() != 0); break;
case EbtUInt: setBConst(constant.getUConst() != 0); break;
case EbtBool: setBConst(constant.getBConst()); break;
case EbtFloat: setBConst(constant.getFConst() != 0.0f); break;
default: return false;
......@@ -53,6 +66,7 @@ public:
switch (constant.type)
{
case EbtInt: setIConst(constant.getIConst()); break;
case EbtUInt: setUConst(constant.getUConst()); break;
case EbtBool: setBConst(constant.getBConst()); break;
case EbtFloat: setFConst(constant.getFConst()); break;
default: return false;
......@@ -66,10 +80,12 @@ public:
}
void setIConst(int i) {iConst = i; type = EbtInt; }
void setUConst(unsigned int u) { uConst = u; type = EbtUInt; }
void setFConst(float f) {fConst = f; type = EbtFloat; }
void setBConst(bool b) {bConst = b; type = EbtBool; }
int getIConst() const { return iConst; }
unsigned int getUConst() const { return uConst; }
float getFConst() const { return fConst; }
bool getBConst() const { return bConst; }
......@@ -91,6 +107,11 @@ public:
return i == iConst;
}
bool operator==(const unsigned int u) const
{
return u == uConst;
}
bool operator==(const float f) const
{
return f == fConst;
......@@ -109,6 +130,8 @@ public:
switch (type) {
case EbtInt:
return constant.iConst == iConst;
case EbtUInt:
return constant.uConst == uConst;
case EbtFloat:
return constant.fConst == fConst;
case EbtBool:
......@@ -125,6 +148,11 @@ public:
return !operator==(i);
}
bool operator!=(const unsigned int u) const
{
return !operator==(u);
}
bool operator!=(const float f) const
{
return !operator==(f);
......@@ -146,6 +174,8 @@ public:
switch (type) {
case EbtInt:
return iConst > constant.iConst;
case EbtUInt:
return uConst > constant.uConst;
case EbtFloat:
return fConst > constant.fConst;
default:
......@@ -161,6 +191,8 @@ public:
switch (type) {
case EbtInt:
return iConst < constant.iConst;
case EbtUInt:
return uConst < constant.uConst;
case EbtFloat:
return fConst < constant.fConst;
default:
......@@ -176,6 +208,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst + constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst + constant.uConst); break;
case EbtFloat: returnValue.setFConst(fConst + constant.fConst); break;
default: assert(false && "Default missing");
}
......@@ -189,6 +222,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst - constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst - constant.uConst); break;
case EbtFloat: returnValue.setFConst(fConst - constant.fConst); break;
default: assert(false && "Default missing");
}
......@@ -202,6 +236,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst * constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst * constant.uConst); break;
case EbtFloat: returnValue.setFConst(fConst * constant.fConst); break;
default: assert(false && "Default missing");
}
......@@ -215,6 +250,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst % constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst % constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -227,6 +263,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst >> constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst >> constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -236,9 +273,13 @@ public:
ConstantUnion operator<<(const ConstantUnion& constant) const
{
ConstantUnion returnValue;
assert(type == constant.type);
// The signedness of the second parameter might be different, but we
// don't care, since the result is undefined if the second parameter is
// negative, and aliasing should not be a problem with unions.
assert(constant.type == EbtInt || constant.type == EbtUInt);
switch (type) {
case EbtInt: returnValue.setIConst(iConst << constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst << constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -248,9 +289,10 @@ public:
ConstantUnion operator&(const ConstantUnion& constant) const
{
ConstantUnion returnValue;
assert(type == constant.type);
assert(constant.type == EbtInt || constant.type == EbtUInt);
switch (type) {
case EbtInt: returnValue.setIConst(iConst & constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst & constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -263,6 +305,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst | constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst | constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -275,6 +318,7 @@ public:
assert(type == constant.type);
switch (type) {
case EbtInt: returnValue.setIConst(iConst ^ constant.iConst); break;
case EbtUInt: returnValue.setUConst(uConst ^ constant.uConst); break;
default: assert(false && "Default missing");
}
......@@ -310,6 +354,7 @@ private:
union {
int iConst; // used for ivec, scalar ints
unsigned int uConst; // used for uvec, scalar uints
bool bConst; // used for bvec, scalar bools
float fConst; // used for vec, mat, scalar floats
} ;
......
......@@ -601,6 +601,7 @@ bool TIntermOperator::isConstructor() const
case EOpConstructIVec3:
case EOpConstructIVec4:
case EOpConstructInt:
case EOpConstructUInt:
case EOpConstructBVec2:
case EOpConstructBVec3:
case EOpConstructBVec4:
......@@ -981,6 +982,13 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
} else
tempConstArray[i].setIConst(unionArray[i].getIConst() / rightUnionArray[i].getIConst());
break;
case EbtUInt:
if (rightUnionArray[i] == 0) {
infoSink.info.message(EPrefixWarning, "Divide by zero error during constant folding", getLine());
tempConstArray[i].setUConst(UINT_MAX);
} else
tempConstArray[i].setUConst(unionArray[i].getUConst() / rightUnionArray[i].getUConst());
break;
default:
infoSink.info.message(EPrefixInternalError, "Constant folding cannot be done for \"/\"", getLine());
return 0;
......@@ -1196,6 +1204,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC
case EbtInt:
leftUnionArray[i].setFConst(static_cast<float>(node->getIConst(i)));
break;
case EbtUInt:
leftUnionArray[i].setFConst(static_cast<float>(node->getUConst(i)));
break;
case EbtBool:
leftUnionArray[i].setFConst(static_cast<float>(node->getBConst(i)));
break;
......@@ -1212,6 +1223,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC
case EbtInt:
leftUnionArray[i].setIConst(static_cast<int>(node->getIConst(i)));
break;
case EbtUInt:
leftUnionArray[i].setIConst(static_cast<int>(node->getUConst(i)));
break;
case EbtBool:
leftUnionArray[i].setIConst(static_cast<int>(node->getBConst(i)));
break;
......@@ -1223,11 +1237,33 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC
return 0;
}
break;
case EbtUInt:
switch (node->getType().getBasicType()) {
case EbtInt:
leftUnionArray[i].setUConst(static_cast<unsigned int>(node->getIConst(i)));
break;
case EbtUInt:
leftUnionArray[i].setUConst(static_cast<unsigned int>(node->getUConst(i)));
break;
case EbtBool:
leftUnionArray[i].setUConst(static_cast<unsigned int>(node->getBConst(i)));
break;
case EbtFloat:
leftUnionArray[i].setUConst(static_cast<unsigned int>(node->getFConst(i)));
break;
default:
infoSink.info.message(EPrefixInternalError, "Cannot promote", node->getLine());
return 0;
}
break;
case EbtBool:
switch (node->getType().getBasicType()) {
case EbtInt:
leftUnionArray[i].setBConst(node->getIConst(i) != 0);
break;
case EbtUInt:
leftUnionArray[i].setBConst(node->getUConst(i) != 0);
break;
case EbtBool:
leftUnionArray[i].setBConst(node->getBConst(i));
break;
......
......@@ -391,7 +391,7 @@ bool TParseContext::constErrorCheck(TIntermTyped* node)
//
bool TParseContext::integerErrorCheck(TIntermTyped* node, const char* token)
{
if (node->getBasicType() == EbtInt && node->getNominalSize() == 1)
if (node->isScalarInt())
return false;
error(node->getLine(), "integer expression required", token);
......@@ -657,17 +657,35 @@ bool TParseContext::containsSampler(TType& type)
bool TParseContext::arraySizeErrorCheck(int line, TIntermTyped* expr, int& size)
{
TIntermConstantUnion* constant = expr->getAsConstantUnion();
if (constant == 0 || constant->getBasicType() != EbtInt) {
if (constant == 0 || !constant->isScalarInt())
{
error(line, "array size must be a constant integer expression", "");
return true;
}
size = constant->getIConst(0);
if (constant->getBasicType() == EbtUInt)
{
unsigned int uintSize = constant->getUConst(0);
if (uintSize > static_cast<unsigned int>(std::numeric_limits<int>::max()))
{
error(line, "array size too large", "");
size = 1;
return true;
}
if (size <= 0) {
error(line, "array size must be a positive integer", "");
size = 1;
return true;
size = static_cast<int>(uintSize);
}
else
{
size = constant->getIConst(0);
if (size <= 0)
{
error(line, "array size must be a positive integer", "");
size = 1;
return true;
}
}
return false;
......
......@@ -49,6 +49,7 @@ void TType::buildMangledName(TString& mangledName)
switch (type) {
case EbtFloat: mangledName += 'f'; break;
case EbtInt: mangledName += 'i'; break;
case EbtUInt: mangledName += 'u'; break;
case EbtBool: mangledName += 'b'; break;
case EbtSampler2D: mangledName += "s2"; break;
case EbtSamplerCube: mangledName += "sC"; break;
......
......@@ -338,7 +338,11 @@ public:
}
// Searches down the precisionStack for a precision qualifier for the specified TBasicType
TPrecision getDefaultPrecision( TBasicType type){
TPrecision getDefaultPrecision( TBasicType type)
{
// unsigned integers use the same precision as signed
if (type == EbtUInt) type = EbtInt;
if( type != EbtFloat && type != EbtInt ) return EbpUndefined;
int level = static_cast<int>(precisionStack.size()) - 1;
assert( level >= 0); // Just to be safe. Should not happen.
......
......@@ -146,6 +146,7 @@ public:
bool isScalar() const { return size == 1 && !matrix && !structure; }
bool isRegister() const { return !matrix && !structure && !array; } // Fits in a 4-element register
bool isStruct() const { return structure != 0; }
bool isScalarInt() const { return isScalar() && (type == EbtInt || type == EbtUInt); }
TTypeList* getStruct() const { return structure; }
void setStruct(TTypeList* s) { structure = s; computeDeepestStructNesting(); }
......
......@@ -79,6 +79,10 @@ public:
case EbtFloat:
mUsesFloatLoopIndex = true;
break;
case EbtUInt:
mUsesIntLoopIndex = true;
MarkLoopForUnroll(symbol, mLoopStack);
break;
case EbtInt:
mUsesIntLoopIndex = true;
MarkLoopForUnroll(symbol, mLoopStack);
......@@ -269,7 +273,7 @@ bool ValidateLimitations::validateForLoopInit(TIntermLoop* node,
}
// The loop index has type int or float.
TBasicType type = symbol->getBasicType();
if ((type != EbtInt) && (type != EbtFloat)) {
if ((type != EbtInt) && (type != EbtUInt) && (type != EbtFloat)) {
error(symbol->getLine(),
"Invalid type for loop index", getBasicString(type));
return false;
......@@ -492,7 +496,7 @@ bool ValidateLimitations::validateIndexing(TIntermBinary* node)
bool valid = true;
TIntermTyped* index = node->getRight();
// The index expression must have integral type.
if (!index->isScalar() || (index->getBasicType() != EbtInt)) {
if (!index->isScalarInt()) {
error(index->getLine(),
"Index expression must have integral type",
index->getCompleteString().c_str());
......
......@@ -56,6 +56,7 @@ static int check_type(yyscan_t yyscanner);
static int reserved_word(yyscan_t yyscanner);
static int ES2_reserved_ES3_keyword(TParseContext *context, int token);
static int ES2_keyword_ES3_reserved(TParseContext *context, int token);
static int ES2_identifier_ES3_keyword(TParseContext *context, int token);
%}
%option noyywrap nounput never-interactive
......@@ -118,6 +119,7 @@ O [0-7]
"float" { context->lexAfterType = true; return(FLOAT_TYPE); }
"int" { context->lexAfterType = true; return(INT_TYPE); }
"uint" { return ES2_identifier_ES3_keyword(context, UINT_TYPE); }
"void" { context->lexAfterType = true; return(VOID_TYPE); }
"bool" { context->lexAfterType = true; return(BOOL_TYPE); }
"true" { yylval->lex.b = true; return(BOOLCONSTANT); }
......@@ -409,6 +411,21 @@ int ES2_keyword_ES3_reserved(TParseContext *context, int token)
return token;
}
int ES2_identifier_ES3_keyword(TParseContext *context, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->scanner;
yyscan_t yyscanner = (yyscan_t) context->scanner;
// not a reserved word in GLSL ES 1.00, so could be used as an identifier/type name
if (context->shaderVersion < 300)
{
yylval->lex.string = NewPoolTString(yytext);
return check_type(yyscanner);
}
return token;
}
void yyerror(TParseContext* context, const char* reason) {
struct yyguts_t* yyg = (struct yyguts_t*) context->scanner;
......
......@@ -121,7 +121,7 @@ extern void yyerror(TParseContext* context, const char* reason);
%}
%token <lex> INVARIANT HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION
%token <lex> ATTRIBUTE CONST_QUAL BOOL_TYPE FLOAT_TYPE INT_TYPE
%token <lex> ATTRIBUTE CONST_QUAL BOOL_TYPE FLOAT_TYPE INT_TYPE UINT_TYPE
%token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
%token <lex> BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4
%token <lex> MATRIX2 MATRIX3 MATRIX4 IN_QUAL OUT_QUAL INOUT_QUAL UNIFORM VARYING
......@@ -219,14 +219,6 @@ primary_expression
$$ = $1;
}
| INTCONSTANT {
//
// INT_TYPE is only 16-bit plus sign bit for vertex/fragment shaders,
// check for overflow for constants
//
if (abs($1.i) >= (1 << 16)) {
context->error($1.line, " integer constant overflow", "");
context->recover();
}
ConstantUnion *unionArray = new ConstantUnion[1];
unionArray->setIConst($1.i);
$$ = context->intermediate.addConstantUnion(unionArray, TType(EbtInt, EbpUndefined, EvqConst), $1.line);
......@@ -1628,15 +1620,14 @@ type_specifier_nonarray
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtInt, qual, $1.line);
}
| UINT_TYPE {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtUInt, qual, $1.line);
}
| BOOL_TYPE {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtBool, qual, $1.line);
}
// | UNSIGNED INT_TYPE {
// PACK_UNPACK_ONLY("unsigned", $1.line);
// TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
// $$.setBasic(EbtInt, qual, $1.line);
// }
| VEC2 {
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
$$.setBasic(EbtFloat, qual, $1.line);
......@@ -2190,4 +2181,3 @@ function_definition
int glslang_parse(TParseContext* context) {
return yyparse(context);
}
......@@ -392,8 +392,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
#define YY_NUM_RULES 214
#define YY_END_OF_BUFFER 215
#define YY_NUM_RULES 215
#define YY_END_OF_BUFFER 216
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
......@@ -401,91 +401,91 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[759] =
static yyconst flex_int16_t yy_accept[761] =
{ 0,
0, 0, 0, 0, 0, 0, 215, 213, 212, 212,
197, 203, 208, 192, 193, 201, 200, 189, 198, 196,
202, 161, 161, 190, 186, 204, 191, 205, 209, 157,
194, 195, 207, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 187, 206, 188, 199, 3, 4, 3,
211, 214, 210, 183, 169, 188, 177, 172, 167, 175,
165, 176, 166, 164, 2, 1, 168, 163, 159, 160,
0, 0, 161, 195, 187, 194, 184, 180, 182, 181,
185, 157, 173, 179, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 17, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
20, 157, 157, 28, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 174, 178, 5, 210, 0,
1, 163, 0, 0, 162, 158, 170, 171, 157, 114,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 18, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 32, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 29, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 0, 164,
0, 163, 157, 157, 157, 34, 157, 157, 23, 154,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
21, 117, 157, 157, 157, 157, 26, 157, 157, 122,
134, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 131, 9, 39, 40, 41, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 120, 35, 157, 157, 157, 157, 157, 157, 157,
157, 42, 43, 44, 33, 157, 157, 157, 157, 157,
157, 15, 48, 49, 50, 157, 115, 157, 157, 12,
157, 157, 157, 157, 143, 144, 145, 157, 36, 157,
135, 31, 146, 147, 148, 7, 140, 141, 142, 157,
157, 157, 30, 138, 157, 157, 157, 45, 46, 47,
157, 157, 157, 157, 157, 157, 157, 65, 157, 157,
157, 157, 157, 157, 157, 132, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 157, 116, 157, 157,
156, 157, 157, 19, 157, 70, 157, 157, 157, 157,
68, 157, 157, 157, 133, 128, 71, 157, 157, 157,
157, 157, 157, 123, 157, 157, 157, 157, 157, 157,
157, 139, 121, 157, 157, 126, 157, 157, 157, 38,
66, 153, 27, 127, 57, 157, 137, 22, 157, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 24, 37, 157, 157, 157, 157, 157, 157,
72, 73, 74, 157, 157, 157, 157, 157, 8, 157,
157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
118, 157, 157, 157, 157, 157, 13, 157, 157, 14,
157, 157, 157, 157, 25, 58, 16, 129, 76, 77,
78, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 124, 157, 157, 157, 60, 62, 59,
157, 157, 157, 157, 157, 157, 157, 119, 80, 81,
82, 157, 157, 136, 157, 125, 157, 157, 11, 157,
157, 157, 157, 157, 157, 157, 157, 157, 75, 130,
6, 157, 157, 157, 155, 157, 69, 10, 149, 51,
54, 157, 157, 157, 157, 157, 157, 157, 157, 157,
157, 157, 61, 157, 157, 157, 157, 79, 157, 157,
157, 157, 157, 99, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 67, 157, 157, 157,
83, 101, 157, 157, 63, 157, 157, 157, 157, 157,
157, 157, 94, 157, 157, 157, 157, 157, 157, 157,
108, 157, 157, 157, 157, 52, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 95, 84, 157, 85,
157, 157, 109, 157, 157, 157, 157, 157, 157, 157,
157, 157, 157, 157, 157, 157, 96, 157, 110, 157,
157, 86, 87, 157, 90, 157, 91, 157, 157, 157,
157, 64, 157, 157, 157, 151, 157, 55, 105, 157,
88, 89, 157, 157, 157, 157, 157, 157, 157, 157,
103, 106, 97, 157, 157, 157, 157, 157, 157, 157,
104, 107, 157, 157, 100, 157, 157, 150, 157, 157,
56, 157, 102, 157, 157, 157, 157, 157, 111, 157,
157, 157, 157, 157, 112, 157, 157, 157, 113, 92,
93, 157, 157, 53, 157, 152, 98, 0
0, 0, 0, 0, 0, 0, 216, 214, 213, 213,
198, 204, 209, 193, 194, 202, 201, 190, 199, 197,
203, 162, 162, 191, 187, 205, 192, 206, 210, 158,
195, 196, 208, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 188, 207, 189, 200, 3, 4, 3,
212, 215, 211, 184, 170, 189, 178, 173, 168, 176,
166, 177, 167, 165, 2, 1, 169, 164, 160, 161,
0, 0, 162, 196, 188, 195, 185, 181, 183, 182,
186, 158, 174, 180, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 17, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
20, 158, 158, 28, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 175, 179, 5, 211, 0,
1, 164, 0, 0, 163, 159, 171, 172, 158, 115,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 18, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 32, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 29, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 0,
165, 0, 164, 158, 158, 158, 35, 158, 158, 23,
155, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 21, 118, 158, 158, 158, 158, 26, 158, 158,
123, 135, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 132, 9, 40, 41, 42, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 121, 36, 158, 158, 33, 158, 158, 158,
158, 158, 158, 43, 44, 45, 34, 158, 158, 158,
158, 158, 158, 15, 49, 50, 51, 158, 116, 158,
158, 12, 158, 158, 158, 158, 144, 145, 146, 158,
37, 158, 136, 31, 147, 148, 149, 7, 141, 142,
143, 158, 158, 158, 30, 139, 158, 158, 158, 46,
47, 48, 158, 158, 158, 158, 158, 158, 158, 66,
158, 158, 158, 158, 158, 158, 158, 133, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 158, 117,
158, 158, 157, 158, 158, 19, 158, 71, 158, 158,
158, 158, 69, 158, 158, 158, 134, 129, 72, 158,
158, 158, 158, 158, 158, 124, 158, 158, 158, 158,
158, 158, 158, 140, 122, 158, 158, 127, 158, 158,
158, 39, 67, 154, 27, 128, 58, 158, 138, 22,
158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 24, 38, 158, 158, 158, 158,
158, 158, 73, 74, 75, 158, 158, 158, 158, 158,
8, 158, 158, 158, 158, 158, 158, 158, 158, 158,
158, 158, 119, 158, 158, 158, 158, 158, 13, 158,
158, 14, 158, 158, 158, 158, 25, 59, 16, 130,
77, 78, 79, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 125, 158, 158, 158, 61,
63, 60, 158, 158, 158, 158, 158, 158, 158, 120,
81, 82, 83, 158, 158, 137, 158, 126, 158, 158,
11, 158, 158, 158, 158, 158, 158, 158, 158, 158,
76, 131, 6, 158, 158, 158, 156, 158, 70, 10,
150, 52, 55, 158, 158, 158, 158, 158, 158, 158,
158, 158, 158, 158, 62, 158, 158, 158, 158, 80,
158, 158, 158, 158, 158, 100, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 68, 158,
158, 158, 84, 102, 158, 158, 64, 158, 158, 158,
158, 158, 158, 158, 95, 158, 158, 158, 158, 158,
158, 158, 109, 158, 158, 158, 158, 53, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 96, 85,
158, 86, 158, 158, 110, 158, 158, 158, 158, 158,
158, 158, 158, 158, 158, 158, 158, 158, 97, 158,
111, 158, 158, 87, 88, 158, 91, 158, 92, 158,
158, 158, 158, 65, 158, 158, 158, 152, 158, 56,
106, 158, 89, 90, 158, 158, 158, 158, 158, 158,
158, 158, 104, 107, 98, 158, 158, 158, 158, 158,
158, 158, 105, 108, 158, 158, 101, 158, 158, 151,
158, 158, 57, 158, 103, 158, 158, 158, 158, 158,
112, 158, 158, 158, 158, 158, 113, 158, 158, 158,
114, 93, 94, 158, 158, 54, 158, 153, 99, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
......@@ -532,183 +532,183 @@ static yyconst flex_int32_t yy_meta[72] =
1
} ;
static yyconst flex_int16_t yy_base[764] =
static yyconst flex_int16_t yy_base[766] =
{ 0,
0, 0, 69, 70, 79, 0, 988, 989, 989, 989,
962, 49, 145, 989, 989, 961, 142, 989, 141, 139,
154, 167, 176, 959, 989, 176, 959, 51, 989, 0,
989, 989, 136, 116, 112, 159, 157, 156, 173, 926,
174, 179, 925, 175, 189, 919, 185, 932, 197, 203,
204, 209, 113, 989, 186, 989, 989, 989, 989, 965,
989, 989, 0, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 255, 989, 0, 989, 262, 280, 298,
317, 0, 332, 989, 989, 989, 953, 989, 989, 989,
952, 0, 989, 989, 915, 920, 206, 917, 925, 924,
911, 914, 925, 233, 919, 907, 904, 917, 904, 901,
901, 907, 237, 248, 901, 911, 897, 903, 906, 907,
0, 899, 909, 300, 908, 903, 109, 889, 902, 893,
268, 886, 262, 898, 900, 246, 889, 886, 875, 884,
206, 264, 888, 884, 886, 875, 878, 880, 279, 315,
875, 887, 150, 880, 879, 989, 989, 989, 0, 356,
0, 366, 384, 391, 400, 0, 989, 989, 878, 0,
874, 869, 873, 882, 879, 294, 863, 863, 874, 866,
225, 876, 873, 873, 871, 868, 860, 866, 853, 851,
863, 849, 865, 0, 862, 850, 857, 854, 858, 859,
852, 849, 838, 837, 850, 853, 841, 849, 844, 835,
371, 840, 843, 834, 841, 830, 834, 825, 839, 838,
829, 835, 283, 819, 822, 820, 830, 820, 815, 813,
815, 825, 811, 813, 810, 821, 820, 823, 313, 814,
810, 808, 797, 374, 815, 817, 806, 798, 407, 414,
421, 428, 795, 805, 804, 0, 802, 433, 0, 0,
795, 793, 793, 794, 789, 797, 786, 803, 792, 436,
0, 0, 786, 796, 795, 795, 0, 780, 439, 0,
0, 782, 442, 789, 790, 781, 775, 774, 775, 774,
774, 445, 0, 0, 0, 0, 0, 769, 770, 775,
769, 765, 778, 773, 773, 771, 770, 764, 758, 760,
759, 763, 755, 758, 753, 761, 766, 754, 751, 763,
754, 0, 0, 760, 756, 748, 748, 753, 744, 751,
748, 0, 0, 0, 0, 738, 750, 749, 748, 749,
749, 0, 0, 0, 0, 736, 0, 744, 735, 0,
734, 735, 729, 739, 0, 0, 0, 730, 0, 726,
0, 0, 0, 0, 0, 0, 0, 0, 0, 736,
449, 735, 0, 0, 733, 729, 726, 0, 0, 0,
724, 720, 725, 716, 714, 727, 712, 0, 712, 725,
714, 710, 716, 711, 718, 0, 716, 713, 717, 701,
699, 702, 708, 714, 709, 708, 696, 0, 698, 699,
0, 696, 699, 0, 693, 0, 706, 686, 695, 690,
0, 683, 683, 696, 0, 698, 0, 452, 710, 709,
708, 676, 675, 0, 692, 691, 686, 675, 688, 675,
672, 0, 0, 677, 676, 0, 673, 680, 679, 0,
665, 0, 0, 0, 0, 662, 0, 0, 661, 672,
455, 665, 671, 670, 667, 662, 659, 652, 652, 665,
650, 662, 0, 0, 655, 677, 676, 675, 643, 642,
341, 448, 0, 654, 657, 655, 644, 640, 0, 652,
649, 648, 638, 637, 627, 644, 630, 471, 638, 641,
0, 657, 656, 655, 623, 622, 0, 636, 623, 0,
633, 626, 627, 630, 0, 0, 0, 0, 649, 648,
0, 626, 629, 614, 621, 612, 619, 620, 620, 619,
605, 475, 617, 0, 618, 607, 606, 0, 0, 0,
630, 629, 628, 596, 595, 591, 599, 0, 626, 625,
0, 603, 606, 0, 477, 0, 584, 593, 0, 589,
588, 597, 597, 585, 599, 583, 597, 592, 0, 0,
0, 608, 607, 575, 0, 575, 0, 0, 452, 460,
598, 585, 588, 571, 583, 571, 570, 579, 579, 595,
594, 562, 0, 562, 563, 562, 572, 0, 575, 571,
573, 569, 556, 586, 203, 564, 560, 552, 559, 571,
560, 556, 558, 556, 556, 555, 0, 543, 542, 552,
0, 571, 208, 549, 0, 553, 552, 536, 528, 536,
526, 534, 0, 531, 551, 540, 538, 523, 526, 540,
555, 536, 537, 534, 531, 0, 519, 533, 532, 516,
515, 535, 524, 522, 504, 503, 0, 530, 503, 528,
501, 505, 535, 516, 513, 512, 515, 511, 498, 495,
508, 493, 494, 496, 485, 484, 0, 490, 520, 501,
498, 0, 0, 494, 0, 493, 0, 499, 483, 480,
481, 0, 473, 481, 478, 498, 478, 0, 0, 490,
0, 0, 489, 473, 470, 471, 485, 484, 461, 467,
0, 0, 487, 460, 479, 471, 457, 466, 453, 457,
0, 0, 458, 455, 0, 455, 445, 0, 417, 433,
0, 439, 0, 430, 356, 340, 329, 334, 0, 318,
328, 290, 279, 277, 0, 278, 267, 266, 0, 0,
0, 211, 158, 0, 126, 0, 0, 989, 506, 508,
510, 514, 171
0, 0, 69, 70, 79, 0, 990, 991, 991, 991,
964, 49, 145, 991, 991, 963, 142, 991, 141, 139,
154, 167, 176, 961, 991, 176, 961, 51, 991, 0,
991, 991, 136, 116, 112, 159, 157, 156, 173, 928,
174, 179, 927, 175, 189, 921, 185, 934, 197, 203,
204, 209, 113, 991, 186, 991, 991, 991, 991, 967,
991, 991, 0, 991, 991, 991, 991, 991, 991, 991,
991, 991, 991, 255, 991, 0, 991, 262, 280, 298,
317, 0, 332, 991, 991, 991, 955, 991, 991, 991,
954, 0, 991, 991, 917, 922, 206, 919, 927, 926,
913, 916, 927, 233, 921, 909, 906, 919, 906, 903,
903, 909, 237, 248, 903, 913, 899, 905, 908, 909,
0, 901, 911, 300, 910, 905, 109, 891, 904, 895,
268, 888, 262, 900, 902, 246, 891, 888, 877, 886,
206, 264, 890, 886, 888, 877, 880, 230, 279, 315,
878, 890, 150, 883, 882, 991, 991, 991, 0, 356,
0, 366, 384, 391, 400, 0, 991, 991, 881, 0,
877, 872, 876, 885, 882, 294, 866, 866, 877, 869,
264, 879, 876, 876, 874, 871, 863, 869, 856, 854,
866, 852, 868, 0, 865, 853, 860, 857, 861, 862,
855, 852, 841, 840, 853, 856, 844, 852, 847, 838,
371, 843, 846, 837, 844, 833, 837, 828, 842, 841,
832, 838, 283, 822, 825, 823, 833, 823, 818, 816,
818, 828, 814, 816, 813, 824, 823, 826, 808, 313,
816, 812, 810, 799, 374, 817, 819, 808, 800, 407,
414, 421, 428, 797, 807, 806, 0, 804, 433, 0,
0, 797, 795, 795, 796, 791, 799, 788, 805, 794,
436, 0, 0, 788, 798, 797, 797, 0, 782, 439,
0, 0, 784, 442, 791, 792, 783, 777, 776, 777,
776, 776, 445, 0, 0, 0, 0, 0, 771, 772,
777, 771, 767, 780, 775, 775, 773, 772, 766, 760,
762, 761, 765, 757, 760, 755, 763, 768, 756, 753,
765, 756, 0, 0, 762, 758, 0, 750, 750, 755,
746, 753, 750, 0, 0, 0, 0, 740, 752, 751,
750, 751, 751, 0, 0, 0, 0, 738, 0, 746,
737, 0, 736, 737, 731, 741, 0, 0, 0, 732,
0, 728, 0, 0, 0, 0, 0, 0, 0, 0,
0, 738, 449, 737, 0, 0, 735, 731, 728, 0,
0, 0, 726, 722, 727, 718, 716, 729, 714, 0,
714, 727, 716, 712, 718, 713, 720, 0, 718, 715,
719, 703, 701, 704, 710, 716, 711, 710, 698, 0,
700, 701, 0, 698, 701, 0, 695, 0, 708, 688,
697, 692, 0, 685, 685, 698, 0, 700, 0, 452,
712, 711, 710, 678, 677, 0, 694, 693, 688, 677,
690, 677, 674, 0, 0, 679, 678, 0, 675, 682,
681, 0, 667, 0, 0, 0, 0, 664, 0, 0,
663, 674, 455, 667, 673, 672, 669, 664, 661, 654,
654, 667, 652, 664, 0, 0, 657, 679, 678, 677,
645, 644, 341, 448, 0, 656, 659, 657, 646, 642,
0, 654, 651, 650, 640, 639, 629, 646, 632, 471,
640, 643, 0, 659, 658, 657, 625, 624, 0, 638,
625, 0, 635, 628, 629, 632, 0, 0, 0, 0,
651, 650, 0, 628, 631, 616, 623, 614, 621, 622,
622, 621, 607, 475, 619, 0, 620, 609, 608, 0,
0, 0, 632, 631, 630, 598, 597, 593, 601, 0,
628, 627, 0, 605, 608, 0, 477, 0, 586, 595,
0, 591, 590, 599, 599, 587, 601, 585, 599, 594,
0, 0, 0, 610, 609, 577, 0, 577, 0, 0,
452, 460, 600, 587, 590, 573, 585, 573, 572, 581,
581, 597, 596, 564, 0, 564, 565, 564, 574, 0,
577, 573, 575, 571, 558, 588, 203, 566, 562, 554,
561, 573, 562, 558, 560, 558, 558, 557, 0, 545,
544, 554, 0, 573, 208, 551, 0, 555, 554, 538,
530, 538, 528, 536, 0, 533, 553, 542, 540, 525,
528, 542, 557, 538, 539, 536, 533, 0, 521, 535,
534, 518, 517, 537, 526, 524, 506, 505, 0, 532,
505, 530, 503, 507, 537, 518, 515, 514, 517, 513,
500, 497, 510, 495, 496, 498, 487, 486, 0, 492,
522, 503, 500, 0, 0, 496, 0, 495, 0, 501,
485, 482, 483, 0, 475, 483, 480, 500, 480, 0,
0, 492, 0, 0, 491, 475, 472, 473, 487, 486,
463, 469, 0, 0, 489, 462, 481, 473, 459, 468,
455, 461, 0, 0, 472, 469, 0, 461, 451, 0,
433, 452, 0, 447, 0, 433, 418, 417, 347, 353,
0, 348, 346, 299, 296, 292, 0, 296, 284, 266,
0, 0, 0, 211, 158, 0, 126, 0, 0, 991,
506, 508, 510, 514, 171
} ;
static yyconst flex_int16_t yy_def[764] =
static yyconst flex_int16_t yy_def[766] =
{ 0,
758, 1, 759, 759, 758, 5, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 760,
758, 758, 758, 760, 760, 760, 760, 760, 760, 760,
760, 1, 761, 761, 760, 5, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 758, 758, 758, 758, 758, 758, 758,
758, 758, 761, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 762, 758, 758, 758, 758,
758, 763, 758, 758, 758, 758, 758, 758, 758, 758,
758, 760, 758, 758, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 758, 758, 758, 761, 758,
762, 758, 758, 758, 758, 763, 758, 758, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 758, 758,
758, 758, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 0, 758, 758,
758, 758, 758
760, 760, 760, 760, 760, 760, 760, 760, 760, 762,
760, 760, 760, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 760, 760, 760, 760, 760, 760, 760,
760, 760, 763, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 764, 760, 760, 760, 760,
760, 765, 760, 760, 760, 760, 760, 760, 760, 760,
760, 762, 760, 760, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 760, 760, 760, 763, 760,
764, 760, 760, 760, 760, 765, 760, 760, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 760,
760, 760, 760, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
762, 762, 762, 762, 762, 762, 762, 762, 762, 0,
760, 760, 760, 760, 760
} ;
static yyconst flex_int16_t yy_nxt[1061] =
static yyconst flex_int16_t yy_nxt[1063] =
{ 0,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 23, 23, 23, 23,
......@@ -729,106 +729,107 @@ static yyconst flex_int16_t yy_nxt[1061] =
67, 70, 72, 74, 74, 74, 74, 74, 74, 74,
93, 95, 75, 154, 209, 73, 71, 76, 98, 68,
99, 155, 210, 166, 100, 96, 97, 94, 77, 78,
85, 79, 79, 79, 79, 79, 79, 80, 78, 757,
85, 79, 79, 79, 79, 79, 79, 80, 78, 759,
83, 83, 83, 83, 83, 83, 83, 86, 81, 87,
88, 245, 101, 246, 105, 82, 102, 81, 106, 109,
88, 246, 101, 247, 105, 82, 102, 81, 106, 109,
156, 110, 103, 107, 81, 104, 112, 118, 128, 108,
111, 756, 129, 81, 113, 119, 114, 121, 133, 115,
122, 82, 130, 123, 124, 116, 120, 635, 125, 636,
137, 126, 652, 134, 653, 131, 135, 138, 139, 229,
111, 758, 129, 81, 113, 119, 114, 121, 133, 115,
122, 82, 130, 123, 124, 116, 120, 637, 125, 638,
137, 126, 654, 134, 655, 131, 135, 138, 139, 229,
144, 140, 151, 145, 157, 148, 152, 141, 142, 149,
143, 146, 171, 150, 230, 153, 172, 755, 147, 74,
143, 146, 171, 150, 230, 153, 172, 757, 147, 74,
74, 74, 74, 74, 74, 74, 162, 162, 162, 162,
162, 162, 162, 179, 265, 266, 160, 180, 181, 222,
162, 162, 162, 179, 238, 239, 160, 180, 181, 222,
190, 192, 78, 163, 79, 79, 79, 79, 79, 79,
80, 191, 160, 754, 193, 223, 224, 217, 231, 163,
80, 191, 160, 756, 193, 223, 224, 217, 231, 163,
78, 81, 80, 80, 80, 80, 80, 80, 80, 214,
218, 232, 219, 753, 752, 215, 164, 81, 164, 81,
239, 165, 165, 165, 165, 165, 165, 165, 240, 309,
751, 259, 750, 310, 78, 81, 83, 83, 83, 83,
83, 83, 83, 202, 260, 749, 203, 204, 241, 748,
205, 326, 206, 81, 747, 249, 242, 249, 524, 327,
250, 250, 250, 250, 250, 250, 250, 746, 525, 81,
162, 162, 162, 162, 162, 162, 162, 295, 296, 297,
332, 333, 334, 251, 745, 251, 744, 163, 252, 252,
252, 252, 252, 252, 252, 165, 165, 165, 165, 165,
165, 165, 743, 163, 165, 165, 165, 165, 165, 165,
165, 250, 250, 250, 250, 250, 250, 250, 250, 250,
250, 250, 250, 250, 250, 252, 252, 252, 252, 252,
252, 252, 252, 252, 252, 252, 252, 252, 252, 343,
344, 345, 355, 356, 357, 363, 364, 365, 367, 368,
369, 378, 379, 380, 429, 430, 431, 476, 477, 478,
502, 503, 504, 742, 741, 526, 740, 432, 433, 608,
479, 480, 739, 505, 506, 527, 541, 542, 543, 609,
572, 573, 590, 591, 610, 738, 611, 612, 737, 544,
545, 736, 546, 574, 735, 592, 58, 58, 58, 58,
92, 92, 159, 159, 161, 734, 161, 161, 733, 732,
731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
721, 720, 719, 718, 717, 716, 715, 714, 713, 712,
711, 710, 709, 708, 707, 706, 705, 704, 703, 702,
701, 700, 699, 698, 697, 696, 695, 694, 693, 692,
691, 690, 689, 688, 687, 686, 685, 684, 683, 682,
681, 680, 679, 678, 677, 676, 675, 674, 673, 672,
671, 670, 669, 668, 667, 666, 665, 664, 663, 662,
661, 660, 659, 658, 657, 656, 655, 654, 651, 650,
649, 648, 647, 646, 645, 644, 643, 642, 641, 640,
639, 638, 637, 634, 633, 632, 631, 630, 629, 628,
627, 626, 625, 624, 623, 622, 621, 620, 619, 618,
617, 616, 615, 614, 613, 607, 606, 605, 604, 603,
602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
589, 588, 587, 586, 585, 584, 583, 582, 581, 580,
579, 578, 577, 576, 575, 571, 570, 569, 568, 567,
566, 565, 564, 563, 562, 561, 560, 559, 558, 557,
556, 555, 554, 553, 552, 551, 550, 549, 548, 547,
540, 539, 538, 537, 536, 535, 534, 533, 532, 531,
530, 529, 528, 523, 522, 521, 520, 519, 518, 517,
516, 515, 514, 513, 512, 511, 510, 509, 508, 507,
501, 500, 499, 498, 497, 496, 495, 494, 493, 492,
491, 490, 489, 488, 487, 486, 485, 484, 483, 482,
481, 475, 474, 473, 472, 471, 470, 469, 468, 467,
466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
456, 455, 454, 453, 452, 451, 450, 449, 448, 447,
446, 445, 444, 443, 442, 441, 440, 439, 438, 437,
436, 435, 434, 428, 427, 426, 425, 424, 423, 422,
421, 420, 419, 418, 417, 416, 415, 414, 413, 412,
411, 410, 409, 408, 407, 406, 405, 404, 403, 402,
401, 400, 399, 398, 397, 396, 395, 394, 393, 392,
391, 390, 389, 388, 387, 386, 385, 384, 383, 382,
381, 377, 376, 375, 374, 373, 372, 371, 370, 366,
362, 361, 360, 359, 358, 354, 353, 352, 351, 350,
349, 348, 347, 346, 342, 341, 340, 339, 338, 337,
336, 335, 331, 330, 329, 328, 325, 324, 323, 322,
321, 320, 319, 318, 317, 316, 315, 314, 313, 312,
311, 308, 307, 306, 305, 304, 303, 302, 301, 300,
299, 298, 294, 293, 292, 291, 290, 289, 288, 287,
286, 285, 284, 283, 282, 281, 280, 279, 278, 277,
276, 275, 274, 273, 272, 271, 270, 269, 268, 267,
264, 263, 262, 261, 258, 257, 256, 255, 254, 253,
248, 247, 244, 243, 238, 237, 236, 235, 234, 233,
228, 227, 226, 225, 221, 220, 216, 213, 212, 211,
208, 207, 201, 200, 199, 198, 197, 196, 195, 194,
189, 188, 187, 186, 185, 184, 183, 182, 178, 177,
176, 175, 174, 173, 170, 169, 168, 167, 158, 136,
132, 127, 117, 89, 84, 69, 64, 758, 7, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758
218, 232, 219, 266, 267, 215, 164, 81, 164, 81,
240, 165, 165, 165, 165, 165, 165, 165, 241, 310,
755, 260, 754, 311, 78, 81, 83, 83, 83, 83,
83, 83, 83, 202, 261, 753, 203, 204, 242, 752,
205, 328, 206, 81, 751, 250, 243, 250, 526, 329,
251, 251, 251, 251, 251, 251, 251, 750, 527, 81,
162, 162, 162, 162, 162, 162, 162, 296, 297, 298,
334, 335, 336, 252, 749, 252, 748, 163, 253, 253,
253, 253, 253, 253, 253, 165, 165, 165, 165, 165,
165, 165, 747, 163, 165, 165, 165, 165, 165, 165,
165, 251, 251, 251, 251, 251, 251, 251, 251, 251,
251, 251, 251, 251, 251, 253, 253, 253, 253, 253,
253, 253, 253, 253, 253, 253, 253, 253, 253, 345,
346, 347, 357, 358, 359, 365, 366, 367, 369, 370,
371, 380, 381, 382, 431, 432, 433, 478, 479, 480,
504, 505, 506, 746, 745, 528, 744, 434, 435, 610,
481, 482, 743, 507, 508, 529, 543, 544, 545, 611,
574, 575, 592, 593, 612, 742, 613, 614, 741, 546,
547, 740, 548, 576, 739, 594, 58, 58, 58, 58,
92, 92, 159, 159, 161, 738, 161, 161, 737, 736,
735, 734, 733, 732, 731, 730, 729, 728, 727, 726,
725, 724, 723, 722, 721, 720, 719, 718, 717, 716,
715, 714, 713, 712, 711, 710, 709, 708, 707, 706,
705, 704, 703, 702, 701, 700, 699, 698, 697, 696,
695, 694, 693, 692, 691, 690, 689, 688, 687, 686,
685, 684, 683, 682, 681, 680, 679, 678, 677, 676,
675, 674, 673, 672, 671, 670, 669, 668, 667, 666,
665, 664, 663, 662, 661, 660, 659, 658, 657, 656,
653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
643, 642, 641, 640, 639, 636, 635, 634, 633, 632,
631, 630, 629, 628, 627, 626, 625, 624, 623, 622,
621, 620, 619, 618, 617, 616, 615, 609, 608, 607,
606, 605, 604, 603, 602, 601, 600, 599, 598, 597,
596, 595, 591, 590, 589, 588, 587, 586, 585, 584,
583, 582, 581, 580, 579, 578, 577, 573, 572, 571,
570, 569, 568, 567, 566, 565, 564, 563, 562, 561,
560, 559, 558, 557, 556, 555, 554, 553, 552, 551,
550, 549, 542, 541, 540, 539, 538, 537, 536, 535,
534, 533, 532, 531, 530, 525, 524, 523, 522, 521,
520, 519, 518, 517, 516, 515, 514, 513, 512, 511,
510, 509, 503, 502, 501, 500, 499, 498, 497, 496,
495, 494, 493, 492, 491, 490, 489, 488, 487, 486,
485, 484, 483, 477, 476, 475, 474, 473, 472, 471,
470, 469, 468, 467, 466, 465, 464, 463, 462, 461,
460, 459, 458, 457, 456, 455, 454, 453, 452, 451,
450, 449, 448, 447, 446, 445, 444, 443, 442, 441,
440, 439, 438, 437, 436, 430, 429, 428, 427, 426,
425, 424, 423, 422, 421, 420, 419, 418, 417, 416,
415, 414, 413, 412, 411, 410, 409, 408, 407, 406,
405, 404, 403, 402, 401, 400, 399, 398, 397, 396,
395, 394, 393, 392, 391, 390, 389, 388, 387, 386,
385, 384, 383, 379, 378, 377, 376, 375, 374, 373,
372, 368, 364, 363, 362, 361, 360, 356, 355, 354,
353, 352, 351, 350, 349, 348, 344, 343, 342, 341,
340, 339, 338, 337, 333, 332, 331, 330, 327, 326,
325, 324, 323, 322, 321, 320, 319, 318, 317, 316,
315, 314, 313, 312, 309, 308, 307, 306, 305, 304,
303, 302, 301, 300, 299, 295, 294, 293, 292, 291,
290, 289, 288, 287, 286, 285, 284, 283, 282, 281,
280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
270, 269, 268, 265, 264, 263, 262, 259, 258, 257,
256, 255, 254, 249, 248, 245, 244, 237, 236, 235,
234, 233, 228, 227, 226, 225, 221, 220, 216, 213,
212, 211, 208, 207, 201, 200, 199, 198, 197, 196,
195, 194, 189, 188, 187, 186, 185, 184, 183, 182,
178, 177, 176, 175, 174, 173, 170, 169, 168, 167,
158, 136, 132, 127, 117, 89, 84, 69, 64, 760,
7, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760
} ;
static yyconst flex_int16_t yy_chk[1061] =
static yyconst flex_int16_t yy_chk[1063] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
......@@ -848,108 +849,109 @@ static yyconst flex_int16_t yy_chk[1061] =
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
13, 17, 19, 20, 20, 20, 20, 20, 20, 20,
33, 34, 21, 53, 127, 19, 17, 21, 35, 13,
35, 53, 127, 763, 35, 34, 34, 33, 21, 22,
26, 22, 22, 22, 22, 22, 22, 22, 23, 755,
35, 53, 127, 765, 35, 34, 34, 33, 21, 22,
26, 22, 22, 22, 22, 22, 22, 22, 23, 757,
23, 23, 23, 23, 23, 23, 23, 26, 22, 26,
26, 153, 36, 153, 37, 22, 36, 23, 37, 38,
55, 38, 36, 37, 22, 36, 39, 41, 44, 37,
38, 753, 44, 23, 39, 41, 39, 42, 47, 39,
42, 22, 45, 42, 42, 39, 41, 605, 42, 605,
49, 42, 623, 47, 623, 45, 47, 49, 49, 141,
38, 755, 44, 23, 39, 41, 39, 42, 47, 39,
42, 22, 45, 42, 42, 39, 41, 607, 42, 607,
49, 42, 625, 47, 625, 45, 47, 49, 49, 141,
50, 49, 52, 50, 55, 51, 52, 49, 49, 51,
49, 50, 97, 51, 141, 52, 97, 752, 50, 74,
49, 50, 97, 51, 141, 52, 97, 754, 50, 74,
74, 74, 74, 74, 74, 74, 78, 78, 78, 78,
78, 78, 78, 104, 181, 181, 74, 104, 104, 136,
78, 78, 78, 104, 148, 148, 74, 104, 104, 136,
113, 114, 79, 78, 79, 79, 79, 79, 79, 79,
79, 113, 74, 748, 114, 136, 136, 133, 142, 78,
79, 113, 74, 750, 114, 136, 136, 133, 142, 78,
80, 79, 80, 80, 80, 80, 80, 80, 80, 131,
133, 142, 133, 747, 746, 131, 81, 79, 81, 80,
133, 142, 133, 181, 181, 131, 81, 79, 81, 80,
149, 81, 81, 81, 81, 81, 81, 81, 149, 223,
744, 176, 743, 223, 83, 80, 83, 83, 83, 83,
83, 83, 83, 124, 176, 742, 124, 124, 150, 741,
124, 239, 124, 83, 740, 160, 150, 160, 481, 239,
160, 160, 160, 160, 160, 160, 160, 738, 481, 83,
749, 176, 748, 223, 83, 80, 83, 83, 83, 83,
83, 83, 83, 124, 176, 746, 124, 124, 150, 745,
124, 240, 124, 83, 744, 160, 150, 160, 483, 240,
160, 160, 160, 160, 160, 160, 160, 743, 483, 83,
162, 162, 162, 162, 162, 162, 162, 211, 211, 211,
244, 244, 244, 163, 737, 163, 736, 162, 163, 163,
245, 245, 245, 163, 742, 163, 740, 162, 163, 163,
163, 163, 163, 163, 163, 164, 164, 164, 164, 164,
164, 164, 735, 162, 165, 165, 165, 165, 165, 165,
165, 249, 249, 249, 249, 249, 249, 249, 250, 250,
250, 250, 250, 250, 250, 251, 251, 251, 251, 251,
251, 251, 252, 252, 252, 252, 252, 252, 252, 258,
258, 258, 270, 270, 270, 279, 279, 279, 283, 283,
283, 292, 292, 292, 371, 371, 371, 428, 428, 428,
461, 461, 461, 734, 732, 482, 730, 371, 371, 579,
428, 428, 729, 461, 461, 482, 498, 498, 498, 579,
532, 532, 555, 555, 580, 727, 580, 580, 726, 498,
498, 724, 498, 532, 723, 555, 759, 759, 759, 759,
760, 760, 761, 761, 762, 720, 762, 762, 719, 718,
717, 716, 715, 714, 713, 710, 709, 708, 707, 706,
705, 704, 703, 700, 697, 696, 695, 694, 693, 691,
690, 689, 688, 686, 684, 681, 680, 679, 678, 676,
675, 674, 673, 672, 671, 670, 669, 668, 667, 666,
665, 664, 663, 662, 661, 660, 659, 658, 656, 655,
654, 653, 652, 651, 650, 649, 648, 647, 645, 644,
643, 642, 641, 640, 639, 638, 637, 636, 635, 634,
632, 631, 630, 629, 628, 627, 626, 624, 622, 620,
619, 618, 616, 615, 614, 613, 612, 611, 610, 609,
608, 607, 606, 604, 603, 602, 601, 600, 599, 597,
596, 595, 594, 592, 591, 590, 589, 588, 587, 586,
585, 584, 583, 582, 581, 576, 574, 573, 572, 568,
567, 566, 565, 564, 563, 562, 561, 560, 558, 557,
553, 552, 550, 549, 547, 546, 545, 544, 543, 542,
541, 537, 536, 535, 533, 531, 530, 529, 528, 527,
526, 525, 524, 523, 522, 520, 519, 514, 513, 512,
511, 509, 508, 506, 505, 504, 503, 502, 500, 499,
497, 496, 495, 494, 493, 492, 491, 490, 488, 487,
486, 485, 484, 480, 479, 478, 477, 476, 475, 472,
471, 470, 469, 468, 467, 466, 465, 464, 463, 462,
460, 459, 456, 451, 449, 448, 447, 445, 444, 441,
440, 439, 438, 437, 436, 435, 433, 432, 431, 430,
429, 426, 424, 423, 422, 420, 419, 418, 417, 415,
413, 412, 410, 409, 407, 406, 405, 404, 403, 402,
401, 400, 399, 398, 397, 395, 394, 393, 392, 391,
390, 389, 387, 386, 385, 384, 383, 382, 381, 377,
376, 375, 372, 370, 360, 358, 354, 353, 352, 351,
349, 348, 346, 341, 340, 339, 338, 337, 336, 331,
330, 329, 328, 327, 326, 325, 324, 321, 320, 319,
318, 317, 316, 315, 314, 313, 312, 311, 310, 309,
308, 307, 306, 305, 304, 303, 302, 301, 300, 299,
298, 291, 290, 289, 288, 287, 286, 285, 284, 282,
278, 276, 275, 274, 273, 269, 268, 267, 266, 265,
264, 263, 262, 261, 257, 255, 254, 253, 248, 247,
246, 245, 243, 242, 241, 240, 238, 237, 236, 235,
234, 233, 232, 231, 230, 229, 228, 227, 226, 225,
224, 222, 221, 220, 219, 218, 217, 216, 215, 214,
213, 212, 210, 209, 208, 207, 206, 205, 204, 203,
202, 201, 200, 199, 198, 197, 196, 195, 193, 192,
191, 190, 189, 188, 187, 186, 185, 184, 183, 182,
180, 179, 178, 177, 175, 174, 173, 172, 171, 169,
155, 154, 152, 151, 148, 147, 146, 145, 144, 143,
140, 139, 138, 137, 135, 134, 132, 130, 129, 128,
126, 125, 123, 122, 120, 119, 118, 117, 116, 115,
112, 111, 110, 109, 108, 107, 106, 105, 103, 102,
101, 100, 99, 98, 96, 95, 91, 87, 60, 48,
46, 43, 40, 27, 24, 16, 11, 7, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
758, 758, 758, 758, 758, 758, 758, 758, 758, 758
164, 164, 739, 162, 165, 165, 165, 165, 165, 165,
165, 250, 250, 250, 250, 250, 250, 250, 251, 251,
251, 251, 251, 251, 251, 252, 252, 252, 252, 252,
252, 252, 253, 253, 253, 253, 253, 253, 253, 259,
259, 259, 271, 271, 271, 280, 280, 280, 284, 284,
284, 293, 293, 293, 373, 373, 373, 430, 430, 430,
463, 463, 463, 738, 737, 484, 736, 373, 373, 581,
430, 430, 734, 463, 463, 484, 500, 500, 500, 581,
534, 534, 557, 557, 582, 732, 582, 582, 731, 500,
500, 729, 500, 534, 728, 557, 761, 761, 761, 761,
762, 762, 763, 763, 764, 726, 764, 764, 725, 722,
721, 720, 719, 718, 717, 716, 715, 712, 711, 710,
709, 708, 707, 706, 705, 702, 699, 698, 697, 696,
695, 693, 692, 691, 690, 688, 686, 683, 682, 681,
680, 678, 677, 676, 675, 674, 673, 672, 671, 670,
669, 668, 667, 666, 665, 664, 663, 662, 661, 660,
658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
637, 636, 634, 633, 632, 631, 630, 629, 628, 626,
624, 622, 621, 620, 618, 617, 616, 615, 614, 613,
612, 611, 610, 609, 608, 606, 605, 604, 603, 602,
601, 599, 598, 597, 596, 594, 593, 592, 591, 590,
589, 588, 587, 586, 585, 584, 583, 578, 576, 575,
574, 570, 569, 568, 567, 566, 565, 564, 563, 562,
560, 559, 555, 554, 552, 551, 549, 548, 547, 546,
545, 544, 543, 539, 538, 537, 535, 533, 532, 531,
530, 529, 528, 527, 526, 525, 524, 522, 521, 516,
515, 514, 513, 511, 510, 508, 507, 506, 505, 504,
502, 501, 499, 498, 497, 496, 495, 494, 493, 492,
490, 489, 488, 487, 486, 482, 481, 480, 479, 478,
477, 474, 473, 472, 471, 470, 469, 468, 467, 466,
465, 464, 462, 461, 458, 453, 451, 450, 449, 447,
446, 443, 442, 441, 440, 439, 438, 437, 435, 434,
433, 432, 431, 428, 426, 425, 424, 422, 421, 420,
419, 417, 415, 414, 412, 411, 409, 408, 407, 406,
405, 404, 403, 402, 401, 400, 399, 397, 396, 395,
394, 393, 392, 391, 389, 388, 387, 386, 385, 384,
383, 379, 378, 377, 374, 372, 362, 360, 356, 355,
354, 353, 351, 350, 348, 343, 342, 341, 340, 339,
338, 333, 332, 331, 330, 329, 328, 326, 325, 322,
321, 320, 319, 318, 317, 316, 315, 314, 313, 312,
311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
301, 300, 299, 292, 291, 290, 289, 288, 287, 286,
285, 283, 279, 277, 276, 275, 274, 270, 269, 268,
267, 266, 265, 264, 263, 262, 258, 256, 255, 254,
249, 248, 247, 246, 244, 243, 242, 241, 239, 238,
237, 236, 235, 234, 233, 232, 231, 230, 229, 228,
227, 226, 225, 224, 222, 221, 220, 219, 218, 217,
216, 215, 214, 213, 212, 210, 209, 208, 207, 206,
205, 204, 203, 202, 201, 200, 199, 198, 197, 196,
195, 193, 192, 191, 190, 189, 188, 187, 186, 185,
184, 183, 182, 180, 179, 178, 177, 175, 174, 173,
172, 171, 169, 155, 154, 152, 151, 147, 146, 145,
144, 143, 140, 139, 138, 137, 135, 134, 132, 130,
129, 128, 126, 125, 123, 122, 120, 119, 118, 117,
116, 115, 112, 111, 110, 109, 108, 107, 106, 105,
103, 102, 101, 100, 99, 98, 96, 95, 91, 87,
60, 48, 46, 43, 40, 27, 24, 16, 11, 7,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
760, 760
} ;
/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[215] =
static yyconst flex_int32_t yy_rule_can_match_eol[216] =
{ 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
......@@ -961,7 +963,7 @@ static yyconst flex_int32_t yy_rule_can_match_eol[215] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
......@@ -1005,6 +1007,7 @@ static int check_type(yyscan_t yyscanner);
static int reserved_word(yyscan_t yyscanner);
static int ES2_reserved_ES3_keyword(TParseContext *context, int token);
static int ES2_keyword_ES3_reserved(TParseContext *context, int token);
static int ES2_identifier_ES3_keyword(TParseContext *context, int token);
#define INITIAL 0
#define COMMENT 1
......@@ -1295,13 +1298,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 759 )
if ( yy_current_state >= 761 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
while ( yy_current_state != 758 );
while ( yy_current_state != 760 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
......@@ -1462,106 +1465,109 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
{ context->lexAfterType = true; return(VOID_TYPE); }
{ return ES2_identifier_ES3_keyword(context, UINT_TYPE); }
YY_BREAK
case 34:
YY_RULE_SETUP
{ context->lexAfterType = true; return(BOOL_TYPE); }
{ context->lexAfterType = true; return(VOID_TYPE); }
YY_BREAK
case 35:
YY_RULE_SETUP
{ yylval->lex.b = true; return(BOOLCONSTANT); }
{ context->lexAfterType = true; return(BOOL_TYPE); }
YY_BREAK
case 36:
YY_RULE_SETUP
{ yylval->lex.b = false; return(BOOLCONSTANT); }
{ yylval->lex.b = true; return(BOOLCONSTANT); }
YY_BREAK
case 37:
YY_RULE_SETUP
{ return(DISCARD); }
{ yylval->lex.b = false; return(BOOLCONSTANT); }
YY_BREAK
case 38:
YY_RULE_SETUP
{ return(RETURN); }
{ return(DISCARD); }
YY_BREAK
case 39:
YY_RULE_SETUP
{ context->lexAfterType = true; return(MATRIX2); }
{ return(RETURN); }
YY_BREAK
case 40:
YY_RULE_SETUP
{ context->lexAfterType = true; return(MATRIX3); }
{ context->lexAfterType = true; return(MATRIX2); }
YY_BREAK
case 41:
YY_RULE_SETUP
{ context->lexAfterType = true; return(MATRIX4); }
{ context->lexAfterType = true; return(MATRIX3); }
YY_BREAK
case 42:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC2); }
{ context->lexAfterType = true; return(MATRIX4); }
YY_BREAK
case 43:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC3); }
{ context->lexAfterType = true; return (VEC2); }
YY_BREAK
case 44:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC4); }
{ context->lexAfterType = true; return (VEC3); }
YY_BREAK
case 45:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC2); }
{ context->lexAfterType = true; return (VEC4); }
YY_BREAK
case 46:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC3); }
{ context->lexAfterType = true; return (IVEC2); }
YY_BREAK
case 47:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC4); }
{ context->lexAfterType = true; return (IVEC3); }
YY_BREAK
case 48:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC2); }
{ context->lexAfterType = true; return (IVEC4); }
YY_BREAK
case 49:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC3); }
{ context->lexAfterType = true; return (BVEC2); }
YY_BREAK
case 50:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC4); }
{ context->lexAfterType = true; return (BVEC3); }
YY_BREAK
case 51:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER2D; }
{ context->lexAfterType = true; return (BVEC4); }
YY_BREAK
case 52:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLERCUBE; }
{ context->lexAfterType = true; return SAMPLER2D; }
YY_BREAK
case 53:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
{ context->lexAfterType = true; return SAMPLERCUBE; }
YY_BREAK
case 54:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER3D; }
{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
YY_BREAK
case 55:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
{ context->lexAfterType = true; return SAMPLER3D; }
YY_BREAK
case 56:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
YY_BREAK
case 57:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
YY_BREAK
case 58:
YY_RULE_SETUP
{ context->lexAfterType = true; return(STRUCT); }
YY_BREAK
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
case 58:
case 59:
case 60:
case 61:
......@@ -1617,6 +1623,7 @@ case 110:
case 111:
case 112:
case 113:
case 114:
YY_RULE_SETUP
{
if (context->shaderVersion < 300) {
......@@ -1627,7 +1634,6 @@ YY_RULE_SETUP
}
YY_BREAK
/* Reserved keywords */
case 114:
case 115:
case 116:
case 117:
......@@ -1670,35 +1676,32 @@ case 153:
case 154:
case 155:
case 156:
case 157:
YY_RULE_SETUP
{ return reserved_word(yyscanner); }
YY_BREAK
case 157:
case 158:
YY_RULE_SETUP
{
yylval->lex.string = NewPoolTString(yytext);
return check_type(yyscanner);
}
YY_BREAK
case 158:
YY_RULE_SETUP
{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); }
YY_BREAK
case 159:
YY_RULE_SETUP
{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); }
YY_BREAK
case 160:
YY_RULE_SETUP
{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;}
{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); }
YY_BREAK
case 161:
YY_RULE_SETUP
{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); }
{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;}
YY_BREAK
case 162:
YY_RULE_SETUP
{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); }
{ yylval->lex.i = strtol(yytext, 0, 0); return(INTCONSTANT); }
YY_BREAK
case 163:
YY_RULE_SETUP
......@@ -1710,198 +1713,202 @@ YY_RULE_SETUP
YY_BREAK
case 165:
YY_RULE_SETUP
{ return(ADD_ASSIGN); }
{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); }
YY_BREAK
case 166:
YY_RULE_SETUP
{ return(SUB_ASSIGN); }
{ return(ADD_ASSIGN); }
YY_BREAK
case 167:
YY_RULE_SETUP
{ return(MUL_ASSIGN); }
{ return(SUB_ASSIGN); }
YY_BREAK
case 168:
YY_RULE_SETUP
{ return(DIV_ASSIGN); }
{ return(MUL_ASSIGN); }
YY_BREAK
case 169:
YY_RULE_SETUP
{ return(MOD_ASSIGN); }
{ return(DIV_ASSIGN); }
YY_BREAK
case 170:
YY_RULE_SETUP
{ return(LEFT_ASSIGN); }
{ return(MOD_ASSIGN); }
YY_BREAK
case 171:
YY_RULE_SETUP
{ return(RIGHT_ASSIGN); }
{ return(LEFT_ASSIGN); }
YY_BREAK
case 172:
YY_RULE_SETUP
{ return(AND_ASSIGN); }
{ return(RIGHT_ASSIGN); }
YY_BREAK
case 173:
YY_RULE_SETUP
{ return(XOR_ASSIGN); }
{ return(AND_ASSIGN); }
YY_BREAK
case 174:
YY_RULE_SETUP
{ return(OR_ASSIGN); }
{ return(XOR_ASSIGN); }
YY_BREAK
case 175:
YY_RULE_SETUP
{ return(INC_OP); }
{ return(OR_ASSIGN); }
YY_BREAK
case 176:
YY_RULE_SETUP
{ return(DEC_OP); }
{ return(INC_OP); }
YY_BREAK
case 177:
YY_RULE_SETUP
{ return(AND_OP); }
{ return(DEC_OP); }
YY_BREAK
case 178:
YY_RULE_SETUP
{ return(OR_OP); }
{ return(AND_OP); }
YY_BREAK
case 179:
YY_RULE_SETUP
{ return(XOR_OP); }
{ return(OR_OP); }
YY_BREAK
case 180:
YY_RULE_SETUP
{ return(LE_OP); }
{ return(XOR_OP); }
YY_BREAK
case 181:
YY_RULE_SETUP
{ return(GE_OP); }
{ return(LE_OP); }
YY_BREAK
case 182:
YY_RULE_SETUP
{ return(EQ_OP); }
{ return(GE_OP); }
YY_BREAK
case 183:
YY_RULE_SETUP
{ return(NE_OP); }
{ return(EQ_OP); }
YY_BREAK
case 184:
YY_RULE_SETUP
{ return(LEFT_OP); }
{ return(NE_OP); }
YY_BREAK
case 185:
YY_RULE_SETUP
{ return(RIGHT_OP); }
{ return(LEFT_OP); }
YY_BREAK
case 186:
YY_RULE_SETUP
{ context->lexAfterType = false; return(SEMICOLON); }
{ return(RIGHT_OP); }
YY_BREAK
case 187:
YY_RULE_SETUP
{ context->lexAfterType = false; return(LEFT_BRACE); }
{ context->lexAfterType = false; return(SEMICOLON); }
YY_BREAK
case 188:
YY_RULE_SETUP
{ return(RIGHT_BRACE); }
{ context->lexAfterType = false; return(LEFT_BRACE); }
YY_BREAK
case 189:
YY_RULE_SETUP
{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); }
{ return(RIGHT_BRACE); }
YY_BREAK
case 190:
YY_RULE_SETUP
{ return(COLON); }
{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); }
YY_BREAK
case 191:
YY_RULE_SETUP
{ context->lexAfterType = false; return(EQUAL); }
{ return(COLON); }
YY_BREAK
case 192:
YY_RULE_SETUP
{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); }
{ context->lexAfterType = false; return(EQUAL); }
YY_BREAK
case 193:
YY_RULE_SETUP
{ context->inTypeParen = false; return(RIGHT_PAREN); }
{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); }
YY_BREAK
case 194:
YY_RULE_SETUP
{ return(LEFT_BRACKET); }
{ context->inTypeParen = false; return(RIGHT_PAREN); }
YY_BREAK
case 195:
YY_RULE_SETUP
{ return(RIGHT_BRACKET); }
{ return(LEFT_BRACKET); }
YY_BREAK
case 196:
YY_RULE_SETUP
{ BEGIN(FIELDS); return(DOT); }
{ return(RIGHT_BRACKET); }
YY_BREAK
case 197:
YY_RULE_SETUP
{ return(BANG); }
{ BEGIN(FIELDS); return(DOT); }
YY_BREAK
case 198:
YY_RULE_SETUP
{ return(DASH); }
{ return(BANG); }
YY_BREAK
case 199:
YY_RULE_SETUP
{ return(TILDE); }
{ return(DASH); }
YY_BREAK
case 200:
YY_RULE_SETUP
{ return(PLUS); }
{ return(TILDE); }
YY_BREAK
case 201:
YY_RULE_SETUP
{ return(STAR); }
{ return(PLUS); }
YY_BREAK
case 202:
YY_RULE_SETUP
{ return(SLASH); }
{ return(STAR); }
YY_BREAK
case 203:
YY_RULE_SETUP
{ return(PERCENT); }
{ return(SLASH); }
YY_BREAK
case 204:
YY_RULE_SETUP
{ return(LEFT_ANGLE); }
{ return(PERCENT); }
YY_BREAK
case 205:
YY_RULE_SETUP
{ return(RIGHT_ANGLE); }
{ return(LEFT_ANGLE); }
YY_BREAK
case 206:
YY_RULE_SETUP
{ return(VERTICAL_BAR); }
{ return(RIGHT_ANGLE); }
YY_BREAK
case 207:
YY_RULE_SETUP
{ return(CARET); }
{ return(VERTICAL_BAR); }
YY_BREAK
case 208:
YY_RULE_SETUP
{ return(AMPERSAND); }
{ return(CARET); }
YY_BREAK
case 209:
YY_RULE_SETUP
{ return(QUESTION); }
{ return(AMPERSAND); }
YY_BREAK
case 210:
YY_RULE_SETUP
{ return(QUESTION); }
YY_BREAK
case 211:
YY_RULE_SETUP
{
BEGIN(INITIAL);
yylval->lex.string = NewPoolTString(yytext);
return FIELD_SELECTION;
}
YY_BREAK
case 211:
case 212:
YY_RULE_SETUP
{}
YY_BREAK
case 212:
/* rule 212 can match eol */
case 213:
/* rule 213 can match eol */
YY_RULE_SETUP
{ }
YY_BREAK
......@@ -1910,11 +1917,11 @@ case YY_STATE_EOF(COMMENT):
case YY_STATE_EOF(FIELDS):
{ context->AfterEOF = true; yyterminate(); }
YY_BREAK
case 213:
case 214:
YY_RULE_SETUP
{ context->warning(yylineno, "Unknown char", yytext, ""); return 0; }
YY_BREAK
case 214:
case 215:
YY_RULE_SETUP
ECHO;
YY_BREAK
......@@ -2210,7 +2217,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 759 )
if ( yy_current_state >= 761 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
......@@ -2239,11 +2246,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 759 )
if ( yy_current_state >= 761 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 758);
yy_is_jam = (yy_current_state == 760);
return yy_is_jam ? 0 : yy_current_state;
}
......@@ -3154,6 +3161,21 @@ int ES2_keyword_ES3_reserved(TParseContext *context, int token)
return token;
}
int ES2_identifier_ES3_keyword(TParseContext *context, int token)
{
struct yyguts_t* yyg = (struct yyguts_t*) context->scanner;
yyscan_t yyscanner = (yyscan_t) context->scanner;
// not a reserved word in GLSL ES 1.00, so could be used as an identifier/type name
if (context->shaderVersion < 300)
{
yylval->lex.string = NewPoolTString(yytext);
return check_type(yyscanner);
}
return token;
}
void yyerror(TParseContext* context, const char* reason) {
struct yyguts_t* yyg = (struct yyguts_t*) context->scanner;
......
......@@ -133,98 +133,99 @@
BOOL_TYPE = 265,
FLOAT_TYPE = 266,
INT_TYPE = 267,
BREAK = 268,
CONTINUE = 269,
DO = 270,
ELSE = 271,
FOR = 272,
IF = 273,
DISCARD = 274,
RETURN = 275,
SWITCH = 276,
CASE = 277,
DEFAULT = 278,
BVEC2 = 279,
BVEC3 = 280,
BVEC4 = 281,
IVEC2 = 282,
IVEC3 = 283,
IVEC4 = 284,
VEC2 = 285,
VEC3 = 286,
VEC4 = 287,
MATRIX2 = 288,
MATRIX3 = 289,
MATRIX4 = 290,
IN_QUAL = 291,
OUT_QUAL = 292,
INOUT_QUAL = 293,
UNIFORM = 294,
VARYING = 295,
CENTROID = 296,
FLAT = 297,
SMOOTH = 298,
STRUCT = 299,
VOID_TYPE = 300,
WHILE = 301,
SAMPLER2D = 302,
SAMPLERCUBE = 303,
SAMPLER_EXTERNAL_OES = 304,
SAMPLER2DRECT = 305,
SAMPLER3D = 306,
SAMPLER3DRECT = 307,
SAMPLER2DSHADOW = 308,
IDENTIFIER = 309,
TYPE_NAME = 310,
FLOATCONSTANT = 311,
INTCONSTANT = 312,
BOOLCONSTANT = 313,
FIELD_SELECTION = 314,
LEFT_OP = 315,
RIGHT_OP = 316,
INC_OP = 317,
DEC_OP = 318,
LE_OP = 319,
GE_OP = 320,
EQ_OP = 321,
NE_OP = 322,
AND_OP = 323,
OR_OP = 324,
XOR_OP = 325,
MUL_ASSIGN = 326,
DIV_ASSIGN = 327,
ADD_ASSIGN = 328,
MOD_ASSIGN = 329,
LEFT_ASSIGN = 330,
RIGHT_ASSIGN = 331,
AND_ASSIGN = 332,
XOR_ASSIGN = 333,
OR_ASSIGN = 334,
SUB_ASSIGN = 335,
LEFT_PAREN = 336,
RIGHT_PAREN = 337,
LEFT_BRACKET = 338,
RIGHT_BRACKET = 339,
LEFT_BRACE = 340,
RIGHT_BRACE = 341,
DOT = 342,
COMMA = 343,
COLON = 344,
EQUAL = 345,
SEMICOLON = 346,
BANG = 347,
DASH = 348,
TILDE = 349,
PLUS = 350,
STAR = 351,
SLASH = 352,
PERCENT = 353,
LEFT_ANGLE = 354,
RIGHT_ANGLE = 355,
VERTICAL_BAR = 356,
CARET = 357,
AMPERSAND = 358,
QUESTION = 359
UINT_TYPE = 268,
BREAK = 269,
CONTINUE = 270,
DO = 271,
ELSE = 272,
FOR = 273,
IF = 274,
DISCARD = 275,
RETURN = 276,
SWITCH = 277,
CASE = 278,
DEFAULT = 279,
BVEC2 = 280,
BVEC3 = 281,
BVEC4 = 282,
IVEC2 = 283,
IVEC3 = 284,
IVEC4 = 285,
VEC2 = 286,
VEC3 = 287,
VEC4 = 288,
MATRIX2 = 289,
MATRIX3 = 290,
MATRIX4 = 291,
IN_QUAL = 292,
OUT_QUAL = 293,
INOUT_QUAL = 294,
UNIFORM = 295,
VARYING = 296,
CENTROID = 297,
FLAT = 298,
SMOOTH = 299,
STRUCT = 300,
VOID_TYPE = 301,
WHILE = 302,
SAMPLER2D = 303,
SAMPLERCUBE = 304,
SAMPLER_EXTERNAL_OES = 305,
SAMPLER2DRECT = 306,
SAMPLER3D = 307,
SAMPLER3DRECT = 308,
SAMPLER2DSHADOW = 309,
IDENTIFIER = 310,
TYPE_NAME = 311,
FLOATCONSTANT = 312,
INTCONSTANT = 313,
BOOLCONSTANT = 314,
FIELD_SELECTION = 315,
LEFT_OP = 316,
RIGHT_OP = 317,
INC_OP = 318,
DEC_OP = 319,
LE_OP = 320,
GE_OP = 321,
EQ_OP = 322,
NE_OP = 323,
AND_OP = 324,
OR_OP = 325,
XOR_OP = 326,
MUL_ASSIGN = 327,
DIV_ASSIGN = 328,
ADD_ASSIGN = 329,
MOD_ASSIGN = 330,
LEFT_ASSIGN = 331,
RIGHT_ASSIGN = 332,
AND_ASSIGN = 333,
XOR_ASSIGN = 334,
OR_ASSIGN = 335,
SUB_ASSIGN = 336,
LEFT_PAREN = 337,
RIGHT_PAREN = 338,
LEFT_BRACKET = 339,
RIGHT_BRACKET = 340,
LEFT_BRACE = 341,
RIGHT_BRACE = 342,
DOT = 343,
COMMA = 344,
COLON = 345,
EQUAL = 346,
SEMICOLON = 347,
BANG = 348,
DASH = 349,
TILDE = 350,
PLUS = 351,
STAR = 352,
SLASH = 353,
PERCENT = 354,
LEFT_ANGLE = 355,
RIGHT_ANGLE = 356,
VERTICAL_BAR = 357,
CARET = 358,
AMPERSAND = 359,
QUESTION = 360
};
#endif
......@@ -529,22 +530,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 77
#define YYFINAL 78
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 1554
#define YYLAST 1562
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 105
#define YYNTOKENS 106
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 85
/* YYNRULES -- Number of rules. */
#define YYNRULES 207
#define YYNRULES 208
/* YYNRULES -- Number of states. */
#define YYNSTATES 311
#define YYNSTATES 312
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 359
#define YYMAXUTOK 360
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
......@@ -587,7 +588,8 @@ static const yytype_uint8 yytranslate[] =
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105
};
#if YYDEBUG
......@@ -609,103 +611,103 @@ static const yytype_uint16 yyprhs[] =
324, 326, 328, 331, 334, 336, 338, 341, 343, 345,
347, 349, 354, 356, 358, 360, 362, 364, 366, 368,
370, 372, 374, 376, 378, 380, 382, 384, 386, 388,
390, 392, 394, 396, 398, 399, 406, 407, 413, 415,
418, 422, 424, 428, 430, 435, 437, 439, 441, 443,
445, 447, 449, 451, 453, 456, 457, 458, 464, 466,
468, 469, 472, 473, 476, 479, 483, 485, 488, 490,
493, 499, 503, 505, 507, 512, 513, 520, 521, 530,
531, 539, 541, 543, 545, 546, 549, 553, 556, 559,
562, 566, 569, 571, 574, 576, 578, 579
390, 392, 394, 396, 398, 400, 401, 408, 409, 415,
417, 420, 424, 426, 430, 432, 437, 439, 441, 443,
445, 447, 449, 451, 453, 455, 458, 459, 460, 466,
468, 470, 471, 474, 475, 478, 481, 485, 487, 490,
492, 495, 501, 505, 507, 509, 514, 515, 522, 523,
532, 533, 541, 543, 545, 547, 548, 551, 555, 558,
561, 564, 568, 571, 573, 576, 578, 580, 581
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
186, 0, -1, 54, -1, 106, -1, 57, -1, 56,
-1, 58, -1, 81, 133, 82, -1, 107, -1, 108,
83, 109, 84, -1, 110, -1, 108, 87, 59, -1,
108, 62, -1, 108, 63, -1, 133, -1, 111, -1,
112, -1, 108, 87, 112, -1, 114, 82, -1, 113,
82, -1, 115, 45, -1, 115, -1, 115, 131, -1,
114, 88, 131, -1, 116, 81, -1, 153, -1, 54,
-1, 59, -1, 108, -1, 62, 117, -1, 63, 117,
-1, 118, 117, -1, 95, -1, 93, -1, 92, -1,
117, -1, 119, 96, 117, -1, 119, 97, 117, -1,
119, -1, 120, 95, 119, -1, 120, 93, 119, -1,
120, -1, 121, -1, 122, 99, 121, -1, 122, 100,
121, -1, 122, 64, 121, -1, 122, 65, 121, -1,
122, -1, 123, 66, 122, -1, 123, 67, 122, -1,
123, -1, 124, -1, 125, -1, 126, -1, 127, 68,
126, -1, 127, -1, 128, 70, 127, -1, 128, -1,
129, 69, 128, -1, 129, -1, 129, 104, 133, 89,
131, -1, 130, -1, 117, 132, 131, -1, 90, -1,
71, -1, 72, -1, 73, -1, 80, -1, 131, -1,
133, 88, 131, -1, 130, -1, 136, 91, -1, 144,
91, -1, 7, 151, 152, 91, -1, 137, 82, -1,
139, -1, 138, -1, 139, 141, -1, 138, 88, 141,
-1, 146, 54, 81, -1, 150, 54, -1, 150, 54,
83, 134, 84, -1, 147, 142, 140, -1, 142, 140,
-1, 147, 142, 143, -1, 142, 143, -1, -1, 36,
-1, 37, -1, 38, -1, 150, -1, 145, -1, 144,
88, 54, -1, 144, 88, 54, 83, 84, -1, 144,
88, 54, 83, 134, 84, -1, 144, 88, 54, 90,
161, -1, 146, -1, 146, 54, -1, 146, 54, 83,
84, -1, 146, 54, 83, 134, 84, -1, 146, 54,
90, 161, -1, 3, 54, -1, 150, -1, 148, 150,
-1, 9, -1, 8, -1, 40, -1, 3, 40, -1,
149, -1, 9, -1, 36, -1, 37, -1, 41, 36,
-1, 41, 37, -1, 39, -1, 152, -1, 151, 152,
-1, 4, -1, 5, -1, 6, -1, 153, -1, 153,
83, 134, 84, -1, 45, -1, 11, -1, 12, -1,
10, -1, 30, -1, 31, -1, 32, -1, 24, -1,
187, 0, -1, 55, -1, 107, -1, 58, -1, 57,
-1, 59, -1, 82, 134, 83, -1, 108, -1, 109,
84, 110, 85, -1, 111, -1, 109, 88, 60, -1,
109, 63, -1, 109, 64, -1, 134, -1, 112, -1,
113, -1, 109, 88, 113, -1, 115, 83, -1, 114,
83, -1, 116, 46, -1, 116, -1, 116, 132, -1,
115, 89, 132, -1, 117, 82, -1, 154, -1, 55,
-1, 60, -1, 109, -1, 63, 118, -1, 64, 118,
-1, 119, 118, -1, 96, -1, 94, -1, 93, -1,
118, -1, 120, 97, 118, -1, 120, 98, 118, -1,
120, -1, 121, 96, 120, -1, 121, 94, 120, -1,
121, -1, 122, -1, 123, 100, 122, -1, 123, 101,
122, -1, 123, 65, 122, -1, 123, 66, 122, -1,
123, -1, 124, 67, 123, -1, 124, 68, 123, -1,
124, -1, 125, -1, 126, -1, 127, -1, 128, 69,
127, -1, 128, -1, 129, 71, 128, -1, 129, -1,
130, 70, 129, -1, 130, -1, 130, 105, 134, 90,
132, -1, 131, -1, 118, 133, 132, -1, 91, -1,
72, -1, 73, -1, 74, -1, 81, -1, 132, -1,
134, 89, 132, -1, 131, -1, 137, 92, -1, 145,
92, -1, 7, 152, 153, 92, -1, 138, 83, -1,
140, -1, 139, -1, 140, 142, -1, 139, 89, 142,
-1, 147, 55, 82, -1, 151, 55, -1, 151, 55,
84, 135, 85, -1, 148, 143, 141, -1, 143, 141,
-1, 148, 143, 144, -1, 143, 144, -1, -1, 37,
-1, 38, -1, 39, -1, 151, -1, 146, -1, 145,
89, 55, -1, 145, 89, 55, 84, 85, -1, 145,
89, 55, 84, 135, 85, -1, 145, 89, 55, 91,
162, -1, 147, -1, 147, 55, -1, 147, 55, 84,
85, -1, 147, 55, 84, 135, 85, -1, 147, 55,
91, 162, -1, 3, 55, -1, 151, -1, 149, 151,
-1, 9, -1, 8, -1, 41, -1, 3, 41, -1,
150, -1, 9, -1, 37, -1, 38, -1, 42, 37,
-1, 42, 38, -1, 40, -1, 153, -1, 152, 153,
-1, 4, -1, 5, -1, 6, -1, 154, -1, 154,
84, 135, 85, -1, 46, -1, 11, -1, 12, -1,
13, -1, 10, -1, 31, -1, 32, -1, 33, -1,
25, -1, 26, -1, 27, -1, 28, -1, 29, -1,
33, -1, 34, -1, 35, -1, 47, -1, 48, -1,
49, -1, 51, -1, 154, -1, 55, -1, -1, 44,
54, 85, 155, 157, 86, -1, -1, 44, 85, 156,
157, 86, -1, 158, -1, 157, 158, -1, 150, 159,
91, -1, 160, -1, 159, 88, 160, -1, 54, -1,
54, 83, 134, 84, -1, 131, -1, 135, -1, 165,
-1, 164, -1, 162, -1, 174, -1, 175, -1, 178,
-1, 185, -1, 85, 86, -1, -1, -1, 85, 166,
173, 167, 86, -1, 172, -1, 164, -1, -1, 170,
172, -1, -1, 171, 164, -1, 85, 86, -1, 85,
173, 86, -1, 163, -1, 173, 163, -1, 91, -1,
133, 91, -1, 18, 81, 133, 82, 176, -1, 169,
16, 169, -1, 169, -1, 133, -1, 146, 54, 90,
161, -1, -1, 46, 81, 179, 177, 82, 168, -1,
-1, 15, 180, 169, 46, 81, 133, 82, 91, -1,
-1, 17, 81, 181, 182, 184, 82, 168, -1, 174,
-1, 162, -1, 177, -1, -1, 183, 91, -1, 183,
91, 133, -1, 14, 91, -1, 13, 91, -1, 20,
91, -1, 20, 133, 91, -1, 19, 91, -1, 187,
-1, 186, 187, -1, 188, -1, 135, -1, -1, 136,
189, 172, -1
30, -1, 34, -1, 35, -1, 36, -1, 48, -1,
49, -1, 50, -1, 52, -1, 155, -1, 56, -1,
-1, 45, 55, 86, 156, 158, 87, -1, -1, 45,
86, 157, 158, 87, -1, 159, -1, 158, 159, -1,
151, 160, 92, -1, 161, -1, 160, 89, 161, -1,
55, -1, 55, 84, 135, 85, -1, 132, -1, 136,
-1, 166, -1, 165, -1, 163, -1, 175, -1, 176,
-1, 179, -1, 186, -1, 86, 87, -1, -1, -1,
86, 167, 174, 168, 87, -1, 173, -1, 165, -1,
-1, 171, 173, -1, -1, 172, 165, -1, 86, 87,
-1, 86, 174, 87, -1, 164, -1, 174, 164, -1,
92, -1, 134, 92, -1, 19, 82, 134, 83, 177,
-1, 170, 17, 170, -1, 170, -1, 134, -1, 147,
55, 91, 162, -1, -1, 47, 82, 180, 178, 83,
169, -1, -1, 16, 181, 170, 47, 82, 134, 83,
92, -1, -1, 18, 82, 182, 183, 185, 83, 169,
-1, 175, -1, 163, -1, 178, -1, -1, 184, 92,
-1, 184, 92, 134, -1, 15, 92, -1, 14, 92,
-1, 21, 92, -1, 21, 134, 92, -1, 20, 92,
-1, 188, -1, 187, 188, -1, 189, -1, 136, -1,
-1, 137, 190, 173, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 183, 183, 218, 221, 234, 239, 244, 250, 253,
332, 335, 436, 446, 459, 467, 567, 570, 578, 582,
589, 593, 600, 606, 615, 623, 678, 685, 695, 698,
708, 718, 739, 740, 741, 746, 747, 756, 768, 769,
777, 788, 792, 793, 803, 813, 823, 836, 837, 847,
860, 864, 868, 872, 873, 886, 887, 900, 901, 914,
915, 932, 933, 946, 947, 948, 949, 950, 954, 957,
968, 976, 1003, 1008, 1018, 1056, 1059, 1066, 1074, 1095,
1116, 1127, 1156, 1161, 1171, 1176, 1186, 1189, 1192, 1195,
1201, 1208, 1211, 1233, 1251, 1275, 1298, 1302, 1320, 1328,
1360, 1380, 1468, 1477, 1500, 1506, 1513, 1522, 1531, 1537,
1541, 1546, 1551, 1557, 1563, 1572, 1582, 1589, 1592, 1595,
1601, 1604, 1619, 1623, 1627, 1631, 1640, 1645, 1650, 1655,
1660, 1665, 1670, 1675, 1680, 1685, 1691, 1697, 1703, 1708,
1713, 1722, 1727, 1732, 1745, 1745, 1759, 1759, 1768, 1771,
1786, 1818, 1822, 1828, 1836, 1852, 1856, 1860, 1861, 1867,
1868, 1869, 1870, 1871, 1875, 1876, 1876, 1876, 1886, 1887,
1891, 1891, 1892, 1892, 1897, 1900, 1910, 1913, 1919, 1920,
1924, 1932, 1936, 1946, 1951, 1968, 1968, 1973, 1973, 1980,
1980, 1988, 1991, 1997, 2000, 2006, 2010, 2017, 2024, 2031,
2038, 2049, 2058, 2062, 2069, 2072, 2078, 2078
0, 183, 183, 218, 221, 226, 231, 236, 242, 245,
324, 327, 428, 438, 451, 459, 559, 562, 570, 574,
581, 585, 592, 598, 607, 615, 670, 677, 687, 690,
700, 710, 731, 732, 733, 738, 739, 748, 760, 761,
769, 780, 784, 785, 795, 805, 815, 828, 829, 839,
852, 856, 860, 864, 865, 878, 879, 892, 893, 906,
907, 924, 925, 938, 939, 940, 941, 942, 946, 949,
960, 968, 995, 1000, 1010, 1048, 1051, 1058, 1066, 1087,
1108, 1119, 1148, 1153, 1163, 1168, 1178, 1181, 1184, 1187,
1193, 1200, 1203, 1225, 1243, 1267, 1290, 1294, 1312, 1320,
1352, 1372, 1460, 1469, 1492, 1498, 1505, 1514, 1523, 1529,
1533, 1538, 1543, 1549, 1555, 1564, 1574, 1581, 1584, 1587,
1593, 1596, 1611, 1615, 1619, 1623, 1627, 1631, 1636, 1641,
1646, 1651, 1656, 1661, 1666, 1671, 1676, 1682, 1688, 1694,
1699, 1704, 1713, 1718, 1723, 1736, 1736, 1750, 1750, 1759,
1762, 1777, 1809, 1813, 1819, 1827, 1843, 1847, 1851, 1852,
1858, 1859, 1860, 1861, 1862, 1866, 1867, 1867, 1867, 1877,
1878, 1882, 1882, 1883, 1883, 1888, 1891, 1901, 1904, 1910,
1911, 1915, 1923, 1927, 1937, 1942, 1959, 1959, 1964, 1964,
1971, 1971, 1979, 1982, 1988, 1991, 1997, 2001, 2008, 2015,
2022, 2029, 2040, 2049, 2053, 2060, 2063, 2069, 2069
};
#endif
......@@ -716,23 +718,23 @@ static const char *const yytname[] =
{
"$end", "error", "$undefined", "INVARIANT", "HIGH_PRECISION",
"MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "ATTRIBUTE",
"CONST_QUAL", "BOOL_TYPE", "FLOAT_TYPE", "INT_TYPE", "BREAK", "CONTINUE",
"DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE",
"DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4", "VEC2",
"VEC3", "VEC4", "MATRIX2", "MATRIX3", "MATRIX4", "IN_QUAL", "OUT_QUAL",
"INOUT_QUAL", "UNIFORM", "VARYING", "CENTROID", "FLAT", "SMOOTH",
"STRUCT", "VOID_TYPE", "WHILE", "SAMPLER2D", "SAMPLERCUBE",
"SAMPLER_EXTERNAL_OES", "SAMPLER2DRECT", "SAMPLER3D", "SAMPLER3DRECT",
"SAMPLER2DSHADOW", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT",
"INTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP",
"INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP",
"OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN",
"MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN",
"OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
"RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
"EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
"PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
"AMPERSAND", "QUESTION", "$accept", "variable_identifier",
"CONST_QUAL", "BOOL_TYPE", "FLOAT_TYPE", "INT_TYPE", "UINT_TYPE",
"BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN",
"SWITCH", "CASE", "DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3",
"IVEC4", "VEC2", "VEC3", "VEC4", "MATRIX2", "MATRIX3", "MATRIX4",
"IN_QUAL", "OUT_QUAL", "INOUT_QUAL", "UNIFORM", "VARYING", "CENTROID",
"FLAT", "SMOOTH", "STRUCT", "VOID_TYPE", "WHILE", "SAMPLER2D",
"SAMPLERCUBE", "SAMPLER_EXTERNAL_OES", "SAMPLER2DRECT", "SAMPLER3D",
"SAMPLER3DRECT", "SAMPLER2DSHADOW", "IDENTIFIER", "TYPE_NAME",
"FLOATCONSTANT", "INTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION",
"LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP",
"NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN",
"ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN",
"XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN",
"LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT",
"COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS",
"STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR",
"CARET", "AMPERSAND", "QUESTION", "$accept", "variable_identifier",
"primary_expression", "postfix_expression", "integer_expression",
"function_call", "function_call_or_method", "function_call_generic",
"function_call_header_no_parameters",
......@@ -780,34 +782,34 @@ static const yytype_uint16 yytoknum[] =
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359
355, 356, 357, 358, 359, 360
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 105, 106, 107, 107, 107, 107, 107, 108, 108,
108, 108, 108, 108, 109, 110, 111, 111, 112, 112,
113, 113, 114, 114, 115, 116, 116, 116, 117, 117,
117, 117, 118, 118, 118, 119, 119, 119, 120, 120,
120, 121, 122, 122, 122, 122, 122, 123, 123, 123,
124, 125, 126, 127, 127, 128, 128, 129, 129, 130,
130, 131, 131, 132, 132, 132, 132, 132, 133, 133,
134, 135, 135, 135, 136, 137, 137, 138, 138, 139,
140, 140, 141, 141, 141, 141, 142, 142, 142, 142,
143, 144, 144, 144, 144, 144, 145, 145, 145, 145,
145, 145, 146, 146, 147, 148, 148, 148, 148, 149,
149, 149, 149, 149, 149, 150, 150, 151, 151, 151,
152, 152, 153, 153, 153, 153, 153, 153, 153, 153,
153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
153, 153, 153, 153, 155, 154, 156, 154, 157, 157,
158, 159, 159, 160, 160, 161, 162, 163, 163, 164,
164, 164, 164, 164, 165, 166, 167, 165, 168, 168,
170, 169, 171, 169, 172, 172, 173, 173, 174, 174,
175, 176, 176, 177, 177, 179, 178, 180, 178, 181,
178, 182, 182, 183, 183, 184, 184, 185, 185, 185,
185, 185, 186, 186, 187, 187, 189, 188
0, 106, 107, 108, 108, 108, 108, 108, 109, 109,
109, 109, 109, 109, 110, 111, 112, 112, 113, 113,
114, 114, 115, 115, 116, 117, 117, 117, 118, 118,
118, 118, 119, 119, 119, 120, 120, 120, 121, 121,
121, 122, 123, 123, 123, 123, 123, 124, 124, 124,
125, 126, 127, 128, 128, 129, 129, 130, 130, 131,
131, 132, 132, 133, 133, 133, 133, 133, 134, 134,
135, 136, 136, 136, 137, 138, 138, 139, 139, 140,
141, 141, 142, 142, 142, 142, 143, 143, 143, 143,
144, 145, 145, 145, 145, 145, 146, 146, 146, 146,
146, 146, 147, 147, 148, 149, 149, 149, 149, 150,
150, 150, 150, 150, 150, 151, 151, 152, 152, 152,
153, 153, 154, 154, 154, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
154, 154, 154, 154, 154, 156, 155, 157, 155, 158,
158, 159, 160, 160, 161, 161, 162, 163, 164, 164,
165, 165, 165, 165, 165, 166, 167, 168, 166, 169,
169, 171, 170, 172, 170, 173, 173, 174, 174, 175,
175, 176, 177, 177, 178, 178, 180, 179, 181, 179,
182, 179, 183, 183, 184, 184, 185, 185, 186, 186,
186, 186, 186, 187, 187, 188, 188, 190, 189
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
......@@ -827,13 +829,13 @@ static const yytype_uint8 yyr2[] =
1, 1, 2, 2, 1, 1, 2, 1, 1, 1,
1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 6, 0, 5, 1, 2,
3, 1, 3, 1, 4, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 0, 0, 5, 1, 1,
0, 2, 0, 2, 2, 3, 1, 2, 1, 2,
5, 3, 1, 1, 4, 0, 6, 0, 8, 0,
7, 1, 1, 1, 0, 2, 3, 2, 2, 2,
3, 2, 1, 2, 1, 1, 0, 3
1, 1, 1, 1, 1, 0, 6, 0, 5, 1,
2, 3, 1, 3, 1, 4, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 0, 0, 5, 1,
1, 0, 2, 0, 2, 2, 3, 1, 2, 1,
2, 5, 3, 1, 1, 4, 0, 6, 0, 8,
0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
2, 3, 2, 1, 2, 1, 1, 0, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
......@@ -841,430 +843,432 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
0, 0, 117, 118, 119, 0, 105, 109, 125, 123,
124, 129, 130, 131, 132, 133, 134, 126, 127, 128,
135, 136, 137, 110, 111, 114, 106, 0, 0, 122,
138, 139, 140, 141, 143, 205, 206, 0, 76, 86,
0, 91, 96, 0, 108, 102, 0, 115, 120, 142,
0, 202, 204, 107, 101, 0, 112, 113, 0, 146,
71, 0, 74, 86, 104, 87, 88, 89, 77, 0,
86, 0, 72, 97, 103, 116, 0, 1, 203, 0,
144, 0, 0, 207, 78, 83, 85, 90, 0, 92,
79, 0, 0, 2, 5, 4, 6, 27, 0, 0,
0, 34, 33, 32, 3, 8, 28, 10, 15, 16,
0, 0, 21, 0, 35, 0, 38, 41, 42, 47,
50, 51, 52, 53, 55, 57, 59, 70, 0, 25,
73, 0, 0, 0, 148, 0, 0, 187, 0, 0,
0, 0, 0, 165, 174, 178, 35, 61, 68, 0,
156, 0, 120, 159, 176, 158, 157, 0, 160, 161,
162, 163, 80, 82, 84, 0, 0, 98, 0, 155,
100, 29, 30, 0, 12, 13, 0, 0, 19, 18,
0, 20, 22, 24, 31, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 121,
0, 153, 0, 151, 147, 149, 198, 197, 172, 189,
0, 201, 199, 0, 185, 164, 0, 64, 65, 66,
67, 63, 0, 0, 179, 175, 177, 0, 93, 0,
95, 99, 7, 0, 14, 26, 11, 17, 23, 36,
37, 40, 39, 45, 46, 43, 44, 48, 49, 54,
56, 58, 0, 145, 0, 0, 150, 0, 0, 0,
0, 0, 200, 0, 166, 62, 69, 0, 94, 9,
0, 0, 152, 0, 171, 173, 192, 191, 194, 172,
0, 183, 0, 0, 0, 81, 60, 154, 0, 193,
0, 0, 182, 180, 0, 0, 167, 0, 195, 0,
172, 0, 169, 186, 168, 0, 196, 190, 181, 184,
188
0, 0, 117, 118, 119, 0, 105, 109, 126, 123,
124, 125, 130, 131, 132, 133, 134, 135, 127, 128,
129, 136, 137, 138, 110, 111, 114, 106, 0, 0,
122, 139, 140, 141, 142, 144, 206, 207, 0, 76,
86, 0, 91, 96, 0, 108, 102, 0, 115, 120,
143, 0, 203, 205, 107, 101, 0, 112, 113, 0,
147, 71, 0, 74, 86, 104, 87, 88, 89, 77,
0, 86, 0, 72, 97, 103, 116, 0, 1, 204,
0, 145, 0, 0, 208, 78, 83, 85, 90, 0,
92, 79, 0, 0, 2, 5, 4, 6, 27, 0,
0, 0, 34, 33, 32, 3, 8, 28, 10, 15,
16, 0, 0, 21, 0, 35, 0, 38, 41, 42,
47, 50, 51, 52, 53, 55, 57, 59, 70, 0,
25, 73, 0, 0, 0, 149, 0, 0, 188, 0,
0, 0, 0, 0, 166, 175, 179, 35, 61, 68,
0, 157, 0, 120, 160, 177, 159, 158, 0, 161,
162, 163, 164, 80, 82, 84, 0, 0, 98, 0,
156, 100, 29, 30, 0, 12, 13, 0, 0, 19,
18, 0, 20, 22, 24, 31, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121, 0, 154, 0, 152, 148, 150, 199, 198, 173,
190, 0, 202, 200, 0, 186, 165, 0, 64, 65,
66, 67, 63, 0, 0, 180, 176, 178, 0, 93,
0, 95, 99, 7, 0, 14, 26, 11, 17, 23,
36, 37, 40, 39, 45, 46, 43, 44, 48, 49,
54, 56, 58, 0, 146, 0, 0, 151, 0, 0,
0, 0, 0, 201, 0, 167, 62, 69, 0, 94,
9, 0, 0, 153, 0, 172, 174, 193, 192, 195,
173, 0, 184, 0, 0, 0, 81, 60, 155, 0,
194, 0, 0, 183, 181, 0, 0, 168, 0, 196,
0, 173, 0, 170, 187, 169, 0, 197, 191, 182,
185, 189
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 104, 105, 106, 233, 107, 108, 109, 110, 111,
112, 113, 146, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 147, 148, 222, 149, 128,
150, 151, 37, 38, 39, 85, 68, 69, 86, 40,
41, 42, 70, 43, 44, 45, 46, 47, 129, 49,
131, 81, 133, 134, 202, 203, 170, 153, 154, 155,
156, 216, 284, 303, 257, 258, 259, 304, 157, 158,
159, 293, 283, 160, 263, 208, 260, 278, 290, 291,
161, 50, 51, 52, 61
-1, 105, 106, 107, 234, 108, 109, 110, 111, 112,
113, 114, 147, 116, 117, 118, 119, 120, 121, 122,
123, 124, 125, 126, 127, 148, 149, 223, 150, 129,
151, 152, 38, 39, 40, 86, 69, 70, 87, 41,
42, 43, 71, 44, 45, 46, 47, 48, 130, 50,
132, 82, 134, 135, 203, 204, 171, 154, 155, 156,
157, 217, 285, 304, 258, 259, 260, 305, 158, 159,
160, 294, 284, 161, 264, 209, 261, 279, 291, 292,
162, 51, 52, 53, 62
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -268
#define YYPACT_NINF -265
static const yytype_int16 yypact[] =
{
1363, -6, -268, -268, -268, 135, -268, -268, -268, -268,
-268, -268, -268, -268, -268, -268, -268, -268, -268, -268,
-268, -268, -268, -268, -268, -268, -268, -21, -26, -268,
-268, -268, -268, -268, -268, -268, -51, -47, 6, 16,
-20, -268, 46, 1411, -268, -268, 1499, -268, 29, -268,
1310, -268, -268, -268, -268, 1499, -268, -268, 31, -268,
-268, 67, -268, 27, -268, -268, -268, -268, -268, 1411,
111, 102, -268, -11, -268, -268, 1055, -268, -268, 69,
-268, 1411, 297, -268, -268, -268, -268, 104, 1411, -45,
-268, 193, 1055, 80, -268, -268, -268, -268, 1055, 1055,
1055, -268, -268, -268, -268, -268, 21, -268, -268, -268,
81, -15, 1127, 84, -268, 1055, -22, 20, -268, -43,
70, -268, -268, -268, 94, 96, -55, -268, 83, -268,
-268, 1411, 114, 1199, -268, 82, 85, -268, 90, 91,
86, 908, 93, 89, -268, -268, -53, -268, -268, 14,
-268, -51, 49, -268, -268, -268, -268, 390, -268, -268,
-268, -268, 95, -268, -268, 980, 1055, -268, 97, -268,
-268, -268, -268, 5, -268, -268, 1055, 1453, -268, -268,
1055, 103, -268, -268, -268, 1055, 1055, 1055, 1055, 1055,
1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, -268,
1247, 100, 18, -268, -268, -268, -268, -268, 105, -268,
1055, -268, -268, 19, -268, -268, 483, -268, -268, -268,
-268, -268, 1055, 1055, -268, -268, -268, 1055, -268, 101,
-268, -268, -268, 107, 99, -268, 112, -268, -268, -268,
-268, -22, -22, -268, -268, -268, -268, -43, -43, -268,
94, 96, -3, -268, 1055, 114, -268, 142, 67, 669,
762, 7, -268, 836, 483, -268, -268, 108, -268, -268,
1055, 110, -268, 115, -268, -268, -268, -268, 836, 105,
155, 99, 143, 116, 120, -268, -268, -268, 1055, -268,
117, 119, 191, -268, 121, 576, -268, 8, 1055, 576,
105, 1055, -268, -268, -268, 118, 99, -268, -268, -268,
-268
1359, -22, -265, -265, -265, 108, -265, -265, -265, -265,
-265, -265, -265, -265, -265, -265, -265, -265, -265, -265,
-265, -265, -265, -265, -265, -265, -265, -265, -6, -37,
-265, -265, -265, -265, -265, -265, -265, -40, -9, -11,
1, -32, -265, 31, 1408, -265, -265, 1506, -265, 20,
-265, 1305, -265, -265, -265, -265, 1506, -265, -265, 15,
-265, -265, 59, -265, 27, -265, -265, -265, -265, -265,
1408, 103, 101, -265, 3, -265, -265, 1047, -265, -265,
67, -265, 1408, 298, -265, -265, -265, -265, 105, 1408,
-64, -265, 822, 1047, 79, -265, -265, -265, -265, 1047,
1047, 1047, -265, -265, -265, -265, -265, 4, -265, -265,
-265, 83, -28, 1120, 81, -265, 1047, 40, -53, -265,
-42, 80, -265, -265, -265, 93, 96, -57, -265, 84,
-265, -265, 1408, 113, 1193, -265, 82, 85, -265, 89,
90, 86, 898, 91, 88, -265, -265, -1, -265, -265,
13, -265, -40, 62, -265, -265, -265, -265, 392, -265,
-265, -265, -265, 92, -265, -265, 971, 1047, -265, 97,
-265, -265, -265, -265, -14, -265, -265, 1047, 1455, -265,
-265, 1047, 99, -265, -265, -265, 1047, 1047, 1047, 1047,
1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047,
-265, 1242, 102, 39, -265, -265, -265, -265, -265, 104,
-265, 1047, -265, -265, 41, -265, -265, 486, -265, -265,
-265, -265, -265, 1047, 1047, -265, -265, -265, 1047, -265,
100, -265, -265, -265, 106, 98, -265, 110, -265, -265,
-265, -265, 40, 40, -265, -265, -265, -265, -42, -42,
-265, 93, 96, 60, -265, 1047, 113, -265, 141, 59,
674, 199, 14, -265, 749, 486, -265, -265, 109, -265,
-265, 1047, 111, -265, 115, -265, -265, -265, -265, 749,
104, 152, 98, 140, 130, 128, -265, -265, -265, 1047,
-265, 124, 135, 181, -265, 129, 580, -265, 17, 1047,
580, 104, 1047, -265, -265, -265, 127, 98, -265, -265,
-265, -265
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-268, -268, -268, -268, -268, -268, -268, 33, -268, -268,
-268, -268, -68, -268, -37, -268, -46, -39, -268, -268,
-268, 17, 34, 32, -268, -74, -88, -268, -99, -85,
10, 11, -268, -268, -268, 126, 152, 161, 144, -268,
-268, -234, -268, -268, -268, -30, 228, -14, 0, -268,
-268, -268, 122, -124, -268, -19, -163, -25, -150, -233,
-268, -268, -268, -65, -267, -268, -268, -56, 23, -17,
-268, -268, -33, -268, -268, -268, -268, -268, -268, -268,
-268, -268, 196, -268, -268
-265, -265, -265, -265, -265, -265, -265, 43, -265, -265,
-265, -265, -71, -265, -34, -265, -83, -43, -265, -265,
-265, 26, 45, 25, -265, -75, -88, -265, -100, -85,
11, 12, -265, -265, -265, 149, 179, 175, 161, -265,
-265, -249, -265, -265, -265, -36, 247, -21, 0, -265,
-265, -265, 121, -125, -265, 10, -163, 6, -136, -246,
-265, -265, -265, -31, -264, -265, -265, -59, 51, 9,
-265, -265, -8, -265, -265, -265, -265, -265, -265, -265,
-265, -265, 221, -265, -265
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -171
#define YYTABLE_NINF -172
static const yytype_int16 yytable[] =
{
48, 173, 127, 230, 169, 83, 168, 226, 114, 205,
35, 36, 292, 74, 197, 56, 57, 127, 217, 218,
219, 189, 190, 114, 182, 64, 275, 220, 58, 282,
171, 172, 75, 308, 53, 62, 64, 221, 165, 87,
60, 79, 213, 48, 282, 166, 48, 184, 54, 198,
48, 132, 65, 66, 67, 48, 191, 192, 87, 59,
35, 36, 302, 65, 66, 67, 302, 179, 71, 48,
90, 72, 91, 180, 185, 186, 205, 234, 169, 92,
229, 48, 152, 174, 175, 223, 270, 232, 48, 279,
305, 127, 238, 223, 63, 223, 223, 114, -75, 252,
73, 132, 223, 132, 176, 224, 255, 223, 177, 256,
262, 261, 76, 187, 226, 188, 80, 239, 240, 114,
114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
-25, 48, 76, 48, 265, 266, 193, 194, 309, 2,
3, 4, 267, 243, 244, 245, 246, 65, 66, 67,
241, 242, 82, 127, 247, 248, 89, 152, 162, 114,
130, -26, 195, 178, 281, 183, 196, 199, 201, 271,
132, 209, 210, 206, 214, 215, 207, 211, 227, 281,
127, 231, 286, 254, -122, 268, 114, 223, 273, 297,
-170, 269, 285, -27, 287, 53, 288, 294, 295, 306,
48, 299, 274, 8, 9, 10, 296, 300, 298, 310,
237, 301, 249, 169, 163, 84, 152, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 251,
250, 88, 164, 55, 307, 276, 272, 28, 29, 264,
30, 31, 32, 277, 33, 289, 78, 93, 34, 94,
95, 96, 97, 200, 0, 98, 99, 0, 0, 152,
152, 0, 0, 152, 152, 0, 0, 0, 0, 0,
0, 0, 0, 0, 100, 0, 0, 167, 152, 0,
0, 0, 0, 0, 0, 101, 102, 0, 103, 0,
0, 0, 0, 0, 0, 152, 0, 0, 0, 152,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
135, 136, 137, 0, 138, 139, 140, 141, 0, 0,
0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 0, 25, 26, 27, 0,
0, 28, 29, 142, 30, 31, 32, 0, 33, 0,
0, 93, 34, 94, 95, 96, 97, 0, 0, 98,
99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 100, 0,
0, 0, 143, 144, 0, 0, 0, 0, 145, 101,
102, 0, 103, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 135, 136, 137, 0, 138, 139, 140,
141, 0, 0, 0, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
26, 27, 0, 0, 28, 29, 142, 30, 31, 32,
0, 33, 0, 0, 93, 34, 94, 95, 96, 97,
0, 0, 98, 99, 0, 0, 0, 0, 0, 0,
49, 174, 128, 84, 231, 170, 115, 169, 75, 206,
65, 36, 37, 198, 276, 283, 293, 128, 59, 54,
166, 115, 227, 190, 191, 183, 76, 167, 172, 173,
283, 57, 58, 55, 88, 80, 65, 309, 66, 67,
68, 188, 214, 189, 49, 185, 133, 49, 199, 60,
303, 49, 61, 88, 303, 180, 49, 72, 192, 193,
73, 181, 36, 37, 66, 67, 68, 175, 176, 233,
49, 218, 219, 220, 63, 224, 206, 235, 64, 170,
221, 230, 49, 153, -75, 91, 74, 92, 177, 49,
222, 128, 178, 239, 93, 115, 133, 280, 133, 253,
306, 81, 224, 224, 77, 225, 224, 244, 245, 246,
247, 262, 2, 3, 4, 240, 241, 115, 115, 115,
115, 115, 115, 115, 115, 115, 115, 115, 256, 227,
224, 257, 49, 263, 49, 266, 267, 186, 187, 310,
66, 67, 68, 268, -25, 83, 77, 194, 195, 224,
271, 248, 249, 128, 242, 243, 90, 115, 153, 131,
163, -26, 196, 184, 282, 133, 179, 197, 202, 200,
272, 210, 211, 215, 207, 216, 228, 208, 212, 282,
128, -122, 232, 287, 115, 269, 255, 224, 274, 298,
-171, 270, -27, 54, 286, 295, 288, 289, 301, 307,
275, 49, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 296, 170, 297, 299, 153, 300, 311,
302, 238, 250, 252, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 164, 26,
27, 28, 251, 85, 29, 30, 89, 31, 32, 33,
165, 34, 56, 201, 94, 35, 95, 96, 97, 98,
153, 153, 99, 100, 153, 153, 273, 277, 265, 308,
278, 290, 79, 0, 0, 0, 0, 0, 0, 153,
0, 101, 0, 0, 0, 0, 0, 0, 0, 0,
0, 146, 102, 103, 0, 104, 153, 0, 0, 0,
153, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 136, 137, 138, 0, 139, 140, 141, 142,
0, 0, 0, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 0, 26, 27,
28, 0, 0, 29, 30, 143, 31, 32, 33, 0,
34, 0, 0, 94, 35, 95, 96, 97, 98, 0,
0, 99, 100, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 100, 0, 0, 0, 143, 225, 0, 0, 0,
0, 145, 101, 102, 0, 103, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 135, 136, 137, 0,
138, 139, 140, 141, 0, 0, 0, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 0, 25, 26, 27, 0, 0, 28, 29, 142,
30, 31, 32, 0, 33, 0, 0, 93, 34, 94,
95, 96, 97, 0, 0, 98, 99, 0, 0, 0,
101, 0, 0, 0, 144, 145, 0, 0, 0, 0,
146, 102, 103, 0, 104, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11, 136, 137, 138, 0,
139, 140, 141, 142, 0, 0, 0, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 0, 26, 27, 28, 0, 0, 29, 30, 143,
31, 32, 33, 0, 34, 0, 0, 94, 35, 95,
96, 97, 98, 0, 0, 99, 100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 100, 0, 0, 0, 143, 0,
0, 0, 0, 0, 145, 101, 102, 0, 103, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 135,
136, 137, 0, 138, 139, 140, 141, 0, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 0, 25, 26, 27, 0, 0,
28, 29, 142, 30, 31, 32, 0, 33, 0, 0,
93, 34, 94, 95, 96, 97, 0, 0, 98, 99,
0, 0, 0, 0, 101, 0, 0, 0, 144, 226,
0, 0, 0, 0, 146, 102, 103, 0, 104, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
136, 137, 138, 0, 139, 140, 141, 142, 0, 0,
0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 0, 26, 27, 28, 0,
0, 29, 30, 143, 31, 32, 33, 0, 34, 0,
0, 94, 35, 95, 96, 97, 98, 0, 0, 99,
100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 101, 0,
0, 0, 144, 0, 0, 0, 0, 0, 146, 102,
103, 0, 104, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 136, 137, 138, 0, 139, 140,
141, 142, 0, 0, 0, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 0,
26, 27, 28, 0, 0, 29, 30, 143, 31, 32,
33, 0, 34, 0, 0, 94, 35, 95, 96, 97,
98, 0, 0, 99, 100, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
0, 82, 0, 0, 0, 0, 0, 145, 101, 102,
0, 103, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 135, 136, 137, 0, 138, 139, 140, 141,
0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 0, 25, 26,
27, 0, 0, 28, 29, 142, 30, 31, 32, 0,
33, 0, 0, 93, 34, 94, 95, 96, 97, 0,
0, 98, 99, 0, 0, 0, 0, 0, 0, 0,
0, 0, 101, 0, 0, 0, 83, 0, 0, 0,
0, 0, 146, 102, 103, 0, 104, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 136, 137,
138, 0, 139, 140, 141, 142, 0, 0, 0, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 0, 26, 27, 28, 0, 0, 29,
30, 143, 31, 32, 33, 0, 34, 0, 0, 94,
35, 95, 96, 97, 98, 0, 0, 99, 100, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
145, 101, 102, 0, 103, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
0, 25, 26, 27, 0, 0, 28, 29, 0, 30,
31, 32, 0, 33, 0, 0, 93, 34, 94, 95,
96, 97, 0, 0, 98, 99, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 280,
2, 3, 4, 100, 6, 7, 8, 9, 10, 0,
0, 0, 0, 145, 101, 102, 0, 103, 0, 0,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 0, 25, 26, 27, 0, 0,
28, 29, 0, 30, 31, 32, 0, 33, 0, 0,
93, 34, 94, 95, 96, 97, 0, 0, 98, 99,
0, 0, 281, 2, 3, 4, 101, 6, 7, 8,
9, 10, 11, 0, 0, 0, 146, 102, 103, 0,
104, 0, 0, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 0, 26,
27, 28, 0, 0, 29, 30, 0, 31, 32, 33,
0, 34, 0, 0, 94, 35, 95, 96, 97, 98,
0, 0, 99, 100, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 100, 8, 9,
10, 0, 0, 0, 0, 0, 0, 0, 101, 102,
0, 103, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 0, 0, 0, 0, 0, 0,
0, 0, 28, 29, 0, 30, 31, 32, 0, 33,
0, 0, 93, 34, 94, 95, 96, 97, 0, 0,
98, 99, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 100,
8, 9, 10, 0, 0, 0, 0, 0, 0, 212,
101, 102, 0, 103, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 0, 0, 0, 0,
0, 0, 0, 0, 28, 29, 0, 30, 31, 32,
0, 33, 0, 0, 93, 34, 94, 95, 96, 97,
0, 0, 98, 99, 0, 0, 0, 0, 0, 0,
0, 101, 8, 9, 10, 11, 0, 0, 0, 0,
0, 0, 102, 103, 0, 104, 0, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
0, 0, 0, 0, 0, 0, 0, 29, 30, 0,
31, 32, 33, 0, 34, 0, 0, 94, 35, 95,
96, 97, 98, 0, 0, 99, 100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 100, 0, 0, 228, 8, 9, 10, 0, 0,
0, 0, 101, 102, 0, 103, 0, 0, 0, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 0, 0, 0, 0, 0, 0, 0, 0, 28,
29, 0, 30, 31, 32, 0, 33, 0, 0, 93,
34, 94, 95, 96, 97, 0, 0, 98, 99, 0,
0, 0, 0, 0, 101, 0, 0, 168, 8, 9,
10, 11, 0, 0, 0, 102, 103, 0, 104, 0,
0, 0, 0, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 0, 0, 0, 0, 0,
0, 0, 0, 29, 30, 0, 31, 32, 33, 0,
34, 0, 0, 94, 35, 95, 96, 97, 98, 0,
0, 99, 100, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 100, 8, 9, 10,
0, 0, 0, 0, 0, 0, 0, 101, 102, 0,
103, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 0, 0, 0, 0, 0, 0, 0,
0, 28, 181, 0, 30, 31, 32, 0, 33, 0,
0, 93, 34, 94, 95, 96, 97, 0, 0, 98,
99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 3, 4, 0, 0, 100, 8,
9, 10, 0, 0, 0, 0, 0, 0, 0, 101,
102, 0, 103, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 0, 0, 0, 0,
0, 0, 0, 28, 29, 0, 30, 31, 32, 0,
33, 2, 3, 4, 34, 0, 0, 8, 9, 10,
101, 8, 9, 10, 11, 0, 0, 0, 0, 0,
213, 102, 103, 0, 104, 0, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 0, 0,
0, 0, 0, 0, 0, 0, 29, 30, 0, 31,
32, 33, 0, 34, 0, 0, 94, 35, 95, 96,
97, 98, 0, 0, 99, 100, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 0, 0, 204, 0, 0, 0, 0,
0, 28, 29, 0, 30, 31, 32, 0, 33, 0,
0, 0, 34, 0, 0, 0, 0, 0, 0, 0,
77, 0, 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 253, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 0, 25,
26, 27, 0, 0, 28, 29, 0, 30, 31, 32,
0, 33, 0, 0, 0, 34, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
0, 0, 0, 101, 0, 0, 229, 8, 9, 10,
11, 0, 0, 0, 102, 103, 0, 104, 0, 0,
0, 0, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 0, 0, 0, 0, 0, 0,
0, 0, 29, 30, 0, 31, 32, 33, 0, 34,
0, 0, 94, 35, 95, 96, 97, 98, 0, 0,
99, 100, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
8, 9, 10, 11, 0, 0, 0, 0, 0, 0,
102, 103, 0, 104, 0, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 0, 0, 0,
0, 0, 0, 0, 0, 29, 182, 0, 31, 32,
33, 0, 34, 0, 0, 94, 35, 95, 96, 97,
98, 0, 0, 99, 100, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 3, 4,
0, 0, 101, 8, 9, 10, 11, 0, 0, 0,
0, 0, 0, 102, 103, 0, 104, 0, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 0, 25, 26, 27, 0, 0, 28, 29, 0,
30, 31, 32, 0, 33, 2, 3, 4, 34, 0,
0, 8, 9, 10, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 0, 0, 0,
0, 0, 0, 0, 0, 28, 29, 0, 30, 31,
32, 0, 33, 8, 9, 10, 34, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22, 0,
0, 0, 0, 0, 0, 0, 0, 28, 29, 0,
30, 31, 32, 0, 33, 0, 0, 235, 34, 8,
9, 10, 236, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 0, 0, 0, 0, 0,
0, 0, 0, 28, 29, 0, 30, 31, 32, 0,
33, 0, 0, 0, 34
0, 0, 0, 0, 0, 0, 0, 0, 29, 30,
0, 31, 32, 33, 0, 34, 2, 3, 4, 35,
0, 0, 8, 9, 10, 11, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
205, 0, 0, 0, 0, 0, 0, 29, 30, 0,
31, 32, 33, 0, 34, 0, 0, 0, 35, 0,
0, 0, 0, 0, 0, 78, 0, 0, 1, 2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 254,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 0, 26, 27, 28, 0, 0,
29, 30, 0, 31, 32, 33, 0, 34, 0, 0,
0, 35, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 0, 26,
27, 28, 0, 0, 29, 30, 0, 31, 32, 33,
0, 34, 2, 3, 4, 35, 0, 0, 8, 9,
10, 11, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 0, 0, 0, 0, 0,
0, 0, 0, 29, 30, 0, 31, 32, 33, 0,
34, 0, 0, 0, 35, 8, 9, 10, 11, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 0, 0, 0, 0, 0, 0, 0, 0,
29, 30, 0, 31, 32, 33, 0, 34, 0, 0,
236, 35, 0, 0, 0, 237, 8, 9, 10, 11,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 0, 0, 0, 0, 0, 0, 0,
0, 29, 30, 0, 31, 32, 33, 0, 34, 0,
0, 0, 35
};
static const yytype_int16 yycheck[] =
{
0, 100, 76, 166, 92, 61, 91, 157, 76, 133,
0, 0, 279, 43, 69, 36, 37, 91, 71, 72,
73, 64, 65, 91, 112, 9, 259, 80, 54, 263,
98, 99, 46, 300, 40, 82, 9, 90, 83, 69,
91, 55, 141, 43, 278, 90, 46, 115, 54, 104,
50, 81, 36, 37, 38, 55, 99, 100, 88, 85,
50, 50, 295, 36, 37, 38, 299, 82, 88, 69,
81, 91, 83, 88, 96, 97, 200, 176, 166, 90,
165, 81, 82, 62, 63, 88, 89, 82, 88, 82,
82, 165, 180, 88, 88, 88, 88, 165, 82, 198,
54, 131, 88, 133, 83, 91, 88, 88, 87, 91,
91, 210, 83, 93, 264, 95, 85, 185, 186, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
81, 131, 83, 133, 222, 223, 66, 67, 301, 4,
5, 6, 227, 189, 190, 191, 192, 36, 37, 38,
187, 188, 85, 227, 193, 194, 54, 157, 54, 227,
91, 81, 68, 82, 263, 81, 70, 84, 54, 254,
200, 81, 81, 91, 81, 86, 91, 91, 83, 278,
254, 84, 270, 83, 81, 84, 254, 88, 46, 288,
85, 84, 84, 81, 84, 40, 81, 54, 82, 298,
200, 82, 258, 10, 11, 12, 86, 16, 91, 91,
177, 90, 195, 301, 88, 63, 216, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 197,
196, 70, 88, 5, 299, 260, 255, 44, 45, 216,
47, 48, 49, 260, 51, 278, 50, 54, 55, 56,
57, 58, 59, 131, -1, 62, 63, -1, -1, 259,
260, -1, -1, 263, 264, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 81, -1, -1, 84, 278, -1,
-1, -1, -1, -1, -1, 92, 93, -1, 95, -1,
-1, -1, -1, -1, -1, 295, -1, -1, -1, 299,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, -1, 17, 18, 19, 20, -1, -1,
-1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, -1, 39, 40, 41, -1,
-1, 44, 45, 46, 47, 48, 49, -1, 51, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 81, -1,
-1, -1, 85, 86, -1, -1, -1, -1, 91, 92,
93, -1, 95, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
20, -1, -1, -1, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, -1, 39,
40, 41, -1, -1, 44, 45, 46, 47, 48, 49,
-1, 51, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, -1, -1, -1, -1, -1, -1,
0, 101, 77, 62, 167, 93, 77, 92, 44, 134,
9, 0, 0, 70, 260, 264, 280, 92, 55, 41,
84, 92, 158, 65, 66, 113, 47, 91, 99, 100,
279, 37, 38, 55, 70, 56, 9, 301, 37, 38,
39, 94, 142, 96, 44, 116, 82, 47, 105, 86,
296, 51, 92, 89, 300, 83, 56, 89, 100, 101,
92, 89, 51, 51, 37, 38, 39, 63, 64, 83,
70, 72, 73, 74, 83, 89, 201, 177, 89, 167,
81, 166, 82, 83, 83, 82, 55, 84, 84, 89,
91, 166, 88, 181, 91, 166, 132, 83, 134, 199,
83, 86, 89, 89, 84, 92, 89, 190, 191, 192,
193, 211, 4, 5, 6, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 89, 265,
89, 92, 132, 92, 134, 223, 224, 97, 98, 302,
37, 38, 39, 228, 82, 86, 84, 67, 68, 89,
90, 194, 195, 228, 188, 189, 55, 228, 158, 92,
55, 82, 69, 82, 264, 201, 83, 71, 55, 85,
255, 82, 82, 82, 92, 87, 84, 92, 92, 279,
255, 82, 85, 271, 255, 85, 84, 89, 47, 289,
86, 85, 82, 41, 85, 55, 85, 82, 17, 299,
259, 201, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 83, 302, 87, 92, 217, 83, 92,
91, 178, 196, 198, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 89, 40,
41, 42, 197, 64, 45, 46, 71, 48, 49, 50,
89, 52, 5, 132, 55, 56, 57, 58, 59, 60,
260, 261, 63, 64, 264, 265, 256, 261, 217, 300,
261, 279, 51, -1, -1, -1, -1, -1, -1, 279,
-1, 82, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 92, 93, 94, -1, 96, 296, -1, -1, -1,
300, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, -1, 18, 19, 20, 21,
-1, -1, -1, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, -1, 40, 41,
42, -1, -1, 45, 46, 47, 48, 49, 50, -1,
52, -1, -1, 55, 56, 57, 58, 59, 60, -1,
-1, 63, 64, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81, -1, -1, -1, 85, 86, -1, -1, -1,
-1, 91, 92, 93, -1, 95, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
17, 18, 19, 20, -1, -1, -1, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, -1, 39, 40, 41, -1, -1, 44, 45, 46,
47, 48, 49, -1, 51, -1, -1, 54, 55, 56,
57, 58, 59, -1, -1, 62, 63, -1, -1, -1,
82, -1, -1, -1, 86, 87, -1, -1, -1, -1,
92, 93, 94, -1, 96, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, -1,
18, 19, 20, 21, -1, -1, -1, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, -1, 40, 41, 42, -1, -1, 45, 46, 47,
48, 49, 50, -1, 52, -1, -1, 55, 56, 57,
58, 59, 60, -1, -1, 63, 64, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 81, -1, -1, -1, 85, -1,
-1, -1, -1, -1, 91, 92, 93, -1, 95, 3,
-1, -1, -1, -1, 82, -1, -1, -1, 86, 87,
-1, -1, -1, -1, 92, 93, 94, -1, 96, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, -1, 17, 18, 19, 20, -1, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
44, 45, 46, 47, 48, 49, -1, 51, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
14, 15, 16, -1, 18, 19, 20, 21, -1, -1,
-1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, -1, 40, 41, 42, -1,
-1, 45, 46, 47, 48, 49, 50, -1, 52, -1,
-1, 55, 56, 57, 58, 59, 60, -1, -1, 63,
64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 82, -1,
-1, -1, 86, -1, -1, -1, -1, -1, 92, 93,
94, -1, 96, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, -1, 18, 19,
20, 21, -1, -1, -1, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, -1,
40, 41, 42, -1, -1, 45, 46, 47, 48, 49,
50, -1, 52, -1, -1, 55, 56, 57, 58, 59,
60, -1, -1, 63, 64, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 81, -1, -1,
-1, 85, -1, -1, -1, -1, -1, 91, 92, 93,
-1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, -1, 17, 18, 19, 20,
-1, -1, -1, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, -1, 39, 40,
41, -1, -1, 44, 45, 46, 47, 48, 49, -1,
51, -1, -1, 54, 55, 56, 57, 58, 59, -1,
-1, 62, 63, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 82, -1, -1, -1, 86, -1, -1, -1,
-1, -1, 92, 93, 94, -1, 96, 3, 4, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, -1, 18, 19, 20, 21, -1, -1, -1, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, -1, 40, 41, 42, -1, -1, 45,
46, 47, 48, 49, 50, -1, 52, -1, -1, 55,
56, 57, 58, 59, 60, -1, -1, 63, 64, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
81, -1, -1, -1, -1, -1, -1, -1, -1, -1,
91, 92, 93, -1, 95, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
-1, 39, 40, 41, -1, -1, 44, 45, -1, 47,
48, 49, -1, 51, -1, -1, 54, 55, 56, 57,
58, 59, -1, -1, 62, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4, 5, 6, 81, 8, 9, 10, 11, 12, -1,
-1, -1, -1, 91, 92, 93, -1, 95, -1, -1,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, -1, 39, 40, 41, -1, -1,
44, 45, -1, 47, 48, 49, -1, 51, -1, -1,
54, 55, 56, 57, 58, 59, -1, -1, 62, 63,
-1, -1, 3, 4, 5, 6, 82, 8, 9, 10,
11, 12, 13, -1, -1, -1, 92, 93, 94, -1,
96, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, -1, 40,
41, 42, -1, -1, 45, 46, -1, 48, 49, 50,
-1, 52, -1, -1, 55, 56, 57, 58, 59, 60,
-1, -1, 63, 64, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 81, 10, 11,
12, -1, -1, -1, -1, -1, -1, -1, 92, 93,
-1, 95, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
-1, -1, 44, 45, -1, 47, 48, 49, -1, 51,
-1, -1, 54, 55, 56, 57, 58, 59, -1, -1,
62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 81,
10, 11, 12, -1, -1, -1, -1, -1, -1, 91,
92, 93, -1, 95, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, -1, -1, -1, -1,
-1, -1, -1, -1, 44, 45, -1, 47, 48, 49,
-1, 51, -1, -1, 54, 55, 56, 57, 58, 59,
-1, -1, 62, 63, -1, -1, -1, -1, -1, -1,
-1, 82, 10, 11, 12, 13, -1, -1, -1, -1,
-1, -1, 93, 94, -1, 96, -1, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, -1,
-1, -1, -1, -1, -1, -1, -1, 45, 46, -1,
48, 49, 50, -1, 52, -1, -1, 55, 56, 57,
58, 59, 60, -1, -1, 63, 64, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81, -1, -1, 84, 10, 11, 12, -1, -1,
-1, -1, 92, 93, -1, 95, -1, -1, -1, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, -1, -1, -1, -1, -1, -1, -1, -1, 44,
45, -1, 47, 48, 49, -1, 51, -1, -1, 54,
55, 56, 57, 58, 59, -1, -1, 62, 63, -1,
-1, -1, -1, -1, 82, -1, -1, 85, 10, 11,
12, 13, -1, -1, -1, 93, 94, -1, 96, -1,
-1, -1, -1, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, -1, -1, -1, -1, -1,
-1, -1, -1, 45, 46, -1, 48, 49, 50, -1,
52, -1, -1, 55, 56, 57, 58, 59, 60, -1,
-1, 63, 64, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 81, 10, 11, 12,
-1, -1, -1, -1, -1, -1, -1, 92, 93, -1,
95, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, -1, -1, -1, -1, -1, -1, -1,
-1, 44, 45, -1, 47, 48, 49, -1, 51, -1,
-1, 54, 55, 56, 57, 58, 59, -1, -1, 62,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 4, 5, 6, -1, -1, 81, 10,
11, 12, -1, -1, -1, -1, -1, -1, -1, 92,
93, -1, 95, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-1, -1, -1, 44, 45, -1, 47, 48, 49, -1,
51, 4, 5, 6, 55, -1, -1, 10, 11, 12,
82, 10, 11, 12, 13, -1, -1, -1, -1, -1,
92, 93, 94, -1, 96, -1, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, -1, -1,
-1, -1, -1, -1, -1, -1, 45, 46, -1, 48,
49, 50, -1, 52, -1, -1, 55, 56, 57, 58,
59, 60, -1, -1, 63, 64, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, -1, -1, 86, -1, -1, -1, -1,
-1, 44, 45, -1, 47, 48, 49, -1, 51, -1,
-1, -1, 55, -1, -1, -1, -1, -1, -1, -1,
0, -1, -1, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 86, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, -1, 39,
40, 41, -1, -1, 44, 45, -1, 47, 48, 49,
-1, 51, -1, -1, -1, 55, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 24, 25, 26,
-1, -1, -1, 82, -1, -1, 85, 10, 11, 12,
13, -1, -1, -1, 93, 94, -1, 96, -1, -1,
-1, -1, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, -1, -1, -1, -1, -1, -1,
-1, -1, 45, 46, -1, 48, 49, 50, -1, 52,
-1, -1, 55, 56, 57, 58, 59, 60, -1, -1,
63, 64, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 82,
10, 11, 12, 13, -1, -1, -1, -1, -1, -1,
93, 94, -1, 96, -1, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, -1, -1, -1,
-1, -1, -1, -1, -1, 45, 46, -1, 48, 49,
50, -1, 52, -1, -1, 55, 56, 57, 58, 59,
60, -1, -1, 63, 64, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 4, 5, 6,
-1, -1, 82, 10, 11, 12, 13, -1, -1, -1,
-1, -1, -1, 93, 94, -1, 96, -1, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, -1, 39, 40, 41, -1, -1, 44, 45, -1,
47, 48, 49, -1, 51, 4, 5, 6, 55, -1,
-1, 10, 11, 12, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, -1, -1, -1,
-1, -1, -1, -1, -1, 44, 45, -1, 47, 48,
49, -1, 51, 10, 11, 12, 55, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, -1,
-1, -1, -1, -1, -1, -1, -1, 44, 45, -1,
47, 48, 49, -1, 51, -1, -1, 54, 55, 10,
11, 12, 59, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-1, -1, -1, 44, 45, -1, 47, 48, 49, -1,
51, -1, -1, -1, 55
-1, -1, -1, -1, -1, -1, -1, -1, 45, 46,
-1, 48, 49, 50, -1, 52, 4, 5, 6, 56,
-1, -1, 10, 11, 12, 13, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, -1,
87, -1, -1, -1, -1, -1, -1, 45, 46, -1,
48, 49, 50, -1, 52, -1, -1, -1, 56, -1,
-1, -1, -1, -1, -1, 0, -1, -1, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 87,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, -1, 40, 41, 42, -1, -1,
45, 46, -1, 48, 49, 50, -1, 52, -1, -1,
-1, 56, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, -1, 40,
41, 42, -1, -1, 45, 46, -1, 48, 49, 50,
-1, 52, 4, 5, 6, 56, -1, -1, 10, 11,
12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, -1, -1, -1, -1, -1,
-1, -1, -1, 45, 46, -1, 48, 49, 50, -1,
52, -1, -1, -1, 56, 10, 11, 12, 13, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, -1, -1, -1, -1, -1, -1, -1, -1,
45, 46, -1, 48, 49, 50, -1, 52, -1, -1,
55, 56, -1, -1, -1, 60, 10, 11, 12, 13,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, -1, -1, -1, -1, -1, -1, -1,
-1, 45, 46, -1, 48, 49, 50, -1, 52, -1,
-1, -1, 56
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
......@@ -1272,37 +1276,37 @@ static const yytype_int16 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 39, 40, 41, 44, 45,
47, 48, 49, 51, 55, 135, 136, 137, 138, 139,
144, 145, 146, 148, 149, 150, 151, 152, 153, 154,
186, 187, 188, 40, 54, 151, 36, 37, 54, 85,
91, 189, 82, 88, 9, 36, 37, 38, 141, 142,
147, 88, 91, 54, 150, 152, 83, 0, 187, 152,
85, 156, 85, 172, 141, 140, 143, 150, 142, 54,
81, 83, 90, 54, 56, 57, 58, 59, 62, 63,
81, 92, 93, 95, 106, 107, 108, 110, 111, 112,
12, 13, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 40, 41, 42, 45,
46, 48, 49, 50, 52, 56, 136, 137, 138, 139,
140, 145, 146, 147, 149, 150, 151, 152, 153, 154,
155, 187, 188, 189, 41, 55, 152, 37, 38, 55,
86, 92, 190, 83, 89, 9, 37, 38, 39, 142,
143, 148, 89, 92, 55, 151, 153, 84, 0, 188,
153, 86, 157, 86, 173, 142, 141, 144, 151, 143,
55, 82, 84, 91, 55, 57, 58, 59, 60, 63,
64, 82, 93, 94, 96, 107, 108, 109, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 134, 153,
91, 155, 150, 157, 158, 13, 14, 15, 17, 18,
19, 20, 46, 85, 86, 91, 117, 130, 131, 133,
135, 136, 153, 162, 163, 164, 165, 173, 174, 175,
178, 185, 54, 140, 143, 83, 90, 84, 134, 131,
161, 117, 117, 133, 62, 63, 83, 87, 82, 82,
88, 45, 131, 81, 117, 96, 97, 93, 95, 64,
65, 99, 100, 66, 67, 68, 70, 69, 104, 84,
157, 54, 159, 160, 86, 158, 91, 91, 180, 81,
81, 91, 91, 133, 81, 86, 166, 71, 72, 73,
80, 90, 132, 88, 91, 86, 163, 83, 84, 134,
161, 84, 82, 109, 133, 54, 59, 112, 131, 117,
117, 119, 119, 121, 121, 121, 121, 122, 122, 126,
127, 128, 133, 86, 83, 88, 91, 169, 170, 171,
181, 133, 91, 179, 173, 131, 131, 134, 84, 84,
89, 134, 160, 46, 172, 164, 162, 174, 182, 82,
3, 133, 146, 177, 167, 84, 131, 84, 81, 177,
183, 184, 169, 176, 54, 82, 86, 133, 91, 82,
16, 90, 164, 168, 172, 82, 133, 168, 169, 161,
91
123, 124, 125, 126, 127, 128, 129, 130, 131, 135,
154, 92, 156, 151, 158, 159, 14, 15, 16, 18,
19, 20, 21, 47, 86, 87, 92, 118, 131, 132,
134, 136, 137, 154, 163, 164, 165, 166, 174, 175,
176, 179, 186, 55, 141, 144, 84, 91, 85, 135,
132, 162, 118, 118, 134, 63, 64, 84, 88, 83,
83, 89, 46, 132, 82, 118, 97, 98, 94, 96,
65, 66, 100, 101, 67, 68, 69, 71, 70, 105,
85, 158, 55, 160, 161, 87, 159, 92, 92, 181,
82, 82, 92, 92, 134, 82, 87, 167, 72, 73,
74, 81, 91, 133, 89, 92, 87, 164, 84, 85,
135, 162, 85, 83, 110, 134, 55, 60, 113, 132,
118, 118, 120, 120, 122, 122, 122, 122, 123, 123,
127, 128, 129, 134, 87, 84, 89, 92, 170, 171,
172, 182, 134, 92, 180, 174, 132, 132, 135, 85,
85, 90, 135, 161, 47, 173, 165, 163, 175, 183,
83, 3, 134, 147, 178, 168, 85, 132, 85, 82,
178, 184, 185, 170, 177, 55, 83, 87, 134, 92,
83, 17, 91, 165, 169, 173, 83, 134, 169, 170,
162, 92
};
#define yyerrok (yyerrstatus = 0)
......@@ -2164,14 +2168,6 @@ yyreduce:
case 4:
{
//
// INT_TYPE is only 16-bit plus sign bit for vertex/fragment shaders,
// check for overflow for constants
//
if (abs((yyvsp[(1) - (1)].lex).i) >= (1 << 16)) {
context->error((yyvsp[(1) - (1)].lex).line, " integer constant overflow", "");
context->recover();
}
ConstantUnion *unionArray = new ConstantUnion[1];
unionArray->setIConst((yyvsp[(1) - (1)].lex).i);
(yyval.interm.intermTypedNode) = context->intermediate.addConstantUnion(unionArray, TType(EbtInt, EbpUndefined, EvqConst), (yyvsp[(1) - (1)].lex).line);
......@@ -3836,7 +3832,7 @@ yyreduce:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
(yyval.interm.type).setBasic(EbtUInt, qual, (yyvsp[(1) - (1)].lex).line);
}
break;
......@@ -3844,12 +3840,20 @@ yyreduce:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtBool, qual, (yyvsp[(1) - (1)].lex).line);
}
break;
case 127:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
(yyval.interm.type).setBasic(EbtFloat, qual, (yyvsp[(1) - (1)].lex).line);
(yyval.interm.type).setAggregate(2);
}
break;
case 127:
case 128:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3858,7 +3862,7 @@ yyreduce:
}
break;
case 128:
case 129:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3867,7 +3871,7 @@ yyreduce:
}
break;
case 129:
case 130:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3876,7 +3880,7 @@ yyreduce:
}
break;
case 130:
case 131:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3885,7 +3889,7 @@ yyreduce:
}
break;
case 131:
case 132:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3894,7 +3898,7 @@ yyreduce:
}
break;
case 132:
case 133:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3903,7 +3907,7 @@ yyreduce:
}
break;
case 133:
case 134:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3912,7 +3916,7 @@ yyreduce:
}
break;
case 134:
case 135:
{
TQualifier qual = context->symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
......@@ -3921,7 +3925,7 @@ yyreduce:
}
break;
case 135:
case 136:
{
FRAG_VERT_ONLY("mat2", (yyvsp[(1) - (1)].lex).line);
......@@ -3931,7 +3935,7 @@ yyreduce:
}
break;
case 136:
case 137:
{
FRAG_VERT_ONLY("mat3", (yyvsp[(1) - (1)].lex).line);
......@@ -3941,7 +3945,7 @@ yyreduce:
}
break;
case 137:
case 138:
{
FRAG_VERT_ONLY("mat4", (yyvsp[(1) - (1)].lex).line);
......@@ -3951,7 +3955,7 @@ yyreduce:
}
break;
case 138:
case 139:
{
FRAG_VERT_ONLY("sampler2D", (yyvsp[(1) - (1)].lex).line);
......@@ -3960,7 +3964,7 @@ yyreduce:
}
break;
case 139:
case 140:
{
FRAG_VERT_ONLY("samplerCube", (yyvsp[(1) - (1)].lex).line);
......@@ -3969,7 +3973,7 @@ yyreduce:
}
break;
case 140:
case 141:
{
if (!context->supportsExtension("GL_OES_EGL_image_external")) {
......@@ -3982,7 +3986,7 @@ yyreduce:
}
break;
case 141:
case 142:
{
FRAG_VERT_ONLY("sampler3D", (yyvsp[(1) - (1)].lex).line);
......@@ -3991,7 +3995,7 @@ yyreduce:
}
break;
case 142:
case 143:
{
FRAG_VERT_ONLY("struct", (yyvsp[(1) - (1)].interm.type).line);
......@@ -4000,7 +4004,7 @@ yyreduce:
}
break;
case 143:
case 144:
{
//
......@@ -4014,12 +4018,12 @@ yyreduce:
}
break;
case 144:
case 145:
{ if (context->enterStructDeclaration((yyvsp[(2) - (3)].lex).line, *(yyvsp[(2) - (3)].lex).string)) context->recover(); }
break;
case 145:
case 146:
{
if (context->reservedErrorCheck((yyvsp[(2) - (6)].lex).line, *(yyvsp[(2) - (6)].lex).string))
......@@ -4037,12 +4041,12 @@ yyreduce:
}
break;
case 146:
case 147:
{ if (context->enterStructDeclaration((yyvsp[(2) - (2)].lex).line, *(yyvsp[(2) - (2)].lex).string)) context->recover(); }
break;
case 147:
case 148:
{
TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString(""));
......@@ -4052,14 +4056,14 @@ yyreduce:
}
break;
case 148:
case 149:
{
(yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList);
}
break;
case 149:
case 150:
{
(yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList);
......@@ -4075,7 +4079,7 @@ yyreduce:
}
break;
case 150:
case 151:
{
(yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList);
......@@ -4108,7 +4112,7 @@ yyreduce:
}
break;
case 151:
case 152:
{
(yyval.interm.typeList) = NewPoolTTypeList();
......@@ -4116,14 +4120,14 @@ yyreduce:
}
break;
case 152:
case 153:
{
(yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine));
}
break;
case 153:
case 154:
{
if (context->reservedErrorCheck((yyvsp[(1) - (1)].lex).line, *(yyvsp[(1) - (1)].lex).string))
......@@ -4135,7 +4139,7 @@ yyreduce:
}
break;
case 154:
case 155:
{
if (context->reservedErrorCheck((yyvsp[(1) - (4)].lex).line, *(yyvsp[(1) - (4)].lex).string))
......@@ -4152,24 +4156,19 @@ yyreduce:
}
break;
case 155:
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
case 156:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
{ (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); }
break;
case 157:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 158:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermAggregate); }
break;
case 159:
......@@ -4199,21 +4198,26 @@ yyreduce:
case 164:
{ (yyval.interm.intermAggregate) = 0; }
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 165:
{ context->symbolTable.push(); }
{ (yyval.interm.intermAggregate) = 0; }
break;
case 166:
{ context->symbolTable.pop(); }
{ context->symbolTable.push(); }
break;
case 167:
{ context->symbolTable.pop(); }
break;
case 168:
{
if ((yyvsp[(3) - (5)].interm.intermAggregate) != 0) {
(yyvsp[(3) - (5)].interm.intermAggregate)->setOp(EOpSequence);
......@@ -4223,44 +4227,44 @@ yyreduce:
}
break;
case 168:
case 169:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 169:
case 170:
{ (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); }
break;
case 170:
case 171:
{ context->symbolTable.push(); }
break;
case 171:
case 172:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
break;
case 172:
case 173:
{ context->symbolTable.push(); }
break;
case 173:
case 174:
{ context->symbolTable.pop(); (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); }
break;
case 174:
case 175:
{
(yyval.interm.intermNode) = 0;
}
break;
case 175:
case 176:
{
if ((yyvsp[(2) - (3)].interm.intermAggregate)) {
......@@ -4271,31 +4275,31 @@ yyreduce:
}
break;
case 176:
case 177:
{
(yyval.interm.intermAggregate) = context->intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode), 0);
}
break;
case 177:
case 178:
{
(yyval.interm.intermAggregate) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermAggregate), (yyvsp[(2) - (2)].interm.intermNode), 0);
}
break;
case 178:
case 179:
{ (yyval.interm.intermNode) = 0; }
break;
case 179:
case 180:
{ (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); }
break;
case 180:
case 181:
{
if (context->boolErrorCheck((yyvsp[(1) - (5)].lex).line, (yyvsp[(3) - (5)].interm.intermTypedNode)))
......@@ -4304,7 +4308,7 @@ yyreduce:
}
break;
case 181:
case 182:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode);
......@@ -4312,7 +4316,7 @@ yyreduce:
}
break;
case 182:
case 183:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode);
......@@ -4320,7 +4324,7 @@ yyreduce:
}
break;
case 183:
case 184:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
......@@ -4329,7 +4333,7 @@ yyreduce:
}
break;
case 184:
case 185:
{
TIntermNode* intermNode;
......@@ -4347,12 +4351,12 @@ yyreduce:
}
break;
case 185:
case 186:
{ context->symbolTable.push(); ++context->loopNestingLevel; }
break;
case 186:
case 187:
{
context->symbolTable.pop();
......@@ -4361,12 +4365,12 @@ yyreduce:
}
break;
case 187:
case 188:
{ ++context->loopNestingLevel; }
break;
case 188:
case 189:
{
if (context->boolErrorCheck((yyvsp[(8) - (8)].lex).line, (yyvsp[(6) - (8)].interm.intermTypedNode)))
......@@ -4377,12 +4381,12 @@ yyreduce:
}
break;
case 189:
case 190:
{ context->symbolTable.push(); ++context->loopNestingLevel; }
break;
case 190:
case 191:
{
context->symbolTable.pop();
......@@ -4391,35 +4395,35 @@ yyreduce:
}
break;
case 191:
case 192:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 192:
case 193:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 193:
case 194:
{
(yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode);
}
break;
case 194:
case 195:
{
(yyval.interm.intermTypedNode) = 0;
}
break;
case 195:
case 196:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode);
......@@ -4427,7 +4431,7 @@ yyreduce:
}
break;
case 196:
case 197:
{
(yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode);
......@@ -4435,7 +4439,7 @@ yyreduce:
}
break;
case 197:
case 198:
{
if (context->loopNestingLevel <= 0) {
......@@ -4446,7 +4450,7 @@ yyreduce:
}
break;
case 198:
case 199:
{
if (context->loopNestingLevel <= 0) {
......@@ -4457,7 +4461,7 @@ yyreduce:
}
break;
case 199:
case 200:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).line);
......@@ -4468,7 +4472,7 @@ yyreduce:
}
break;
case 200:
case 201:
{
(yyval.interm.intermNode) = context->intermediate.addBranch(EOpReturn, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).line);
......@@ -4483,7 +4487,7 @@ yyreduce:
}
break;
case 201:
case 202:
{
FRAG_ONLY("discard", (yyvsp[(1) - (2)].lex).line);
......@@ -4491,7 +4495,7 @@ yyreduce:
}
break;
case 202:
case 203:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
......@@ -4499,7 +4503,7 @@ yyreduce:
}
break;
case 203:
case 204:
{
(yyval.interm.intermNode) = context->intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode), 0);
......@@ -4507,21 +4511,21 @@ yyreduce:
}
break;
case 204:
case 205:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 205:
case 206:
{
(yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode);
}
break;
case 206:
case 207:
{
TFunction* function = (yyvsp[(1) - (1)].interm).function;
......@@ -4610,7 +4614,7 @@ yyreduce:
}
break;
case 207:
case 208:
{
//?? Check that all paths return a value if return type != void ?
......@@ -4855,4 +4859,3 @@ int glslang_parse(TParseContext* context) {
return yyparse(context);
}
......@@ -49,98 +49,99 @@
BOOL_TYPE = 265,
FLOAT_TYPE = 266,
INT_TYPE = 267,
BREAK = 268,
CONTINUE = 269,
DO = 270,
ELSE = 271,
FOR = 272,
IF = 273,
DISCARD = 274,
RETURN = 275,
SWITCH = 276,
CASE = 277,
DEFAULT = 278,
BVEC2 = 279,
BVEC3 = 280,
BVEC4 = 281,
IVEC2 = 282,
IVEC3 = 283,
IVEC4 = 284,
VEC2 = 285,
VEC3 = 286,
VEC4 = 287,
MATRIX2 = 288,
MATRIX3 = 289,
MATRIX4 = 290,
IN_QUAL = 291,
OUT_QUAL = 292,
INOUT_QUAL = 293,
UNIFORM = 294,
VARYING = 295,
CENTROID = 296,
FLAT = 297,
SMOOTH = 298,
STRUCT = 299,
VOID_TYPE = 300,
WHILE = 301,
SAMPLER2D = 302,
SAMPLERCUBE = 303,
SAMPLER_EXTERNAL_OES = 304,
SAMPLER2DRECT = 305,
SAMPLER3D = 306,
SAMPLER3DRECT = 307,
SAMPLER2DSHADOW = 308,
IDENTIFIER = 309,
TYPE_NAME = 310,
FLOATCONSTANT = 311,
INTCONSTANT = 312,
BOOLCONSTANT = 313,
FIELD_SELECTION = 314,
LEFT_OP = 315,
RIGHT_OP = 316,
INC_OP = 317,
DEC_OP = 318,
LE_OP = 319,
GE_OP = 320,
EQ_OP = 321,
NE_OP = 322,
AND_OP = 323,
OR_OP = 324,
XOR_OP = 325,
MUL_ASSIGN = 326,
DIV_ASSIGN = 327,
ADD_ASSIGN = 328,
MOD_ASSIGN = 329,
LEFT_ASSIGN = 330,
RIGHT_ASSIGN = 331,
AND_ASSIGN = 332,
XOR_ASSIGN = 333,
OR_ASSIGN = 334,
SUB_ASSIGN = 335,
LEFT_PAREN = 336,
RIGHT_PAREN = 337,
LEFT_BRACKET = 338,
RIGHT_BRACKET = 339,
LEFT_BRACE = 340,
RIGHT_BRACE = 341,
DOT = 342,
COMMA = 343,
COLON = 344,
EQUAL = 345,
SEMICOLON = 346,
BANG = 347,
DASH = 348,
TILDE = 349,
PLUS = 350,
STAR = 351,
SLASH = 352,
PERCENT = 353,
LEFT_ANGLE = 354,
RIGHT_ANGLE = 355,
VERTICAL_BAR = 356,
CARET = 357,
AMPERSAND = 358,
QUESTION = 359
UINT_TYPE = 268,
BREAK = 269,
CONTINUE = 270,
DO = 271,
ELSE = 272,
FOR = 273,
IF = 274,
DISCARD = 275,
RETURN = 276,
SWITCH = 277,
CASE = 278,
DEFAULT = 279,
BVEC2 = 280,
BVEC3 = 281,
BVEC4 = 282,
IVEC2 = 283,
IVEC3 = 284,
IVEC4 = 285,
VEC2 = 286,
VEC3 = 287,
VEC4 = 288,
MATRIX2 = 289,
MATRIX3 = 290,
MATRIX4 = 291,
IN_QUAL = 292,
OUT_QUAL = 293,
INOUT_QUAL = 294,
UNIFORM = 295,
VARYING = 296,
CENTROID = 297,
FLAT = 298,
SMOOTH = 299,
STRUCT = 300,
VOID_TYPE = 301,
WHILE = 302,
SAMPLER2D = 303,
SAMPLERCUBE = 304,
SAMPLER_EXTERNAL_OES = 305,
SAMPLER2DRECT = 306,
SAMPLER3D = 307,
SAMPLER3DRECT = 308,
SAMPLER2DSHADOW = 309,
IDENTIFIER = 310,
TYPE_NAME = 311,
FLOATCONSTANT = 312,
INTCONSTANT = 313,
BOOLCONSTANT = 314,
FIELD_SELECTION = 315,
LEFT_OP = 316,
RIGHT_OP = 317,
INC_OP = 318,
DEC_OP = 319,
LE_OP = 320,
GE_OP = 321,
EQ_OP = 322,
NE_OP = 323,
AND_OP = 324,
OR_OP = 325,
XOR_OP = 326,
MUL_ASSIGN = 327,
DIV_ASSIGN = 328,
ADD_ASSIGN = 329,
MOD_ASSIGN = 330,
LEFT_ASSIGN = 331,
RIGHT_ASSIGN = 332,
AND_ASSIGN = 333,
XOR_ASSIGN = 334,
OR_ASSIGN = 335,
SUB_ASSIGN = 336,
LEFT_PAREN = 337,
RIGHT_PAREN = 338,
LEFT_BRACKET = 339,
RIGHT_BRACKET = 340,
LEFT_BRACE = 341,
RIGHT_BRACE = 342,
DOT = 343,
COMMA = 344,
COLON = 345,
EQUAL = 346,
SEMICOLON = 347,
BANG = 348,
DASH = 349,
TILDE = 350,
PLUS = 351,
STAR = 352,
SLASH = 353,
PERCENT = 354,
LEFT_ANGLE = 355,
RIGHT_ANGLE = 356,
VERTICAL_BAR = 357,
CARET = 358,
AMPERSAND = 359,
QUESTION = 360
};
#endif
......
......@@ -223,6 +223,7 @@ bool TOutputTraverser::visitAggregate(Visit visit, TIntermAggregate* node)
case EOpConstructIVec2: out << "Construct ivec2"; break;
case EOpConstructIVec3: out << "Construct ivec3"; break;
case EOpConstructIVec4: out << "Construct ivec4"; break;
case EOpConstructUInt: out << "Construct uint"; break;
case EOpConstructMat2: out << "Construct mat2"; break;
case EOpConstructMat3: out << "Construct mat3"; break;
case EOpConstructMat4: out << "Construct mat4"; break;
......@@ -325,6 +326,10 @@ void TOutputTraverser::visitConstantUnion(TIntermConstantUnion* node)
out << node->getUnionArrayPointer()[i].getIConst();
out << " (const int)\n";
break;
case EbtUInt:
out << node->getUnionArrayPointer()[i].getUConst();
out << " (const uint)\n";
break;
default:
out.message(EPrefixInternalError, "Unknown constant", node->getLine());
break;
......
......@@ -145,6 +145,7 @@ enum TOperator {
//
EOpConstructInt,
EOpConstructUInt,
EOpConstructBool,
EOpConstructFloat,
EOpConstructVec2,
......@@ -248,6 +249,7 @@ public:
bool isArray() const { return type.isArray(); }
bool isVector() const { return type.isVector(); }
bool isScalar() const { return type.isScalar(); }
bool isScalarInt() const { return type.isScalarInt(); }
bool isRegister() const { return type.isRegister(); } // Fits in a 4-element register
bool isStruct() const { return type.isStruct(); }
const char* getBasicString() const { return type.getBasicString(); }
......@@ -356,6 +358,7 @@ public:
ConstantUnion* getUnionArrayPointer() const { return unionArrayPointer; }
int getIConst(int index) const { return unionArrayPointer ? unionArrayPointer[index].getIConst() : 0; }
int getUConst(int index) const { return unionArrayPointer ? unionArrayPointer[index].getUConst() : 0; }
float getFConst(int index) const { return unionArrayPointer ? unionArrayPointer[index].getFConst() : 0.0f; }
bool getBConst(int index) const { return unionArrayPointer ? unionArrayPointer[index].getBConst() : false; }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment