generic: regenerate parsers

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-10-04 08:52:24 +03:00
parent 6641474990
commit 045328e4b6
6 changed files with 179 additions and 195 deletions

View file

@ -1,6 +1,6 @@
#line 2 "lex.c" #line 1 "lex.c"
#line 4 "lex.c" #line 3 "lex.c"
#define YY_INT_ALIGNED short int #define YY_INT_ALIGNED short int
@ -725,9 +725,9 @@ int yywrap();
int kiotraderlex(YYSTYPE * yylval, yyscan_t scanner); int kiotraderlex(YYSTYPE * yylval, yyscan_t scanner);
void KTraderParse_initFlex( const char *_code, yyscan_t _scanner ); void KTraderParse_initFlex( const char *_code, yyscan_t _scanner );
#line 729 "lex.c" #line 728 "lex.c"
#define YY_NO_INPUT 1 #define YY_NO_INPUT 1
#line 731 "lex.c" #line 730 "lex.c"
#define INITIAL 0 #define INITIAL 0
@ -1002,7 +1002,7 @@ YY_DECL
#line 29 "lex.l" #line 29 "lex.l"
#line 1006 "lex.c" #line 1005 "lex.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{ {
@ -1212,7 +1212,7 @@ YY_RULE_SETUP
#line 71 "lex.l" #line 71 "lex.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1216 "lex.c" #line 1215 "lex.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
yyterminate(); yyterminate();

View file

