Add support for the unsigned integer scalar type to the shader translator.

TRAC #23080 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Author: Jamie Madill git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2403 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 1885113c
......@@ -88,6 +88,7 @@ typedef enum {
typedef enum {
SH_NONE = 0,
SH_INT = 0x1404,
SH_UNSIGNED_INT = 0x1405,
SH_FLOAT = 0x1406,
SH_FLOAT_VEC2 = 0x8B50,
SH_FLOAT_VEC3 = 0x8B51,
......@@ -95,6 +96,9 @@ typedef enum {
SH_INT_VEC2 = 0x8B53,
SH_INT_VEC3 = 0x8B54,
SH_INT_VEC4 = 0x8B55,
SH_UNSIGNED_INT_VEC2 = 0x8DC6,
SH_UNSIGNED_INT_VEC3 = 0x8DC7,
SH_UNSIGNED_INT_VEC4 = 0x8DC8,
SH_BOOL = 0x8B56,
SH_BOOL_VEC2 = 0x8B57,
SH_BOOL_VEC3 = 0x8B58,
......
......@@ -326,6 +326,10 @@ void PrintActiveVariables(ShHandle compiler, ShShaderInfo varType, bool mapLongV
case SH_INT_VEC2: typeName = "GL_INT_VEC2"; break;
case SH_INT_VEC3: typeName = "GL_INT_VEC3"; break;
case SH_INT_VEC4: typeName = "GL_INT_VEC4"; break;
case SH_UNSIGNED_INT: typeName = "GL_UNSIGNED_INT"; break;
case SH_UNSIGNED_INT_VEC2: typeName = "GL_UNSIGNED_INT_VEC2"; break;
case SH_UNSIGNED_INT_VEC3: typeName = "GL_UNSIGNED_INT_VEC3"; break;
case SH_UNSIGNED_INT_VEC4: typeName = "GL_UNSIGNED_INT_VEC4"; break;
case SH_BOOL: typeName = "GL_BOOL"; break;
case SH_BOOL_VEC2: typeName = "GL_BOOL_VEC2"; break;
case SH_BOOL_VEC3: typeName = "GL_BOOL_VEC3"; break;
......
......@@ -164,6 +164,7 @@ int VariableRowCount(GLenum type)
case GL_BOOL:
case GL_FLOAT:
case GL_INT:
case GL_UNSIGNED_INT:
case GL_BOOL_VEC2:
case GL_FLOAT_VEC2:
case GL_INT_VEC2:
......@@ -204,6 +205,7 @@ int VariableColumnCount(GLenum type)
case GL_BOOL:
case GL_FLOAT:
case GL_INT:
case GL_UNSIGNED_INT:
case GL_SAMPLER_2D:
case GL_SAMPLER_CUBE:
return 1;
......
......@@ -77,16 +77,24 @@ const char* getOperatorString(TOperator op) {
// Fall-through.
case EOpConvIntToBool:
case EOpConvUnsignedIntToBool:
case EOpConvFloatToBool: return "bool";
// Fall-through.
case EOpConvBoolToFloat:
case EOpConvUnsignedIntToFloat:
case EOpConvIntToFloat: return "float";
// Fall-through.
case EOpConvFloatToInt:
case EOpConvUnsignedIntToInt:
case EOpConvBoolToInt: return "int";
// Fall-through.
case EOpConvIntToUnsignedInt:
case EOpConvFloatToUnsignedInt:
case EOpConvBoolToUnsignedInt: return "uint";
case EOpRadians: return "radians";
case EOpDegrees: return "degrees";
case EOpSin: return "sin";
......@@ -315,6 +323,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermNode* childNode,
TBasicType newType = EbtVoid;
switch (op) {
case EOpConstructInt: newType = EbtInt; break;
case EOpConstructUnsignedInt: newType = EbtUInt; break;
case EOpConstructBool: newType = EbtBool; break;
case EOpConstructFloat: newType = EbtFloat; break;
default: break;
......@@ -335,6 +344,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermNode* childNode,
//
switch (op) {
case EOpConstructInt:
case EOpConstructUnsignedInt:
case EOpConstructBool:
case EOpConstructFloat:
return child;
......@@ -462,6 +472,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EOpConstructInt:
promoteTo = EbtInt;
break;
case EOpConstructUnsignedInt:
promoteTo = EbtUInt;
break;
default:
//
// implicit conversions were removed from the language.
......@@ -489,8 +502,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
switch (promoteTo) {
case EbtFloat:
switch (node->getBasicType()) {
case EbtInt: newOp = EOpConvIntToFloat; break;
case EbtBool: newOp = EOpConvBoolToFloat; break;
case EbtInt: newOp = EOpConvIntToFloat; break;
case EbtUInt: newOp = EOpConvFloatToUnsignedInt; break;
case EbtBool: newOp = EOpConvBoolToFloat; break;
default:
infoSink.info.message(EPrefixInternalError, "Bad promotion node", node->getLine());
return 0;
......@@ -498,8 +512,9 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
break;
case EbtBool:
switch (node->getBasicType()) {
case EbtInt: newOp = EOpConvIntToBool; break;
case EbtFloat: newOp = EOpConvFloatToBool; break;
case EbtInt: newOp = EOpConvIntToBool; break;
case EbtUInt: newOp = EOpConvBoolToUnsignedInt; break;
case EbtFloat: newOp = EOpConvFloatToBool; break;
default:
infoSink.info.message(EPrefixInternalError, "Bad promotion node", node->getLine());
return 0;
......@@ -507,8 +522,19 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
break;
case EbtInt:
switch (node->getBasicType()) {
case EbtBool: newOp = EOpConvBoolToInt; break;
case EbtFloat: newOp = EOpConvFloatToInt; break;
case EbtUInt: newOp = EOpConvUnsignedIntToInt; break;
case EbtBool: newOp = EOpConvBoolToInt; break;
case EbtFloat: newOp = EOpConvFloatToInt; break;
default:
infoSink.info.message(EPrefixInternalError, "Bad promotion node", node->getLine());
return 0;
}
break;
case EbtUInt:
switch (node->getBasicType()) {
case EbtInt: newOp = EOpConvIntToUnsignedInt; break;
case EbtBool: newOp = EOpConvBoolToUnsignedInt; break;
case EbtFloat: newOp = EOpConvFloatToUnsignedInt; break;
default:
infoSink.info.message(EPrefixInternalError, "Bad promotion node", node->getLine());
return 0;
......@@ -803,6 +829,7 @@ bool TIntermOperator::isConstructor() const
case EOpConstructIVec3:
case EOpConstructIVec4:
case EOpConstructInt:
case EOpConstructUnsignedInt:
case EOpConstructBVec2:
case EOpConstructBVec3:
case EOpConstructBVec4:
......@@ -1281,7 +1308,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
{
switch (getType().getBasicType())
{
case EbtFloat:
case EbtFloat:
if (rightUnionArray[i] == 0.0f)
{
infoSink.info.message(EPrefixWarning, "Divide by zero error during constant folding", getLine());
......@@ -1293,7 +1320,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
}
break;
case EbtInt:
case EbtInt:
if (rightUnionArray[i] == 0)
{
infoSink.info.message(EPrefixWarning, "Divide by zero error during constant folding", getLine());
......@@ -1305,7 +1332,19 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
}
break;
default:
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;
}
......@@ -1575,6 +1614,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;
......@@ -1591,6 +1633,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;
......@@ -1602,11 +1647,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;
......
......@@ -1619,6 +1619,10 @@ bool OutputHLSL::visitBinary(Visit visit, TIntermBinary *node)
default: UNREACHABLE();
}
break;
case EbtUInt:
// TODO
UNIMPLEMENTED();
break;
case EbtBool:
switch (node->getLeft()->getNominalSize())
{
......@@ -1680,6 +1684,7 @@ bool OutputHLSL::visitUnary(Visit visit, TIntermUnary *node)
case EOpPreIncrement: outputTriplet(visit, "(++", "", ")"); break;
case EOpPreDecrement: outputTriplet(visit, "(--", "", ")"); break;
case EOpConvIntToBool:
case EOpConvUnsignedIntToBool:
case EOpConvFloatToBool:
switch (node->getOperand()->getType().getNominalSize())
{
......@@ -1692,6 +1697,7 @@ bool OutputHLSL::visitUnary(Visit visit, TIntermUnary *node)
break;
case EOpConvBoolToFloat:
case EOpConvIntToFloat:
case EOpConvUnsignedIntToFloat:
switch (node->getOperand()->getType().getNominalSize())
{
case 1: outputTriplet(visit, "float(", "", ")"); break;
......@@ -1703,6 +1709,7 @@ bool OutputHLSL::visitUnary(Visit visit, TIntermUnary *node)
break;
case EOpConvFloatToInt:
case EOpConvBoolToInt:
case EOpConvUnsignedIntToInt:
switch (node->getOperand()->getType().getNominalSize())
{
case 1: outputTriplet(visit, "int(", "", ")"); break;
......@@ -1712,6 +1719,18 @@ bool OutputHLSL::visitUnary(Visit visit, TIntermUnary *node)
default: UNREACHABLE();
}
break;
case EOpConvFloatToUnsignedInt:
case EOpConvBoolToUnsignedInt:
case EOpConvIntToUnsignedInt:
switch (node->getOperand()->getType().getCols())
{
case 1: outputTriplet(visit, "uint(", "", ")"); break;
case 2:
case 3:
case 4: UNIMPLEMENTED(); break;
default: UNREACHABLE();
}
break;
case EOpRadians: outputTriplet(visit, "radians(", "", ")"); break;
case EOpDegrees: outputTriplet(visit, "degrees(", "", ")"); break;
case EOpSin: outputTriplet(visit, "sin(", "", ")"); break;
......@@ -2201,6 +2220,10 @@ bool OutputHLSL::visitAggregate(Visit visit, TIntermAggregate *node)
addConstructor(node->getType(), "ivec4", &node->getSequence());
outputTriplet(visit, "ivec4(", ", ", ")");
break;
case EOpConstructUnsignedInt:
addConstructor(node->getType(), "uvec1", &node->getSequence());
outputTriplet(visit, "uvec1(", "", ")");
break;
case EOpConstructMat2:
addConstructor(node->getType(), "mat2", &node->getSequence());
outputTriplet(visit, "mat2(", ", ", ")");
......@@ -2856,6 +2879,12 @@ TString OutputHLSL::typeString(const TType &type)
case 3: return "int3";
case 4: return "int4";
}
case EbtUInt:
switch (type.getCols())
{
case 1: return "uint";
default: UNIMPLEMENTED(); return "error";
}
case EbtBool:
switch (type.getNominalSize())
{
......@@ -3184,6 +3213,7 @@ const ConstantUnion *OutputHLSL::writeConstantUnion(const TType &type, const Con
{
case EbtFloat: out << std::min(FLT_MAX, std::max(-FLT_MAX, constUnion->getFConst())); break;
case EbtInt: out << constUnion->getIConst(); break;
case EbtUInt: out << constUnion->getUConst(); break;
case EbtBool: out << constUnion->getBConst(); break;
default: UNREACHABLE();
}
......@@ -3417,6 +3447,18 @@ GLenum OutputHLSL::glVariableType(const TType &type)
}
else UNREACHABLE();
}
else if (type.getBasicType() == EbtUInt)
{
if (type.isScalar())
{
return GL_UNSIGNED_INT;
}
else if (type.isVector())
{
UNIMPLEMENTED();
}
else UNREACHABLE();
}
else if (type.getBasicType() == EbtBool)
{
if (type.isScalar())
......@@ -3462,7 +3504,7 @@ GLenum OutputHLSL::glVariablePrecision(const TType &type)
default: UNREACHABLE();
}
}
else if (type.getBasicType() == EbtInt)
else if (type.getBasicType() == EbtInt || type.getBasicType() == EbtUInt)
{
switch (type.getPrecision())
{
......
......@@ -396,7 +396,7 @@ bool TParseContext::constErrorCheck(TIntermTyped* node)
//
bool TParseContext::integerErrorCheck(TIntermTyped* node, const char* token)
{
if (node->getBasicType() == EbtInt && node->isScalar())
if (node->isScalarInt())
return false;
error(node->getLine(), "integer expression required", token);
......@@ -676,17 +676,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;
......@@ -1193,6 +1211,14 @@ TFunction *TParseContext::addConstructorFunc(TPublicType publicType)
}
break;
case EbtUInt:
switch(publicType.getNominalSize())
{
case 1: op = EOpConstructUnsignedInt; break;
default: UNIMPLEMENTED(); break;
}
break;
case EbtBool:
switch(publicType.getNominalSize())
{
......@@ -1359,6 +1385,10 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType* type, TOperator op, T
basicOp = EOpConstructInt;
break;
case EOpConstructUnsignedInt:
basicOp = EOpConstructUnsignedInt;
break;
case EOpConstructBVec2:
case EOpConstructBVec3:
case EOpConstructBVec4:
......
......@@ -44,6 +44,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;
......
......@@ -342,6 +342,10 @@ public:
// Searches down the precisionStack for a precision qualifier for the specified TBasicType
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.
......
......@@ -195,6 +195,7 @@ public:
bool isVector() const { return primarySize > 1 && secondarySize == 1; }
bool isScalar() const { return primarySize == 1 && secondarySize == 1 && !structure; }
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());
......
......@@ -69,6 +69,19 @@ static ShDataType getVariableDataType(const TType& type)
} else {
return SH_INT;
}
case EbtUInt:
if (type.isMatrix()) {
UNREACHABLE();
} else if (type.isVector()) {
switch (type.getCols()) {
case 2: return SH_UNSIGNED_INT_VEC2;
case 3: return SH_UNSIGNED_INT_VEC3;
case 4: return SH_UNSIGNED_INT_VEC4;
default: UNREACHABLE();
}
} else {
return SH_UNSIGNED_INT;
}
case EbtBool:
if (type.isMatrix()) {
UNREACHABLE();
......
......@@ -119,6 +119,7 @@ O [0-7]
"float" { context->lexAfterType = true; return(FLOAT_TYPE); }
"int" { context->lexAfterType = true; return(INT_TYPE); }
"uint" { return ES2_ident_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); }
......
......@@ -122,7 +122,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
......@@ -1458,15 +1458,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);
......
......@@ -383,8 +383,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 223
#define YY_END_OF_BUFFER 224
#define YY_NUM_RULES 224
#define YY_END_OF_BUFFER 225
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
......@@ -392,92 +392,93 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[771] =
static yyconst flex_int16_t yy_accept[773] =
{ 0,
0, 0, 0, 0, 0, 0, 224, 222, 221, 221,
206, 212, 217, 201, 202, 210, 209, 198, 207, 205,
211, 170, 170, 199, 195, 213, 200, 214, 218, 166,
203, 204, 216, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 196, 215, 197, 208, 3, 4, 3,
220, 223, 219, 192, 178, 197, 186, 181, 176, 184,
174, 185, 175, 173, 2, 1, 177, 172, 168, 169,
0, 0, 170, 204, 196, 203, 193, 189, 191, 190,
194, 166, 182, 188, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 17, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
20, 166, 166, 28, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 183, 187, 5, 219, 0,
1, 172, 0, 0, 171, 167, 179, 180, 166, 124,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 18, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 32, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 29, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 0, 173,
0, 172, 166, 166, 166, 34, 166, 166, 23, 163,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
21, 127, 166, 166, 166, 166, 26, 166, 166, 132,
144, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 141, 9, 39, 40, 41, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 130, 35, 166, 166, 166, 166, 166, 166, 166,
166, 51, 52, 53, 33, 166, 166, 166, 166, 166,
166, 15, 57, 58, 59, 166, 125, 166, 166, 12,
166, 166, 166, 166, 153, 154, 155, 166, 36, 166,
145, 31, 156, 157, 158, 7, 150, 151, 152, 166,
166, 166, 30, 148, 166, 166, 166, 54, 55, 56,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
75, 166, 166, 166, 166, 166, 166, 166, 142, 166,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
126, 166, 166, 165, 166, 166, 19, 166, 80, 166,
166, 166, 166, 78, 166, 166, 166, 143, 138, 81,
166, 166, 166, 166, 166, 166, 133, 166, 166, 166,
42, 45, 47, 46, 43, 49, 48, 50, 44, 166,
166, 166, 166, 149, 131, 166, 166, 136, 166, 166,
166, 38, 76, 162, 27, 137, 67, 166, 147, 22,
166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 24, 37, 166, 166, 166, 166,
166, 166, 82, 83, 84, 166, 166, 166, 166, 166,
8, 166, 166, 166, 166, 166, 166, 166, 166, 166,
166, 166, 128, 166, 166, 166, 166, 166, 13, 166,
166, 14, 166, 166, 166, 166, 25, 68, 16, 139,
86, 87, 88, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 134, 166, 166, 166, 70,
72, 69, 166, 166, 166, 166, 166, 166, 166, 129,
90, 91, 92, 166, 166, 146, 166, 135, 166, 166,
11, 166, 166, 166, 166, 166, 166, 166, 166, 166,
85, 140, 6, 166, 166, 166, 164, 166, 79, 10,
159, 60, 63, 166, 166, 166, 166, 166, 166, 166,
166, 166, 166, 166, 71, 166, 166, 166, 166, 89,
166, 166, 166, 166, 166, 109, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 77, 166,
166, 166, 93, 111, 166, 166, 73, 166, 166, 166,
166, 166, 166, 166, 104, 166, 166, 166, 166, 166,
166, 166, 118, 166, 166, 166, 166, 61, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 105, 94,
166, 95, 166, 166, 119, 166, 166, 166, 166, 166,
166, 166, 166, 166, 166, 166, 166, 166, 106, 166,
120, 166, 166, 96, 97, 166, 100, 166, 101, 166,
166, 166, 166, 74, 166, 166, 166, 66, 166, 64,
115, 166, 98, 99, 166, 166, 166, 166, 166, 166,
166, 166, 113, 116, 107, 166, 166, 166, 166, 166,
166, 166, 114, 117, 166, 166, 110, 166, 166, 160,
166, 166, 65, 166, 112, 166, 166, 166, 166, 166,
121, 166, 166, 166, 166, 166, 122, 166, 166, 166,
123, 102, 103, 166, 166, 62, 166, 161, 108, 0
0, 0, 0, 0, 0, 0, 225, 223, 222, 222,
207, 213, 218, 202, 203, 211, 210, 199, 208, 206,
212, 171, 171, 200, 196, 214, 201, 215, 219, 167,
204, 205, 217, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 197, 216, 198, 209, 3, 4, 3,
221, 224, 220, 193, 179, 198, 187, 182, 177, 185,
175, 186, 176, 174, 2, 1, 178, 173, 169, 170,
0, 0, 171, 205, 197, 204, 194, 190, 192, 191,
195, 167, 183, 189, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 17, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
20, 167, 167, 28, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 184, 188, 5, 220, 0,
1, 173, 0, 0, 172, 168, 180, 181, 167, 125,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 18, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 32, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 29, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 0,
174, 0, 173, 167, 167, 167, 35, 167, 167, 23,
164, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 21, 128, 167, 167, 167, 167, 26, 167, 167,
133, 145, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 142, 9, 40, 41, 42, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 131, 36, 167, 167, 33, 167, 167, 167,
167, 167, 167, 52, 53, 54, 34, 167, 167, 167,
167, 167, 167, 15, 58, 59, 60, 167, 126, 167,
167, 12, 167, 167, 167, 167, 154, 155, 156, 167,
37, 167, 146, 31, 157, 158, 159, 7, 151, 152,
153, 167, 167, 167, 30, 149, 167, 167, 167, 55,
56, 57, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 76, 167, 167, 167, 167, 167, 167, 167,
143, 167, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 127, 167, 167, 166, 167, 167, 19, 167,
81, 167, 167, 167, 167, 79, 167, 167, 167, 144,
139, 82, 167, 167, 167, 167, 167, 167, 134, 167,
167, 167, 43, 46, 48, 47, 44, 50, 49, 51,
45, 167, 167, 167, 167, 150, 132, 167, 167, 137,
167, 167, 167, 39, 77, 163, 27, 138, 68, 167,
148, 22, 167, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 24, 38, 167, 167,
167, 167, 167, 167, 83, 84, 85, 167, 167, 167,
167, 167, 8, 167, 167, 167, 167, 167, 167, 167,
167, 167, 167, 167, 129, 167, 167, 167, 167, 167,
13, 167, 167, 14, 167, 167, 167, 167, 25, 69,
16, 140, 87, 88, 89, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 135, 167, 167,
167, 71, 73, 70, 167, 167, 167, 167, 167, 167,
167, 130, 91, 92, 93, 167, 167, 147, 167, 136,
167, 167, 11, 167, 167, 167, 167, 167, 167, 167,
167, 167, 86, 141, 6, 167, 167, 167, 165, 167,
80, 10, 160, 61, 64, 167, 167, 167, 167, 167,
167, 167, 167, 167, 167, 167, 72, 167, 167, 167,
167, 90, 167, 167, 167, 167, 167, 110, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
78, 167, 167, 167, 94, 112, 167, 167, 74, 167,
167, 167, 167, 167, 167, 167, 105, 167, 167, 167,
167, 167, 167, 167, 119, 167, 167, 167, 167, 62,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
106, 95, 167, 96, 167, 167, 120, 167, 167, 167,
167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
107, 167, 121, 167, 167, 97, 98, 167, 101, 167,
102, 167, 167, 167, 167, 75, 167, 167, 167, 67,
167, 65, 116, 167, 99, 100, 167, 167, 167, 167,
167, 167, 167, 167, 114, 117, 108, 167, 167, 167,
167, 167, 167, 167, 115, 118, 167, 167, 111, 167,
167, 161, 167, 167, 66, 167, 113, 167, 167, 167,
167, 167, 122, 167, 167, 167, 167, 167, 123, 167,
167, 167, 124, 103, 104, 167, 167, 63, 167, 162,
109, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
......@@ -524,185 +525,185 @@ static yyconst flex_int32_t yy_meta[72] =
1
} ;
static yyconst flex_int16_t yy_base[776] =
static yyconst flex_int16_t yy_base[778] =
{ 0,
0, 0, 69, 70, 79, 0, 1000, 1001, 1001, 1001,
974, 49, 145, 1001, 1001, 973, 142, 1001, 141, 139,
154, 167, 176, 971, 1001, 176, 971, 51, 1001, 0,
1001, 1001, 136, 116, 112, 159, 157, 156, 173, 938,
174, 179, 937, 175, 189, 931, 185, 944, 197, 203,
204, 209, 113, 1001, 186, 1001, 1001, 1001, 1001, 977,
1001, 1001, 0, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
1001, 1001, 1001, 255, 1001, 0, 1001, 262, 280, 298,
317, 0, 332, 1001, 1001, 1001, 965, 1001, 1001, 1001,
964, 0, 1001, 1001, 927, 932, 206, 929, 937, 936,
923, 926, 937, 233, 931, 919, 916, 929, 916, 913,
913, 919, 237, 248, 913, 923, 909, 915, 918, 919,
0, 911, 921, 300, 920, 915, 109, 901, 914, 905,
268, 898, 262, 910, 912, 246, 901, 898, 887, 896,
206, 264, 900, 896, 898, 887, 890, 892, 279, 315,
887, 899, 150, 892, 891, 1001, 1001, 1001, 0, 356,
0, 366, 384, 391, 400, 0, 1001, 1001, 890, 0,
886, 881, 885, 894, 891, 294, 875, 875, 886, 878,
225, 888, 885, 885, 883, 880, 872, 878, 865, 863,
875, 861, 877, 0, 874, 862, 869, 866, 870, 871,
864, 861, 850, 849, 862, 865, 853, 861, 856, 847,
371, 852, 855, 846, 853, 842, 846, 837, 851, 850,
841, 847, 283, 831, 834, 832, 842, 832, 827, 825,
827, 837, 823, 825, 822, 833, 832, 835, 313, 826,
822, 820, 809, 374, 827, 829, 818, 810, 407, 414,
421, 428, 807, 817, 816, 0, 814, 433, 0, 0,
807, 805, 805, 806, 801, 809, 798, 815, 804, 436,
0, 0, 798, 808, 807, 807, 0, 792, 439, 0,
0, 794, 442, 801, 802, 793, 787, 786, 787, 786,
786, 445, 0, 0, 778, 777, 776, 778, 779, 784,
778, 774, 787, 782, 782, 780, 779, 773, 767, 769,
768, 772, 764, 767, 762, 770, 775, 763, 760, 772,
763, 0, 0, 769, 765, 757, 757, 762, 753, 760,
757, 0, 0, 0, 0, 747, 759, 758, 757, 758,
758, 0, 0, 0, 0, 745, 0, 753, 744, 0,
743, 744, 738, 748, 0, 0, 0, 739, 0, 735,
0, 0, 0, 0, 0, 0, 0, 0, 0, 745,
449, 744, 0, 0, 742, 738, 735, 0, 0, 0,
451, 454, 457, 733, 729, 734, 725, 723, 736, 721,
0, 721, 734, 723, 719, 725, 720, 727, 0, 725,
722, 726, 710, 708, 711, 717, 723, 718, 717, 705,
0, 707, 708, 0, 705, 708, 0, 702, 0, 715,
695, 704, 699, 0, 692, 692, 705, 0, 707, 0,
464, 719, 718, 717, 685, 684, 0, 701, 700, 695,
0, 0, 0, 0, 0, 0, 0, 0, 0, 684,
697, 684, 681, 0, 0, 686, 685, 0, 682, 689,
688, 0, 674, 0, 0, 0, 0, 671, 0, 0,
670, 681, 467, 674, 680, 679, 676, 671, 668, 661,
661, 674, 659, 671, 0, 0, 664, 686, 685, 684,
652, 651, 341, 449, 0, 663, 666, 664, 653, 649,
0, 661, 658, 657, 647, 646, 636, 653, 639, 472,
647, 650, 0, 666, 665, 664, 632, 631, 0, 645,
632, 0, 642, 635, 636, 639, 0, 0, 0, 0,
658, 657, 0, 635, 638, 623, 630, 621, 628, 629,
629, 628, 614, 482, 626, 0, 627, 616, 615, 0,
0, 0, 639, 638, 637, 605, 604, 600, 608, 0,
635, 634, 0, 612, 615, 0, 489, 0, 593, 602,
0, 598, 597, 606, 606, 594, 608, 592, 606, 601,
0, 0, 0, 617, 616, 584, 0, 584, 0, 0,
472, 477, 607, 594, 597, 580, 592, 580, 579, 588,
588, 604, 603, 571, 0, 571, 572, 571, 581, 0,
584, 580, 582, 578, 565, 595, 203, 573, 569, 561,
568, 580, 569, 565, 567, 565, 565, 564, 0, 552,
551, 561, 0, 580, 208, 558, 0, 562, 561, 545,
537, 545, 535, 543, 0, 540, 560, 549, 547, 532,
535, 549, 564, 545, 546, 543, 540, 0, 528, 542,
541, 525, 524, 544, 533, 531, 513, 512, 0, 539,
512, 537, 510, 514, 544, 525, 522, 521, 524, 520,
507, 504, 517, 502, 503, 505, 494, 493, 0, 499,
529, 510, 507, 0, 0, 503, 0, 502, 0, 508,
492, 489, 490, 0, 482, 490, 487, 507, 487, 0,
0, 499, 0, 0, 498, 482, 479, 480, 494, 493,
470, 476, 0, 0, 496, 469, 488, 480, 464, 463,
450, 454, 0, 0, 462, 461, 0, 463, 452, 0,
429, 448, 0, 455, 0, 442, 356, 340, 329, 334,
0, 318, 328, 290, 279, 277, 0, 278, 267, 266,
0, 0, 0, 211, 158, 0, 126, 0, 0, 1001,
518, 520, 522, 526, 171
0, 0, 69, 70, 79, 0, 1002, 1003, 1003, 1003,
976, 49, 145, 1003, 1003, 975, 142, 1003, 141, 139,
154, 167, 176, 973, 1003, 176, 973, 51, 1003, 0,
1003, 1003, 136, 116, 112, 159, 157, 156, 173, 940,
174, 179, 939, 175, 189, 933, 185, 946, 197, 203,
204, 209, 113, 1003, 186, 1003, 1003, 1003, 1003, 979,
1003, 1003, 0, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
1003, 1003, 1003, 255, 1003, 0, 1003, 262, 280, 298,
317, 0, 332, 1003, 1003, 1003, 967, 1003, 1003, 1003,
966, 0, 1003, 1003, 929, 934, 206, 931, 939, 938,
925, 928, 939, 233, 933, 921, 918, 931, 918, 915,
915, 921, 237, 248, 915, 925, 911, 917, 920, 921,
0, 913, 923, 300, 922, 917, 109, 903, 916, 907,
268, 900, 262, 912, 914, 246, 903, 900, 889, 898,
206, 264, 902, 898, 900, 889, 892, 230, 279, 315,
890, 902, 150, 895, 894, 1003, 1003, 1003, 0, 356,
0, 366, 384, 391, 400, 0, 1003, 1003, 893, 0,
889, 884, 888, 897, 894, 294, 878, 878, 889, 881,
264, 891, 888, 888, 886, 883, 875, 881, 868, 866,
878, 864, 880, 0, 877, 865, 872, 869, 873, 874,
867, 864, 853, 852, 865, 868, 856, 864, 859, 850,
371, 855, 858, 849, 856, 845, 849, 840, 854, 853,
844, 850, 283, 834, 837, 835, 845, 835, 830, 828,
830, 840, 826, 828, 825, 836, 835, 838, 820, 313,
828, 824, 822, 811, 374, 829, 831, 820, 812, 407,
414, 421, 428, 809, 819, 818, 0, 816, 433, 0,
0, 809, 807, 807, 808, 803, 811, 800, 817, 806,
436, 0, 0, 800, 810, 809, 809, 0, 794, 439,
0, 0, 796, 442, 803, 804, 795, 789, 788, 789,
788, 788, 445, 0, 0, 780, 779, 778, 780, 781,
786, 780, 776, 789, 784, 784, 782, 781, 775, 769,
771, 770, 774, 766, 769, 764, 772, 777, 765, 762,
774, 765, 0, 0, 771, 767, 0, 759, 759, 764,
755, 762, 759, 0, 0, 0, 0, 749, 761, 760,
759, 760, 760, 0, 0, 0, 0, 747, 0, 755,
746, 0, 745, 746, 740, 750, 0, 0, 0, 741,
0, 737, 0, 0, 0, 0, 0, 0, 0, 0,
0, 747, 449, 746, 0, 0, 744, 740, 737, 0,
0, 0, 451, 454, 457, 735, 731, 736, 727, 725,
738, 723, 0, 723, 736, 725, 721, 727, 722, 729,
0, 727, 724, 728, 712, 710, 713, 719, 725, 720,
719, 707, 0, 709, 710, 0, 707, 710, 0, 704,
0, 717, 697, 706, 701, 0, 694, 694, 707, 0,
709, 0, 464, 721, 720, 719, 687, 686, 0, 703,
702, 697, 0, 0, 0, 0, 0, 0, 0, 0,
0, 686, 699, 686, 683, 0, 0, 688, 687, 0,
684, 691, 690, 0, 676, 0, 0, 0, 0, 673,
0, 0, 672, 683, 467, 676, 682, 681, 678, 673,
670, 663, 663, 676, 661, 673, 0, 0, 666, 688,
687, 686, 654, 653, 341, 449, 0, 665, 668, 666,
655, 651, 0, 663, 660, 659, 649, 648, 638, 655,
641, 472, 649, 652, 0, 668, 667, 666, 634, 633,
0, 647, 634, 0, 644, 637, 638, 641, 0, 0,
0, 0, 660, 659, 0, 637, 640, 625, 632, 623,
630, 631, 631, 630, 616, 482, 628, 0, 629, 618,
617, 0, 0, 0, 641, 640, 639, 607, 606, 602,
610, 0, 637, 636, 0, 614, 617, 0, 489, 0,
595, 604, 0, 600, 599, 608, 608, 596, 610, 594,
608, 603, 0, 0, 0, 619, 618, 586, 0, 586,
0, 0, 472, 477, 609, 596, 599, 582, 594, 582,
581, 590, 590, 606, 605, 573, 0, 573, 574, 573,
583, 0, 586, 582, 584, 580, 567, 597, 203, 575,
571, 563, 570, 582, 571, 567, 569, 567, 567, 566,
0, 554, 553, 563, 0, 582, 208, 560, 0, 564,
563, 547, 539, 547, 537, 545, 0, 542, 562, 551,
549, 534, 537, 551, 566, 547, 548, 545, 542, 0,
530, 544, 543, 527, 526, 546, 535, 533, 515, 514,
0, 541, 514, 539, 512, 516, 546, 527, 524, 523,
526, 522, 509, 506, 519, 504, 505, 507, 496, 495,
0, 501, 531, 512, 509, 0, 0, 505, 0, 504,
0, 510, 494, 491, 492, 0, 484, 492, 489, 509,
489, 0, 0, 501, 0, 0, 500, 484, 481, 482,
496, 495, 472, 478, 0, 0, 498, 471, 490, 482,
468, 477, 462, 458, 0, 0, 469, 466, 0, 465,
457, 0, 441, 459, 0, 459, 0, 448, 434, 429,
347, 353, 0, 348, 346, 299, 296, 292, 0, 296,
284, 266, 0, 0, 0, 211, 158, 0, 126, 0,
0, 1003, 518, 520, 522, 526, 171
} ;
static yyconst flex_int16_t yy_def[776] =
static yyconst flex_int16_t yy_def[778] =
{ 0,
770, 1, 771, 771, 770, 5, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 772,
770, 770, 770, 772, 772, 772, 772, 772, 772, 772,
772, 1, 773, 773, 772, 5, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 770, 770, 770, 770, 770, 770, 770,
770, 770, 773, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 774, 770, 770, 770, 770,
770, 775, 770, 770, 770, 770, 770, 770, 770, 770,
770, 772, 770, 770, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 770, 770, 770, 773, 770,
774, 770, 770, 770, 770, 775, 770, 770, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 770, 770,
770, 770, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 0,
770, 770, 770, 770, 770
772, 772, 772, 772, 772, 772, 772, 772, 772, 774,
772, 772, 772, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 772, 772, 772, 772, 772, 772, 772,
772, 772, 775, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 776, 772, 772, 772, 772,
772, 777, 772, 772, 772, 772, 772, 772, 772, 772,
772, 774, 772, 772, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 772, 772, 772, 775, 772,
776, 772, 772, 772, 772, 777, 772, 772, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 772,
772, 772, 772, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
774, 0, 772, 772, 772, 772, 772
} ;
static yyconst flex_int16_t yy_nxt[1073] =
static yyconst flex_int16_t yy_nxt[1075] =
{ 0,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 23, 23, 23, 23,
......@@ -723,108 +724,108 @@ static yyconst flex_int16_t yy_nxt[1073] =
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, 769,
85, 79, 79, 79, 79, 79, 79, 80, 78, 771,
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, 768, 129, 81, 113, 119, 114, 121, 133, 115,
122, 82, 130, 123, 124, 116, 120, 647, 125, 648,
137, 126, 664, 134, 665, 131, 135, 138, 139, 229,
111, 770, 129, 81, 113, 119, 114, 121, 133, 115,
122, 82, 130, 123, 124, 116, 120, 649, 125, 650,
137, 126, 666, 134, 667, 131, 135, 138, 139, 229,
144, 140, 151, 145, 157, 148, 152, 141, 142, 149,
143, 146, 171, 150, 230, 153, 172, 767, 147, 74,
143, 146, 171, 150, 230, 153, 172, 769, 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, 766, 193, 223, 224, 217, 231, 163,
80, 191, 160, 768, 193, 223, 224, 217, 231, 163,
78, 81, 80, 80, 80, 80, 80, 80, 80, 214,
218, 232, 219, 765, 764, 215, 164, 81, 164, 81,
239, 165, 165, 165, 165, 165, 165, 165, 240, 309,
763, 259, 762, 310, 78, 81, 83, 83, 83, 83,
83, 83, 83, 202, 260, 761, 203, 204, 241, 760,
205, 326, 206, 81, 759, 249, 242, 249, 536, 327,
250, 250, 250, 250, 250, 250, 250, 758, 537, 81,
162, 162, 162, 162, 162, 162, 162, 295, 296, 297,
332, 333, 334, 251, 757, 251, 756, 163, 252, 252,
252, 252, 252, 252, 252, 165, 165, 165, 165, 165,
165, 165, 755, 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, 432, 433, 434, 441, 442, 443,
444, 445, 446, 447, 448, 449, 538, 435, 436, 488,
489, 490, 514, 515, 516, 754, 539, 553, 554, 555,
753, 752, 491, 492, 751, 517, 518, 584, 585, 620,
556, 557, 750, 558, 602, 603, 749, 748, 747, 621,
586, 622, 746, 623, 624, 745, 744, 604, 58, 58,
58, 58, 92, 92, 159, 159, 161, 743, 161, 161,
742, 741, 740, 739, 738, 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, 663, 662, 661,
660, 659, 658, 657, 656, 655, 654, 653, 652, 651,
650, 649, 646, 645, 644, 643, 642, 641, 640, 639,
638, 637, 636, 635, 634, 633, 632, 631, 630, 629,
628, 627, 626, 625, 619, 618, 617, 616, 615, 614,
613, 612, 611, 610, 609, 608, 607, 606, 605, 601,
600, 599, 598, 597, 596, 595, 594, 593, 592, 591,
590, 589, 588, 587, 583, 582, 581, 580, 579, 578,
577, 576, 575, 574, 573, 572, 571, 570, 569, 568,
567, 566, 565, 564, 563, 562, 561, 560, 559, 552,
551, 550, 549, 548, 547, 546, 545, 544, 543, 542,
541, 540, 535, 534, 533, 532, 531, 530, 529, 528,
527, 526, 525, 524, 523, 522, 521, 520, 519, 513,
512, 511, 510, 509, 508, 507, 506, 505, 504, 503,
502, 501, 500, 499, 498, 497, 496, 495, 494, 493,
487, 486, 485, 484, 483, 482, 481, 480, 479, 478,
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, 440, 439,
438, 437, 431, 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, 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, 770,
7, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770
218, 232, 219, 266, 267, 215, 164, 81, 164, 81,
240, 165, 165, 165, 165, 165, 165, 165, 241, 310,
767, 260, 766, 311, 78, 81, 83, 83, 83, 83,
83, 83, 83, 202, 261, 765, 203, 204, 242, 764,
205, 328, 206, 81, 763, 250, 243, 250, 538, 329,
251, 251, 251, 251, 251, 251, 251, 762, 539, 81,
162, 162, 162, 162, 162, 162, 162, 296, 297, 298,
334, 335, 336, 252, 761, 252, 760, 163, 253, 253,
253, 253, 253, 253, 253, 165, 165, 165, 165, 165,
165, 165, 759, 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, 434, 435, 436, 443, 444, 445,
446, 447, 448, 449, 450, 451, 540, 437, 438, 490,
491, 492, 516, 517, 518, 758, 541, 555, 556, 557,
757, 756, 493, 494, 755, 519, 520, 586, 587, 622,
558, 559, 754, 560, 604, 605, 753, 752, 751, 623,
588, 624, 750, 625, 626, 749, 748, 606, 58, 58,
58, 58, 92, 92, 159, 159, 161, 747, 161, 161,
746, 745, 744, 743, 742, 741, 740, 739, 738, 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, 665,
664, 663, 662, 661, 660, 659, 658, 657, 656, 655,
654, 653, 652, 651, 648, 647, 646, 645, 644, 643,
642, 641, 640, 639, 638, 637, 636, 635, 634, 633,
632, 631, 630, 629, 628, 627, 621, 620, 619, 618,
617, 616, 615, 614, 613, 612, 611, 610, 609, 608,
607, 603, 602, 601, 600, 599, 598, 597, 596, 595,
594, 593, 592, 591, 590, 589, 585, 584, 583, 582,
581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
571, 570, 569, 568, 567, 566, 565, 564, 563, 562,
561, 554, 553, 552, 551, 550, 549, 548, 547, 546,
545, 544, 543, 542, 537, 536, 535, 534, 533, 532,
531, 530, 529, 528, 527, 526, 525, 524, 523, 522,
521, 515, 514, 513, 512, 511, 510, 509, 508, 507,
506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
496, 495, 489, 488, 487, 486, 485, 484, 483, 482,
481, 480, 479, 478, 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,
442, 441, 440, 439, 433, 432, 431, 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, 772, 7, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772
} ;
static yyconst flex_int16_t yy_chk[1073] =
static yyconst flex_int16_t yy_chk[1075] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
......@@ -844,110 +845,110 @@ static yyconst flex_int16_t yy_chk[1073] =
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, 775, 35, 34, 34, 33, 21, 22,
26, 22, 22, 22, 22, 22, 22, 22, 23, 767,
35, 53, 127, 777, 35, 34, 34, 33, 21, 22,
26, 22, 22, 22, 22, 22, 22, 22, 23, 769,
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, 765, 44, 23, 39, 41, 39, 42, 47, 39,
42, 22, 45, 42, 42, 39, 41, 617, 42, 617,
49, 42, 635, 47, 635, 45, 47, 49, 49, 141,
38, 767, 44, 23, 39, 41, 39, 42, 47, 39,
42, 22, 45, 42, 42, 39, 41, 619, 42, 619,
49, 42, 637, 47, 637, 45, 47, 49, 49, 141,
50, 49, 52, 50, 55, 51, 52, 49, 49, 51,
49, 50, 97, 51, 141, 52, 97, 764, 50, 74,
49, 50, 97, 51, 141, 52, 97, 766, 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, 760, 114, 136, 136, 133, 142, 78,
79, 113, 74, 762, 114, 136, 136, 133, 142, 78,
80, 79, 80, 80, 80, 80, 80, 80, 80, 131,
133, 142, 133, 759, 758, 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,
756, 176, 755, 223, 83, 80, 83, 83, 83, 83,
83, 83, 83, 124, 176, 754, 124, 124, 150, 753,
124, 239, 124, 83, 752, 160, 150, 160, 493, 239,
160, 160, 160, 160, 160, 160, 160, 750, 493, 83,
761, 176, 760, 223, 83, 80, 83, 83, 83, 83,
83, 83, 83, 124, 176, 758, 124, 124, 150, 757,
124, 240, 124, 83, 756, 160, 150, 160, 495, 240,
160, 160, 160, 160, 160, 160, 160, 755, 495, 83,
162, 162, 162, 162, 162, 162, 162, 211, 211, 211,
244, 244, 244, 163, 749, 163, 748, 162, 163, 163,
245, 245, 245, 163, 754, 163, 752, 162, 163, 163,
163, 163, 163, 163, 163, 164, 164, 164, 164, 164,
164, 164, 747, 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, 381, 381, 381,
382, 382, 382, 383, 383, 383, 494, 371, 371, 431,
431, 431, 473, 473, 473, 746, 494, 510, 510, 510,
744, 742, 431, 431, 741, 473, 473, 544, 544, 591,
510, 510, 739, 510, 567, 567, 738, 736, 735, 591,
544, 592, 732, 592, 592, 731, 730, 567, 771, 771,
771, 771, 772, 772, 773, 773, 774, 729, 774, 774,
728, 727, 726, 725, 722, 721, 720, 719, 718, 717,
716, 715, 712, 709, 708, 707, 706, 705, 703, 702,
701, 700, 698, 696, 693, 692, 691, 690, 688, 687,
686, 685, 684, 683, 682, 681, 680, 679, 678, 677,
676, 675, 674, 673, 672, 671, 670, 668, 667, 666,
665, 664, 663, 662, 661, 660, 659, 657, 656, 655,
654, 653, 652, 651, 650, 649, 648, 647, 646, 644,
643, 642, 641, 640, 639, 638, 636, 634, 632, 631,
630, 628, 627, 626, 625, 624, 623, 622, 621, 620,
619, 618, 616, 615, 614, 613, 612, 611, 609, 608,
607, 606, 604, 603, 602, 601, 600, 599, 598, 597,
596, 595, 594, 593, 588, 586, 585, 584, 580, 579,
578, 577, 576, 575, 574, 573, 572, 570, 569, 565,
564, 562, 561, 559, 558, 557, 556, 555, 554, 553,
549, 548, 547, 545, 543, 542, 541, 540, 539, 538,
537, 536, 535, 534, 532, 531, 526, 525, 524, 523,
521, 520, 518, 517, 516, 515, 514, 512, 511, 509,
508, 507, 506, 505, 504, 503, 502, 500, 499, 498,
497, 496, 492, 491, 490, 489, 488, 487, 484, 483,
482, 481, 480, 479, 478, 477, 476, 475, 474, 472,
471, 468, 463, 461, 460, 459, 457, 456, 453, 452,
451, 450, 440, 439, 438, 436, 435, 434, 433, 432,
429, 427, 426, 425, 423, 422, 421, 420, 418, 416,
415, 413, 412, 410, 409, 408, 407, 406, 405, 404,
403, 402, 401, 400, 398, 397, 396, 395, 394, 393,
392, 390, 389, 388, 387, 386, 385, 384, 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,
297, 296, 295, 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,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
770, 770
164, 164, 751, 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, 383, 383, 383,
384, 384, 384, 385, 385, 385, 496, 373, 373, 433,
433, 433, 475, 475, 475, 750, 496, 512, 512, 512,
749, 748, 433, 433, 746, 475, 475, 546, 546, 593,
512, 512, 744, 512, 569, 569, 743, 741, 740, 593,
546, 594, 738, 594, 594, 737, 734, 569, 773, 773,
773, 773, 774, 774, 775, 775, 776, 733, 776, 776,
732, 731, 730, 729, 728, 727, 724, 723, 722, 721,
720, 719, 718, 717, 714, 711, 710, 709, 708, 707,
705, 704, 703, 702, 700, 698, 695, 694, 693, 692,
690, 689, 688, 687, 686, 685, 684, 683, 682, 681,
680, 679, 678, 677, 676, 675, 674, 673, 672, 670,
669, 668, 667, 666, 665, 664, 663, 662, 661, 659,
658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
648, 646, 645, 644, 643, 642, 641, 640, 638, 636,
634, 633, 632, 630, 629, 628, 627, 626, 625, 624,
623, 622, 621, 620, 618, 617, 616, 615, 614, 613,
611, 610, 609, 608, 606, 605, 604, 603, 602, 601,
600, 599, 598, 597, 596, 595, 590, 588, 587, 586,
582, 581, 580, 579, 578, 577, 576, 575, 574, 572,
571, 567, 566, 564, 563, 561, 560, 559, 558, 557,
556, 555, 551, 550, 549, 547, 545, 544, 543, 542,
541, 540, 539, 538, 537, 536, 534, 533, 528, 527,
526, 525, 523, 522, 520, 519, 518, 517, 516, 514,
513, 511, 510, 509, 508, 507, 506, 505, 504, 502,
501, 500, 499, 498, 494, 493, 492, 491, 490, 489,
486, 485, 484, 483, 482, 481, 480, 479, 478, 477,
476, 474, 473, 470, 465, 463, 462, 461, 459, 458,
455, 454, 453, 452, 442, 441, 440, 438, 437, 436,
435, 434, 431, 429, 428, 427, 425, 424, 423, 422,
420, 418, 417, 415, 414, 412, 411, 410, 409, 408,
407, 406, 405, 404, 403, 402, 400, 399, 398, 397,
396, 395, 394, 392, 391, 390, 389, 388, 387, 386,
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, 298, 297, 296, 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, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
772, 772, 772, 772
} ;
/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[224] =
static yyconst flex_int32_t yy_rule_can_match_eol[225] =
{ 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,
......@@ -960,7 +961,7 @@ static yyconst flex_int32_t yy_rule_can_match_eol[224] =
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, 1, 0, 0, };
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
......@@ -1290,13 +1291,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 >= 771 )
if ( yy_current_state >= 773 )
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 != 770 );
while ( yy_current_state != 772 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
......@@ -1457,146 +1458,149 @@ YY_RULE_SETUP
YY_BREAK
case 33:
YY_RULE_SETUP
{ context->lexAfterType = true; return(VOID_TYPE); }
{ return ES2_ident_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
{ return ES2_ident_ES3_keyword(context, MATRIX2); }
{ context->lexAfterType = true; return(MATRIX4); }
YY_BREAK
case 43:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX3); }
{ return ES2_ident_ES3_keyword(context, MATRIX2); }
YY_BREAK
case 44:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX4); }
{ return ES2_ident_ES3_keyword(context, MATRIX3); }
YY_BREAK
case 45:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX2x3); }
{ return ES2_ident_ES3_keyword(context, MATRIX4); }
YY_BREAK
case 46:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX3x2); }
{ return ES2_ident_ES3_keyword(context, MATRIX2x3); }
YY_BREAK
case 47:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX2x4); }
{ return ES2_ident_ES3_keyword(context, MATRIX3x2); }
YY_BREAK
case 48:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX4x2); }
{ return ES2_ident_ES3_keyword(context, MATRIX2x4); }
YY_BREAK
case 49:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX3x4); }
{ return ES2_ident_ES3_keyword(context, MATRIX4x2); }
YY_BREAK
case 50:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, MATRIX4x3); }
{ return ES2_ident_ES3_keyword(context, MATRIX3x4); }
YY_BREAK
case 51:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC2); }
{ return ES2_ident_ES3_keyword(context, MATRIX4x3); }
YY_BREAK
case 52:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC3); }
{ context->lexAfterType = true; return (VEC2); }
YY_BREAK
case 53:
YY_RULE_SETUP
{ context->lexAfterType = true; return (VEC4); }
{ context->lexAfterType = true; return (VEC3); }
YY_BREAK
case 54:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC2); }
{ context->lexAfterType = true; return (VEC4); }
YY_BREAK
case 55:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC3); }
{ context->lexAfterType = true; return (IVEC2); }
YY_BREAK
case 56:
YY_RULE_SETUP
{ context->lexAfterType = true; return (IVEC4); }
{ context->lexAfterType = true; return (IVEC3); }
YY_BREAK
case 57:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC2); }
{ context->lexAfterType = true; return (IVEC4); }
YY_BREAK
case 58:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC3); }
{ context->lexAfterType = true; return (BVEC2); }
YY_BREAK
case 59:
YY_RULE_SETUP
{ context->lexAfterType = true; return (BVEC4); }
{ context->lexAfterType = true; return (BVEC3); }
YY_BREAK
case 60:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER2D; }
{ context->lexAfterType = true; return (BVEC4); }
YY_BREAK
case 61:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLERCUBE; }
{ context->lexAfterType = true; return SAMPLER2D; }
YY_BREAK
case 62:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
{ context->lexAfterType = true; return SAMPLERCUBE; }
YY_BREAK
case 63:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER3D); }
{ context->lexAfterType = true; return SAMPLER_EXTERNAL_OES; }
YY_BREAK
case 64:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
{ return ES2_reserved_ES3_keyword(context, SAMPLER3D); }
YY_BREAK
case 65:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
{ return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
YY_BREAK
case 66:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER2DRECT; }
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
YY_BREAK
case 67:
YY_RULE_SETUP
{ context->lexAfterType = true; return SAMPLER2DRECT; }
YY_BREAK
case 68:
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 68:
case 69:
case 70:
case 71:
......@@ -1652,6 +1656,7 @@ case 120:
case 121:
case 122:
case 123:
case 124:
YY_RULE_SETUP
{
if (context->shaderVersion < 300) {
......@@ -1662,7 +1667,6 @@ YY_RULE_SETUP
}
YY_BREAK
/* Reserved keywords */
case 124:
case 125:
case 126:
case 127:
......@@ -1704,35 +1708,32 @@ case 162:
case 163:
case 164:
case 165:
case 166:
YY_RULE_SETUP
{ return reserved_word(yyscanner); }
YY_BREAK
case 166:
case 167:
YY_RULE_SETUP
{
yylval->lex.string = NewPoolTString(yytext);
return check_type(yyscanner);
}
YY_BREAK
case 167:
YY_RULE_SETUP
{ yylval->lex.i = static_cast<int>(strtol(yytext, 0, 0)); return(INTCONSTANT); }
YY_BREAK
case 168:
YY_RULE_SETUP
{ yylval->lex.i = static_cast<int>(strtol(yytext, 0, 0)); return(INTCONSTANT); }
YY_BREAK
case 169:
YY_RULE_SETUP
{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;}
{ yylval->lex.i = static_cast<int>(strtol(yytext, 0, 0)); return(INTCONSTANT); }
YY_BREAK
case 170:
YY_RULE_SETUP
{ yylval->lex.i = static_cast<int>(strtol(yytext, 0, 0)); return(INTCONSTANT); }
{ context->error(yylineno, "Invalid Octal number.", yytext); context->recover(); return 0;}
YY_BREAK
case 171:
YY_RULE_SETUP
{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); }
{ yylval->lex.i = static_cast<int>(strtol(yytext, 0, 0)); return(INTCONSTANT); }
YY_BREAK
case 172:
YY_RULE_SETUP
......@@ -1744,198 +1745,202 @@ YY_RULE_SETUP
YY_BREAK
case 174:
YY_RULE_SETUP
{ return(ADD_ASSIGN); }
{ yylval->lex.f = static_cast<float>(atof_dot(yytext)); return(FLOATCONSTANT); }
YY_BREAK
case 175:
YY_RULE_SETUP
{ return(SUB_ASSIGN); }
{ return(ADD_ASSIGN); }
YY_BREAK
case 176:
YY_RULE_SETUP
{ return(MUL_ASSIGN); }
{ return(SUB_ASSIGN); }
YY_BREAK
case 177:
YY_RULE_SETUP
{ return(DIV_ASSIGN); }
{ return(MUL_ASSIGN); }
YY_BREAK
case 178:
YY_RULE_SETUP
{ return(MOD_ASSIGN); }
{ return(DIV_ASSIGN); }
YY_BREAK
case 179:
YY_RULE_SETUP
{ return(LEFT_ASSIGN); }
{ return(MOD_ASSIGN); }
YY_BREAK
case 180:
YY_RULE_SETUP
{ return(RIGHT_ASSIGN); }
{ return(LEFT_ASSIGN); }
YY_BREAK
case 181:
YY_RULE_SETUP
{ return(AND_ASSIGN); }
{ return(RIGHT_ASSIGN); }
YY_BREAK
case 182:
YY_RULE_SETUP
{ return(XOR_ASSIGN); }
{ return(AND_ASSIGN); }
YY_BREAK
case 183:
YY_RULE_SETUP
{ return(OR_ASSIGN); }
{ return(XOR_ASSIGN); }
YY_BREAK
case 184:
YY_RULE_SETUP
{ return(INC_OP); }
{ return(OR_ASSIGN); }
YY_BREAK
case 185:
YY_RULE_SETUP
{ return(DEC_OP); }
{ return(INC_OP); }
YY_BREAK
case 186:
YY_RULE_SETUP
{ return(AND_OP); }
{ return(DEC_OP); }
YY_BREAK
case 187:
YY_RULE_SETUP
{ return(OR_OP); }
{ return(AND_OP); }
YY_BREAK
case 188:
YY_RULE_SETUP
{ return(XOR_OP); }
{ return(OR_OP); }
YY_BREAK
case 189:
YY_RULE_SETUP
{ return(LE_OP); }
{ return(XOR_OP); }
YY_BREAK
case 190:
YY_RULE_SETUP
{ return(GE_OP); }
{ return(LE_OP); }
YY_BREAK
case 191:
YY_RULE_SETUP
{ return(EQ_OP); }
{ return(GE_OP); }
YY_BREAK
case 192:
YY_RULE_SETUP
{ return(NE_OP); }
{ return(EQ_OP); }
YY_BREAK
case 193:
YY_RULE_SETUP
{ return(LEFT_OP); }
{ return(NE_OP); }
YY_BREAK
case 194:
YY_RULE_SETUP
{ return(RIGHT_OP); }
{ return(LEFT_OP); }
YY_BREAK
case 195:
YY_RULE_SETUP
{ context->lexAfterType = false; return(SEMICOLON); }
{ return(RIGHT_OP); }
YY_BREAK
case 196:
YY_RULE_SETUP
{ context->lexAfterType = false; return(LEFT_BRACE); }
{ context->lexAfterType = false; return(SEMICOLON); }
YY_BREAK
case 197:
YY_RULE_SETUP
{ return(RIGHT_BRACE); }
{ context->lexAfterType = false; return(LEFT_BRACE); }
YY_BREAK
case 198:
YY_RULE_SETUP
{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); }
{ return(RIGHT_BRACE); }
YY_BREAK
case 199:
YY_RULE_SETUP
{ return(COLON); }
{ if (context->inTypeParen) context->lexAfterType = false; return(COMMA); }
YY_BREAK
case 200:
YY_RULE_SETUP
{ context->lexAfterType = false; return(EQUAL); }
{ return(COLON); }
YY_BREAK
case 201:
YY_RULE_SETUP
{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); }
{ context->lexAfterType = false; return(EQUAL); }
YY_BREAK
case 202:
YY_RULE_SETUP
{ context->inTypeParen = false; return(RIGHT_PAREN); }
{ context->lexAfterType = false; context->inTypeParen = true; return(LEFT_PAREN); }
YY_BREAK
case 203:
YY_RULE_SETUP
{ return(LEFT_BRACKET); }
{ context->inTypeParen = false; return(RIGHT_PAREN); }
YY_BREAK
case 204:
YY_RULE_SETUP
{ return(RIGHT_BRACKET); }
{ return(LEFT_BRACKET); }
YY_BREAK
case 205:
YY_RULE_SETUP
{ BEGIN(FIELDS); return(DOT); }
{ return(RIGHT_BRACKET); }
YY_BREAK
case 206:
YY_RULE_SETUP
{ return(BANG); }
{ BEGIN(FIELDS); return(DOT); }
YY_BREAK
case 207:
YY_RULE_SETUP
{ return(DASH); }
{ return(BANG); }
YY_BREAK
case 208:
YY_RULE_SETUP
{ return(TILDE); }
{ return(DASH); }
YY_BREAK
case 209:
YY_RULE_SETUP
{ return(PLUS); }
{ return(TILDE); }
YY_BREAK
case 210:
YY_RULE_SETUP
{ return(STAR); }
{ return(PLUS); }
YY_BREAK
case 211:
YY_RULE_SETUP
{ return(SLASH); }
{ return(STAR); }
YY_BREAK
case 212:
YY_RULE_SETUP
{ return(PERCENT); }
{ return(SLASH); }
YY_BREAK
case 213:
YY_RULE_SETUP
{ return(LEFT_ANGLE); }
{ return(PERCENT); }
YY_BREAK
case 214:
YY_RULE_SETUP
{ return(RIGHT_ANGLE); }
{ return(LEFT_ANGLE); }
YY_BREAK
case 215:
YY_RULE_SETUP
{ return(VERTICAL_BAR); }
{ return(RIGHT_ANGLE); }
YY_BREAK
case 216:
YY_RULE_SETUP
{ return(CARET); }
{ return(VERTICAL_BAR); }
YY_BREAK
case 217:
YY_RULE_SETUP
{ return(AMPERSAND); }
{ return(CARET); }
YY_BREAK
case 218:
YY_RULE_SETUP
{ return(QUESTION); }
{ return(AMPERSAND); }
YY_BREAK
case 219:
YY_RULE_SETUP
{ return(QUESTION); }
YY_BREAK
case 220:
YY_RULE_SETUP
{
BEGIN(INITIAL);
yylval->lex.string = NewPoolTString(yytext);
return FIELD_SELECTION;
}
YY_BREAK
case 220:
case 221:
YY_RULE_SETUP
{}
YY_BREAK
case 221:
/* rule 221 can match eol */
case 222:
/* rule 222 can match eol */
YY_RULE_SETUP
{ }
YY_BREAK
......@@ -1944,11 +1949,11 @@ case YY_STATE_EOF(COMMENT):
case YY_STATE_EOF(FIELDS):
{ context->AfterEOF = true; yyterminate(); }
YY_BREAK
case 222:
case 223:
YY_RULE_SETUP
{ context->warning(yylineno, "Unknown char", yytext, ""); return 0; }
YY_BREAK
case 223:
case 224:
YY_RULE_SETUP
ECHO;
YY_BREAK
......@@ -2244,7 +2249,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 >= 771 )
if ( yy_current_state >= 773 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
......@@ -2273,11 +2278,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 >= 771 )
if ( yy_current_state >= 773 )
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 == 770);
yy_is_jam = (yy_current_state == 772);
return yy_is_jam ? 0 : yy_current_state;
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -56,104 +56,105 @@ extern int yydebug;
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,
MATRIX2x3 = 296,
MATRIX3x2 = 297,
MATRIX2x4 = 298,
MATRIX4x2 = 299,
MATRIX3x4 = 300,
MATRIX4x3 = 301,
CENTROID = 302,
FLAT = 303,
SMOOTH = 304,
STRUCT = 305,
VOID_TYPE = 306,
WHILE = 307,
SAMPLER2D = 308,
SAMPLERCUBE = 309,
SAMPLER_EXTERNAL_OES = 310,
SAMPLER2DRECT = 311,
SAMPLER3D = 312,
SAMPLER3DRECT = 313,
SAMPLER2DSHADOW = 314,
IDENTIFIER = 315,
TYPE_NAME = 316,
FLOATCONSTANT = 317,
INTCONSTANT = 318,
BOOLCONSTANT = 319,
FIELD_SELECTION = 320,
LEFT_OP = 321,
RIGHT_OP = 322,
INC_OP = 323,
DEC_OP = 324,
LE_OP = 325,
GE_OP = 326,
EQ_OP = 327,
NE_OP = 328,
AND_OP = 329,
OR_OP = 330,
XOR_OP = 331,
MUL_ASSIGN = 332,
DIV_ASSIGN = 333,
ADD_ASSIGN = 334,
MOD_ASSIGN = 335,
LEFT_ASSIGN = 336,
RIGHT_ASSIGN = 337,
AND_ASSIGN = 338,
XOR_ASSIGN = 339,
OR_ASSIGN = 340,
SUB_ASSIGN = 341,
LEFT_PAREN = 342,
RIGHT_PAREN = 343,
LEFT_BRACKET = 344,
RIGHT_BRACKET = 345,
LEFT_BRACE = 346,
RIGHT_BRACE = 347,
DOT = 348,
COMMA = 349,
COLON = 350,
EQUAL = 351,
SEMICOLON = 352,
BANG = 353,
DASH = 354,
TILDE = 355,
PLUS = 356,
STAR = 357,
SLASH = 358,
PERCENT = 359,
LEFT_ANGLE = 360,
RIGHT_ANGLE = 361,
VERTICAL_BAR = 362,
CARET = 363,
AMPERSAND = 364,
QUESTION = 365
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,
MATRIX2x3 = 297,
MATRIX3x2 = 298,
MATRIX2x4 = 299,
MATRIX4x2 = 300,
MATRIX3x4 = 301,
MATRIX4x3 = 302,
CENTROID = 303,
FLAT = 304,
SMOOTH = 305,
STRUCT = 306,
VOID_TYPE = 307,
WHILE = 308,
SAMPLER2D = 309,
SAMPLERCUBE = 310,
SAMPLER_EXTERNAL_OES = 311,
SAMPLER2DRECT = 312,
SAMPLER3D = 313,
SAMPLER3DRECT = 314,
SAMPLER2DSHADOW = 315,
IDENTIFIER = 316,
TYPE_NAME = 317,
FLOATCONSTANT = 318,
INTCONSTANT = 319,
BOOLCONSTANT = 320,
FIELD_SELECTION = 321,
LEFT_OP = 322,
RIGHT_OP = 323,
INC_OP = 324,
DEC_OP = 325,
LE_OP = 326,
GE_OP = 327,
EQ_OP = 328,
NE_OP = 329,
AND_OP = 330,
OR_OP = 331,
XOR_OP = 332,
MUL_ASSIGN = 333,
DIV_ASSIGN = 334,
ADD_ASSIGN = 335,
MOD_ASSIGN = 336,
LEFT_ASSIGN = 337,
RIGHT_ASSIGN = 338,
AND_ASSIGN = 339,
XOR_ASSIGN = 340,
OR_ASSIGN = 341,
SUB_ASSIGN = 342,
LEFT_PAREN = 343,
RIGHT_PAREN = 344,
LEFT_BRACKET = 345,
RIGHT_BRACKET = 346,
LEFT_BRACE = 347,
RIGHT_BRACE = 348,
DOT = 349,
COMMA = 350,
COLON = 351,
EQUAL = 352,
SEMICOLON = 353,
BANG = 354,
DASH = 355,
TILDE = 356,
PLUS = 357,
STAR = 358,
SLASH = 359,
PERCENT = 360,
LEFT_ANGLE = 361,
RIGHT_ANGLE = 362,
VERTICAL_BAR = 363,
CARET = 364,
AMPERSAND = 365,
QUESTION = 366
};
#endif
......
......@@ -153,11 +153,16 @@ bool TOutputTraverser::visitUnary(Visit visit, TIntermUnary* node)
case EOpPreDecrement: out << "Pre-Decrement"; break;
case EOpConvIntToBool: out << "Convert int to bool"; break;
case EOpConvUnsignedIntToBool: out << "Convert unsigned int to bool"; break;
case EOpConvFloatToBool:out << "Convert float to bool";break;
case EOpConvBoolToFloat:out << "Convert bool to float";break;
case EOpConvIntToFloat: out << "Convert int to float"; break;
case EOpConvUnsignedIntToFloat: out << "Convert unsigned int to float"; break;
case EOpConvFloatToInt: out << "Convert float to int"; break;
case EOpConvBoolToInt: out << "Convert bool to int"; break;
case EOpConvIntToUnsignedInt: out << "Convert int to unsigned int"; break;
case EOpConvFloatToUnsignedInt: out << "Convert float to unsigned int"; break;
case EOpConvBoolToUnsignedInt: out << "Convert bool to unsigned int"; break;
case EOpRadians: out << "radians"; break;
case EOpDegrees: out << "degrees"; break;
......@@ -230,6 +235,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 EOpConstructUnsignedInt: out << "Construct uint"; break;
case EOpConstructMat2: out << "Construct mat2"; break;
case EOpConstructMat3: out << "Construct mat3"; break;
case EOpConstructMat4: out << "Construct mat4"; break;
......@@ -334,6 +340,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;
......
......@@ -49,11 +49,17 @@ enum TOperator {
EOpPreDecrement,
EOpConvIntToBool,
EOpConvUnsignedIntToBool,
EOpConvFloatToBool,
EOpConvBoolToFloat,
EOpConvIntToFloat,
EOpConvUnsignedIntToFloat,
EOpConvFloatToInt,
EOpConvBoolToInt,
EOpConvUnsignedIntToInt,
EOpConvIntToUnsignedInt,
EOpConvFloatToUnsignedInt,
EOpConvBoolToUnsignedInt,
//
// binary operations
......@@ -155,6 +161,7 @@ enum TOperator {
//
EOpConstructInt,
EOpConstructUnsignedInt,
EOpConstructBool,
EOpConstructFloat,
EOpConstructVec2,
......@@ -259,6 +266,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(); }
const char* getBasicString() const { return type.getBasicString(); }
const char* getQualifierString() const { return type.getQualifierString(); }
TString getCompleteString() const { return type.getCompleteString(); }
......@@ -368,6 +376,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; }
......
......@@ -50,6 +50,7 @@ namespace gl_d3d
case GL_INT_VEC2: return "int2";
case GL_INT_VEC3: return "int3";
case GL_INT_VEC4: return "int4";
case GL_UNSIGNED_INT: return "uint";
case GL_FLOAT_MAT2: return "float2x2";
case GL_FLOAT_MAT3: return "float3x3";
case GL_FLOAT_MAT4: return "float4x4";
......
......@@ -533,6 +533,10 @@ GLenum Shader::parseType(const std::string &type)
{
return GL_INT_VEC4;
}
else if (type == "uint")
{
return GL_UNSIGNED_INT;
}
else UNREACHABLE();
return GL_NONE;
......@@ -560,6 +564,7 @@ static void makeVaryingPriorityMap()
varyingPriorities[GL_INT_VEC2] = 111;
varyingPriorities[GL_FLOAT] = 120;
varyingPriorities[GL_INT] = 125;
varyingPriorities[GL_UNSIGNED_INT] = 130;
}
// true if varying x has a higher priority in packing than y
......
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