![]() ![]() |
![]() |
1 karl 1.6.2.2 #ifndef lint 2 static char const 3 yyrcsid[] = "$FreeBSD: src/usr.bin/yacc/skeleton.c,v 1.28 2000/01/17 02:04:06 bde Exp $"; 4 #endif 5 #include <stdlib.h> 6 #define YYBYACC 1 7 #define YYMAJOR 1 8 #define YYMINOR 9 9 #define YYLEX yylex() 10 #define YYEMPTY -1 11 #define yyclearin (yychar=(YYEMPTY)) 12 #define yyerrok (yyerrflag=0) 13 #define YYRECOVERING() (yyerrflag!=0) 14 static int yygrowstack(); | ||
15 mike 1.2 #define yyparse WQL_parse 16 #define yylex WQL_lex 17 #define yyerror WQL_error 18 #define yychar WQL_char | ||
19 karl 1.6.2.2 #define yyval WQL_val 20 #define yylval WQL_lval | ||
21 mike 1.2 #define yydebug WQL_debug 22 #define yynerrs WQL_nerrs | ||
23 karl 1.6.2.2 #define yyerrflag WQL_errflag 24 #define yyss WQL_ss 25 #define yyssp WQL_ssp 26 #define yyvs WQL_vs 27 #define yyvsp WQL_vsp 28 #define yylhs WQL_lhs 29 #define yylen WQL_len 30 #define yydefred WQL_defred 31 #define yydgoto WQL_dgoto 32 #define yysindex WQL_sindex 33 #define yyrindex WQL_rindex 34 #define yygindex WQL_gindex 35 #define yytable WQL_table 36 #define yycheck WQL_check 37 #define yyname WQL_name 38 #define yyrule WQL_rule 39 #define yysslim WQL_sslim 40 #define yystacksize WQL_stacksize 41 #define YYPREFIX "WQL_" 42 #line 10 "WQL.y" | ||
43 mike 1.2 44 #include <Pegasus/Common/Config.h> 45 #include <Pegasus/WQL/WQLOperation.h> 46 #include <Pegasus/WQL/WQLOperand.h> 47 #include <Pegasus/WQL/WQLParserState.h> 48 #include <Pegasus/WQL/WQLSelectStatement.h> 49 #include <string.h> 50 #include <stdlib.h> 51 52 #ifdef PEGASUS_OS_TYPE_WINDOWS 53 # include <malloc.h> 54 #endif 55 56 #if defined(PEGASUS_COMPILER_ACC) && defined(PEGASUS_OS_HPUX) 57 # include <alloca.h> 58 #endif 59 60 #if 0 61 # define WQL_TRACE(X) printf X 62 #else 63 # define WQL_TRACE(X) 64 mike 1.2 #endif 65 66 extern int WQL_lex(); | ||
67 kumpf 1.3 extern int WQL_error(const char*); | ||
68 mike 1.2 | ||
69 karl 1.6.2.2 /**/ 70 /* Define the global parser state object:*/ 71 /**/ | ||
72 mike 1.2 73 PEGASUS_USING_PEGASUS; 74 75 PEGASUS_NAMESPACE_BEGIN 76 77 extern WQLParserState* globalParserState; 78 79 PEGASUS_NAMESPACE_END 80 | ||
81 karl 1.6.2.2 #line 58 "WQL.y" | ||
82 mike 1.2 typedef union 83 { 84 int intValue; 85 double doubleValue; 86 char* strValue; 87 void* nodeValue; 88 } YYSTYPE; | ||
89 karl 1.6.2.2 #line 90 "y.tab.c" 90 #define YYERRCODE 256 91 #define TOK_INTEGER 257 92 #define TOK_DOUBLE 258 93 #define TOK_STRING 259 94 #define TOK_TRUE 260 95 #define TOK_FALSE 261 96 #define TOK_NULL 262 97 #define TOK_EQ 263 98 #define TOK_NE 264 99 #define TOK_LT 265 100 #define TOK_LE 266 101 #define TOK_GT 267 102 #define TOK_GE 268 103 #define TOK_NOT 269 104 #define TOK_OR 270 105 #define TOK_AND 271 106 #define TOK_IS 272 107 #define TOK_IDENTIFIER 273 108 #define TOK_SELECT 274 109 #define TOK_WHERE 275 110 karl 1.6.2.2 #define TOK_FROM 276 111 #define TOK_UNEXPECTED_CHAR 277 112 const short WQL_lhs[] = { -1, 113 0, 9, 10, 10, 2, 2, 11, 11, 7, 8, 114 6, 6, 6, 6, 6, 6, 6, 3, 3, 4, 115 4, 4, 4, 4, 4, 5, 5, 13, 13, 1, 116 12, 14, 14, 14, 14, 14, 117 }; 118 const short WQL_len[] = { 2, 119 1, 3, 1, 1, 1, 3, 2, 1, 2, 2, 120 3, 3, 2, 3, 1, 3, 4, 1, 1, 3, 121 3, 3, 3, 3, 3, 3, 4, 1, 1, 1, 122 1, 1, 1, 1, 1, 1, 123 }; 124 const short WQL_defred[] = { 0, 125 0, 0, 1, 30, 3, 5, 0, 0, 0, 0, 126 0, 2, 6, 31, 9, 0, 7, 33, 34, 35, 127 28, 29, 0, 0, 32, 0, 18, 19, 0, 36, 128 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 129 0, 0, 0, 14, 0, 16, 0, 12, 24, 25, 130 20, 22, 21, 23, 26, 0, 17, 27, 131 karl 1.6.2.2 }; 132 const short WQL_dgoto[] = { 2, 133 25, 7, 26, 27, 28, 29, 11, 17, 3, 8, 134 12, 15, 30, 31, 135 }; 136 const short WQL_sindex[] = { -241, 137 -38, 0, 0, 0, 0, 0, -9, -237, -232, -225, 138 -228, 0, 0, 0, 0, -40, 0, 0, 0, 0, 139 0, 0, -40, -40, 0, -223, 0, 0, -233, 0, 140 -238, 0, -39, -229, -40, -40, -252, -252, -252, -252, 141 -252, -252, -226, 0, -215, 0, -221, 0, 0, 0, 142 0, 0, 0, 0, 0, -211, 0, 0, 143 }; 144 const short WQL_rindex[] = { 0, 145 0, 0, 0, 0, 0, 0, -224, 0, 0, 0, 146 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147 0, 0, 0, 0, 0, 1, 0, 0, 54, 0, 148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 150 0, 0, 0, 0, 0, 0, 0, 0, 151 }; 152 karl 1.6.2.2 const short WQL_gindex[] = { 0, 153 11, 0, 0, 0, 0, -13, 0, 0, 0, 0, 154 0, 0, -21, -23, 155 }; 156 #define YYTABLESIZE 273 157 const short WQL_table[] = { 24, 158 15, 44, 11, 5, 18, 19, 20, 21, 22, 32, 159 33, 6, 46, 49, 50, 51, 52, 53, 54, 13, 160 4, 47, 48, 57, 37, 38, 39, 40, 41, 42, 161 21, 22, 1, 43, 9, 55, 35, 36, 10, 45, 162 4, 15, 56, 11, 21, 22, 16, 14, 34, 36, 163 58, 4, 8, 10, 0, 0, 0, 0, 0, 0, 164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173 karl 1.6.2.2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, 180 22, 0, 0, 0, 0, 0, 0, 0, 23, 0, 181 35, 36, 4, 0, 4, 0, 0, 0, 0, 0, 182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185 15, 15, 11, 186 }; 187 const short WQL_check[] = { 40, 188 0, 41, 0, 42, 257, 258, 259, 260, 261, 23, 189 24, 1, 34, 37, 38, 39, 40, 41, 42, 9, 190 273, 35, 36, 45, 263, 264, 265, 266, 267, 268, 191 260, 261, 274, 272, 44, 262, 270, 271, 276, 269, 192 273, 41, 269, 41, 260, 261, 275, 273, 272, 271, 193 262, 276, 0, 0, -1, -1, -1, -1, -1, -1, 194 karl 1.6.2.2 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 196 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 197 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 203 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 206 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 208 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209 -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 210 261, -1, -1, -1, -1, -1, -1, -1, 269, -1, 211 270, 271, 273, -1, 273, -1, -1, -1, -1, -1, 212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 215 karl 1.6.2.2 270, 271, 270, 216 }; 217 #define YYFINAL 2 218 #ifndef YYDEBUG 219 #define YYDEBUG 0 220 #endif 221 #define YYMAXTOKEN 277 222 #if YYDEBUG 223 const char * const WQL_name[] = { 224 "end-of-file",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, 225 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, 226 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, 227 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, 228 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, 229 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, 230 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,"TOK_INTEGER", | ||
231 mike 1.2 "TOK_DOUBLE","TOK_STRING","TOK_TRUE","TOK_FALSE","TOK_NULL","TOK_EQ","TOK_NE", | ||
232 karl 1.6.2.2 "TOK_LT","TOK_LE","TOK_GT","TOK_GE","TOK_NOT","TOK_OR","TOK_AND","TOK_IS", 233 "TOK_IDENTIFIER","TOK_SELECT","TOK_WHERE","TOK_FROM","TOK_UNEXPECTED_CHAR", | ||
234 mike 1.2 }; | ||
235 karl 1.6.2.2 const char * const WQL_rule[] = { 236 "$accept : start", 237 "start : selectStatement", 238 "selectStatement : TOK_SELECT selectList selectExpression", 239 "selectList : '*'", 240 "selectList : propertyList", 241 "propertyList : propertyName", 242 "propertyList : propertyList ',' propertyName", 243 "selectExpression : fromClause whereClause", 244 "selectExpression : fromClause", 245 "fromClause : TOK_FROM className", 246 "whereClause : TOK_WHERE searchCondition", 247 "searchCondition : searchCondition TOK_OR searchCondition", 248 "searchCondition : searchCondition TOK_AND searchCondition", 249 "searchCondition : TOK_NOT searchCondition", 250 "searchCondition : '(' searchCondition ')'", 251 "searchCondition : predicate", 252 "searchCondition : predicate TOK_IS truthValue", 253 "searchCondition : predicate TOK_IS TOK_NOT truthValue", 254 "predicate : comparisonPredicate", 255 "predicate : nullPredicate", 256 karl 1.6.2.2 "comparisonPredicate : comparisonTerm TOK_LT comparisonTerm", 257 "comparisonPredicate : comparisonTerm TOK_GT comparisonTerm", 258 "comparisonPredicate : comparisonTerm TOK_LE comparisonTerm", 259 "comparisonPredicate : comparisonTerm TOK_GE comparisonTerm", 260 "comparisonPredicate : comparisonTerm TOK_EQ comparisonTerm", 261 "comparisonPredicate : comparisonTerm TOK_NE comparisonTerm", 262 "nullPredicate : comparisonTerm TOK_IS TOK_NULL", 263 "nullPredicate : comparisonTerm TOK_IS TOK_NOT TOK_NULL", 264 "truthValue : TOK_TRUE", 265 "truthValue : TOK_FALSE", 266 "propertyName : TOK_IDENTIFIER", 267 "className : TOK_IDENTIFIER", 268 "comparisonTerm : propertyName", 269 "comparisonTerm : TOK_INTEGER", 270 "comparisonTerm : TOK_DOUBLE", 271 "comparisonTerm : TOK_STRING", 272 "comparisonTerm : truthValue", | ||
273 mike 1.2 }; 274 #endif | ||
275 karl 1.6.2.2 #if YYDEBUG 276 #include <stdio.h> | ||
277 mike 1.2 #endif | ||
278 karl 1.6.2.2 #ifdef YYSTACKSIZE | ||
279 mike 1.2 #undef YYMAXDEPTH | ||
280 karl 1.6.2.2 #define YYMAXDEPTH YYSTACKSIZE 281 #else 282 #ifdef YYMAXDEPTH 283 #define YYSTACKSIZE YYMAXDEPTH 284 #else 285 #define YYSTACKSIZE 10000 | ||
286 mike 1.2 #define YYMAXDEPTH 10000 287 #endif 288 #endif | ||
289 karl 1.6.2.2 #define YYINITSTACKSIZE 200 290 int yydebug; 291 int yynerrs; 292 int yyerrflag; 293 int yychar; 294 short *yyssp; 295 YYSTYPE *yyvsp; 296 YYSTYPE yyval; 297 YYSTYPE yylval; 298 short *yyss; 299 short *yysslim; 300 YYSTYPE *yyvs; 301 int yystacksize; 302 /* allocate initial stack or double stack size, up to YYMAXDEPTH */ 303 static int yygrowstack() 304 { 305 int newsize, i; 306 short *newss; 307 YYSTYPE *newvs; 308 309 if ((newsize = yystacksize) == 0) 310 karl 1.6.2.2 newsize = YYINITSTACKSIZE; 311 else if (newsize >= YYMAXDEPTH) 312 return -1; 313 else if ((newsize *= 2) > YYMAXDEPTH) 314 newsize = YYMAXDEPTH; 315 i = yyssp - yyss; 316 newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) : 317 (short *)malloc(newsize * sizeof *newss); 318 if (newss == NULL) 319 return -1; 320 yyss = newss; 321 yyssp = newss + i; 322 newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) : 323 (YYSTYPE *)malloc(newsize * sizeof *newvs); 324 if (newvs == NULL) 325 return -1; 326 yyvs = newvs; 327 yyvsp = newvs + i; 328 yystacksize = newsize; 329 yysslim = yyss + newsize - 1; 330 return 0; 331 karl 1.6.2.2 } | ||
332 mike 1.2 | ||
333 karl 1.6.2.2 #define YYABORT goto yyabort 334 #define YYREJECT goto yyabort 335 #define YYACCEPT goto yyaccept 336 #define YYERROR goto yyerrlab 337 338 #ifndef YYPARSE_PARAM 339 #if defined(__cplusplus) || __STDC__ 340 #define YYPARSE_PARAM_ARG void | ||
341 mike 1.2 #define YYPARSE_PARAM_DECL | ||
342 karl 1.6.2.2 #else /* ! ANSI-C/C++ */ | ||
343 mike 1.2 #define YYPARSE_PARAM_ARG 344 #define YYPARSE_PARAM_DECL | ||
345 karl 1.6.2.2 #endif /* ANSI-C/C++ */ 346 #else /* YYPARSE_PARAM */ 347 #ifndef YYPARSE_PARAM_TYPE 348 #define YYPARSE_PARAM_TYPE void * | ||
349 mike 1.2 #endif | ||
350 karl 1.6.2.2 #if defined(__cplusplus) || __STDC__ 351 #define YYPARSE_PARAM_ARG YYPARSE_PARAM_TYPE YYPARSE_PARAM 352 #define YYPARSE_PARAM_DECL 353 #else /* ! ANSI-C/C++ */ 354 #define YYPARSE_PARAM_ARG YYPARSE_PARAM 355 #define YYPARSE_PARAM_DECL YYPARSE_PARAM_TYPE YYPARSE_PARAM; 356 #endif /* ANSI-C/C++ */ 357 #endif /* ! YYPARSE_PARAM */ | ||
358 mike 1.2 359 int | ||
360 karl 1.6.2.2 yyparse (YYPARSE_PARAM_ARG) 361 YYPARSE_PARAM_DECL | ||
362 mike 1.2 { | ||
363 karl 1.6.2.2 register int yym, yyn, yystate; 364 #if YYDEBUG 365 register const char *yys; 366 367 if ((yys = getenv("YYDEBUG"))) 368 { 369 yyn = *yys; 370 if (yyn >= '0' && yyn <= '9') 371 yydebug = yyn - '0'; 372 } 373 #endif 374 375 yynerrs = 0; 376 yyerrflag = 0; 377 yychar = (-1); 378 379 if (yyss == NULL && yygrowstack()) goto yyoverflow; 380 yyssp = yyss; 381 yyvsp = yyvs; 382 *yyssp = yystate = 0; 383 384 karl 1.6.2.2 yyloop: 385 if ((yyn = yydefred[yystate])) goto yyreduce; 386 if (yychar < 0) 387 { 388 if ((yychar = yylex()) < 0) yychar = 0; 389 #if YYDEBUG 390 if (yydebug) 391 { 392 yys = 0; 393 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 394 if (!yys) yys = "illegal-symbol"; 395 printf("%sdebug: state %d, reading %d (%s)\n", 396 YYPREFIX, yystate, yychar, yys); 397 } 398 #endif 399 } 400 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && 401 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 402 { 403 #if YYDEBUG 404 if (yydebug) 405 karl 1.6.2.2 printf("%sdebug: state %d, shifting to state %d\n", 406 YYPREFIX, yystate, yytable[yyn]); 407 #endif 408 if (yyssp >= yysslim && yygrowstack()) 409 { 410 goto yyoverflow; 411 } 412 *++yyssp = yystate = yytable[yyn]; 413 *++yyvsp = yylval; 414 yychar = (-1); 415 if (yyerrflag > 0) --yyerrflag; 416 goto yyloop; 417 } 418 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && 419 yyn <= YYTABLESIZE && yycheck[yyn] == yychar) 420 { 421 yyn = yytable[yyn]; 422 goto yyreduce; 423 } 424 if (yyerrflag) goto yyinrecovery; 425 #if defined(lint) || defined(__GNUC__) 426 karl 1.6.2.2 goto yynewerror; 427 #endif 428 yynewerror: 429 yyerror("syntax error"); 430 #if defined(lint) || defined(__GNUC__) | ||
431 mike 1.2 goto yyerrlab; 432 #endif | ||
433 karl 1.6.2.2 yyerrlab: 434 ++yynerrs; 435 yyinrecovery: 436 if (yyerrflag < 3) 437 { 438 yyerrflag = 3; 439 for (;;) 440 { 441 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && 442 yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) 443 { 444 #if YYDEBUG 445 if (yydebug) 446 printf("%sdebug: state %d, error recovery shifting\ 447 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); 448 #endif 449 if (yyssp >= yysslim && yygrowstack()) 450 { 451 goto yyoverflow; 452 } 453 *++yyssp = yystate = yytable[yyn]; 454 karl 1.6.2.2 *++yyvsp = yylval; 455 goto yyloop; 456 } 457 else 458 { 459 #if YYDEBUG 460 if (yydebug) 461 printf("%sdebug: error recovery discarding state %d\n", 462 YYPREFIX, *yyssp); 463 #endif 464 if (yyssp <= yyss) goto yyabort; 465 --yyssp; 466 --yyvsp; 467 } 468 } 469 } 470 else 471 { 472 if (yychar == 0) goto yyabort; 473 #if YYDEBUG 474 if (yydebug) 475 karl 1.6.2.2 { 476 yys = 0; 477 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 478 if (!yys) yys = "illegal-symbol"; 479 printf("%sdebug: state %d, error recovery discards token %d (%s)\n", 480 YYPREFIX, yystate, yychar, yys); 481 } | ||
482 mike 1.2 #endif | ||
483 karl 1.6.2.2 yychar = (-1); 484 goto yyloop; 485 } | ||
486 mike 1.2 yyreduce: | ||
487 karl 1.6.2.2 #if YYDEBUG 488 if (yydebug) 489 printf("%sdebug: state %d, reducing by rule %d (%s)\n", 490 YYPREFIX, yystate, yyn, yyrule[yyn]); 491 #endif 492 yym = yylen[yyn]; 493 yyval = yyvsp[1-yym]; 494 switch (yyn) | ||
495 mike 1.2 { 496 case 1: | ||
497 karl 1.6.2.2 #line 131 "WQL.y" | ||
498 mike 1.2 { 499 WQL_TRACE(("YACC: start\n")); | ||
500 karl 1.6.2.2 } 501 break; | ||
502 mike 1.2 case 2: | ||
503 karl 1.6.2.2 #line 137 "WQL.y" | ||
504 mike 1.2 { 505 | ||
506 karl 1.6.2.2 } 507 break; | ||
508 mike 1.2 case 3: | ||
509 karl 1.6.2.2 #line 143 "WQL.y" | ||
510 mike 1.2 { | ||
511 kumpf 1.4 globalParserState->statement->setAllProperties(true); | ||
512 karl 1.6.2.2 } 513 break; | ||
514 mike 1.2 case 4: | ||
515 karl 1.6.2.2 #line 147 "WQL.y" | ||
516 mike 1.2 { 517 | ||
518 karl 1.6.2.2 } 519 break; | ||
520 mike 1.2 case 5: | ||
521 karl 1.6.2.2 #line 153 "WQL.y" | ||
522 mike 1.2 { | ||
523 kumpf 1.4 globalParserState->statement->appendSelectPropertyName(CIMName(yyvsp[0].strValue)); | ||
524 karl 1.6.2.2 } 525 break; | ||
526 mike 1.2 case 6: | ||
527 karl 1.6.2.2 #line 157 "WQL.y" | ||
528 mike 1.2 { | ||
529 kumpf 1.4 globalParserState->statement->appendSelectPropertyName(CIMName(yyvsp[0].strValue)); | ||
530 karl 1.6.2.2 } 531 break; | ||
532 mike 1.2 case 7: | ||
533 karl 1.6.2.2 #line 163 "WQL.y" | ||
534 mike 1.2 { 535 | ||
536 karl 1.6.2.2 } 537 break; | ||
538 mike 1.2 case 8: | ||
539 karl 1.6.2.2 #line 167 "WQL.y" | ||
540 mike 1.2 { 541 | ||
542 karl 1.6.2.2 } 543 break; | ||
544 mike 1.2 case 9: | ||
545 karl 1.6.2.2 #line 173 "WQL.y" | ||
546 mike 1.2 { 547 WQL_TRACE(("YACC: fromClause: TOK_FROM className(%s)\n", yyvsp[0].strValue)); | ||
548 kumpf 1.4 globalParserState->statement->setClassName(CIMName(yyvsp[0].strValue)); | ||
549 karl 1.6.2.2 } 550 break; | ||
551 mike 1.2 case 10: | ||
552 karl 1.6.2.2 #line 180 "WQL.y" | ||
553 mike 1.2 { 554 | ||
555 karl 1.6.2.2 } 556 break; | ||
557 mike 1.2 case 11: | ||
558 karl 1.6.2.2 #line 186 "WQL.y" | ||
559 mike 1.2 { 560 WQL_TRACE(("YACC: TOK_OR\n")); 561 globalParserState->statement->appendOperation(WQL_OR); | ||
562 karl 1.6.2.2 } 563 break; | ||
564 mike 1.2 case 12: | ||
565 karl 1.6.2.2 #line 191 "WQL.y" | ||
566 mike 1.2 { 567 WQL_TRACE(("YACC: TOK_AND\n")); 568 globalParserState->statement->appendOperation(WQL_AND); | ||
569 karl 1.6.2.2 } 570 break; | ||
571 mike 1.2 case 13: | ||
572 karl 1.6.2.2 #line 196 "WQL.y" | ||
573 mike 1.2 { 574 WQL_TRACE(("YACC: TOK_NOT\n")); 575 576 globalParserState->statement->appendOperation(WQL_NOT); | ||
577 karl 1.6.2.2 } 578 break; | ||
579 mike 1.2 case 14: | ||
580 karl 1.6.2.2 #line 202 "WQL.y" | ||
581 mike 1.2 { 582 | ||
583 karl 1.6.2.2 } 584 break; | ||
585 mike 1.2 case 15: | ||
586 karl 1.6.2.2 #line 206 "WQL.y" | ||
587 mike 1.2 { 588 | ||
589 karl 1.6.2.2 } 590 break; | ||
591 mike 1.2 case 16: | ||
592 karl 1.6.2.2 #line 210 "WQL.y" | ||
593 mike 1.2 { 594 WQLOperation op = yyvsp[0].intValue ? WQL_IS_TRUE : WQL_IS_FALSE; 595 globalParserState->statement->appendOperation(op); | ||
596 karl 1.6.2.2 } 597 break; | ||
598 mike 1.2 case 17: | ||
599 karl 1.6.2.2 #line 215 "WQL.y" | ||
600 mike 1.2 { 601 WQLOperation op = yyvsp[0].intValue ? WQL_IS_NOT_TRUE : WQL_IS_NOT_FALSE; 602 globalParserState->statement->appendOperation(op); | ||
603 karl 1.6.2.2 } 604 break; | ||
605 mike 1.2 case 18: | ||
606 karl 1.6.2.2 #line 224 "WQL.y" | ||
607 mike 1.2 { 608 | ||
609 karl 1.6.2.2 } 610 break; | ||
611 mike 1.2 case 19: | ||
612 karl 1.6.2.2 #line 228 "WQL.y" | ||
613 mike 1.2 { 614 | ||
615 karl 1.6.2.2 } 616 break; | ||
617 mike 1.2 case 20: | ||
618 karl 1.6.2.2 #line 234 "WQL.y" | ||
619 mike 1.2 { 620 WQL_TRACE(("YACC: TOK_LT\n")); 621 globalParserState->statement->appendOperation(WQL_LT); | ||
622 karl 1.6.2.2 } 623 break; | ||
624 mike 1.2 case 21: | ||
625 karl 1.6.2.2 #line 239 "WQL.y" | ||
626 mike 1.2 { 627 WQL_TRACE(("YACC: TOK_GT\n")); 628 globalParserState->statement->appendOperation(WQL_GT); | ||
629 karl 1.6.2.2 } 630 break; | ||
631 mike 1.2 case 22: | ||
632 karl 1.6.2.2 #line 244 "WQL.y" | ||
633 mike 1.2 { 634 WQL_TRACE(("YACC: TOK_LE\n")); 635 globalParserState->statement->appendOperation(WQL_LE); | ||
636 karl 1.6.2.2 } 637 break; | ||
638 mike 1.2 case 23: | ||
639 karl 1.6.2.2 #line 249 "WQL.y" | ||
640 mike 1.2 { 641 WQL_TRACE(("YACC: TOK_GE\n")); 642 globalParserState->statement->appendOperation(WQL_GE); | ||
643 karl 1.6.2.2 } 644 break; | ||
645 mike 1.2 case 24: | ||
646 karl 1.6.2.2 #line 254 "WQL.y" | ||
647 mike 1.2 { 648 WQL_TRACE(("YACC: TOK_EQ\n")); 649 globalParserState->statement->appendOperation(WQL_EQ); | ||
650 karl 1.6.2.2 } 651 break; | ||
652 mike 1.2 case 25: | ||
653 karl 1.6.2.2 #line 259 "WQL.y" | ||
654 mike 1.2 { 655 WQL_TRACE(("YACC: TOK_NE\n")); 656 globalParserState->statement->appendOperation(WQL_NE); | ||
657 karl 1.6.2.2 } 658 break; | ||
659 mike 1.2 case 26: | ||
660 karl 1.6.2.2 #line 266 "WQL.y" | ||
661 mike 1.2 { 662 WQL_TRACE(("YACC: nullPredicate : comparisonTerm IS NULL\n")); 663 globalParserState->statement->appendOperation(WQL_IS_NULL); | ||
664 karl 1.6.2.2 } 665 break; | ||
666 mike 1.2 case 27: | ||
667 karl 1.6.2.2 #line 271 "WQL.y" | ||
668 mike 1.2 { 669 WQL_TRACE(("YACC: nullPredicate : comparisonTerm IS NOT NULL\n")); 670 globalParserState->statement->appendOperation(WQL_IS_NOT_NULL); | ||
671 karl 1.6.2.2 } 672 break; | ||
673 mike 1.2 case 28: | ||
674 karl 1.6.2.2 #line 278 "WQL.y" | ||
675 mike 1.2 { 676 yyval.intValue = 1; | ||
677 karl 1.6.2.2 } 678 break; | ||
679 mike 1.2 case 29: | ||
680 karl 1.6.2.2 #line 282 "WQL.y" | ||
681 mike 1.2 { 682 yyval.intValue = 0; | ||
683 karl 1.6.2.2 } 684 break; | ||
685 mike 1.2 case 30: | ||
686 karl 1.6.2.2 #line 288 "WQL.y" | ||
687 mike 1.2 { 688 WQL_TRACE(("YACC: propertyName : TOK_IDENTIFIER(%s)\n", yyvsp[0].strValue)); 689 yyval.strValue = yyvsp[0].strValue; | ||
690 karl 1.6.2.2 } 691 break; | ||
692 mike 1.2 case 31: | ||
693 karl 1.6.2.2 #line 294 "WQL.y" | ||
694 mike 1.2 { 695 WQL_TRACE(("YACC: TOK_IDENTIFIER %s\n", yyvsp[0].strValue)); 696 yyval.strValue = yyvsp[0].strValue; | ||
697 karl 1.6.2.2 } 698 break; | ||
699 mike 1.2 case 32: | ||
700 karl 1.6.2.2 #line 301 "WQL.y" | ||
701 mike 1.2 { 702 globalParserState->statement->appendOperand( 703 WQLOperand(yyvsp[0].strValue, WQL_PROPERTY_NAME_TAG)); | ||
704 kumpf 1.4 globalParserState->statement->appendWherePropertyName(CIMName(yyvsp[0].strValue)); | ||
705 karl 1.6.2.2 } 706 break; | ||
707 mike 1.2 case 33: | ||
708 karl 1.6.2.2 #line 307 "WQL.y" | ||
709 mike 1.2 { 710 globalParserState->statement->appendOperand( 711 WQLOperand(yyvsp[0].intValue, WQL_INTEGER_VALUE_TAG)); | ||
712 karl 1.6.2.2 } 713 break; | ||
714 mike 1.2 case 34: | ||
715 karl 1.6.2.2 #line 312 "WQL.y" | ||
716 mike 1.2 { 717 globalParserState->statement->appendOperand( 718 WQLOperand(yyvsp[0].doubleValue, WQL_DOUBLE_VALUE_TAG)); | ||
719 karl 1.6.2.2 } 720 break; | ||
721 mike 1.2 case 35: | ||
722 karl 1.6.2.2 #line 317 "WQL.y" | ||
723 mike 1.2 { 724 globalParserState->statement->appendOperand( 725 WQLOperand(yyvsp[0].strValue, WQL_STRING_VALUE_TAG)); | ||
726 karl 1.6.2.2 } 727 break; | ||
728 mike 1.2 case 36: | ||
729 karl 1.6.2.2 #line 322 "WQL.y" | ||
730 mike 1.2 { 731 globalParserState->statement->appendOperand( 732 WQLOperand(yyvsp[0].intValue != 0, WQL_BOOLEAN_VALUE_TAG)); 733 } | ||
734 karl 1.6.2.2 break; 735 #line 736 "y.tab.c" | ||
736 mike 1.2 } | ||
737 karl 1.6.2.2 yyssp -= yym; 738 yystate = *yyssp; 739 yyvsp -= yym; 740 yym = yylhs[yyn]; 741 if (yystate == 0 && yym == 0) 742 { 743 #if YYDEBUG 744 if (yydebug) 745 printf("%sdebug: after reduction, shifting from state 0 to\ 746 state %d\n", YYPREFIX, YYFINAL); 747 #endif 748 yystate = YYFINAL; 749 *++yyssp = YYFINAL; 750 *++yyvsp = yyval; 751 if (yychar < 0) 752 { 753 if ((yychar = yylex()) < 0) yychar = 0; 754 #if YYDEBUG 755 if (yydebug) 756 { 757 yys = 0; 758 karl 1.6.2.2 if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; 759 if (!yys) yys = "illegal-symbol"; 760 printf("%sdebug: state %d, reading %d (%s)\n", 761 YYPREFIX, YYFINAL, yychar, yys); 762 } 763 #endif 764 } 765 if (yychar == 0) goto yyaccept; 766 goto yyloop; 767 } 768 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && 769 yyn <= YYTABLESIZE && yycheck[yyn] == yystate) 770 yystate = yytable[yyn]; 771 else 772 yystate = yydgoto[yym]; 773 #if YYDEBUG 774 if (yydebug) 775 printf("%sdebug: after reduction, shifting from state %d \ 776 to state %d\n", YYPREFIX, *yyssp, yystate); 777 #endif 778 if (yyssp >= yysslim && yygrowstack()) 779 karl 1.6.2.2 { 780 goto yyoverflow; 781 } 782 *++yyssp = yystate; 783 *++yyvsp = yyval; 784 goto yyloop; 785 yyoverflow: 786 yyerror("yacc stack overflow"); 787 yyabort: 788 return (1); 789 yyaccept: 790 return (0); | ||
791 mike 1.2 } |
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |