00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #define yylex coco_api_internallex
00037
00038 #include "dbcompare_sortorder_parser.hh"
00039
00040
00041 #line 68 "dbcompare_sortorder_parser.y"
00042
00043 #include "dbcompare_sortorder_scanner.hh"
00044 #undef yylex
00045 #define yylex scanner.yylex
00046
00047 namespace coco_api_internal {
00048 using namespace coco;
00049
00050 void dbcompare_sortorder_parser::error(const location_type& l, const std::string& m)
00051 {
00052 if (errormsg.empty())
00053 errormsg = m;
00054 }
00055 }
00056
00057
00058
00059 #line 60 "dbcompare_sortorder_parser.cc"
00060
00061 #ifndef YY_
00062 # if YYENABLE_NLS
00063 # if ENABLE_NLS
00064 # include <libintl.h>
00065 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00066 # endif
00067 # endif
00068 # ifndef YY_
00069 # define YY_(msgid) msgid
00070 # endif
00071 #endif
00072
00073
00074 #define YYUSE(e) ((void) (e))
00075
00076
00077 # define YYCDEBUG \
00078 for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \
00079 (*yycdebug_)
00080
00081
00082 #if YYDEBUG
00083
00084 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
00085 do { \
00086 if (yydebug_) \
00087 { \
00088 *yycdebug_ << Title << ' '; \
00089 yy_symbol_print_ ((Type), (Value), (Location)); \
00090 *yycdebug_ << std::endl; \
00091 } \
00092 } while (false)
00093
00094 # define YY_REDUCE_PRINT(Rule) \
00095 do { \
00096 if (yydebug_) \
00097 yy_reduce_print_ (Rule); \
00098 } while (false)
00099
00100 # define YY_STACK_PRINT() \
00101 do { \
00102 if (yydebug_) \
00103 yystack_print_ (); \
00104 } while (false)
00105
00106 #else
00107
00108 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
00109 # define YY_REDUCE_PRINT(Rule)
00110 # define YY_STACK_PRINT()
00111
00112 #endif
00113
00114 #define YYACCEPT goto yyacceptlab
00115 #define YYABORT goto yyabortlab
00116 #define YYERROR goto yyerrorlab
00117
00118 namespace coco_api_internal
00119 {
00120 #if YYERROR_VERBOSE
00121
00122
00123
00124
00125
00126
00127 std::string
00128 dbcompare_sortorder_parser::yytnamerr_ (const char *yystr)
00129 {
00130 if (*yystr == '"')
00131 {
00132 std::string yyr = "";
00133 char const *yyp = yystr;
00134
00135 for (;;)
00136 switch (*++yyp)
00137 {
00138 case '\'':
00139 case ',':
00140 goto do_not_strip_quotes;
00141
00142 case '\\':
00143 if (*++yyp != '\\')
00144 goto do_not_strip_quotes;
00145
00146 default:
00147 yyr += *yyp;
00148 break;
00149
00150 case '"':
00151 return yyr;
00152 }
00153 do_not_strip_quotes: ;
00154 }
00155
00156 return yystr;
00157 }
00158
00159 #endif
00160
00162 dbcompare_sortorder_parser::dbcompare_sortorder_parser (coco_api_internal::dbcompare_sortorder_scanner &scanner_yyarg, std::map<int,std::triple<std::string, coco::dbc_method, coco::basic_alltype> > &cols_yyarg, std::vector<int> &order_yyarg, int &map_index_yyarg, std::string &errormsg_yyarg)
00163 : yydebug_ (false),
00164 yycdebug_ (&std::cerr),
00165 scanner (scanner_yyarg),
00166 cols (cols_yyarg),
00167 order (order_yyarg),
00168 map_index (map_index_yyarg),
00169 errormsg (errormsg_yyarg)
00170 {
00171 }
00172
00173 dbcompare_sortorder_parser::~dbcompare_sortorder_parser ()
00174 {
00175 }
00176
00177 #if YYDEBUG
00178
00179
00180
00181
00182 inline void
00183 dbcompare_sortorder_parser::yy_symbol_value_print_ (int yytype,
00184 const semantic_type* yyvaluep, const location_type* yylocationp)
00185 {
00186 YYUSE (yylocationp);
00187 YYUSE (yyvaluep);
00188 switch (yytype)
00189 {
00190 default:
00191 break;
00192 }
00193 }
00194
00195
00196 void
00197 dbcompare_sortorder_parser::yy_symbol_print_ (int yytype,
00198 const semantic_type* yyvaluep, const location_type* yylocationp)
00199 {
00200 *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm")
00201 << ' ' << yytname_[yytype] << " ("
00202 << *yylocationp << ": ";
00203 yy_symbol_value_print_ (yytype, yyvaluep, yylocationp);
00204 *yycdebug_ << ')';
00205 }
00206 #endif
00207
00208 void
00209 dbcompare_sortorder_parser::yydestruct_ (const char* yymsg,
00210 int yytype, semantic_type* yyvaluep, location_type* yylocationp)
00211 {
00212 YYUSE (yylocationp);
00213 YYUSE (yymsg);
00214 YYUSE (yyvaluep);
00215
00216 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
00217
00218 switch (yytype)
00219 {
00220 case 10:
00221 #line 64 "dbcompare_sortorder_parser.y"
00222 { delete (yyvaluep->varname); };
00223 #line 224 "dbcompare_sortorder_parser.cc"
00224 break;
00225
00226 default:
00227 break;
00228 }
00229 }
00230
00231 void
00232 dbcompare_sortorder_parser::yypop_ (unsigned int n)
00233 {
00234 yystate_stack_.pop (n);
00235 yysemantic_stack_.pop (n);
00236 yylocation_stack_.pop (n);
00237 }
00238
00239 std::ostream&
00240 dbcompare_sortorder_parser::debug_stream () const
00241 {
00242 return *yycdebug_;
00243 }
00244
00245 void
00246 dbcompare_sortorder_parser::set_debug_stream (std::ostream& o)
00247 {
00248 yycdebug_ = &o;
00249 }
00250
00251
00252 dbcompare_sortorder_parser::debug_level_type
00253 dbcompare_sortorder_parser::debug_level () const
00254 {
00255 return yydebug_;
00256 }
00257
00258 void
00259 dbcompare_sortorder_parser::set_debug_level (debug_level_type l)
00260 {
00261 yydebug_ = l;
00262 }
00263
00264
00265 int
00266 dbcompare_sortorder_parser::parse ()
00267 {
00269 int yychar = yyempty_;
00270 int yytoken = 0;
00271
00272
00273 int yyn;
00274 int yylen = 0;
00275 int yystate = 0;
00276
00277
00278 int yynerrs_ = 0;
00279 int yyerrstatus_ = 0;
00280
00282 semantic_type yylval;
00284 location_type yylloc;
00286 location yyerror_range[2];
00287
00289 semantic_type yyval;
00291 location_type yyloc;
00292
00293 int yyresult;
00294
00295 YYCDEBUG << "Starting parse" << std::endl;
00296
00297
00298
00299
00300
00301
00302 yystate_stack_ = state_stack_type (0);
00303 yysemantic_stack_ = semantic_stack_type (0);
00304 yylocation_stack_ = location_stack_type (0);
00305 yysemantic_stack_.push (yylval);
00306 yylocation_stack_.push (yylloc);
00307
00308
00309 yynewstate:
00310 yystate_stack_.push (yystate);
00311 YYCDEBUG << "Entering state " << yystate << std::endl;
00312 goto yybackup;
00313
00314
00315 yybackup:
00316
00317
00318 yyn = yypact_[yystate];
00319 if (yyn == yypact_ninf_)
00320 goto yydefault;
00321
00322
00323 if (yychar == yyempty_)
00324 {
00325 YYCDEBUG << "Reading a token: ";
00326 yychar = yylex (&yylval);
00327 }
00328
00329
00330
00331 if (yychar <= yyeof_)
00332 {
00333 yychar = yytoken = yyeof_;
00334 YYCDEBUG << "Now at end of input." << std::endl;
00335 }
00336 else
00337 {
00338 yytoken = yytranslate_ (yychar);
00339 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
00340 }
00341
00342
00343
00344 yyn += yytoken;
00345 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken)
00346 goto yydefault;
00347
00348
00349 yyn = yytable_[yyn];
00350 if (yyn <= 0)
00351 {
00352 if (yyn == 0 || yyn == yytable_ninf_)
00353 goto yyerrlab;
00354 yyn = -yyn;
00355 goto yyreduce;
00356 }
00357
00358
00359 if (yyn == yyfinal_)
00360 goto yyacceptlab;
00361
00362
00363 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
00364
00365
00366 if (yychar != yyeof_)
00367 yychar = yyempty_;
00368
00369 yysemantic_stack_.push (yylval);
00370 yylocation_stack_.push (yylloc);
00371
00372
00373
00374 if (yyerrstatus_)
00375 --yyerrstatus_;
00376
00377 yystate = yyn;
00378 goto yynewstate;
00379
00380
00381
00382
00383 yydefault:
00384 yyn = yydefact_[yystate];
00385 if (yyn == 0)
00386 goto yyerrlab;
00387 goto yyreduce;
00388
00389
00390
00391
00392 yyreduce:
00393 yylen = yyr2_[yyn];
00394
00395
00396
00397
00398
00399
00400 if (yylen)
00401 yyval = yysemantic_stack_[yylen - 1];
00402 else
00403 yyval = yysemantic_stack_[0];
00404
00405 {
00406 slice<location_type, location_stack_type> slice (yylocation_stack_, yylen);
00407 YYLLOC_DEFAULT (yyloc, slice, yylen);
00408 }
00409 YY_REDUCE_PRINT (yyn);
00410 switch (yyn)
00411 {
00412 case 2:
00413 #line 86 "dbcompare_sortorder_parser.y"
00414 {
00415 order.push_back((yysemantic_stack_[(3) - (3)].sort_expr));
00416 ;}
00417 break;
00418
00419 case 3:
00420 #line 89 "dbcompare_sortorder_parser.y"
00421 {
00422 order.push_back((yysemantic_stack_[(1) - (1)].sort_expr));
00423 ;}
00424 break;
00425
00426 case 4:
00427 #line 94 "dbcompare_sortorder_parser.y"
00428 {
00429 (yyval.sort_expr) = map_index;
00430 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(2) - (1)].varname), dbc_sort_max, basic_alltype());
00431 ;}
00432 break;
00433
00434 case 5:
00435 #line 98 "dbcompare_sortorder_parser.y"
00436 {
00437 (yyval.sort_expr) = map_index;
00438 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(2) - (1)].varname), dbc_sort_min, basic_alltype());
00439 ;}
00440 break;
00441
00442 case 6:
00443 #line 102 "dbcompare_sortorder_parser.y"
00444 {
00445 (yyval.sort_expr) = map_index;
00446 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(2) - (1)].varname), dbc_sort_true, basic_alltype());
00447 ;}
00448 break;
00449
00450 case 7:
00451 #line 106 "dbcompare_sortorder_parser.y"
00452 {
00453 (yyval.sort_expr) = map_index;
00454 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(2) - (1)].varname), dbc_sort_false, basic_alltype());
00455 ;}
00456 break;
00457
00458 case 8:
00459 #line 110 "dbcompare_sortorder_parser.y"
00460 {
00461 (yyval.sort_expr) = map_index;
00462 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(1) - (1)].varname), dbc_sort_max, basic_alltype());
00463 ;}
00464 break;
00465
00466 case 9:
00467 #line 114 "dbcompare_sortorder_parser.y"
00468 {
00469 (yyval.sort_expr) = map_index;
00470 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(4) - (2)].varname), dbc_sort_absmax, basic_alltype());
00471 ;}
00472 break;
00473
00474 case 10:
00475 #line 118 "dbcompare_sortorder_parser.y"
00476 {
00477 (yyval.sort_expr) = map_index;
00478 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(4) - (2)].varname), dbc_sort_absmin, basic_alltype());
00479 ;}
00480 break;
00481
00482 case 11:
00483 #line 122 "dbcompare_sortorder_parser.y"
00484 {
00485 (yyval.sort_expr) = map_index;
00486 cols[map_index++] = std::triple<std::string, dbc_method, basic_alltype>(*(yysemantic_stack_[(3) - (2)].varname), dbc_sort_absmax, basic_alltype());
00487 ;}
00488 break;
00489
00490
00491
00492 #line 493 "dbcompare_sortorder_parser.cc"
00493 default: break;
00494 }
00495 YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc);
00496
00497 yypop_ (yylen);
00498 yylen = 0;
00499 YY_STACK_PRINT ();
00500
00501 yysemantic_stack_.push (yyval);
00502 yylocation_stack_.push (yyloc);
00503
00504
00505 yyn = yyr1_[yyn];
00506 yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0];
00507 if (0 <= yystate && yystate <= yylast_
00508 && yycheck_[yystate] == yystate_stack_[0])
00509 yystate = yytable_[yystate];
00510 else
00511 yystate = yydefgoto_[yyn - yyntokens_];
00512 goto yynewstate;
00513
00514
00515
00516
00517 yyerrlab:
00518
00519 if (!yyerrstatus_)
00520 {
00521 ++yynerrs_;
00522 error (yylloc, yysyntax_error_ (yystate));
00523 }
00524
00525 yyerror_range[0] = yylloc;
00526 if (yyerrstatus_ == 3)
00527 {
00528
00529
00530
00531 if (yychar <= yyeof_)
00532 {
00533
00534 if (yychar == yyeof_)
00535 YYABORT;
00536 }
00537 else
00538 {
00539 yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc);
00540 yychar = yyempty_;
00541 }
00542 }
00543
00544
00545
00546 goto yyerrlab1;
00547
00548
00549
00550
00551
00552 yyerrorlab:
00553
00554
00555
00556
00557 if (false)
00558 goto yyerrorlab;
00559
00560 yyerror_range[0] = yylocation_stack_[yylen - 1];
00561
00562
00563 yypop_ (yylen);
00564 yylen = 0;
00565 yystate = yystate_stack_[0];
00566 goto yyerrlab1;
00567
00568
00569
00570
00571 yyerrlab1:
00572 yyerrstatus_ = 3;
00573
00574 for (;;)
00575 {
00576 yyn = yypact_[yystate];
00577 if (yyn != yypact_ninf_)
00578 {
00579 yyn += yyterror_;
00580 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
00581 {
00582 yyn = yytable_[yyn];
00583 if (0 < yyn)
00584 break;
00585 }
00586 }
00587
00588
00589 if (yystate_stack_.height () == 1)
00590 YYABORT;
00591
00592 yyerror_range[0] = yylocation_stack_[0];
00593 yydestruct_ ("Error: popping",
00594 yystos_[yystate],
00595 &yysemantic_stack_[0], &yylocation_stack_[0]);
00596 yypop_ ();
00597 yystate = yystate_stack_[0];
00598 YY_STACK_PRINT ();
00599 }
00600
00601 if (yyn == yyfinal_)
00602 goto yyacceptlab;
00603
00604 yyerror_range[1] = yylloc;
00605
00606
00607 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
00608 yysemantic_stack_.push (yylval);
00609 yylocation_stack_.push (yyloc);
00610
00611
00612 YY_SYMBOL_PRINT ("Shifting", yystos_[yyn],
00613 &yysemantic_stack_[0], &yylocation_stack_[0]);
00614
00615 yystate = yyn;
00616 goto yynewstate;
00617
00618
00619 yyacceptlab:
00620 yyresult = 0;
00621 goto yyreturn;
00622
00623
00624 yyabortlab:
00625 yyresult = 1;
00626 goto yyreturn;
00627
00628 yyreturn:
00629 if (yychar != yyeof_ && yychar != yyempty_)
00630 yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
00631
00632
00633
00634 yypop_ (yylen);
00635 while (yystate_stack_.height () != 1)
00636 {
00637 yydestruct_ ("Cleanup: popping",
00638 yystos_[yystate_stack_[0]],
00639 &yysemantic_stack_[0],
00640 &yylocation_stack_[0]);
00641 yypop_ ();
00642 }
00643
00644 return yyresult;
00645 }
00646
00647
00648 std::string
00649 dbcompare_sortorder_parser::yysyntax_error_ (int yystate)
00650 {
00651 std::string res;
00652 YYUSE (yystate);
00653 #if YYERROR_VERBOSE
00654 int yyn = yypact_[yystate];
00655 if (yypact_ninf_ < yyn && yyn <= yylast_)
00656 {
00657
00658
00659 int yyxbegin = yyn < 0 ? -yyn : 0;
00660
00661
00662 int yychecklim = yylast_ - yyn + 1;
00663 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
00664 int count = 0;
00665 for (int x = yyxbegin; x < yyxend; ++x)
00666 if (yycheck_[x + yyn] == x && x != yyterror_)
00667 ++count;
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677 res = "syntax error, unexpected ";
00678 res += yytnamerr_ (yytname_[tok]);
00679 if (count < 5)
00680 {
00681 count = 0;
00682 for (int x = yyxbegin; x < yyxend; ++x)
00683 if (yycheck_[x + yyn] == x && x != yyterror_)
00684 {
00685 res += (!count++) ? ", expecting " : " or ";
00686 res += yytnamerr_ (yytname_[x]);
00687 }
00688 }
00689 }
00690 else
00691 #endif
00692 res = YY_("syntax error");
00693 return res;
00694 }
00695
00696
00697
00698
00699 const signed char dbcompare_sortorder_parser::yypact_ninf_ = -4;
00700 const signed char
00701 dbcompare_sortorder_parser::yypact_[] =
00702 {
00703 1, 3, -2, 0, -4, 4, -4, -4, -4, -4,
00704 -4, 1, 2, -4, -4, -4
00705 };
00706
00707
00708
00709
00710 const unsigned char
00711 dbcompare_sortorder_parser::yydefact_[] =
00712 {
00713 0, 0, 8, 0, 3, 0, 4, 5, 6, 7,
00714 1, 0, 11, 2, 9, 10
00715 };
00716
00717
00718 const signed char
00719 dbcompare_sortorder_parser::yypgoto_[] =
00720 {
00721 -4, -4, -3
00722 };
00723
00724
00725 const signed char
00726 dbcompare_sortorder_parser::yydefgoto_[] =
00727 {
00728 -1, 3, 4
00729 };
00730
00731
00732
00733
00734 const signed char dbcompare_sortorder_parser::yytable_ninf_ = -1;
00735 const unsigned char
00736 dbcompare_sortorder_parser::yytable_[] =
00737 {
00738 10, 6, 7, 8, 9, 14, 15, 11, 13, 1,
00739 0, 2, 12, 5
00740 };
00741
00742
00743 const signed char
00744 dbcompare_sortorder_parser::yycheck_[] =
00745 {
00746 0, 3, 4, 5, 6, 3, 4, 7, 11, 8,
00747 -1, 10, 8, 10
00748 };
00749
00750
00751
00752 const unsigned char
00753 dbcompare_sortorder_parser::yystos_[] =
00754 {
00755 0, 8, 10, 12, 13, 10, 3, 4, 5, 6,
00756 0, 7, 8, 13, 3, 4
00757 };
00758
00759 #if YYDEBUG
00760
00761
00762 const unsigned short int
00763 dbcompare_sortorder_parser::yytoken_number_[] =
00764 {
00765 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00766 265
00767 };
00768 #endif
00769
00770
00771 const unsigned char
00772 dbcompare_sortorder_parser::yyr1_[] =
00773 {
00774 0, 11, 12, 12, 13, 13, 13, 13, 13, 13,
00775 13, 13
00776 };
00777
00778
00779 const unsigned char
00780 dbcompare_sortorder_parser::yyr2_[] =
00781 {
00782 0, 2, 3, 1, 2, 2, 2, 2, 1, 4,
00783 4, 3
00784 };
00785
00786 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00787
00788
00789 const char*
00790 const dbcompare_sortorder_parser::yytname_[] =
00791 {
00792 "$end", "error", "$undefined", "SORT_MAX", "SORT_MIN", "SORT_TRUE",
00793 "SORT_FALSE", "COMMA", "OP_ABS", "SCAN_ERROR", "VARNAME", "$accept",
00794 "sortorder", "sort_expr", 0
00795 };
00796 #endif
00797
00798 #if YYDEBUG
00799
00800 const dbcompare_sortorder_parser::rhs_number_type
00801 dbcompare_sortorder_parser::yyrhs_[] =
00802 {
00803 12, 0, -1, 12, 7, 13, -1, 13, -1, 10,
00804 3, -1, 10, 4, -1, 10, 5, -1, 10, 6,
00805 -1, 10, -1, 8, 10, 8, 3, -1, 8, 10,
00806 8, 4, -1, 8, 10, 8, -1
00807 };
00808
00809
00810
00811 const unsigned char
00812 dbcompare_sortorder_parser::yyprhs_[] =
00813 {
00814 0, 0, 3, 7, 9, 12, 15, 18, 21, 23,
00815 28, 33
00816 };
00817
00818
00819 const unsigned char
00820 dbcompare_sortorder_parser::yyrline_[] =
00821 {
00822 0, 86, 86, 89, 94, 98, 102, 106, 110, 114,
00823 118, 122
00824 };
00825
00826
00827 void
00828 dbcompare_sortorder_parser::yystack_print_ ()
00829 {
00830 *yycdebug_ << "Stack now";
00831 for (state_stack_type::const_iterator i = yystate_stack_.begin ();
00832 i != yystate_stack_.end (); ++i)
00833 *yycdebug_ << ' ' << *i;
00834 *yycdebug_ << std::endl;
00835 }
00836
00837
00838 void
00839 dbcompare_sortorder_parser::yy_reduce_print_ (int yyrule)
00840 {
00841 unsigned int yylno = yyrline_[yyrule];
00842 int yynrhs = yyr2_[yyrule];
00843
00844 *yycdebug_ << "Reducing stack by rule " << yyrule - 1
00845 << " (line " << yylno << "), ";
00846
00847 for (int yyi = 0; yyi < yynrhs; yyi++)
00848 YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
00849 yyrhs_[yyprhs_[yyrule] + yyi],
00850 &(yysemantic_stack_[(yynrhs) - (yyi + 1)]),
00851 &(yylocation_stack_[(yynrhs) - (yyi + 1)]));
00852 }
00853 #endif // YYDEBUG
00854
00855
00856 dbcompare_sortorder_parser::token_number_type
00857 dbcompare_sortorder_parser::yytranslate_ (int t)
00858 {
00859 static
00860 const token_number_type
00861 translate_table[] =
00862 {
00863 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00865 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00867 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00868 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00879 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00888 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00889 5, 6, 7, 8, 9, 10
00890 };
00891 if ((unsigned int) t <= yyuser_token_number_max_)
00892 return translate_table[t];
00893 else
00894 return yyundef_token_;
00895 }
00896
00897 const int dbcompare_sortorder_parser::yyeof_ = 0;
00898 const int dbcompare_sortorder_parser::yylast_ = 13;
00899 const int dbcompare_sortorder_parser::yynnts_ = 3;
00900 const int dbcompare_sortorder_parser::yyempty_ = -2;
00901 const int dbcompare_sortorder_parser::yyfinal_ = 10;
00902 const int dbcompare_sortorder_parser::yyterror_ = 1;
00903 const int dbcompare_sortorder_parser::yyerrcode_ = 256;
00904 const int dbcompare_sortorder_parser::yyntokens_ = 11;
00905
00906 const unsigned int dbcompare_sortorder_parser::yyuser_token_number_max_ = 265;
00907 const dbcompare_sortorder_parser::token_number_type dbcompare_sortorder_parser::yyundef_token_ = 2;
00908
00909 }
00910
00911