@ -1,4 +1,4 @@
/* A Bison parser, made by GNU Bison 3.7.6. */ /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison implementation for Yacc-like parsers in C /* Bison implementation for Yacc-like parsers in C
@ -46,10 +46,10 @@
USER NAME SPACE" below. */ USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */ /* Identify Bison output, and Bison version. */
#define YYBISON 30706 #define YYBISON 30802
/* Bison version string. */ /* Bison version string. */
#define YYBISON_VERSION "3.7.6" #define YYBISON_VERSION "3.8.2"
/* Skeleton name. */ /* Skeleton name. */
#define YYSKELETON_NAME "yacc.c" #define YYSKELETON_NAME "yacc.c"
@ -321,12 +321,18 @@ typedef int yy_state_fast_t;
# define YY_USE(E) /* empty */ # define YY_USE(E) /* empty */
#endif #endif
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
# else
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop") _Pragma ("GCC diagnostic pop")
#else #else
@ -543,7 +549,7 @@ static const yytype_int8 yytranslate[] =
}; };
#if YYDEBUG #if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] = static const yytype_uint8 yyrline[] =
{ {
0, 84, 84, 85, 88, 91, 92, 95, 96, 99, 0, 84, 84, 85, 88, 91, 92, 95, 96, 99,
@ -583,18 +589,6 @@ yysymbol_name (yysymbol_kind_t yysymbol)
} }
#endif #endif
#ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const yytype_int16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 126, 43, 45,
42, 47, 40, 41
};
#endif
#define YYPACT_NINF (-16) #define YYPACT_NINF (-16)
#define yypact_value_is_default(Yyn) \ #define yypact_value_is_default(Yyn) \
@ -605,8 +599,8 @@ static const yytype_int16 yytoknum[] =
#define yytable_value_is_error(Yyn) \ #define yytable_value_is_error(Yyn) \
0 0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
static const yytype_int8 yypact[] = static const yytype_int8 yypact[] =
{ {
-3, 11, -9, 18, 32, -16, -16, -16, -16, -16, -3, 11, -9, 18, 32, -16, -16, -16, -16, -16,
@ -618,9 +612,9 @@ static const yytype_int8 yypact[] =
-16, -2, -16, -16, -2, 22, 22, -16, -16 -16, -2, -16, -16, -2, 22, 22, -16, -16
}; };
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */ means the default is an error. */
static const yytype_int8 yydefact[] = static const yytype_int8 yydefact[] =
{ {
2, 0, 0, 0, 0, 40, 39, 36, 37, 38, 2, 0, 0, 0, 0, 40, 39, 36, 37, 38,
@ -632,23 +626,23 @@ static const yytype_int8 yydefact[] =
20, 24, 19, 21, 23, 26, 27, 29, 30 20, 24, 19, 21, 23, 26, 27, 29, 30
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] = static const yytype_int8 yypgoto[] =
{ {
-16, -16, -16, -4, 33, -16, 14, -16, -15, 10, -16, -16, -16, -4, 33, -16, 14, -16, -15, 10,
13, 66 13, 66
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] = static const yytype_int8 yydefgoto[] =
{ {
0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21 20, 21
}; };
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int8 yytable[] = static const yytype_int8 yytable[] =
{ {
1, 38, 39, 40, 41, 42, 26, 30, 31, 32, 1, 38, 39, 40, 41, 42, 26, 30, 31, 32,
@ -671,8 +665,8 @@ static const yytype_int8 yycheck[] =
47, 13, 29, 24, 24, 24, 24, 1 47, 13, 29, 24, 24, 24, 24, 1
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
symbol of state STATE-NUM. */ state STATE-NUM. */
static const yytype_int8 yystos[] = static const yytype_int8 yystos[] =
{ {
0, 3, 19, 20, 21, 22, 23, 24, 25, 26, 0, 3, 19, 20, 21, 22, 23, 24, 25, 26,
@ -684,7 +678,7 @@ static const yytype_int8 yystos[] =
24, 42, 24, 24, 42, 43, 43, 44, 44 24, 42, 24, 24, 42, 43, 43, 44, 44
}; };
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] = static const yytype_int8 yyr1[] =
{ {
0, 34, 35, 35, 36, 37, 37, 38, 38, 39, 0, 34, 35, 35, 36, 37, 37, 38, 38, 39,
@ -694,7 +688,7 @@ static const yytype_int8 yyr1[] =
45, 45, 45 45, 45, 45
}; };
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] = static const yytype_int8 yyr2[] =
{ {
0, 2, 0, 1, 1, 3, 1, 3, 1, 3, 0, 2, 0, 1, 1, 3, 1, 3, 1, 3,
@ -713,6 +707,7 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab #define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab #define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab #define YYERROR goto yyerrorlab
#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus) #define YYRECOVERING() (!!yyerrstatus)
@ -753,10 +748,7 @@ do { \
YYFPRINTF Args; \ YYFPRINTF Args; \
} while (0) } while (0)
/* This macro is provided for backward compatibility. */
# ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@ -784,10 +776,6 @@ yy_symbol_value_print (FILE *yyo,
YY_USE (_scanner); YY_USE (_scanner);
if (!yyvaluep) if (!yyvaluep)
return; return;
# ifdef YYPRINT
if (yykind < YYNTOKENS)
YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind); YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END YY_IGNORE_MAYBE_UNINITIALIZED_END
@ -915,55 +903,55 @@ yydestruct (const char *yymsg,
case YYSYMBOL_bool_or: /* bool_or */ case YYSYMBOL_bool_or: /* bool_or */
#line 68 "yacc.y" #line 68 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 919 "yacc.c" #line 907 "yacc.c"
break; break;
case YYSYMBOL_bool_and: /* bool_and */ case YYSYMBOL_bool_and: /* bool_and */
#line 69 "yacc.y" #line 69 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 925 "yacc.c" #line 913 "yacc.c"
break; break;
case YYSYMBOL_bool_compare: /* bool_compare */ case YYSYMBOL_bool_compare: /* bool_compare */
#line 70 "yacc.y" #line 70 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 931 "yacc.c" #line 919 "yacc.c"
break; break;
case YYSYMBOL_expr_in: /* expr_in */ case YYSYMBOL_expr_in: /* expr_in */
#line 71 "yacc.y" #line 71 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 937 "yacc.c" #line 925 "yacc.c"
break; break;
case YYSYMBOL_expr_twiddle: /* expr_twiddle */ case YYSYMBOL_expr_twiddle: /* expr_twiddle */
#line 72 "yacc.y" #line 72 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 943 "yacc.c" #line 931 "yacc.c"
break; break;
case YYSYMBOL_expr: /* expr */ case YYSYMBOL_expr: /* expr */
#line 73 "yacc.y" #line 73 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 949 "yacc.c" #line 937 "yacc.c"
break; break;
case YYSYMBOL_term: /* term */ case YYSYMBOL_term: /* term */
#line 74 "yacc.y" #line 74 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 955 "yacc.c" #line 943 "yacc.c"
break; break;
case YYSYMBOL_factor_non: /* factor_non */ case YYSYMBOL_factor_non: /* factor_non */
#line 75 "yacc.y" #line 75 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 961 "yacc.c" #line 949 "yacc.c"
break; break;
case YYSYMBOL_factor: /* factor */ case YYSYMBOL_factor: /* factor */
#line 76 "yacc.y" #line 76 "yacc.y"
{ KTraderParse_destroy( ((*yyvaluep).ptr) ); } { KTraderParse_destroy( ((*yyvaluep).ptr) ); }
#line 967 "yacc.c" #line 955 "yacc.c"
break; break;
default: default:
@ -1037,6 +1025,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
YYDPRINTF ((stderr, "Starting parse\n")); YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */ yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate; goto yysetstate;
@ -1062,7 +1051,7 @@ yysetstate:
if (yyss + yystacksize - 1 <= yyssp) if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE #if !defined yyoverflow && !defined YYSTACK_RELOCATE
goto yyexhaustedlab; YYNOMEM;
#else #else
{ {
/* Get the current used size of the three stacks, in elements. */ /* Get the current used size of the three stacks, in elements. */
@ -1090,7 +1079,7 @@ yysetstate:
# else /* defined YYSTACK_RELOCATE */ # else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */ /* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize) if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab; YYNOMEM;
yystacksize *= 2; yystacksize *= 2;
if (YYMAXDEPTH < yystacksize) if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
@ -1101,7 +1090,7 @@ yysetstate:
YY_CAST (union yyalloc *, YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr) if (! yyptr)
goto yyexhaustedlab; YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE # undef YYSTACK_RELOCATE
@ -1123,6 +1112,7 @@ yysetstate:
} }
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
if (yystate == YYFINAL) if (yystate == YYFINAL)
YYACCEPT; YYACCEPT;
@ -1237,251 +1227,251 @@ yyreduce:
case 2: /* constraint: %empty */ case 2: /* constraint: %empty */
#line 84 "yacc.y" #line 84 "yacc.y"
{ KTraderParse_setParseTree( 0L ); } { KTraderParse_setParseTree( 0L ); }
#line 1241 "yacc.c" #line 1231 "yacc.c"
break; break;
case 3: /* constraint: bool */ case 3: /* constraint: bool */
#line 85 "yacc.y" #line 85 "yacc.y"
{ KTraderParse_setParseTree( (yyvsp[0].ptr) ); } { KTraderParse_setParseTree( (yyvsp[0].ptr) ); }
#line 1247 "yacc.c" #line 1237 "yacc.c"
break; break;
case 4: /* bool: bool_or */ case 4: /* bool: bool_or */
#line 88 "yacc.y" #line 88 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1253 "yacc.c" #line 1243 "yacc.c"
break; break;
case 5: /* bool_or: bool_and OR bool_or */ case 5: /* bool_or: bool_and OR bool_or */
#line 91 "yacc.y" #line 91 "yacc.y"
{ (yyval.ptr) = KTraderParse_newOR( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); } { (yyval.ptr) = KTraderParse_newOR( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); }
#line 1259 "yacc.c" #line 1249 "yacc.c"
break; break;
case 6: /* bool_or: bool_and */ case 6: /* bool_or: bool_and */
#line 92 "yacc.y" #line 92 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1265 "yacc.c" #line 1255 "yacc.c"
break; break;
case 7: /* bool_and: bool_compare AND bool_and */ case 7: /* bool_and: bool_compare AND bool_and */
#line 95 "yacc.y" #line 95 "yacc.y"
{ (yyval.ptr) = KTraderParse_newAND( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); } { (yyval.ptr) = KTraderParse_newAND( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); }
#line 1271 "yacc.c" #line 1261 "yacc.c"
break; break;
case 8: /* bool_and: bool_compare */ case 8: /* bool_and: bool_compare */
#line 96 "yacc.y" #line 96 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1277 "yacc.c" #line 1267 "yacc.c"
break; break;
case 9: /* bool_compare: expr_in EQ expr_in */ case 9: /* bool_compare: expr_in EQ expr_in */
#line 99 "yacc.y" #line 99 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); }
#line 1283 "yacc.c" #line 1273 "yacc.c"
break; break;
case 10: /* bool_compare: expr_in EQI expr_in */ case 10: /* bool_compare: expr_in EQI expr_in */
#line 100 "yacc.y" #line 100 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 7 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 7 ); }
#line 1289 "yacc.c" #line 1279 "yacc.c"
break; break;
case 11: /* bool_compare: expr_in NEQ expr_in */ case 11: /* bool_compare: expr_in NEQ expr_in */
#line 101 "yacc.y" #line 101 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); }
#line 1295 "yacc.c" #line 1285 "yacc.c"
break; break;
case 12: /* bool_compare: expr_in NEQI expr_in */ case 12: /* bool_compare: expr_in NEQI expr_in */
#line 102 "yacc.y" #line 102 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 8 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 8 ); }
#line 1301 "yacc.c" #line 1291 "yacc.c"
break; break;
case 13: /* bool_compare: expr_in GEQ expr_in */ case 13: /* bool_compare: expr_in GEQ expr_in */
#line 103 "yacc.y" #line 103 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); }
#line 1307 "yacc.c" #line 1297 "yacc.c"
break; break;
case 14: /* bool_compare: expr_in LEQ expr_in */ case 14: /* bool_compare: expr_in LEQ expr_in */
#line 104 "yacc.y" #line 104 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); }
#line 1313 "yacc.c" #line 1303 "yacc.c"
break; break;
case 15: /* bool_compare: expr_in LE expr_in */ case 15: /* bool_compare: expr_in LE expr_in */
#line 105 "yacc.y" #line 105 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 5 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 5 ); }
#line 1319 "yacc.c" #line 1309 "yacc.c"
break; break;
case 16: /* bool_compare: expr_in GR expr_in */ case 16: /* bool_compare: expr_in GR expr_in */
#line 106 "yacc.y" #line 106 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 6 ); } { (yyval.ptr) = KTraderParse_newCMP( (yyvsp[-2].ptr), (yyvsp[0].ptr), 6 ); }
#line 1325 "yacc.c" #line 1315 "yacc.c"
break; break;
case 17: /* bool_compare: expr_in */ case 17: /* bool_compare: expr_in */
#line 107 "yacc.y" #line 107 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1331 "yacc.c" #line 1321 "yacc.c"
break; break;
case 18: /* expr_in: expr_twiddle TOKEN_IN VAL_ID */ case 18: /* expr_in: expr_twiddle TOKEN_IN VAL_ID */
#line 110 "yacc.y" #line 110 "yacc.y"
{ (yyval.ptr) = KTraderParse_newIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 1 ); } { (yyval.ptr) = KTraderParse_newIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 1 ); }
#line 1337 "yacc.c" #line 1327 "yacc.c"
break; break;
case 19: /* expr_in: expr_twiddle TOKEN_IN_INSENSITIVE VAL_ID */ case 19: /* expr_in: expr_twiddle TOKEN_IN_INSENSITIVE VAL_ID */
#line 111 "yacc.y" #line 111 "yacc.y"
{ (yyval.ptr) = KTraderParse_newIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 0 ); } { (yyval.ptr) = KTraderParse_newIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 0 ); }
#line 1343 "yacc.c" #line 1333 "yacc.c"
break; break;
case 20: /* expr_in: expr_twiddle TOKEN_IN_SUBSTRING VAL_ID */ case 20: /* expr_in: expr_twiddle TOKEN_IN_SUBSTRING VAL_ID */
#line 112 "yacc.y" #line 112 "yacc.y"
{ (yyval.ptr) = KTraderParse_newSubstringIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 1 ); } { (yyval.ptr) = KTraderParse_newSubstringIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 1 ); }
#line 1349 "yacc.c" #line 1339 "yacc.c"
break; break;
case 21: /* expr_in: expr_twiddle TOKEN_IN_SUBSTRING_INSENSITIVE VAL_ID */ case 21: /* expr_in: expr_twiddle TOKEN_IN_SUBSTRING_INSENSITIVE VAL_ID */
#line 113 "yacc.y" #line 113 "yacc.y"
{ (yyval.ptr) = KTraderParse_newSubstringIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 0 ); } { (yyval.ptr) = KTraderParse_newSubstringIN( (yyvsp[-2].ptr), KTraderParse_newID( (yyvsp[0].name) ), 0 ); }
#line 1355 "yacc.c" #line 1345 "yacc.c"
break; break;
case 22: /* expr_in: expr_twiddle */ case 22: /* expr_in: expr_twiddle */
#line 114 "yacc.y" #line 114 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1361 "yacc.c" #line 1351 "yacc.c"
break; break;
case 23: /* expr_twiddle: expr '~' expr */ case 23: /* expr_twiddle: expr '~' expr */
#line 117 "yacc.y" #line 117 "yacc.y"
{ (yyval.ptr) = KTraderParse_newMATCH( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); } { (yyval.ptr) = KTraderParse_newMATCH( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); }
#line 1367 "yacc.c" #line 1357 "yacc.c"
break; break;
case 24: /* expr_twiddle: expr_twiddle MATCH_INSENSITIVE expr */ case 24: /* expr_twiddle: expr_twiddle MATCH_INSENSITIVE expr */
#line 118 "yacc.y" #line 118 "yacc.y"
{ (yyval.ptr) = KTraderParse_newMATCH( (yyvsp[-2].ptr), (yyvsp[0].ptr), 0 ); } { (yyval.ptr) = KTraderParse_newMATCH( (yyvsp[-2].ptr), (yyvsp[0].ptr), 0 ); }
#line 1373 "yacc.c" #line 1363 "yacc.c"
break; break;
case 25: /* expr_twiddle: expr */ case 25: /* expr_twiddle: expr */
#line 119 "yacc.y" #line 119 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1379 "yacc.c" #line 1369 "yacc.c"
break; break;
case 26: /* expr: expr '+' term */ case 26: /* expr: expr '+' term */
#line 122 "yacc.y" #line 122 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); } { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 1 ); }
#line 1385 "yacc.c" #line 1375 "yacc.c"
break; break;
case 27: /* expr: expr '-' term */ case 27: /* expr: expr '-' term */
#line 123 "yacc.y" #line 123 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); } { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 2 ); }
#line 1391 "yacc.c" #line 1381 "yacc.c"
break; break;
case 28: /* expr: term */ case 28: /* expr: term */
#line 124 "yacc.y" #line 124 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1397 "yacc.c" #line 1387 "yacc.c"
break; break;
case 29: /* term: term '*' factor_non */ case 29: /* term: term '*' factor_non */
#line 127 "yacc.y" #line 127 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); } { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 3 ); }
#line 1403 "yacc.c" #line 1393 "yacc.c"
break; break;
case 30: /* term: term '/' factor_non */ case 30: /* term: term '/' factor_non */
#line 128 "yacc.y" #line 128 "yacc.y"
{ (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); } { (yyval.ptr) = KTraderParse_newCALC( (yyvsp[-2].ptr), (yyvsp[0].ptr), 4 ); }
#line 1409 "yacc.c" #line 1399 "yacc.c"
break; break;
case 31: /* term: factor_non */ case 31: /* term: factor_non */
#line 129 "yacc.y" #line 129 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1415 "yacc.c" #line 1405 "yacc.c"
break; break;
case 32: /* factor_non: NOT factor */ case 32: /* factor_non: NOT factor */
#line 132 "yacc.y" #line 132 "yacc.y"
{ (yyval.ptr) = KTraderParse_newNOT( (yyvsp[0].ptr) ); } { (yyval.ptr) = KTraderParse_newNOT( (yyvsp[0].ptr) ); }
#line 1421 "yacc.c" #line 1411 "yacc.c"
break; break;
case 33: /* factor_non: factor */ case 33: /* factor_non: factor */
#line 133 "yacc.y" #line 133 "yacc.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1427 "yacc.c" #line 1417 "yacc.c"
break; break;
case 34: /* factor: '(' bool_or ')' */ case 34: /* factor: '(' bool_or ')' */
#line 136 "yacc.y" #line 136 "yacc.y"
{ (yyval.ptr) = KTraderParse_newBRACKETS( (yyvsp[-1].ptr) ); } { (yyval.ptr) = KTraderParse_newBRACKETS( (yyvsp[-1].ptr) ); }
#line 1433 "yacc.c" #line 1423 "yacc.c"
break; break;
case 35: /* factor: EXIST VAL_ID */ case 35: /* factor: EXIST VAL_ID */
#line 137 "yacc.y" #line 137 "yacc.y"
{ (yyval.ptr) = KTraderParse_newEXIST( (yyvsp[0].name) ); } { (yyval.ptr) = KTraderParse_newEXIST( (yyvsp[0].name) ); }
#line 1439 "yacc.c" #line 1429 "yacc.c"
break; break;
case 36: /* factor: VAL_ID */ case 36: /* factor: VAL_ID */
#line 138 "yacc.y" #line 138 "yacc.y"
{ (yyval.ptr) = KTraderParse_newID( (yyvsp[0].name) ); } { (yyval.ptr) = KTraderParse_newID( (yyvsp[0].name) ); }
#line 1445 "yacc.c" #line 1435 "yacc.c"
break; break;
case 37: /* factor: VAL_NUM */ case 37: /* factor: VAL_NUM */
#line 139 "yacc.y" #line 139 "yacc.y"
{ (yyval.ptr) = KTraderParse_newNUM( (yyvsp[0].vali) ); } { (yyval.ptr) = KTraderParse_newNUM( (yyvsp[0].vali) ); }
#line 1451 "yacc.c" #line 1441 "yacc.c"
break; break;
case 38: /* factor: VAL_FLOAT */ case 38: /* factor: VAL_FLOAT */
#line 140 "yacc.y" #line 140 "yacc.y"
{ (yyval.ptr) = KTraderParse_newFLOAT( (yyvsp[0].vald) ); } { (yyval.ptr) = KTraderParse_newFLOAT( (yyvsp[0].vald) ); }
#line 1457 "yacc.c" #line 1447 "yacc.c"
break; break;
case 39: /* factor: VAL_STRING */ case 39: /* factor: VAL_STRING */
#line 141 "yacc.y" #line 141 "yacc.y"
{ (yyval.ptr) = KTraderParse_newSTRING( (yyvsp[0].name) ); } { (yyval.ptr) = KTraderParse_newSTRING( (yyvsp[0].name) ); }
#line 1463 "yacc.c" #line 1453 "yacc.c"
break; break;
case 40: /* factor: VAL_BOOL */ case 40: /* factor: VAL_BOOL */
#line 142 "yacc.y" #line 142 "yacc.y"
{ (yyval.ptr) = KTraderParse_newBOOL( (yyvsp[0].valb) ); } { (yyval.ptr) = KTraderParse_newBOOL( (yyvsp[0].valb) ); }
#line 1469 "yacc.c" #line 1459 "yacc.c"
break; break;
case 41: /* factor: MAX VAL_ID */ case 41: /* factor: MAX VAL_ID */
#line 143 "yacc.y" #line 143 "yacc.y"
{ (yyval.ptr) = KTraderParse_newMAX2( (yyvsp[0].name) ); } { (yyval.ptr) = KTraderParse_newMAX2( (yyvsp[0].name) ); }
#line 1475 "yacc.c" #line 1465 "yacc.c"
break; break;
case 42: /* factor: MIN VAL_ID */ case 42: /* factor: MIN VAL_ID */
#line 144 "yacc.y" #line 144 "yacc.y"
{ (yyval.ptr) = KTraderParse_newMIN2( (yyvsp[0].name) ); } { (yyval.ptr) = KTraderParse_newMIN2( (yyvsp[0].name) ); }
#line 1481 "yacc.c" #line 1471 "yacc.c"
break; break;
#line 1485 "yacc.c" #line 1475 "yacc.c"
default: break; default: break;
} }
@ -1563,6 +1553,7 @@ yyerrorlab:
label yyerrorlab therefore never appears in user code. */ label yyerrorlab therefore never appears in user code. */
if (0) if (0)
YYERROR; YYERROR;
++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */ this YYERROR. */
@ -1623,7 +1614,7 @@ yyerrlab1:
`-------------------------------------*/ `-------------------------------------*/
yyacceptlab: yyacceptlab:
yyresult = 0; yyresult = 0;
goto yyreturn; goto yyreturnlab;
/*-----------------------------------. /*-----------------------------------.
@ -1631,24 +1622,22 @@ yyacceptlab:
`-----------------------------------*/ `-----------------------------------*/
yyabortlab: yyabortlab:
yyresult = 1; yyresult = 1;
goto yyreturn; goto yyreturnlab;
#if !defined yyoverflow /*-----------------------------------------------------------.
/*-------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
| yyexhaustedlab -- memory exhaustion comes here. | `-----------------------------------------------------------*/
`-------------------------------------------------*/
yyexhaustedlab: yyexhaustedlab:
yyerror (_scanner, YY_("memory exhausted")); yyerror (_scanner, YY_("memory exhausted"));
yyresult = 2; yyresult = 2;
goto yyreturn; goto yyreturnlab;
#endif
/*-------------------------------------------------------. /*----------------------------------------------------------.
| yyreturn -- parsing is finished, clean up and return. | | yyreturnlab -- parsing is finished, clean up and return. |
`-------------------------------------------------------*/ `----------------------------------------------------------*/
yyreturn: yyreturnlab:
if (yychar != YYEMPTY) if (yychar != YYEMPTY)
{ {
/* Make sure we have latest lookahead translation. See comments at /* Make sure we have latest lookahead translation. See comments at

View file

@ -1,4 +1,4 @@
/* A Bison parser, made by GNU Bison 3.7.6. */ /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison interface for Yacc-like parsers in C /* Bison interface for Yacc-like parsers in C
@ -104,6 +104,8 @@ typedef union YYSTYPE YYSTYPE;
int kiotraderparse (void *_scanner); int kiotraderparse (void *_scanner);
#endif /* !YY_KIOTRADER_YACC_H_INCLUDED */ #endif /* !YY_KIOTRADER_YACC_H_INCLUDED */

View file

@ -1,6 +1,6 @@
#line 2 "predicate_lexer.c" #line 1 "predicate_lexer.c"
#line 4 "predicate_lexer.c" #line 3 "predicate_lexer.c"
#define YY_INT_ALIGNED short int #define YY_INT_ALIGNED short int
@ -679,9 +679,9 @@ char *PredicateParse_putSymbol( char *_name );
char *PredicateParse_putString( char *_str ); char *PredicateParse_putString( char *_str );
void PredicateParse_initFlex( const char *_code, yyscan_t _scanner ); void PredicateParse_initFlex( const char *_code, yyscan_t _scanner );
#line 683 "predicate_lexer.c" #line 682 "predicate_lexer.c"
#define YY_NO_INPUT 1 #define YY_NO_INPUT 1
#line 685 "predicate_lexer.c" #line 684 "predicate_lexer.c"
#define INITIAL 0 #define INITIAL 0
@ -956,7 +956,7 @@ YY_DECL
#line 27 "predicate_lexer.l" #line 27 "predicate_lexer.l"
#line 960 "predicate_lexer.c" #line 959 "predicate_lexer.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{ {
@ -1091,7 +1091,7 @@ YY_RULE_SETUP
#line 54 "predicate_lexer.l" #line 54 "predicate_lexer.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1095 "predicate_lexer.c" #line 1094 "predicate_lexer.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
yyterminate(); yyterminate();

View file

@ -1,4 +1,4 @@
/* A Bison parser, made by GNU Bison 3.7.6. */ /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison implementation for Yacc-like parsers in C /* Bison implementation for Yacc-like parsers in C
@ -46,10 +46,10 @@
USER NAME SPACE" below. */ USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */ /* Identify Bison output, and Bison version. */
#define YYBISON 30706 #define YYBISON 30802
/* Bison version string. */ /* Bison version string. */
#define YYBISON_VERSION "3.7.6" #define YYBISON_VERSION "3.8.2"
/* Skeleton name. */ /* Skeleton name. */
#define YYSKELETON_NAME "yacc.c" #define YYSKELETON_NAME "yacc.c"
@ -304,12 +304,18 @@ typedef int yy_state_fast_t;
# define YY_USE(E) /* empty */ # define YY_USE(E) /* empty */
#endif #endif
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
# else
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop") _Pragma ("GCC diagnostic pop")
#else #else
@ -524,7 +530,7 @@ static const yytype_int8 yytranslate[] =
}; };
#if YYDEBUG #if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int8 yyrline[] = static const yytype_int8 yyrline[] =
{ {
0, 63, 63, 64, 65, 67, 68, 69, 71, 73, 0, 63, 63, 64, 65, 67, 68, 69, 71, 73,
@ -558,16 +564,6 @@ yysymbol_name (yysymbol_kind_t yysymbol)
} }
#endif #endif
#ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
(internal) symbol number NUM (which must be that of a token). */
static const yytype_int16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 91, 93, 46, 123, 125, 44
};
#endif
#define YYPACT_NINF (-13) #define YYPACT_NINF (-13)
#define yypact_value_is_default(Yyn) \ #define yypact_value_is_default(Yyn) \
@ -578,8 +574,8 @@ static const yytype_int16 yytoknum[] =
#define yytable_value_is_error(Yyn) \ #define yytable_value_is_error(Yyn) \
0 0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */ STATE-NUM. */
static const yytype_int8 yypact[] = static const yytype_int8 yypact[] =
{ {
5, -2, -12, 5, 16, -13, -13, 7, 1, 6, 5, -2, -12, 5, 16, -13, -13, 7, 1, 6,
@ -588,9 +584,9 @@ static const yytype_int8 yypact[] =
2, 12, -13, -13 2, 12, -13, -13
}; };
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */ means the default is an error. */
static const yytype_int8 yydefact[] = static const yytype_int8 yydefact[] =
{ {
0, 0, 0, 0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 0, 0, 0,
@ -599,21 +595,21 @@ static const yytype_int8 yydefact[] =
0, 16, 15, 18 0, 16, 15, 18
}; };
/* YYPGOTO[NTERM-NUM]. */ /* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] = static const yytype_int8 yypgoto[] =
{ {
-13, -3, -13, -13, -13, 11, -13, -8 -13, -3, -13, -13, -13, 11, -13, -8
}; };
/* YYDEFGOTO[NTERM-NUM]. */ /* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] = static const yytype_int8 yydefgoto[] =
{ {
0, 4, 5, 9, 10, 26, 27, 30 0, 4, 5, 9, 10, 26, 27, 30
}; };
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int8 yytable[] = static const yytype_int8 yytable[] =
{ {
8, 21, 22, 7, 23, 24, 13, 14, 6, 25, 8, 21, 22, 7, 23, 24, 13, 14, 6, 25,
@ -628,8 +624,8 @@ static const yytype_int8 yycheck[] =
14, 9, 14, 31, -1, -1, -1, 18, -1, 18 14, 9, 14, 31, -1, -1, -1, 18, -1, 18
}; };
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
symbol of state STATE-NUM. */ state STATE-NUM. */
static const yytype_int8 yystos[] = static const yytype_int8 yystos[] =
{ {
0, 7, 10, 13, 20, 21, 10, 15, 20, 22, 0, 7, 10, 13, 20, 21, 10, 15, 20, 22,
@ -638,14 +634,14 @@ static const yytype_int8 yystos[] =
26, 18, 17, 26 26, 18, 17, 26
}; };
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int8 yyr1[] = static const yytype_int8 yyr1[] =
{ {
0, 19, 20, 20, 20, 21, 21, 21, 22, 23, 0, 19, 20, 20, 20, 21, 21, 21, 22, 23,
24, 24, 24, 24, 24, 25, 26, 26, 26 24, 24, 24, 24, 24, 25, 26, 26, 26
}; };
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] = static const yytype_int8 yyr2[] =
{ {
0, 2, 1, 3, 3, 5, 5, 2, 3, 3, 0, 2, 1, 3, 3, 5, 5, 2, 3, 3,
@ -661,6 +657,7 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab #define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab #define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab #define YYERROR goto yyerrorlab
#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus) #define YYRECOVERING() (!!yyerrstatus)
@ -701,10 +698,7 @@ do { \
YYFPRINTF Args; \ YYFPRINTF Args; \
} while (0) } while (0)
/* This macro is provided for backward compatibility. */
# ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@ -732,10 +726,6 @@ yy_symbol_value_print (FILE *yyo,
YY_USE (_scanner); YY_USE (_scanner);
if (!yyvaluep) if (!yyvaluep)
return; return;
# ifdef YYPRINT
if (yykind < YYNTOKENS)
YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind); YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END YY_IGNORE_MAYBE_UNINITIALIZED_END
@ -863,25 +853,25 @@ yydestruct (const char *yymsg,
case YYSYMBOL_predicate: /* predicate */ case YYSYMBOL_predicate: /* predicate */
#line 54 "predicate_parser.y" #line 54 "predicate_parser.y"
{ PredicateParse_destroy( ((*yyvaluep).ptr) ); } { PredicateParse_destroy( ((*yyvaluep).ptr) ); }
#line 867 "predicate_parser.c" #line 857 "predicate_parser.c"
break; break;
case YYSYMBOL_predicate_atom: /* predicate_atom */ case YYSYMBOL_predicate_atom: /* predicate_atom */
#line 55 "predicate_parser.y" #line 55 "predicate_parser.y"
{ PredicateParse_destroy( ((*yyvaluep).ptr) ); } { PredicateParse_destroy( ((*yyvaluep).ptr) ); }
#line 873 "predicate_parser.c" #line 863 "predicate_parser.c"
break; break;
case YYSYMBOL_predicate_or: /* predicate_or */ case YYSYMBOL_predicate_or: /* predicate_or */
#line 56 "predicate_parser.y" #line 56 "predicate_parser.y"
{ PredicateParse_destroy( ((*yyvaluep).ptr) ); } { PredicateParse_destroy( ((*yyvaluep).ptr) ); }
#line 879 "predicate_parser.c" #line 869 "predicate_parser.c"
break; break;
case YYSYMBOL_predicate_and: /* predicate_and */ case YYSYMBOL_predicate_and: /* predicate_and */
#line 57 "predicate_parser.y" #line 57 "predicate_parser.y"
{ PredicateParse_destroy( ((*yyvaluep).ptr) ); } { PredicateParse_destroy( ((*yyvaluep).ptr) ); }
#line 885 "predicate_parser.c" #line 875 "predicate_parser.c"
break; break;
default: default:
@ -955,6 +945,7 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
YYDPRINTF ((stderr, "Starting parse\n")); YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */ yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate; goto yysetstate;
@ -980,7 +971,7 @@ yysetstate:
if (yyss + yystacksize - 1 <= yyssp) if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE #if !defined yyoverflow && !defined YYSTACK_RELOCATE
goto yyexhaustedlab; YYNOMEM;
#else #else
{ {
/* Get the current used size of the three stacks, in elements. */ /* Get the current used size of the three stacks, in elements. */
@ -1008,7 +999,7 @@ yysetstate:
# else /* defined YYSTACK_RELOCATE */ # else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */ /* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize) if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab; YYNOMEM;
yystacksize *= 2; yystacksize *= 2;
if (YYMAXDEPTH < yystacksize) if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
@ -1019,7 +1010,7 @@ yysetstate:
YY_CAST (union yyalloc *, YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr) if (! yyptr)
goto yyexhaustedlab; YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE # undef YYSTACK_RELOCATE
@ -1041,6 +1032,7 @@ yysetstate:
} }
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
if (yystate == YYFINAL) if (yystate == YYFINAL)
YYACCEPT; YYACCEPT;
@ -1155,107 +1147,107 @@ yyreduce:
case 2: /* predicate: predicate_atom */ case 2: /* predicate: predicate_atom */
#line 63 "predicate_parser.y" #line 63 "predicate_parser.y"
{ PredicateParse_setResult( (yyvsp[0].ptr) ); (yyval.ptr) = (yyvsp[0].ptr); } { PredicateParse_setResult( (yyvsp[0].ptr) ); (yyval.ptr) = (yyvsp[0].ptr); }
#line 1159 "predicate_parser.c" #line 1151 "predicate_parser.c"
break; break;
case 3: /* predicate: '[' predicate_or ']' */ case 3: /* predicate: '[' predicate_or ']' */
#line 64 "predicate_parser.y" #line 64 "predicate_parser.y"
{ PredicateParse_setResult( (yyvsp[-1].ptr) ); (yyval.ptr) = (yyvsp[-1].ptr); } { PredicateParse_setResult( (yyvsp[-1].ptr) ); (yyval.ptr) = (yyvsp[-1].ptr); }
#line 1165 "predicate_parser.c" #line 1157 "predicate_parser.c"
break; break;
case 4: /* predicate: '[' predicate_and ']' */ case 4: /* predicate: '[' predicate_and ']' */
#line 65 "predicate_parser.y" #line 65 "predicate_parser.y"
{ PredicateParse_setResult( (yyvsp[-1].ptr) ); (yyval.ptr) = (yyvsp[-1].ptr); } { PredicateParse_setResult( (yyvsp[-1].ptr) ); (yyval.ptr) = (yyvsp[-1].ptr); }
#line 1171 "predicate_parser.c" #line 1163 "predicate_parser.c"
break; break;
case 5: /* predicate_atom: VAL_ID '.' VAL_ID EQ value */ case 5: /* predicate_atom: VAL_ID '.' VAL_ID EQ value */
#line 67 "predicate_parser.y" #line 67 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newAtom( (yyvsp[-4].name), (yyvsp[-2].name), (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_newAtom( (yyvsp[-4].name), (yyvsp[-2].name), (yyvsp[0].ptr) ); }
#line 1177 "predicate_parser.c" #line 1169 "predicate_parser.c"
break; break;
case 6: /* predicate_atom: VAL_ID '.' VAL_ID MASK value */ case 6: /* predicate_atom: VAL_ID '.' VAL_ID MASK value */
#line 68 "predicate_parser.y" #line 68 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newMaskAtom( (yyvsp[-4].name), (yyvsp[-2].name), (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_newMaskAtom( (yyvsp[-4].name), (yyvsp[-2].name), (yyvsp[0].ptr) ); }
#line 1183 "predicate_parser.c" #line 1175 "predicate_parser.c"
break; break;
case 7: /* predicate_atom: IS VAL_ID */ case 7: /* predicate_atom: IS VAL_ID */
#line 69 "predicate_parser.y" #line 69 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newIsAtom( (yyvsp[0].name) ); } { (yyval.ptr) = PredicateParse_newIsAtom( (yyvsp[0].name) ); }
#line 1189 "predicate_parser.c" #line 1181 "predicate_parser.c"
break; break;
case 8: /* predicate_or: predicate OR predicate */ case 8: /* predicate_or: predicate OR predicate */
#line 71 "predicate_parser.y" #line 71 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newOr( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_newOr( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); }
#line 1195 "predicate_parser.c" #line 1187 "predicate_parser.c"
break; break;
case 9: /* predicate_and: predicate AND predicate */ case 9: /* predicate_and: predicate AND predicate */
#line 73 "predicate_parser.y" #line 73 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newAnd( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_newAnd( (yyvsp[-2].ptr), (yyvsp[0].ptr) ); }
#line 1201 "predicate_parser.c" #line 1193 "predicate_parser.c"
break; break;
case 10: /* value: VAL_STRING */ case 10: /* value: VAL_STRING */
#line 75 "predicate_parser.y" #line 75 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newStringValue( (yyvsp[0].name) ); } { (yyval.ptr) = PredicateParse_newStringValue( (yyvsp[0].name) ); }
#line 1207 "predicate_parser.c" #line 1199 "predicate_parser.c"
break; break;
case 11: /* value: VAL_BOOL */ case 11: /* value: VAL_BOOL */
#line 76 "predicate_parser.y" #line 76 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newBoolValue( (yyvsp[0].valb) ); } { (yyval.ptr) = PredicateParse_newBoolValue( (yyvsp[0].valb) ); }
#line 1213 "predicate_parser.c" #line 1205 "predicate_parser.c"
break; break;
case 12: /* value: VAL_NUM */ case 12: /* value: VAL_NUM */
#line 77 "predicate_parser.y" #line 77 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newNumValue( (yyvsp[0].vali) ); } { (yyval.ptr) = PredicateParse_newNumValue( (yyvsp[0].vali) ); }
#line 1219 "predicate_parser.c" #line 1211 "predicate_parser.c"
break; break;
case 13: /* value: VAL_FLOAT */ case 13: /* value: VAL_FLOAT */
#line 78 "predicate_parser.y" #line 78 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newDoubleValue( (yyvsp[0].vald) ); } { (yyval.ptr) = PredicateParse_newDoubleValue( (yyvsp[0].vald) ); }
#line 1225 "predicate_parser.c" #line 1217 "predicate_parser.c"
break; break;
case 14: /* value: string_list */ case 14: /* value: string_list */
#line 79 "predicate_parser.y" #line 79 "predicate_parser.y"
{ (yyval.ptr) = (yyvsp[0].ptr); } { (yyval.ptr) = (yyvsp[0].ptr); }
#line 1231 "predicate_parser.c" #line 1223 "predicate_parser.c"
break; break;
case 15: /* string_list: '{' string_list_rec '}' */ case 15: /* string_list: '{' string_list_rec '}' */
#line 81 "predicate_parser.y" #line 81 "predicate_parser.y"
{ (yyval.ptr) = (yyvsp[-2].ptr); } { (yyval.ptr) = (yyvsp[-2].ptr); }
#line 1237 "predicate_parser.c" #line 1229 "predicate_parser.c"
break; break;
case 16: /* string_list_rec: %empty */ case 16: /* string_list_rec: %empty */
#line 83 "predicate_parser.y" #line 83 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newEmptyStringListValue(); } { (yyval.ptr) = PredicateParse_newEmptyStringListValue(); }
#line 1243 "predicate_parser.c" #line 1235 "predicate_parser.c"
break; break;
case 17: /* string_list_rec: VAL_STRING */ case 17: /* string_list_rec: VAL_STRING */
#line 84 "predicate_parser.y" #line 84 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_newStringListValue( (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_newStringListValue( (yyvsp[0].ptr) ); }
#line 1249 "predicate_parser.c" #line 1241 "predicate_parser.c"
break; break;
case 18: /* string_list_rec: VAL_STRING ',' string_list_rec */ case 18: /* string_list_rec: VAL_STRING ',' string_list_rec */
#line 85 "predicate_parser.y" #line 85 "predicate_parser.y"
{ (yyval.ptr) = PredicateParse_appendStringListValue( (yyvsp[-2].name), (yyvsp[0].ptr) ); } { (yyval.ptr) = PredicateParse_appendStringListValue( (yyvsp[-2].name), (yyvsp[0].ptr) ); }
#line 1255 "predicate_parser.c" #line 1247 "predicate_parser.c"
break; break;
#line 1259 "predicate_parser.c" #line 1251 "predicate_parser.c"
default: break; default: break;
} }
@ -1337,6 +1329,7 @@ yyerrorlab:
label yyerrorlab therefore never appears in user code. */ label yyerrorlab therefore never appears in user code. */
if (0) if (0)
YYERROR; YYERROR;
++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered /* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */ this YYERROR. */
@ -1397,7 +1390,7 @@ yyerrlab1:
`-------------------------------------*/ `-------------------------------------*/
yyacceptlab: yyacceptlab:
yyresult = 0; yyresult = 0;
goto yyreturn; goto yyreturnlab;
/*-----------------------------------. /*-----------------------------------.
@ -1405,24 +1398,22 @@ yyacceptlab:
`-----------------------------------*/ `-----------------------------------*/
yyabortlab: yyabortlab:
yyresult = 1; yyresult = 1;
goto yyreturn; goto yyreturnlab;
#if !defined yyoverflow /*-----------------------------------------------------------.
/*-------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
| yyexhaustedlab -- memory exhaustion comes here. | `-----------------------------------------------------------*/
`-------------------------------------------------*/
yyexhaustedlab: yyexhaustedlab:
yyerror (_scanner, YY_("memory exhausted")); yyerror (_scanner, YY_("memory exhausted"));
yyresult = 2; yyresult = 2;
goto yyreturn; goto yyreturnlab;
#endif
/*-------------------------------------------------------. /*----------------------------------------------------------.
| yyreturn -- parsing is finished, clean up and return. | | yyreturnlab -- parsing is finished, clean up and return. |
`-------------------------------------------------------*/ `----------------------------------------------------------*/
yyreturn: yyreturnlab:
if (yychar != YYEMPTY) if (yychar != YYEMPTY)
{ {
/* Make sure we have latest lookahead translation. See comments at /* Make sure we have latest lookahead translation. See comments at

View file

@ -1,4 +1,4 @@
/* A Bison parser, made by GNU Bison 3.7.6. */ /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison interface for Yacc-like parsers in C /* Bison interface for Yacc-like parsers in C
@ -90,6 +90,8 @@ typedef union YYSTYPE YYSTYPE;
int Solidparse (void *_scanner); int Solidparse (void *_scanner);
#endif /* !YY_SOLID_PREDICATE_PARSER_H_INCLUDED */ #endif /* !YY_SOLID_PREDICATE_PARSER_H_INCLUDED */