mirror of https://gitee.com/bigwinds/arangodb
Bug fix 3.5/fix in not in workaround (#9814)
* remove hack for NOT IN * added parsing test * added derived files * added CHANGELOG entry
This commit is contained in:
parent
bc1df0e78d
commit
226373e200
|
@ -1,6 +1,10 @@
|
||||||
v3.5.1 (XXXX-XX-XX)
|
v3.5.1 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* Fixed parsing of "NOT IN" in AQL, which previously didn't correctly parse
|
||||||
|
"NOT IN_RANGE(...)" because it checked if the "NOT" token was followed by
|
||||||
|
whitespace and then the two letters "IN".
|
||||||
|
|
||||||
* Changed log level for message "keep alive timeout - closing stream!" from INFO to
|
* Changed log level for message "keep alive timeout - closing stream!" from INFO to
|
||||||
DEBUG.
|
DEBUG.
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -85,39 +85,39 @@ extern int Aqldebug;
|
||||||
T_NOT = 290,
|
T_NOT = 290,
|
||||||
T_AND = 291,
|
T_AND = 291,
|
||||||
T_OR = 292,
|
T_OR = 292,
|
||||||
T_NIN = 293,
|
T_REGEX_MATCH = 293,
|
||||||
T_REGEX_MATCH = 294,
|
T_REGEX_NON_MATCH = 294,
|
||||||
T_REGEX_NON_MATCH = 295,
|
T_EQ = 295,
|
||||||
T_EQ = 296,
|
T_NE = 296,
|
||||||
T_NE = 297,
|
T_LT = 297,
|
||||||
T_LT = 298,
|
T_GT = 298,
|
||||||
T_GT = 299,
|
T_LE = 299,
|
||||||
T_LE = 300,
|
T_GE = 300,
|
||||||
T_GE = 301,
|
T_LIKE = 301,
|
||||||
T_LIKE = 302,
|
T_PLUS = 302,
|
||||||
T_PLUS = 303,
|
T_MINUS = 303,
|
||||||
T_MINUS = 304,
|
T_TIMES = 304,
|
||||||
T_TIMES = 305,
|
T_DIV = 305,
|
||||||
T_DIV = 306,
|
T_MOD = 306,
|
||||||
T_MOD = 307,
|
T_QUESTION = 307,
|
||||||
T_QUESTION = 308,
|
T_COLON = 308,
|
||||||
T_COLON = 309,
|
T_SCOPE = 309,
|
||||||
T_SCOPE = 310,
|
T_RANGE = 310,
|
||||||
T_RANGE = 311,
|
T_COMMA = 311,
|
||||||
T_COMMA = 312,
|
T_OPEN = 312,
|
||||||
T_OPEN = 313,
|
T_CLOSE = 313,
|
||||||
T_CLOSE = 314,
|
T_OBJECT_OPEN = 314,
|
||||||
T_OBJECT_OPEN = 315,
|
T_OBJECT_CLOSE = 315,
|
||||||
T_OBJECT_CLOSE = 316,
|
T_ARRAY_OPEN = 316,
|
||||||
T_ARRAY_OPEN = 317,
|
T_ARRAY_CLOSE = 317,
|
||||||
T_ARRAY_CLOSE = 318,
|
T_OUTBOUND = 318,
|
||||||
T_OUTBOUND = 319,
|
T_INBOUND = 319,
|
||||||
T_INBOUND = 320,
|
T_ANY = 320,
|
||||||
T_ANY = 321,
|
T_ALL = 321,
|
||||||
T_ALL = 322,
|
T_NONE = 322,
|
||||||
T_NONE = 323,
|
UMINUS = 323,
|
||||||
UMINUS = 324,
|
UPLUS = 324,
|
||||||
UPLUS = 325,
|
UNEGATION = 325,
|
||||||
FUNCCALL = 326,
|
FUNCCALL = 326,
|
||||||
REFERENCE = 327,
|
REFERENCE = 327,
|
||||||
INDEXED = 328,
|
INDEXED = 328,
|
||||||
|
|
|
@ -85,39 +85,39 @@ extern int Aqldebug;
|
||||||
T_NOT = 290,
|
T_NOT = 290,
|
||||||
T_AND = 291,
|
T_AND = 291,
|
||||||
T_OR = 292,
|
T_OR = 292,
|
||||||
T_NIN = 293,
|
T_REGEX_MATCH = 293,
|
||||||
T_REGEX_MATCH = 294,
|
T_REGEX_NON_MATCH = 294,
|
||||||
T_REGEX_NON_MATCH = 295,
|
T_EQ = 295,
|
||||||
T_EQ = 296,
|
T_NE = 296,
|
||||||
T_NE = 297,
|
T_LT = 297,
|
||||||
T_LT = 298,
|
T_GT = 298,
|
||||||
T_GT = 299,
|
T_LE = 299,
|
||||||
T_LE = 300,
|
T_GE = 300,
|
||||||
T_GE = 301,
|
T_LIKE = 301,
|
||||||
T_LIKE = 302,
|
T_PLUS = 302,
|
||||||
T_PLUS = 303,
|
T_MINUS = 303,
|
||||||
T_MINUS = 304,
|
T_TIMES = 304,
|
||||||
T_TIMES = 305,
|
T_DIV = 305,
|
||||||
T_DIV = 306,
|
T_MOD = 306,
|
||||||
T_MOD = 307,
|
T_QUESTION = 307,
|
||||||
T_QUESTION = 308,
|
T_COLON = 308,
|
||||||
T_COLON = 309,
|
T_SCOPE = 309,
|
||||||
T_SCOPE = 310,
|
T_RANGE = 310,
|
||||||
T_RANGE = 311,
|
T_COMMA = 311,
|
||||||
T_COMMA = 312,
|
T_OPEN = 312,
|
||||||
T_OPEN = 313,
|
T_CLOSE = 313,
|
||||||
T_CLOSE = 314,
|
T_OBJECT_OPEN = 314,
|
||||||
T_OBJECT_OPEN = 315,
|
T_OBJECT_CLOSE = 315,
|
||||||
T_OBJECT_CLOSE = 316,
|
T_ARRAY_OPEN = 316,
|
||||||
T_ARRAY_OPEN = 317,
|
T_ARRAY_CLOSE = 317,
|
||||||
T_ARRAY_CLOSE = 318,
|
T_OUTBOUND = 318,
|
||||||
T_OUTBOUND = 319,
|
T_INBOUND = 319,
|
||||||
T_INBOUND = 320,
|
T_ANY = 320,
|
||||||
T_ANY = 321,
|
T_ALL = 321,
|
||||||
T_ALL = 322,
|
T_NONE = 322,
|
||||||
T_NONE = 323,
|
UMINUS = 323,
|
||||||
UMINUS = 324,
|
UPLUS = 324,
|
||||||
UPLUS = 325,
|
UNEGATION = 325,
|
||||||
FUNCCALL = 326,
|
FUNCCALL = 326,
|
||||||
REFERENCE = 327,
|
REFERENCE = 327,
|
||||||
INDEXED = 328,
|
INDEXED = 328,
|
||||||
|
|
|
@ -255,7 +255,6 @@ static AstNode* TransformOutputVariables(Parser* parser, AstNode const* names) {
|
||||||
%token T_NOT "not operator"
|
%token T_NOT "not operator"
|
||||||
%token T_AND "and operator"
|
%token T_AND "and operator"
|
||||||
%token T_OR "or operator"
|
%token T_OR "or operator"
|
||||||
%token T_NIN "not in operator"
|
|
||||||
|
|
||||||
%token T_REGEX_MATCH "~= operator"
|
%token T_REGEX_MATCH "~= operator"
|
||||||
%token T_REGEX_NON_MATCH "~! operator"
|
%token T_REGEX_NON_MATCH "~! operator"
|
||||||
|
@ -308,12 +307,12 @@ static AstNode* TransformOutputVariables(Parser* parser, AstNode const* names) {
|
||||||
%left T_AND
|
%left T_AND
|
||||||
%nonassoc T_OUTBOUND T_INBOUND T_ANY T_ALL T_NONE
|
%nonassoc T_OUTBOUND T_INBOUND T_ANY T_ALL T_NONE
|
||||||
%left T_EQ T_NE T_LIKE T_REGEX_MATCH T_REGEX_NON_MATCH
|
%left T_EQ T_NE T_LIKE T_REGEX_MATCH T_REGEX_NON_MATCH
|
||||||
%left T_IN T_NIN
|
%left T_IN T_NOT
|
||||||
%left T_LT T_GT T_LE T_GE
|
%left T_LT T_GT T_LE T_GE
|
||||||
%left T_RANGE
|
%left T_RANGE
|
||||||
%left T_PLUS T_MINUS
|
%left T_PLUS T_MINUS
|
||||||
%left T_TIMES T_DIV T_MOD
|
%left T_TIMES T_DIV T_MOD
|
||||||
%right UMINUS UPLUS T_NOT
|
%right UMINUS UPLUS UNEGATION
|
||||||
%left FUNCCALL
|
%left FUNCCALL
|
||||||
%left REFERENCE
|
%left REFERENCE
|
||||||
%left INDEXED
|
%left INDEXED
|
||||||
|
@ -1332,7 +1331,7 @@ operator_unary:
|
||||||
| T_MINUS expression %prec UMINUS {
|
| T_MINUS expression %prec UMINUS {
|
||||||
$$ = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_MINUS, $2);
|
$$ = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_MINUS, $2);
|
||||||
}
|
}
|
||||||
| T_NOT expression %prec T_NOT {
|
| T_NOT expression %prec UNEGATION {
|
||||||
$$ = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_NOT, $2);
|
$$ = parser->ast()->createNodeUnaryOperator(NODE_TYPE_OPERATOR_UNARY_NOT, $2);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -1380,8 +1379,8 @@ operator_binary:
|
||||||
| expression T_IN expression {
|
| expression T_IN expression {
|
||||||
$$ = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_IN, $1, $3);
|
$$ = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_IN, $1, $3);
|
||||||
}
|
}
|
||||||
| expression T_NIN expression {
|
| expression T_NOT T_IN expression {
|
||||||
$$ = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NIN, $1, $3);
|
$$ = parser->ast()->createNodeBinaryOperator(NODE_TYPE_OPERATOR_BINARY_NIN, $1, $4);
|
||||||
}
|
}
|
||||||
| expression T_LIKE expression {
|
| expression T_LIKE expression {
|
||||||
AstNode* arguments = parser->ast()->createNodeArray(2);
|
AstNode* arguments = parser->ast()->createNodeArray(2);
|
||||||
|
@ -1423,8 +1422,17 @@ operator_binary:
|
||||||
| expression quantifier T_IN expression {
|
| expression quantifier T_IN expression {
|
||||||
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_IN, $1, $4, $2);
|
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_IN, $1, $4, $2);
|
||||||
}
|
}
|
||||||
| expression quantifier T_NIN expression {
|
| expression T_ALL T_NOT T_IN expression {
|
||||||
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, $1, $4, $2);
|
auto quantifier = parser->ast()->createNodeQuantifier(Quantifier::ALL);
|
||||||
|
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, $1, $5, quantifier);
|
||||||
|
}
|
||||||
|
| expression T_ANY T_NOT T_IN expression {
|
||||||
|
auto quantifier = parser->ast()->createNodeQuantifier(Quantifier::ANY);
|
||||||
|
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, $1, $5, quantifier);
|
||||||
|
}
|
||||||
|
| expression T_NONE T_NOT T_IN expression {
|
||||||
|
auto quantifier = parser->ast()->createNodeQuantifier(Quantifier::NONE);
|
||||||
|
$$ = parser->ast()->createNodeBinaryArrayOperator(NODE_TYPE_OPERATOR_BINARY_ARRAY_NIN, $1, $5, quantifier);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -1757,8 +1765,7 @@ reference:
|
||||||
// now try special variables
|
// now try special variables
|
||||||
if (ast->scopes()->canUseCurrentVariable() && strcmp($1.value, "CURRENT") == 0) {
|
if (ast->scopes()->canUseCurrentVariable() && strcmp($1.value, "CURRENT") == 0) {
|
||||||
variable = ast->scopes()->getCurrentVariable();
|
variable = ast->scopes()->getCurrentVariable();
|
||||||
}
|
} else if (strcmp($1.value, Variable::NAME_CURRENT) == 0) {
|
||||||
else if (strcmp($1.value, Variable::NAME_CURRENT) == 0) {
|
|
||||||
variable = ast->scopes()->getCurrentVariable();
|
variable = ast->scopes()->getCurrentVariable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#line 17 "Aql/tokens.ll"
|
#line 16 "Aql/tokens.ll"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#if (_MSC_VER >= 1)
|
#if (_MSC_VER >= 1)
|
||||||
|
// fix ret_val = EOB_ACT_LAST_MATCH later on, its generated, we can't control this.
|
||||||
#pragma warning( disable : 4267)
|
#pragma warning( disable : 4267)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -740,8 +741,8 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
|
||||||
yyg->yy_hold_char = *yy_cp; \
|
yyg->yy_hold_char = *yy_cp; \
|
||||||
*yy_cp = '\0'; \
|
*yy_cp = '\0'; \
|
||||||
yyg->yy_c_buf_p = yy_cp;
|
yyg->yy_c_buf_p = yy_cp;
|
||||||
#define YY_NUM_RULES 102
|
#define YY_NUM_RULES 99
|
||||||
#define YY_END_OF_BUFFER 103
|
#define YY_END_OF_BUFFER 100
|
||||||
/* This struct is not used in this scanner,
|
/* This struct is not used in this scanner,
|
||||||
but its presence is necessary. */
|
but its presence is necessary. */
|
||||||
struct yy_trans_info
|
struct yy_trans_info
|
||||||
|
@ -749,39 +750,38 @@ struct yy_trans_info
|
||||||
flex_int32_t yy_verify;
|
flex_int32_t yy_verify;
|
||||||
flex_int32_t yy_nxt;
|
flex_int32_t yy_nxt;
|
||||||
};
|
};
|
||||||
static const flex_int16_t yy_accept[282] =
|
static const flex_int16_t yy_accept[275] =
|
||||||
{ 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, 103, 101, 88, 89,
|
0, 0, 0, 0, 100, 98, 88, 89, 44, 74,
|
||||||
44, 74, 101, 51, 101, 79, 57, 58, 49, 47,
|
98, 51, 98, 79, 57, 58, 49, 47, 56, 48,
|
||||||
56, 48, 101, 50, 84, 84, 54, 42, 43, 40,
|
98, 50, 84, 84, 54, 42, 43, 40, 52, 98,
|
||||||
52, 101, 63, 63, 63, 63, 63, 63, 63, 63,
|
|
||||||
63, 63, 63, 63, 63, 63, 63, 63, 61, 62,
|
|
||||||
101, 64, 59, 101, 60, 101, 68, 67, 68, 65,
|
|
||||||
73, 72, 73, 73, 83, 82, 80, 83, 78, 77,
|
|
||||||
75, 78, 92, 91, 95, 97, 96, 100, 99, 99,
|
|
||||||
100, 88, 38, 36, 63, 45, 55, 85, 93, 90,
|
|
||||||
|
|
||||||
0, 0, 84, 53, 41, 37, 35, 39, 86, 0,
|
|
||||||
0, 63, 63, 63, 63, 63, 63, 63, 63, 63,
|
|
||||||
63, 63, 63, 15, 63, 63, 63, 63, 63, 14,
|
|
||||||
63, 63, 63, 63, 63, 63, 63, 63, 0, 46,
|
|
||||||
69, 66, 71, 70, 81, 76, 92, 95, 94, 98,
|
|
||||||
85, 0, 85, 86, 87, 0, 86, 63, 29, 13,
|
|
||||||
28, 10, 63, 63, 63, 63, 63, 1, 63, 63,
|
|
||||||
63, 63, 63, 2, 63, 63, 63, 12, 63, 63,
|
|
||||||
63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
|
63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
|
||||||
63, 87, 87, 86, 86, 63, 63, 11, 63, 63,
|
63, 63, 63, 63, 63, 63, 61, 62, 98, 64,
|
||||||
|
59, 98, 60, 98, 68, 67, 68, 65, 73, 72,
|
||||||
|
73, 73, 83, 82, 80, 83, 78, 77, 75, 78,
|
||||||
|
92, 91, 95, 97, 96, 88, 38, 36, 63, 45,
|
||||||
|
55, 85, 93, 90, 0, 0, 84, 53, 41, 37,
|
||||||
|
|
||||||
63, 63, 63, 63, 16, 63, 31, 63, 30, 32,
|
35, 39, 86, 0, 0, 63, 63, 63, 63, 63,
|
||||||
63, 63, 63, 63, 63, 6, 33, 63, 63, 17,
|
63, 63, 63, 63, 63, 63, 63, 15, 63, 63,
|
||||||
87, 87, 63, 63, 63, 34, 63, 23, 63, 63,
|
63, 63, 63, 14, 63, 63, 63, 63, 63, 63,
|
||||||
63, 7, 63, 63, 63, 63, 63, 63, 63, 63,
|
63, 63, 0, 46, 69, 66, 71, 70, 81, 76,
|
||||||
63, 63, 3, 63, 19, 63, 63, 18, 63, 4,
|
92, 95, 94, 85, 0, 85, 86, 87, 0, 86,
|
||||||
63, 20, 22, 63, 5, 63, 27, 63, 63, 21,
|
63, 29, 13, 28, 10, 63, 63, 63, 63, 63,
|
||||||
63, 63, 8, 63, 26, 63, 9, 63, 63, 63,
|
1, 63, 63, 63, 63, 63, 2, 63, 63, 63,
|
||||||
63, 63, 63, 63, 63, 63, 24, 63, 63, 25,
|
12, 63, 63, 63, 63, 63, 63, 63, 63, 63,
|
||||||
0
|
63, 63, 63, 63, 87, 87, 86, 86, 63, 63,
|
||||||
|
11, 63, 63, 63, 63, 63, 63, 16, 63, 31,
|
||||||
|
|
||||||
|
63, 30, 32, 63, 63, 63, 63, 63, 6, 33,
|
||||||
|
63, 63, 17, 87, 87, 63, 63, 63, 34, 63,
|
||||||
|
23, 63, 63, 63, 7, 63, 63, 63, 63, 63,
|
||||||
|
63, 63, 63, 63, 63, 3, 63, 19, 63, 63,
|
||||||
|
18, 63, 4, 63, 20, 22, 63, 5, 63, 27,
|
||||||
|
63, 63, 21, 63, 63, 8, 63, 26, 63, 9,
|
||||||
|
63, 63, 63, 63, 63, 63, 63, 63, 63, 24,
|
||||||
|
63, 63, 25, 0
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static const YY_CHAR yy_ec[256] =
|
static const YY_CHAR yy_ec[256] =
|
||||||
|
@ -829,165 +829,162 @@ static const YY_CHAR yy_meta[82] =
|
||||||
1
|
1
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static const flex_int16_t yy_base[310] =
|
static const flex_int16_t yy_base[302] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 79, 80, 81, 84, 85, 86, 87, 88,
|
0, 0, 79, 80, 81, 84, 85, 86, 87, 88,
|
||||||
457, 456, 93, 94, 83, 105, 458, 621, 453, 621,
|
449, 448, 93, 94, 449, 602, 446, 602, 63, 602,
|
||||||
76, 621, 0, 621, 446, 621, 621, 621, 621, 621,
|
0, 602, 439, 602, 602, 602, 602, 602, 602, 602,
|
||||||
621, 621, 83, 92, 84, 94, 432, 427, 81, 397,
|
82, 87, 86, 91, 426, 423, 64, 422, 602, 87,
|
||||||
621, 91, 114, 0, 80, 92, 132, 79, 102, 358,
|
81, 0, 79, 92, 126, 86, 101, 390, 123, 119,
|
||||||
129, 104, 128, 98, 142, 119, 128, 130, 621, 621,
|
126, 118, 123, 127, 129, 127, 602, 602, 388, 602,
|
||||||
353, 621, 621, 323, 621, 317, 621, 621, 0, 621,
|
602, 362, 602, 358, 602, 602, 0, 602, 602, 602,
|
||||||
621, 621, 0, 283, 621, 621, 621, 0, 621, 621,
|
0, 326, 602, 602, 602, 0, 602, 602, 602, 0,
|
||||||
621, 0, 0, 621, 0, 621, 337, 621, 621, 621,
|
0, 602, 0, 602, 370, 382, 602, 602, 0, 602,
|
||||||
138, 343, 621, 621, 0, 621, 621, 171, 621, 621,
|
602, 164, 602, 602, 96, 159, 183, 602, 602, 602,
|
||||||
|
|
||||||
100, 192, 196, 621, 621, 621, 621, 621, 0, 249,
|
602, 602, 0, 298, 236, 0, 143, 136, 158, 151,
|
||||||
242, 0, 153, 142, 173, 167, 144, 150, 155, 179,
|
155, 161, 162, 171, 172, 168, 185, 185, 173, 173,
|
||||||
180, 176, 193, 195, 181, 184, 195, 193, 197, 0,
|
182, 182, 186, 0, 180, 208, 187, 188, 189, 229,
|
||||||
191, 208, 196, 198, 196, 213, 209, 253, 235, 621,
|
194, 241, 173, 602, 602, 602, 602, 602, 602, 602,
|
||||||
621, 621, 621, 621, 621, 621, 0, 0, 621, 621,
|
0, 0, 602, 244, 248, 250, 0, 0, 106, 75,
|
||||||
256, 259, 263, 0, 0, 175, 131, 215, 0, 0,
|
222, 0, 0, 0, 0, 233, 186, 227, 234, 234,
|
||||||
0, 0, 232, 257, 244, 246, 246, 0, 250, 252,
|
0, 239, 241, 245, 242, 250, 0, 254, 251, 257,
|
||||||
263, 255, 264, 0, 268, 265, 270, 0, 265, 276,
|
0, 252, 263, 252, 257, 250, 254, 256, 271, 280,
|
||||||
266, 270, 263, 267, 266, 274, 285, 282, 287, 0,
|
280, 281, 0, 306, 0, 73, 71, 0, 287, 290,
|
||||||
305, 0, 88, 75, 0, 300, 308, 0, 307, 312,
|
0, 292, 298, 301, 299, 285, 293, 0, 296, 0,
|
||||||
|
|
||||||
313, 311, 301, 305, 0, 309, 0, 306, 0, 0,
|
293, 0, 0, 299, 294, 307, 299, 299, 0, 0,
|
||||||
311, 306, 327, 313, 312, 0, 0, 315, 318, 0,
|
300, 304, 0, 65, 0, 315, 321, 312, 0, 310,
|
||||||
73, 0, 329, 334, 325, 0, 323, 0, 328, 324,
|
0, 314, 311, 323, 0, 324, 342, 346, 337, 351,
|
||||||
333, 0, 335, 354, 357, 349, 363, 366, 354, 373,
|
353, 341, 360, 344, 361, 0, 361, 0, 349, 355,
|
||||||
357, 375, 0, 375, 0, 362, 369, 0, 379, 0,
|
0, 361, 0, 352, 0, 0, 353, 0, 354, 0,
|
||||||
368, 0, 0, 370, 0, 372, 0, 387, 389, 0,
|
369, 372, 0, 360, 375, 0, 364, 0, 59, 0,
|
||||||
376, 392, 0, 383, 0, 71, 0, 385, 389, 63,
|
364, 369, 56, 387, 375, 379, 400, 395, 386, 0,
|
||||||
397, 393, 392, 413, 407, 398, 0, 411, 405, 0,
|
399, 393, 0, 602, 463, 470, 477, 484, 491, 498,
|
||||||
621, 475, 482, 489, 496, 503, 510, 517, 105, 521,
|
97, 502, 506, 508, 515, 522, 529, 536, 543, 550,
|
||||||
525, 527, 534, 541, 548, 555, 562, 569, 573, 577,
|
554, 558, 562, 566, 570, 574, 578, 582, 586, 590,
|
||||||
|
|
||||||
581, 585, 589, 593, 597, 601, 605, 609, 613
|
594
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static const flex_int16_t yy_def[310] =
|
static const flex_int16_t yy_def[302] =
|
||||||
{ 0,
|
{ 0,
|
||||||
281, 1, 282, 282, 283, 283, 284, 284, 285, 285,
|
274, 1, 275, 275, 276, 276, 277, 277, 278, 278,
|
||||||
286, 286, 287, 287, 288, 288, 281, 281, 281, 281,
|
279, 279, 280, 280, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 289, 281, 281, 281, 281, 281, 281, 281,
|
281, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 282,
|
||||||
281, 290, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 281, 281,
|
283, 283, 283, 283, 283, 283, 274, 274, 284, 274,
|
||||||
292, 281, 281, 281, 281, 281, 281, 281, 293, 281,
|
274, 274, 274, 274, 274, 274, 285, 274, 274, 274,
|
||||||
281, 281, 294, 281, 281, 281, 281, 295, 281, 281,
|
286, 274, 274, 274, 274, 287, 274, 274, 274, 288,
|
||||||
281, 296, 297, 281, 298, 281, 281, 281, 281, 281,
|
289, 274, 290, 274, 274, 274, 274, 274, 283, 274,
|
||||||
281, 281, 281, 281, 291, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
|
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 299, 300,
|
274, 274, 291, 292, 293, 283, 283, 283, 283, 283,
|
||||||
301, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 302, 292, 281,
|
283, 294, 284, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 297, 298, 281, 281,
|
289, 290, 274, 274, 274, 274, 291, 295, 296, 297,
|
||||||
281, 281, 281, 299, 303, 304, 305, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 306,
|
283, 283, 298, 294, 295, 299, 297, 300, 283, 283,
|
||||||
302, 303, 307, 305, 308, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
|
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 299, 301, 283, 283, 283, 283, 283,
|
||||||
307, 309, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
|
||||||
291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
|
283, 283, 283, 0, 274, 274, 274, 274, 274, 274,
|
||||||
0, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
|
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281
|
274
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static const flex_int16_t yy_nxt[703] =
|
static const flex_int16_t yy_nxt[684] =
|
||||||
{ 0,
|
{ 0,
|
||||||
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
|
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
|
||||||
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
|
26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
|
||||||
38, 39, 40, 41, 42, 43, 44, 45, 46, 44,
|
36, 37, 38, 39, 40, 41, 42, 43, 44, 42,
|
||||||
47, 48, 44, 49, 44, 50, 51, 44, 52, 53,
|
45, 46, 42, 47, 42, 48, 49, 42, 50, 51,
|
||||||
44, 54, 55, 56, 57, 44, 58, 44, 59, 18,
|
42, 52, 53, 54, 55, 42, 56, 42, 57, 16,
|
||||||
60, 61, 62, 43, 44, 45, 46, 44, 47, 48,
|
58, 59, 60, 41, 42, 43, 44, 42, 45, 46,
|
||||||
44, 49, 50, 51, 44, 52, 53, 44, 54, 55,
|
42, 47, 48, 49, 42, 50, 51, 42, 52, 53,
|
||||||
56, 57, 44, 58, 44, 63, 64, 65, 18, 18,
|
54, 55, 42, 56, 42, 61, 62, 63, 16, 16,
|
||||||
66, 68, 68, 72, 89, 90, 72, 76, 76, 80,
|
64, 66, 66, 70, 87, 100, 70, 74, 74, 78,
|
||||||
80, 81, 81, 77, 77, 86, 86, 93, 97, 101,
|
78, 79, 79, 75, 75, 84, 84, 91, 93, 92,
|
||||||
|
|
||||||
98, 98, 106, 99, 87, 87, 89, 90, 100, 101,
|
92, 95, 89, 94, 85, 85, 95, 265, 97, 97,
|
||||||
95, 103, 103, 102, 272, 110, 91, 151, 151, 117,
|
262, 104, 107, 144, 144, 96, 215, 108, 111, 109,
|
||||||
123, 118, 269, 102, 222, 119, 195, 132, 69, 69,
|
96, 112, 188, 110, 215, 113, 188, 117, 67, 67,
|
||||||
73, 70, 70, 73, 78, 78, 82, 82, 91, 222,
|
71, 68, 68, 71, 76, 76, 80, 80, 105, 118,
|
||||||
124, 102, 111, 128, 91, 113, 117, 123, 129, 118,
|
107, 88, 101, 96, 108, 111, 109, 126, 96, 112,
|
||||||
114, 102, 115, 119, 94, 132, 116, 120, 126, 107,
|
110, 114, 120, 113, 117, 127, 121, 149, 122, 115,
|
||||||
135, 74, 127, 137, 74, 121, 91, 124, 136, 130,
|
131, 72, 128, 123, 72, 116, 118, 124, 129, 130,
|
||||||
128, 122, 131, 113, 133, 129, 150, 114, 159, 115,
|
125, 145, 152, 145, 151, 126, 146, 146, 155, 114,
|
||||||
163, 134, 195, 116, 158, 120, 126, 135, 98, 98,
|
120, 92, 92, 127, 121, 122, 153, 115, 131, 128,
|
||||||
127, 137, 164, 121, 162, 136, 130, 165, 122, 131,
|
123, 156, 116, 96, 124, 129, 130, 125, 95, 152,
|
||||||
|
|
||||||
102, 160, 133, 150, 152, 159, 152, 163, 134, 153,
|
97, 97, 151, 157, 158, 154, 155, 159, 160, 161,
|
||||||
153, 101, 158, 103, 103, 166, 167, 168, 169, 164,
|
162, 163, 96, 191, 153, 166, 167, 168, 156, 169,
|
||||||
161, 170, 162, 173, 165, 102, 156, 174, 102, 160,
|
170, 96, 172, 173, 133, 171, 177, 164, 165, 178,
|
||||||
175, 177, 176, 179, 180, 184, 178, 171, 172, 185,
|
157, 158, 154, 179, 159, 160, 161, 182, 162, 163,
|
||||||
186, 187, 166, 167, 168, 181, 169, 161, 182, 170,
|
96, 191, 166, 167, 168, 174, 169, 170, 175, 172,
|
||||||
173, 183, 189, 102, 174, 188, 196, 175, 177, 176,
|
173, 176, 171, 177, 164, 165, 178, 180, 183, 183,
|
||||||
179, 180, 184, 178, 171, 172, 185, 186, 197, 187,
|
179, 144, 144, 189, 182, 146, 146, 146, 146, 190,
|
||||||
190, 190, 181, 151, 151, 182, 153, 153, 183, 189,
|
192, 181, 174, 96, 197, 175, 193, 194, 176, 195,
|
||||||
153, 153, 188, 196, 198, 102, 139, 199, 200, 201,
|
196, 198, 199, 200, 201, 180, 202, 105, 203, 204,
|
||||||
202, 203, 204, 111, 205, 197, 206, 207, 208, 209,
|
189, 205, 183, 206, 207, 208, 190, 192, 181, 209,
|
||||||
|
|
||||||
156, 210, 211, 217, 190, 212, 213, 214, 215, 216,
|
210, 96, 197, 193, 194, 211, 195, 196, 198, 212,
|
||||||
218, 219, 198, 102, 199, 200, 201, 202, 203, 220,
|
199, 200, 201, 213, 202, 203, 216, 204, 205, 217,
|
||||||
204, 205, 190, 190, 206, 207, 208, 209, 210, 223,
|
206, 207, 208, 183, 183, 218, 209, 219, 210, 222,
|
||||||
211, 217, 212, 213, 214, 215, 216, 224, 218, 219,
|
220, 221, 228, 211, 223, 224, 225, 212, 226, 227,
|
||||||
225, 226, 227, 228, 92, 229, 230, 220, 231, 232,
|
229, 213, 230, 231, 216, 232, 233, 217, 234, 149,
|
||||||
233, 234, 235, 149, 236, 237, 190, 223, 238, 239,
|
235, 236, 237, 218, 238, 219, 222, 183, 220, 221,
|
||||||
240, 241, 144, 242, 243, 224, 244, 245, 225, 226,
|
228, 223, 224, 225, 239, 226, 227, 229, 240, 230,
|
||||||
227, 228, 229, 230, 246, 231, 232, 233, 234, 247,
|
231, 241, 232, 242, 233, 243, 234, 235, 236, 237,
|
||||||
235, 236, 237, 248, 249, 238, 239, 250, 240, 241,
|
244, 238, 245, 86, 246, 247, 143, 248, 249, 250,
|
||||||
242, 243, 251, 244, 245, 252, 141, 253, 254, 140,
|
253, 239, 251, 252, 254, 240, 255, 256, 257, 241,
|
||||||
|
|
||||||
255, 246, 256, 257, 139, 258, 247, 259, 260, 125,
|
258, 242, 243, 259, 260, 138, 261, 263, 244, 264,
|
||||||
261, 248, 249, 262, 250, 263, 264, 265, 108, 266,
|
245, 246, 266, 247, 248, 267, 249, 250, 253, 251,
|
||||||
251, 267, 273, 252, 253, 268, 254, 255, 270, 271,
|
252, 254, 268, 255, 256, 269, 257, 270, 258, 271,
|
||||||
256, 257, 258, 274, 259, 275, 260, 261, 276, 277,
|
259, 272, 260, 261, 263, 273, 264, 135, 134, 133,
|
||||||
262, 278, 263, 279, 264, 265, 266, 280, 105, 267,
|
266, 119, 267, 102, 99, 98, 90, 86, 274, 268,
|
||||||
273, 104, 268, 96, 92, 270, 271, 281, 84, 84,
|
82, 82, 274, 269, 274, 270, 271, 274, 274, 272,
|
||||||
274, 281, 275, 281, 281, 281, 276, 277, 278, 281,
|
274, 274, 273, 65, 65, 65, 65, 65, 65, 65,
|
||||||
281, 279, 281, 281, 280, 67, 67, 67, 67, 67,
|
69, 69, 69, 69, 69, 69, 69, 73, 73, 73,
|
||||||
67, 67, 71, 71, 71, 71, 71, 71, 71, 75,
|
73, 73, 73, 73, 77, 77, 77, 77, 77, 77,
|
||||||
75, 75, 75, 75, 75, 75, 79, 79, 79, 79,
|
77, 81, 81, 81, 81, 81, 81, 81, 83, 83,
|
||||||
|
|
||||||
79, 79, 79, 83, 83, 83, 83, 83, 83, 83,
|
83, 83, 83, 83, 83, 103, 103, 103, 103, 106,
|
||||||
85, 85, 85, 85, 85, 85, 85, 88, 88, 88,
|
274, 106, 106, 132, 132, 136, 274, 136, 136, 136,
|
||||||
88, 88, 88, 88, 109, 109, 109, 109, 112, 281,
|
136, 136, 137, 274, 137, 137, 137, 137, 137, 139,
|
||||||
112, 112, 138, 138, 142, 281, 142, 142, 142, 142,
|
274, 139, 139, 139, 139, 139, 140, 274, 140, 140,
|
||||||
142, 143, 281, 143, 143, 143, 143, 143, 145, 281,
|
140, 140, 140, 141, 274, 141, 141, 141, 141, 141,
|
||||||
145, 145, 145, 145, 145, 146, 281, 146, 146, 146,
|
142, 274, 274, 142, 142, 142, 142, 147, 274, 147,
|
||||||
146, 146, 147, 281, 147, 147, 147, 147, 147, 148,
|
147, 148, 274, 148, 148, 150, 274, 150, 150, 184,
|
||||||
281, 281, 148, 148, 148, 148, 154, 281, 154, 154,
|
274, 184, 184, 185, 274, 185, 185, 186, 274, 186,
|
||||||
155, 281, 155, 155, 157, 281, 157, 157, 191, 281,
|
186, 187, 274, 187, 187, 183, 274, 183, 183, 214,
|
||||||
191, 191, 192, 281, 192, 192, 193, 281, 193, 193,
|
274, 214, 214, 188, 274, 188, 188, 215, 274, 215,
|
||||||
|
|
||||||
194, 281, 194, 194, 190, 281, 190, 190, 221, 281,
|
215, 15, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
221, 221, 195, 281, 195, 195, 222, 281, 222, 222,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
17, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
|
||||||
|
|
||||||
281, 281
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static const flex_int16_t yy_chk[703] =
|
static const flex_int16_t yy_chk[684] =
|
||||||
{ 0,
|
{ 0,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
@ -997,88 +994,85 @@ static const flex_int16_t yy_chk[703] =
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
1, 3, 4, 5, 15, 15, 6, 7, 8, 9,
|
1, 3, 4, 5, 19, 37, 6, 7, 8, 9,
|
||||||
10, 9, 10, 7, 8, 13, 14, 21, 33, 35,
|
10, 9, 10, 7, 8, 13, 14, 31, 32, 31,
|
||||||
|
|
||||||
33, 33, 39, 34, 13, 14, 16, 16, 34, 36,
|
31, 33, 281, 32, 13, 14, 34, 263, 34, 34,
|
||||||
289, 36, 36, 35, 270, 42, 15, 101, 101, 45,
|
259, 40, 41, 95, 95, 33, 214, 41, 43, 41,
|
||||||
48, 46, 266, 36, 221, 46, 194, 54, 3, 4,
|
34, 44, 187, 41, 186, 44, 150, 46, 3, 4,
|
||||||
5, 3, 4, 6, 7, 8, 9, 10, 16, 193,
|
5, 3, 4, 6, 7, 8, 9, 10, 40, 47,
|
||||||
49, 35, 42, 52, 15, 43, 45, 48, 52, 46,
|
41, 19, 37, 33, 41, 43, 41, 52, 34, 44,
|
||||||
43, 36, 43, 46, 21, 54, 43, 47, 51, 39,
|
41, 45, 49, 44, 46, 53, 49, 149, 50, 45,
|
||||||
56, 5, 51, 58, 6, 47, 16, 49, 57, 53,
|
56, 5, 53, 50, 6, 45, 47, 51, 54, 55,
|
||||||
52, 47, 53, 43, 55, 52, 91, 43, 114, 43,
|
51, 96, 108, 96, 107, 52, 96, 96, 110, 45,
|
||||||
117, 55, 157, 43, 113, 47, 51, 56, 98, 98,
|
49, 92, 92, 53, 49, 50, 109, 45, 56, 53,
|
||||||
51, 58, 118, 47, 116, 57, 53, 119, 47, 53,
|
50, 111, 45, 92, 51, 54, 55, 51, 97, 108,
|
||||||
|
|
||||||
98, 115, 55, 91, 102, 114, 102, 117, 55, 102,
|
97, 97, 107, 112, 113, 109, 110, 114, 115, 116,
|
||||||
102, 103, 113, 103, 103, 120, 121, 122, 123, 118,
|
117, 118, 97, 157, 109, 119, 120, 121, 111, 121,
|
||||||
115, 124, 116, 125, 119, 103, 156, 126, 98, 115,
|
122, 92, 123, 125, 133, 122, 127, 118, 118, 128,
|
||||||
127, 128, 127, 129, 131, 133, 128, 124, 124, 134,
|
112, 113, 109, 129, 114, 115, 116, 131, 117, 118,
|
||||||
135, 136, 120, 121, 122, 132, 123, 115, 132, 124,
|
97, 157, 119, 120, 121, 126, 121, 122, 126, 123,
|
||||||
125, 132, 137, 103, 126, 136, 158, 127, 128, 127,
|
125, 126, 122, 127, 118, 118, 128, 130, 132, 132,
|
||||||
129, 131, 133, 128, 124, 124, 134, 135, 163, 136,
|
129, 144, 144, 151, 131, 145, 145, 146, 146, 156,
|
||||||
138, 138, 132, 151, 151, 132, 152, 152, 132, 137,
|
158, 130, 126, 144, 164, 126, 159, 160, 126, 162,
|
||||||
153, 153, 136, 158, 164, 151, 139, 165, 166, 167,
|
163, 165, 166, 168, 169, 130, 170, 105, 172, 173,
|
||||||
169, 170, 171, 111, 172, 163, 173, 175, 176, 177,
|
151, 174, 132, 175, 176, 177, 156, 158, 130, 178,
|
||||||
|
|
||||||
110, 179, 180, 186, 138, 181, 182, 183, 184, 185,
|
179, 144, 164, 159, 160, 180, 162, 163, 165, 181,
|
||||||
187, 188, 164, 151, 165, 166, 167, 169, 170, 189,
|
166, 168, 169, 182, 170, 172, 189, 173, 174, 190,
|
||||||
171, 172, 191, 191, 173, 175, 176, 177, 179, 196,
|
175, 176, 177, 184, 184, 192, 178, 193, 179, 196,
|
||||||
180, 186, 181, 182, 183, 184, 185, 197, 187, 188,
|
194, 195, 206, 180, 197, 199, 201, 181, 204, 205,
|
||||||
199, 200, 201, 202, 92, 203, 204, 189, 206, 208,
|
207, 182, 208, 211, 189, 212, 216, 190, 217, 104,
|
||||||
211, 212, 213, 87, 214, 215, 191, 196, 218, 219,
|
218, 220, 222, 192, 223, 193, 196, 184, 194, 195,
|
||||||
223, 224, 74, 225, 227, 197, 229, 230, 199, 200,
|
206, 197, 199, 201, 224, 204, 205, 207, 226, 208,
|
||||||
201, 202, 203, 204, 231, 206, 208, 211, 212, 233,
|
211, 227, 212, 228, 216, 229, 217, 218, 220, 222,
|
||||||
213, 214, 215, 234, 235, 218, 219, 236, 223, 224,
|
230, 223, 231, 86, 232, 233, 85, 234, 235, 237,
|
||||||
225, 227, 237, 229, 230, 238, 66, 239, 240, 64,
|
242, 224, 239, 240, 244, 226, 247, 249, 251, 227,
|
||||||
|
|
||||||
241, 231, 242, 244, 61, 246, 233, 247, 249, 50,
|
252, 228, 229, 254, 255, 72, 257, 261, 230, 262,
|
||||||
251, 234, 235, 254, 236, 256, 258, 259, 40, 261,
|
231, 232, 264, 233, 234, 265, 235, 237, 242, 239,
|
||||||
237, 262, 271, 238, 239, 264, 240, 241, 268, 269,
|
240, 244, 266, 247, 249, 267, 251, 268, 252, 269,
|
||||||
242, 244, 246, 272, 247, 273, 249, 251, 274, 275,
|
254, 271, 255, 257, 261, 272, 262, 64, 62, 59,
|
||||||
254, 276, 256, 278, 258, 259, 261, 279, 38, 262,
|
264, 48, 265, 38, 36, 35, 23, 17, 15, 266,
|
||||||
271, 37, 264, 25, 19, 268, 269, 17, 12, 11,
|
12, 11, 0, 267, 0, 268, 269, 0, 0, 271,
|
||||||
272, 0, 273, 0, 0, 0, 274, 275, 276, 0,
|
0, 0, 272, 275, 275, 275, 275, 275, 275, 275,
|
||||||
0, 278, 0, 0, 279, 282, 282, 282, 282, 282,
|
276, 276, 276, 276, 276, 276, 276, 277, 277, 277,
|
||||||
282, 282, 283, 283, 283, 283, 283, 283, 283, 284,
|
277, 277, 277, 277, 278, 278, 278, 278, 278, 278,
|
||||||
284, 284, 284, 284, 284, 284, 285, 285, 285, 285,
|
278, 279, 279, 279, 279, 279, 279, 279, 280, 280,
|
||||||
|
|
||||||
285, 285, 285, 286, 286, 286, 286, 286, 286, 286,
|
280, 280, 280, 280, 280, 282, 282, 282, 282, 283,
|
||||||
287, 287, 287, 287, 287, 287, 287, 288, 288, 288,
|
0, 283, 283, 284, 284, 285, 0, 285, 285, 285,
|
||||||
288, 288, 288, 288, 290, 290, 290, 290, 291, 0,
|
285, 285, 286, 0, 286, 286, 286, 286, 286, 287,
|
||||||
291, 291, 292, 292, 293, 0, 293, 293, 293, 293,
|
0, 287, 287, 287, 287, 287, 288, 0, 288, 288,
|
||||||
293, 294, 0, 294, 294, 294, 294, 294, 295, 0,
|
288, 288, 288, 289, 0, 289, 289, 289, 289, 289,
|
||||||
295, 295, 295, 295, 295, 296, 0, 296, 296, 296,
|
290, 0, 0, 290, 290, 290, 290, 291, 0, 291,
|
||||||
296, 296, 297, 0, 297, 297, 297, 297, 297, 298,
|
291, 292, 0, 292, 292, 293, 0, 293, 293, 294,
|
||||||
0, 0, 298, 298, 298, 298, 299, 0, 299, 299,
|
0, 294, 294, 295, 0, 295, 295, 296, 0, 296,
|
||||||
300, 0, 300, 300, 301, 0, 301, 301, 302, 0,
|
296, 297, 0, 297, 297, 298, 0, 298, 298, 299,
|
||||||
302, 302, 303, 0, 303, 303, 304, 0, 304, 304,
|
0, 299, 299, 300, 0, 300, 300, 301, 0, 301,
|
||||||
|
|
||||||
305, 0, 305, 305, 306, 0, 306, 306, 307, 0,
|
301, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
307, 307, 308, 0, 308, 308, 309, 0, 309, 309,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
274, 274, 274
|
||||||
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
|
|
||||||
|
|
||||||
281, 281
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
/* Table of booleans, true if rule could match eol. */
|
/* Table of booleans, true if rule could match eol. */
|
||||||
static const flex_int32_t yy_rule_can_match_eol[103] =
|
static const flex_int32_t yy_rule_can_match_eol[100] =
|
||||||
{ 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, 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, 0, 0, 1, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0,
|
||||||
0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1,
|
0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,
|
||||||
0, 0, 0, };
|
};
|
||||||
|
|
||||||
/* The intent behind this definition is that it'll catch
|
/* The intent behind this definition is that it'll catch
|
||||||
* any uses of REJECT which flex missed.
|
* any uses of REJECT which flex missed.
|
||||||
|
@ -1094,7 +1088,6 @@ static const flex_int32_t yy_rule_can_match_eol[103] =
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "Basics/Common.h"
|
#include "Basics/Common.h"
|
||||||
#include "Basics/conversions.h"
|
#include "Basics/conversions.h"
|
||||||
#include "Basics/NumberUtils.h"
|
#include "Basics/NumberUtils.h"
|
||||||
|
@ -1145,7 +1138,6 @@ class Parser;
|
||||||
#define DOUBLE_QUOTE 4
|
#define DOUBLE_QUOTE 4
|
||||||
#define COMMENT_SINGLE 5
|
#define COMMENT_SINGLE 5
|
||||||
#define COMMENT_MULTI 6
|
#define COMMENT_MULTI 6
|
||||||
#define NOT 7
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1578,13 +1570,13 @@ yy_match:
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 282 )
|
if ( yy_current_state >= 275 )
|
||||||
yy_c = yy_meta[yy_c];
|
yy_c = yy_meta[yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||||
++yy_cp;
|
++yy_cp;
|
||||||
}
|
}
|
||||||
while ( yy_current_state != 281 );
|
while ( yy_current_state != 274 );
|
||||||
yy_cp = yyg->yy_last_accepting_cpos;
|
yy_cp = yyg->yy_last_accepting_cpos;
|
||||||
yy_current_state = yyg->yy_last_accepting_state;
|
yy_current_state = yyg->yy_last_accepting_state;
|
||||||
|
|
||||||
|
@ -1688,7 +1680,7 @@ YY_RULE_SETUP
|
||||||
case 12:
|
case 12:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
{
|
{
|
||||||
BEGIN(NOT);
|
return T_NOT;
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 13:
|
case 13:
|
||||||
|
@ -2317,51 +2309,14 @@ YY_RULE_SETUP
|
||||||
yycolumn = 0;
|
yycolumn = 0;
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
/* ---------------------------------------------------------------------------
|
|
||||||
* special transformation for NOT IN to T_NIN
|
|
||||||
* --------------------------------------------------------------------------- */
|
|
||||||
case 98:
|
case 98:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
{
|
|
||||||
/* T_NOT + T_IN => T_NIN */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
return T_NIN;
|
|
||||||
}
|
|
||||||
YY_BREAK
|
|
||||||
case 99:
|
|
||||||
/* rule 99 can match eol */
|
|
||||||
YY_RULE_SETUP
|
|
||||||
{
|
|
||||||
/* ignore whitespace */
|
|
||||||
}
|
|
||||||
YY_BREAK
|
|
||||||
case 100:
|
|
||||||
YY_RULE_SETUP
|
|
||||||
{
|
|
||||||
/* found something different to T_IN */
|
|
||||||
/* now push the character back into the input stream and return a T_NOT token */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
yyless(0);
|
|
||||||
/* must decrement offset by one character as we're pushing the char back onto the stack */
|
|
||||||
yyextra->decreaseOffset(1);
|
|
||||||
return T_NOT;
|
|
||||||
}
|
|
||||||
YY_BREAK
|
|
||||||
case YY_STATE_EOF(NOT):
|
|
||||||
{
|
|
||||||
/* make sure that we still return a T_NOT when we reach the end of the input */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
return T_NOT;
|
|
||||||
}
|
|
||||||
YY_BREAK
|
|
||||||
case 101:
|
|
||||||
YY_RULE_SETUP
|
|
||||||
{
|
{
|
||||||
/* anything else is returned as it is */
|
/* anything else is returned as it is */
|
||||||
return (int) yytext[0];
|
return (int) yytext[0];
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 102:
|
case 99:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
ECHO;
|
ECHO;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
|
@ -2675,7 +2630,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 282 )
|
if ( yy_current_state >= 275 )
|
||||||
yy_c = yy_meta[yy_c];
|
yy_c = yy_meta[yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||||
|
@ -2705,11 +2660,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
|
||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 282 )
|
if ( yy_current_state >= 275 )
|
||||||
yy_c = yy_meta[yy_c];
|
yy_c = yy_meta[yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
|
||||||
yy_is_jam = (yy_current_state == 281);
|
yy_is_jam = (yy_current_state == 274);
|
||||||
|
|
||||||
(void)yyg;
|
(void)yyg;
|
||||||
return yy_is_jam ? 0 : yy_current_state;
|
return yy_is_jam ? 0 : yy_current_state;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
%x DOUBLE_QUOTE
|
%x DOUBLE_QUOTE
|
||||||
%x COMMENT_SINGLE
|
%x COMMENT_SINGLE
|
||||||
%x COMMENT_MULTI
|
%x COMMENT_MULTI
|
||||||
%x NOT
|
|
||||||
|
|
||||||
%top{
|
%top{
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
@ -115,7 +114,7 @@ class Parser;
|
||||||
}
|
}
|
||||||
|
|
||||||
(?i:NOT) {
|
(?i:NOT) {
|
||||||
BEGIN(NOT);
|
return T_NOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
(?i:AND) {
|
(?i:AND) {
|
||||||
|
@ -578,37 +577,6 @@ class Parser;
|
||||||
yycolumn = 0;
|
yycolumn = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
|
||||||
* special transformation for NOT IN to T_NIN
|
|
||||||
* --------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
<NOT>(?i:IN) {
|
|
||||||
/* T_NOT + T_IN => T_NIN */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
return T_NIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
<NOT>[\r\t\n ] {
|
|
||||||
/* ignore whitespace */
|
|
||||||
}
|
|
||||||
|
|
||||||
<NOT>. {
|
|
||||||
/* found something different to T_IN */
|
|
||||||
/* now push the character back into the input stream and return a T_NOT token */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
yyless(0);
|
|
||||||
/* must decrement offset by one character as we're pushing the char back onto the stack */
|
|
||||||
yyextra->decreaseOffset(1);
|
|
||||||
return T_NOT;
|
|
||||||
}
|
|
||||||
|
|
||||||
<NOT><<EOF>> {
|
|
||||||
/* make sure that we still return a T_NOT when we reach the end of the input */
|
|
||||||
BEGIN(INITIAL);
|
|
||||||
return T_NOT;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
. {
|
. {
|
||||||
/* anything else is returned as it is */
|
/* anything else is returned as it is */
|
||||||
return (int) yytext[0];
|
return (int) yytext[0];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*jshint globalstrict:false, strict:false, maxlen: 7000 */
|
/*jshint globalstrict:false, strict:false, maxlen: 7000 */
|
||||||
/*global assertEqual, assertTrue, assertMatch, fail, AQL_EXECUTE */
|
/*global assertEqual, assertTrue, assertMatch, fail, AQL_EXECUTE, AQL_PARSE */
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief tests for query language, PARSE function
|
/// @brief tests for query language, PARSE function
|
||||||
|
@ -351,6 +351,83 @@ function ahuacatlParseTestSuite () {
|
||||||
assertEqual(query[1][1], column);
|
assertEqual(query[1][1], column);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
testPrecedenceOfNotIn : function() {
|
||||||
|
let result = AQL_PARSE("RETURN 3..4 NOT IN 1..2").ast;
|
||||||
|
|
||||||
|
assertEqual("root", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("return", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("compare not in", result[0].type);
|
||||||
|
let sub = result[0].subNodes;
|
||||||
|
assertEqual("range", sub[0].type);
|
||||||
|
assertEqual("value", sub[0].subNodes[0].type);
|
||||||
|
assertEqual(3, sub[0].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[0].subNodes[1].type);
|
||||||
|
assertEqual(4, sub[0].subNodes[1].value);
|
||||||
|
|
||||||
|
assertEqual("range", sub[1].type);
|
||||||
|
assertEqual("value", sub[1].subNodes[0].type);
|
||||||
|
assertEqual(1, sub[1].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[1].subNodes[1].type);
|
||||||
|
assertEqual(2, sub[1].subNodes[1].value);
|
||||||
|
|
||||||
|
|
||||||
|
result = AQL_PARSE("RETURN 3..(4 NOT IN 1)..2").ast;
|
||||||
|
|
||||||
|
assertEqual("root", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("return", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("range", result[0].type);
|
||||||
|
sub = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("range", sub[0].type);
|
||||||
|
assertEqual("value", sub[0].subNodes[0].type);
|
||||||
|
assertEqual(3, sub[0].subNodes[0].value);
|
||||||
|
assertEqual("compare not in", sub[0].subNodes[1].type);
|
||||||
|
assertEqual("value", sub[0].subNodes[1].subNodes[0].type);
|
||||||
|
assertEqual(4, sub[0].subNodes[1].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[0].subNodes[1].subNodes[1].type);
|
||||||
|
assertEqual(1, sub[0].subNodes[1].subNodes[1].value);
|
||||||
|
assertEqual("value", sub[1].type);
|
||||||
|
assertEqual(2, sub[1].value);
|
||||||
|
},
|
||||||
|
|
||||||
|
testPrecedenceOfNestedNotIn : function() {
|
||||||
|
let result = AQL_PARSE("RETURN 3..4 NOT IN 1..2 NOT IN 7..8").ast;
|
||||||
|
|
||||||
|
assertEqual("root", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("return", result[0].type);
|
||||||
|
result = result[0].subNodes;
|
||||||
|
|
||||||
|
assertEqual("compare not in", result[0].type);
|
||||||
|
let sub = result[0].subNodes;
|
||||||
|
assertEqual("compare not in", sub[0].type);
|
||||||
|
assertEqual("range", sub[0].subNodes[0].type);
|
||||||
|
assertEqual("value", sub[0].subNodes[0].subNodes[0].type);
|
||||||
|
assertEqual(3, sub[0].subNodes[0].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[0].subNodes[0].subNodes[1].type);
|
||||||
|
assertEqual(4, sub[0].subNodes[0].subNodes[1].value);
|
||||||
|
assertEqual("range", sub[0].subNodes[1].type);
|
||||||
|
assertEqual("value", sub[0].subNodes[1].subNodes[0].type);
|
||||||
|
assertEqual(1, sub[0].subNodes[1].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[0].subNodes[1].subNodes[1].type);
|
||||||
|
assertEqual(2, sub[0].subNodes[1].subNodes[1].value);
|
||||||
|
|
||||||
|
assertEqual("range", sub[1].type);
|
||||||
|
assertEqual("value", sub[1].subNodes[0].type);
|
||||||
|
assertEqual(7, sub[1].subNodes[0].value);
|
||||||
|
assertEqual("value", sub[1].subNodes[1].type);
|
||||||
|
assertEqual(8, sub[1].subNodes[1].value);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue