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 KHolidayslex
00037
00038 #include "holidayparserplan.hpp"
00039
00040
00041 #line 108 "holidayparserplan.ypp"
00042
00043
00044 #include "holidayparserdriverplan_p.h"
00045 #include "holidayscannerplan_p.h"
00046
00047
00048
00049
00050 #undef yylex
00051 #define yylex driver.m_scanner->lex
00052
00053
00054
00055
00056 #line 57 "holidayparserplan.cpp"
00057
00058 #ifndef YY_
00059 # if YYENABLE_NLS
00060 # if ENABLE_NLS
00061 # include <libintl.h>
00062 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00063 # endif
00064 # endif
00065 # ifndef YY_
00066 # define YY_(msgid) msgid
00067 # endif
00068 #endif
00069
00070
00071 #define YYUSE(e) ((void) (e))
00072
00073
00074 # define YYCDEBUG \
00075 for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \
00076 (*yycdebug_)
00077
00078
00079 #if YYDEBUG
00080
00081 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
00082 do { \
00083 if (yydebug_) \
00084 { \
00085 *yycdebug_ << Title << ' '; \
00086 yy_symbol_print_ ((Type), (Value), (Location)); \
00087 *yycdebug_ << std::endl; \
00088 } \
00089 } while (false)
00090
00091 # define YY_REDUCE_PRINT(Rule) \
00092 do { \
00093 if (yydebug_) \
00094 yy_reduce_print_ (Rule); \
00095 } while (false)
00096
00097 # define YY_STACK_PRINT() \
00098 do { \
00099 if (yydebug_) \
00100 yystack_print_ (); \
00101 } while (false)
00102
00103 #else
00104
00105 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
00106 # define YY_REDUCE_PRINT(Rule)
00107 # define YY_STACK_PRINT()
00108
00109 #endif
00110
00111 #define YYACCEPT goto yyacceptlab
00112 #define YYABORT goto yyabortlab
00113 #define YYERROR goto yyerrorlab
00114
00115 namespace KHolidays
00116 {
00117 #if YYERROR_VERBOSE
00118
00119
00120
00121
00122
00123
00124 std::string
00125 HolidayParserPlan::yytnamerr_ (const char *yystr)
00126 {
00127 if (*yystr == '"')
00128 {
00129 std::string yyr = "";
00130 char const *yyp = yystr;
00131
00132 for (;;)
00133 switch (*++yyp)
00134 {
00135 case '\'':
00136 case ',':
00137 goto do_not_strip_quotes;
00138
00139 case '\\':
00140 if (*++yyp != '\\')
00141 goto do_not_strip_quotes;
00142
00143 default:
00144 yyr += *yyp;
00145 break;
00146
00147 case '"':
00148 return yyr;
00149 }
00150 do_not_strip_quotes: ;
00151 }
00152
00153 return yystr;
00154 }
00155
00156 #endif
00157
00159 HolidayParserPlan::HolidayParserPlan (class HolidayParserDriverPlan& driver_yyarg)
00160 : yydebug_ (false),
00161 yycdebug_ (&std::cerr),
00162 driver (driver_yyarg)
00163 {
00164 }
00165
00166 HolidayParserPlan::~HolidayParserPlan ()
00167 {
00168 }
00169
00170 #if YYDEBUG
00171
00172
00173
00174
00175 inline void
00176 HolidayParserPlan::yy_symbol_value_print_ (int yytype,
00177 const semantic_type* yyvaluep, const location_type* yylocationp)
00178 {
00179 YYUSE (yylocationp);
00180 YYUSE (yyvaluep);
00181 switch (yytype)
00182 {
00183 default:
00184 break;
00185 }
00186 }
00187
00188
00189 void
00190 HolidayParserPlan::yy_symbol_print_ (int yytype,
00191 const semantic_type* yyvaluep, const location_type* yylocationp)
00192 {
00193 *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm")
00194 << ' ' << yytname_[yytype] << " ("
00195 << *yylocationp << ": ";
00196 yy_symbol_value_print_ (yytype, yyvaluep, yylocationp);
00197 *yycdebug_ << ')';
00198 }
00199 #endif
00200
00201 void
00202 HolidayParserPlan::yydestruct_ (const char* yymsg,
00203 int yytype, semantic_type* yyvaluep, location_type* yylocationp)
00204 {
00205 YYUSE (yylocationp);
00206 YYUSE (yymsg);
00207 YYUSE (yyvaluep);
00208
00209 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
00210
00211 switch (yytype)
00212 {
00213
00214 default:
00215 break;
00216 }
00217 }
00218
00219 void
00220 HolidayParserPlan::yypop_ (unsigned int n)
00221 {
00222 yystate_stack_.pop (n);
00223 yysemantic_stack_.pop (n);
00224 yylocation_stack_.pop (n);
00225 }
00226
00227 std::ostream&
00228 HolidayParserPlan::debug_stream () const
00229 {
00230 return *yycdebug_;
00231 }
00232
00233 void
00234 HolidayParserPlan::set_debug_stream (std::ostream& o)
00235 {
00236 yycdebug_ = &o;
00237 }
00238
00239
00240 HolidayParserPlan::debug_level_type
00241 HolidayParserPlan::debug_level () const
00242 {
00243 return yydebug_;
00244 }
00245
00246 void
00247 HolidayParserPlan::set_debug_level (debug_level_type l)
00248 {
00249 yydebug_ = l;
00250 }
00251
00252
00253 int
00254 HolidayParserPlan::parse ()
00255 {
00257 int yychar = yyempty_;
00258 int yytoken = 0;
00259
00260
00261 int yyn;
00262 int yylen = 0;
00263 int yystate = 0;
00264
00265
00266 int yynerrs_ = 0;
00267 int yyerrstatus_ = 0;
00268
00270 semantic_type yylval;
00272 location_type yylloc;
00274 location yyerror_range[2];
00275
00277 semantic_type yyval;
00279 location_type yyloc;
00280
00281 int yyresult;
00282
00283 YYCDEBUG << "Starting parse" << std::endl;
00284
00285
00286
00287 #line 70 "holidayparserplan.ypp"
00288 {
00289
00290 yylloc.begin.filename = new std::string( driver.filePath().toLocal8Bit().data() );
00291 yylloc.end.filename = yylloc.begin.filename;
00292 }
00293
00294 #line 295 "holidayparserplan.cpp"
00295
00296
00297
00298
00299 yystate_stack_ = state_stack_type (0);
00300 yysemantic_stack_ = semantic_stack_type (0);
00301 yylocation_stack_ = location_stack_type (0);
00302 yysemantic_stack_.push (yylval);
00303 yylocation_stack_.push (yylloc);
00304
00305
00306 yynewstate:
00307 yystate_stack_.push (yystate);
00308 YYCDEBUG << "Entering state " << yystate << std::endl;
00309 goto yybackup;
00310
00311
00312 yybackup:
00313
00314
00315 yyn = yypact_[yystate];
00316 if (yyn == yypact_ninf_)
00317 goto yydefault;
00318
00319
00320 if (yychar == yyempty_)
00321 {
00322 YYCDEBUG << "Reading a token: ";
00323 yychar = yylex (&yylval, &yylloc);
00324 }
00325
00326
00327
00328 if (yychar <= yyeof_)
00329 {
00330 yychar = yytoken = yyeof_;
00331 YYCDEBUG << "Now at end of input." << std::endl;
00332 }
00333 else
00334 {
00335 yytoken = yytranslate_ (yychar);
00336 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
00337 }
00338
00339
00340
00341 yyn += yytoken;
00342 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yytoken)
00343 goto yydefault;
00344
00345
00346 yyn = yytable_[yyn];
00347 if (yyn <= 0)
00348 {
00349 if (yyn == 0 || yyn == yytable_ninf_)
00350 goto yyerrlab;
00351 yyn = -yyn;
00352 goto yyreduce;
00353 }
00354
00355
00356 if (yyn == yyfinal_)
00357 goto yyacceptlab;
00358
00359
00360 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
00361
00362
00363 if (yychar != yyeof_)
00364 yychar = yyempty_;
00365
00366 yysemantic_stack_.push (yylval);
00367 yylocation_stack_.push (yylloc);
00368
00369
00370
00371 if (yyerrstatus_)
00372 --yyerrstatus_;
00373
00374 yystate = yyn;
00375 goto yynewstate;
00376
00377
00378
00379
00380 yydefault:
00381 yyn = yydefact_[yystate];
00382 if (yyn == 0)
00383 goto yyerrlab;
00384 goto yyreduce;
00385
00386
00387
00388
00389 yyreduce:
00390 yylen = yyr2_[yyn];
00391
00392
00393
00394
00395
00396
00397 if (yylen)
00398 yyval = yysemantic_stack_[yylen - 1];
00399 else
00400 yyval = yysemantic_stack_[0];
00401
00402 {
00403 slice<location_type, location_stack_type> slice (yylocation_stack_, yylen);
00404 YYLLOC_DEFAULT (yyloc, slice, yylen);
00405 }
00406 YY_REDUCE_PRINT (yyn);
00407 switch (yyn)
00408 {
00409 case 4:
00410 #line 129 "holidayparserplan.ypp"
00411 { driver.setFileCountryCode( QString() ); ;}
00412 break;
00413
00414 case 5:
00415 #line 130 "holidayparserplan.ypp"
00416 { driver.setFileCountryCode( QString::fromUtf8( (yysemantic_stack_[(2) - (2)].sval) ) ); ;}
00417 break;
00418
00419 case 6:
00420 #line 133 "holidayparserplan.ypp"
00421 { driver.setFileLanguageCode( QString() ); ;}
00422 break;
00423
00424 case 7:
00425 #line 134 "holidayparserplan.ypp"
00426 { driver.setFileLanguageCode( QString::fromUtf8( (yysemantic_stack_[(2) - (2)].sval) ) ); ;}
00427 break;
00428
00429 case 8:
00430 #line 137 "holidayparserplan.ypp"
00431 { driver.setFileName( QString() ); ;}
00432 break;
00433
00434 case 9:
00435 #line 138 "holidayparserplan.ypp"
00436 { driver.setFileName( QString::fromUtf8( (yysemantic_stack_[(2) - (2)].sval) ) ); ;}
00437 break;
00438
00439 case 10:
00440 #line 141 "holidayparserplan.ypp"
00441 { driver.setFileDescription( QString() ); ;}
00442 break;
00443
00444 case 11:
00445 #line 142 "holidayparserplan.ypp"
00446 { driver.setFileDescription( QString::fromUtf8( (yysemantic_stack_[(2) - (2)].sval) ) ); ;}
00447 break;
00448
00449 case 16:
00450 #line 153 "holidayparserplan.ypp"
00451 { driver.setEventColorName( 0 ); ;}
00452 break;
00453
00454 case 17:
00455 #line 154 "holidayparserplan.ypp"
00456 { driver.setEventColorName( (yysemantic_stack_[(1) - (1)].ival) ); ;}
00457 break;
00458
00459 case 18:
00460 #line 157 "holidayparserplan.ypp"
00461 { driver.setEventColorDay( 0 ); ;}
00462 break;
00463
00464 case 19:
00465 #line 158 "holidayparserplan.ypp"
00466 { driver.setEventColorDay( (yysemantic_stack_[(1) - (1)].ival) ); ;}
00467 break;
00468
00469 case 20:
00470 #line 161 "holidayparserplan.ypp"
00471 { driver.setEventName( QString::fromUtf8( (yysemantic_stack_[(1) - (1)].sval) ) ); ;}
00472 break;
00473
00474 case 21:
00475 #line 164 "holidayparserplan.ypp"
00476 { driver.setEventCalendarType( "gregorian" ); ;}
00477 break;
00478
00479 case 22:
00480 #line 165 "holidayparserplan.ypp"
00481 { driver.setEventCalendarType( QString::fromUtf8( (yysemantic_stack_[(1) - (1)].sval) ) ); ;}
00482 break;
00483
00484 case 23:
00485 #line 168 "holidayparserplan.ypp"
00486 { driver.setFromEaster( (yysemantic_stack_[(3) - (2)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00487 break;
00488
00489 case 24:
00490 #line 169 "holidayparserplan.ypp"
00491 { driver.setFromPascha( (yysemantic_stack_[(3) - (2)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00492 break;
00493
00494 case 25:
00495 #line 170 "holidayparserplan.ypp"
00496 { driver.setFromDate( (yysemantic_stack_[(4) - (2)].ival), (yysemantic_stack_[(4) - (3)].ival), (yysemantic_stack_[(4) - (4)].ival) ); ;}
00497 break;
00498
00499 case 26:
00500 #line 171 "holidayparserplan.ypp"
00501 { driver.setFromWeekdayInMonth( 1, (yysemantic_stack_[(3) - (1)].ival), 1, (yysemantic_stack_[(3) - (2)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00502 break;
00503
00504 case 27:
00505 #line 172 "holidayparserplan.ypp"
00506 { driver.setFromWeekdayInMonth( (yysemantic_stack_[(4) - (1)].ival), (yysemantic_stack_[(4) - (2)].ival), 1, (yysemantic_stack_[(4) - (3)].ival), (yysemantic_stack_[(4) - (4)].ival) ); ;}
00507 break;
00508
00509 case 28:
00510 #line 173 "holidayparserplan.ypp"
00511 { driver.setFromWeekdayInMonth( (yysemantic_stack_[(6) - (1)].ival), (yysemantic_stack_[(6) - (2)].ival), (yysemantic_stack_[(6) - (4)].ival), (yysemantic_stack_[(6) - (5)].ival), (yysemantic_stack_[(6) - (6)].ival) ); ;}
00512 break;
00513
00514 case 29:
00515 #line 174 "holidayparserplan.ypp"
00516 { driver.setFromRelativeWeekday( (yysemantic_stack_[(5) - (2)].ival), (yysemantic_stack_[(5) - (1)].ival), (yysemantic_stack_[(5) - (4)].ival), (yysemantic_stack_[(5) - (5)].ival) ); ;}
00517 break;
00518
00519 case 30:
00520 #line 177 "holidayparserplan.ypp"
00521 { (yyval.ival) = 0; ;}
00522 break;
00523
00524 case 31:
00525 #line 178 "holidayparserplan.ypp"
00526 { (yyval.ival) = (yysemantic_stack_[(2) - (2)].ival); ;}
00527 break;
00528
00529 case 32:
00530 #line 179 "holidayparserplan.ypp"
00531 { (yyval.ival) = -(yysemantic_stack_[(2) - (2)].ival); ;}
00532 break;
00533
00534 case 33:
00535 #line 182 "holidayparserplan.ypp"
00536 { (yyval.ival) = 0; ;}
00537 break;
00538
00539 case 34:
00540 #line 183 "holidayparserplan.ypp"
00541 { (yyval.ival) = ( (yysemantic_stack_[(4) - (2)].ival) << 8 ) | (yysemantic_stack_[(4) - (4)].ival); ;}
00542 break;
00543
00544 case 35:
00545 #line 186 "holidayparserplan.ypp"
00546 { (yyval.ival) = 0; ;}
00547 break;
00548
00549 case 36:
00550 #line 187 "holidayparserplan.ypp"
00551 { (yyval.ival) = ( 1 << (yysemantic_stack_[(1) - (1)].ival) ); ;}
00552 break;
00553
00554 case 37:
00555 #line 188 "holidayparserplan.ypp"
00556 { (yyval.ival) = ( 1 << (yysemantic_stack_[(3) - (1)].ival) ) | (yysemantic_stack_[(3) - (3)].ival); ;}
00557 break;
00558
00559 case 38:
00560 #line 191 "holidayparserplan.ypp"
00561 { (yyval.ival) = 1; ;}
00562 break;
00563
00564 case 39:
00565 #line 192 "holidayparserplan.ypp"
00566 { (yyval.ival) = (yysemantic_stack_[(2) - (2)].ival); ;}
00567 break;
00568
00569 case 40:
00570 #line 195 "holidayparserplan.ypp"
00571 { driver.setEventDate( -99999, (yysemantic_stack_[(3) - (3)].ival), (yysemantic_stack_[(3) - (1)].ival) ); ;}
00572 break;
00573
00574 case 41:
00575 #line 196 "holidayparserplan.ypp"
00576 { driver.setEventDate( -99999, (yysemantic_stack_[(4) - (3)].ival), (yysemantic_stack_[(4) - (1)].ival) ); ;}
00577 break;
00578
00579 case 42:
00580 #line 197 "holidayparserplan.ypp"
00581 { driver.setEventDate( (yysemantic_stack_[(5) - (5)].ival), (yysemantic_stack_[(5) - (3)].ival), (yysemantic_stack_[(5) - (1)].ival) ); ;}
00582 break;
00583
00584 case 43:
00585 #line 198 "holidayparserplan.ypp"
00586 { driver.setEventDate( -99999, (yysemantic_stack_[(3) - (1)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00587 break;
00588
00589 case 44:
00590 #line 199 "holidayparserplan.ypp"
00591 { driver.setEventDate( (yysemantic_stack_[(5) - (5)].ival), (yysemantic_stack_[(5) - (1)].ival), (yysemantic_stack_[(5) - (3)].ival) ); ;}
00592 break;
00593
00594 case 45:
00595 #line 200 "holidayparserplan.ypp"
00596 { driver.setEventDate( -99999, (yysemantic_stack_[(2) - (1)].ival), (yysemantic_stack_[(2) - (2)].ival) ); ;}
00597 break;
00598
00599 case 46:
00600 #line 201 "holidayparserplan.ypp"
00601 { driver.setEventDate( (yysemantic_stack_[(3) - (3)].ival), (yysemantic_stack_[(3) - (1)].ival), (yysemantic_stack_[(3) - (2)].ival) ); ;}
00602 break;
00603
00604 case 47:
00605 #line 202 "holidayparserplan.ypp"
00606 { driver.setEventDate( -99999, (yysemantic_stack_[(2) - (2)].ival), (yysemantic_stack_[(2) - (1)].ival) ); ;}
00607 break;
00608
00609 case 48:
00610 #line 203 "holidayparserplan.ypp"
00611 { driver.setEventDate( (yysemantic_stack_[(3) - (3)].ival), (yysemantic_stack_[(3) - (2)].ival), (yysemantic_stack_[(3) - (1)].ival) ); ;}
00612 break;
00613
00614 case 49:
00615 #line 204 "holidayparserplan.ypp"
00616 { driver.setEventDate( (yysemantic_stack_[(4) - (4)].ival), (yysemantic_stack_[(4) - (3)].ival), (yysemantic_stack_[(4) - (1)].ival) ); ;}
00617 break;
00618
00619 case 50:
00620 #line 205 "holidayparserplan.ypp"
00621 { driver.setEventDate( (yysemantic_stack_[(1) - (1)].ival) ); ;}
00622 break;
00623
00624 case 51:
00625 #line 208 "holidayparserplan.ypp"
00626 { (yyval.ival) = driver.julianDayFromEventName( (yysemantic_stack_[(1) - (1)].sval) ); ;}
00627 break;
00628
00629 case 52:
00630 #line 209 "holidayparserplan.ypp"
00631 { (yyval.ival) = driver.julianDayFromEaster(); ;}
00632 break;
00633
00634 case 53:
00635 #line 210 "holidayparserplan.ypp"
00636 { (yyval.ival) = driver.julianDayFromPascha(); ;}
00637 break;
00638
00639 case 54:
00640 #line 211 "holidayparserplan.ypp"
00641 { (yyval.ival) = driver.julianDayFromMonthDay( (yysemantic_stack_[(3) - (3)].ival), (yysemantic_stack_[(3) - (1)].ival) ); ;}
00642 break;
00643
00644 case 55:
00645 #line 212 "holidayparserplan.ypp"
00646 { (yyval.ival) = driver.julianDayFromMonthDay( (yysemantic_stack_[(4) - (3)].ival), (yysemantic_stack_[(4) - (1)].ival) ); ;}
00647 break;
00648
00649 case 56:
00650 #line 213 "holidayparserplan.ypp"
00651 { (yyval.ival) = driver.julianDayFromMonthDay( (yysemantic_stack_[(3) - (1)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00652 break;
00653
00654 case 57:
00655 #line 214 "holidayparserplan.ypp"
00656 { (yyval.ival) = driver.julianDayFromMonthDay( (yysemantic_stack_[(2) - (2)].ival), (yysemantic_stack_[(2) - (1)].ival) ); ;}
00657 break;
00658
00659 case 58:
00660 #line 215 "holidayparserplan.ypp"
00661 { (yyval.ival) = driver.julianDayFromMonthDay( (yysemantic_stack_[(2) - (1)].ival), (yysemantic_stack_[(2) - (2)].ival) ); ;}
00662 break;
00663
00664 case 59:
00665 #line 216 "holidayparserplan.ypp"
00666 { (yyval.ival) = driver.julianDayFromRelativeWeekday( (yysemantic_stack_[(3) - (2)].ival), (yysemantic_stack_[(3) - (1)].ival), (yysemantic_stack_[(3) - (3)].ival) ); ;}
00667 break;
00668
00669 case 60:
00670 #line 217 "holidayparserplan.ypp"
00671 { (yyval.ival) = driver.julianDayFromWeekdayInMonth( (yysemantic_stack_[(4) - (1)].ival), (yysemantic_stack_[(4) - (2)].ival), (yysemantic_stack_[(4) - (4)].ival) ); ;}
00672 break;
00673
00674 case 62:
00675 #line 221 "holidayparserplan.ypp"
00676 { (yyval.ival) = driver.adjustedMonthNumber( (yysemantic_stack_[(1) - (1)].ival) ); ;}
00677 break;
00678
00679 case 63:
00680 #line 224 "holidayparserplan.ypp"
00681 { (yyval.ival) = driver.adjustedMonthNumber( (yysemantic_stack_[(1) - (1)].ival) ); ;}
00682 break;
00683
00684 case 64:
00685 #line 227 "holidayparserplan.ypp"
00686 { (yyval.ival) = (yysemantic_stack_[(1) - (1)].ival); ;}
00687 break;
00688
00689 case 65:
00690 #line 228 "holidayparserplan.ypp"
00691 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) || (yysemantic_stack_[(3) - (3)].ival); ;}
00692 break;
00693
00694 case 66:
00695 #line 229 "holidayparserplan.ypp"
00696 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) && (yysemantic_stack_[(3) - (3)].ival); ;}
00697 break;
00698
00699 case 67:
00700 #line 230 "holidayparserplan.ypp"
00701 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) == (yysemantic_stack_[(3) - (3)].ival); ;}
00702 break;
00703
00704 case 68:
00705 #line 231 "holidayparserplan.ypp"
00706 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) != (yysemantic_stack_[(3) - (3)].ival); ;}
00707 break;
00708
00709 case 69:
00710 #line 232 "holidayparserplan.ypp"
00711 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) <= (yysemantic_stack_[(3) - (3)].ival); ;}
00712 break;
00713
00714 case 70:
00715 #line 233 "holidayparserplan.ypp"
00716 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) >= (yysemantic_stack_[(3) - (3)].ival); ;}
00717 break;
00718
00719 case 71:
00720 #line 234 "holidayparserplan.ypp"
00721 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) < (yysemantic_stack_[(3) - (3)].ival); ;}
00722 break;
00723
00724 case 72:
00725 #line 235 "holidayparserplan.ypp"
00726 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) > (yysemantic_stack_[(3) - (3)].ival); ;}
00727 break;
00728
00729 case 73:
00730 #line 236 "holidayparserplan.ypp"
00731 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) + (yysemantic_stack_[(3) - (3)].ival); ;}
00732 break;
00733
00734 case 74:
00735 #line 237 "holidayparserplan.ypp"
00736 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) - (yysemantic_stack_[(3) - (3)].ival); ;}
00737 break;
00738
00739 case 75:
00740 #line 238 "holidayparserplan.ypp"
00741 { (yyval.ival) = (yysemantic_stack_[(3) - (1)].ival) * (yysemantic_stack_[(3) - (3)].ival); ;}
00742 break;
00743
00744 case 76:
00745 #line 239 "holidayparserplan.ypp"
00746 { (yyval.ival) = (yysemantic_stack_[(3) - (3)].ival) ? (yysemantic_stack_[(3) - (1)].ival) / (yysemantic_stack_[(3) - (3)].ival) : 0; ;}
00747 break;
00748
00749 case 77:
00750 #line 240 "holidayparserplan.ypp"
00751 { (yyval.ival) = (yysemantic_stack_[(3) - (3)].ival) ? (yysemantic_stack_[(3) - (1)].ival) % (yysemantic_stack_[(3) - (3)].ival) : 0; ;}
00752 break;
00753
00754 case 78:
00755 #line 241 "holidayparserplan.ypp"
00756 { (yyval.ival) = (yysemantic_stack_[(5) - (1)].ival) ? (yysemantic_stack_[(5) - (3)].ival) : (yysemantic_stack_[(5) - (5)].ival); ;}
00757 break;
00758
00759 case 79:
00760 #line 242 "holidayparserplan.ypp"
00761 { (yyval.ival) = !(yysemantic_stack_[(2) - (2)].ival); ;}
00762 break;
00763
00764 case 80:
00765 #line 243 "holidayparserplan.ypp"
00766 { (yyval.ival) = (yysemantic_stack_[(3) - (2)].ival); ;}
00767 break;
00768
00769 case 81:
00770 #line 246 "holidayparserplan.ypp"
00771 { (yyval.ival) = (yysemantic_stack_[(3) - (2)].ival); ;}
00772 break;
00773
00774 case 82:
00775 #line 247 "holidayparserplan.ypp"
00776 { (yyval.ival) = (yysemantic_stack_[(1) - (1)].ival); ;}
00777 break;
00778
00779 case 84:
00780 #line 251 "holidayparserplan.ypp"
00781 { (yyval.ival) = -(yysemantic_stack_[(2) - (2)].ival); ;}
00782 break;
00783
00784 case 85:
00785 #line 252 "holidayparserplan.ypp"
00786 { (yyval.ival) = driver.parseYear(); ;}
00787 break;
00788
00789 case 86:
00790 #line 253 "holidayparserplan.ypp"
00791 { (yyval.ival) = driver.isLeapYear( (yysemantic_stack_[(2) - (2)].ival) ); ;}
00792 break;
00793
00794
00795
00796 #line 797 "holidayparserplan.cpp"
00797 default: break;
00798 }
00799 YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc);
00800
00801 yypop_ (yylen);
00802 yylen = 0;
00803 YY_STACK_PRINT ();
00804
00805 yysemantic_stack_.push (yyval);
00806 yylocation_stack_.push (yyloc);
00807
00808
00809 yyn = yyr1_[yyn];
00810 yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0];
00811 if (0 <= yystate && yystate <= yylast_
00812 && yycheck_[yystate] == yystate_stack_[0])
00813 yystate = yytable_[yystate];
00814 else
00815 yystate = yydefgoto_[yyn - yyntokens_];
00816 goto yynewstate;
00817
00818
00819
00820
00821 yyerrlab:
00822
00823 if (!yyerrstatus_)
00824 {
00825 ++yynerrs_;
00826 error (yylloc, yysyntax_error_ (yystate, yytoken));
00827 }
00828
00829 yyerror_range[0] = yylloc;
00830 if (yyerrstatus_ == 3)
00831 {
00832
00833
00834
00835 if (yychar <= yyeof_)
00836 {
00837
00838 if (yychar == yyeof_)
00839 YYABORT;
00840 }
00841 else
00842 {
00843 yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc);
00844 yychar = yyempty_;
00845 }
00846 }
00847
00848
00849
00850 goto yyerrlab1;
00851
00852
00853
00854
00855
00856 yyerrorlab:
00857
00858
00859
00860
00861 if (false)
00862 goto yyerrorlab;
00863
00864 yyerror_range[0] = yylocation_stack_[yylen - 1];
00865
00866
00867 yypop_ (yylen);
00868 yylen = 0;
00869 yystate = yystate_stack_[0];
00870 goto yyerrlab1;
00871
00872
00873
00874
00875 yyerrlab1:
00876 yyerrstatus_ = 3;
00877
00878 for (;;)
00879 {
00880 yyn = yypact_[yystate];
00881 if (yyn != yypact_ninf_)
00882 {
00883 yyn += yyterror_;
00884 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
00885 {
00886 yyn = yytable_[yyn];
00887 if (0 < yyn)
00888 break;
00889 }
00890 }
00891
00892
00893 if (yystate_stack_.height () == 1)
00894 YYABORT;
00895
00896 yyerror_range[0] = yylocation_stack_[0];
00897 yydestruct_ ("Error: popping",
00898 yystos_[yystate],
00899 &yysemantic_stack_[0], &yylocation_stack_[0]);
00900 yypop_ ();
00901 yystate = yystate_stack_[0];
00902 YY_STACK_PRINT ();
00903 }
00904
00905 if (yyn == yyfinal_)
00906 goto yyacceptlab;
00907
00908 yyerror_range[1] = yylloc;
00909
00910
00911 YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
00912 yysemantic_stack_.push (yylval);
00913 yylocation_stack_.push (yyloc);
00914
00915
00916 YY_SYMBOL_PRINT ("Shifting", yystos_[yyn],
00917 &yysemantic_stack_[0], &yylocation_stack_[0]);
00918
00919 yystate = yyn;
00920 goto yynewstate;
00921
00922
00923 yyacceptlab:
00924 yyresult = 0;
00925 goto yyreturn;
00926
00927
00928 yyabortlab:
00929 yyresult = 1;
00930 goto yyreturn;
00931
00932 yyreturn:
00933 if (yychar != yyeof_ && yychar != yyempty_)
00934 yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
00935
00936
00937
00938 yypop_ (yylen);
00939 while (yystate_stack_.height () != 1)
00940 {
00941 yydestruct_ ("Cleanup: popping",
00942 yystos_[yystate_stack_[0]],
00943 &yysemantic_stack_[0],
00944 &yylocation_stack_[0]);
00945 yypop_ ();
00946 }
00947
00948 return yyresult;
00949 }
00950
00951
00952 std::string
00953 HolidayParserPlan::yysyntax_error_ (int yystate, int tok)
00954 {
00955 std::string res;
00956 YYUSE (yystate);
00957 #if YYERROR_VERBOSE
00958 int yyn = yypact_[yystate];
00959 if (yypact_ninf_ < yyn && yyn <= yylast_)
00960 {
00961
00962
00963 int yyxbegin = yyn < 0 ? -yyn : 0;
00964
00965
00966 int yychecklim = yylast_ - yyn + 1;
00967 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
00968 int count = 0;
00969 for (int x = yyxbegin; x < yyxend; ++x)
00970 if (yycheck_[x + yyn] == x && x != yyterror_)
00971 ++count;
00972
00973
00974
00975
00976
00977
00978
00979
00980
00981 res = "syntax error, unexpected ";
00982 res += yytnamerr_ (yytname_[tok]);
00983 if (count < 5)
00984 {
00985 count = 0;
00986 for (int x = yyxbegin; x < yyxend; ++x)
00987 if (yycheck_[x + yyn] == x && x != yyterror_)
00988 {
00989 res += (!count++) ? ", expecting " : " or ";
00990 res += yytnamerr_ (yytname_[x]);
00991 }
00992 }
00993 }
00994 else
00995 #endif
00996 res = YY_("syntax error");
00997 return res;
00998 }
00999
01000
01001
01002
01003 const short int HolidayParserPlan::yypact_ninf_ = -130;
01004 const short int
01005 HolidayParserPlan::yypact_[] =
01006 {
01007 -22, 10, 24, -130, -1, -130, -130, 6, 29, 12,
01008 -130, 25, -130, 32, 13, -130, 39, -130, 60, -130,
01009 -130, 62, -130, -130, 72, -130, 115, -130, -130, 128,
01010 -130, 131, -9, -9, 66, 34, -130, -9, 47, 131,
01011 117, -130, 34, 34, 74, 61, -130, 74, 74, -130,
01012 34, 83, 157, -130, 77, 131, 131, 11, 122, 131,
01013 206, 206, 34, -130, -9, 126, -130, -130, 50, 131,
01014 -130, -130, -130, 51, 64, 131, 3, 34, 34, 34,
01015 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
01016 34, -130, 90, 74, 65, -130, 61, 74, 131, 63,
01017 -130, -130, -130, 206, 74, 131, -130, 131, -130, -130,
01018 93, 61, 248, 248, 248, 248, 248, 248, 227, 248,
01019 114, 114, 50, 50, 50, 184, 79, 94, -130, 131,
01020 -9, -130, -130, 34, -130, -130, -130, 61, 73, 34,
01021 90, 90, -130, 74, 206, -130, -130, -130, -130, -130,
01022 -130
01023 };
01024
01025
01026
01027
01028 const unsigned char
01029 HolidayParserPlan::yydefact_[] =
01030 {
01031 4, 0, 0, 12, 6, 5, 1, 14, 0, 8,
01032 15, 16, 7, 0, 10, 17, 0, 9, 0, 3,
01033 20, 18, 11, 19, 21, 22, 0, 83, 63, 30,
01034 85, 0, 30, 30, 0, 0, 13, 30, 0, 61,
01035 50, 82, 0, 0, 38, 0, 86, 38, 38, 84,
01036 0, 0, 0, 64, 33, 0, 45, 30, 0, 47,
01037 31, 32, 0, 26, 30, 50, 23, 24, 79, 0,
01038 51, 52, 53, 0, 0, 61, 62, 0, 0, 0,
01039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01040 0, 81, 35, 38, 43, 46, 0, 38, 63, 40,
01041 61, 62, 48, 39, 38, 0, 80, 0, 58, 57,
01042 0, 0, 67, 68, 69, 70, 71, 72, 65, 66,
01043 74, 73, 75, 76, 77, 0, 36, 0, 25, 0,
01044 30, 27, 49, 41, 29, 59, 56, 0, 54, 0,
01045 35, 35, 44, 38, 42, 60, 55, 78, 37, 34,
01046 28
01047 };
01048
01049
01050 const short int
01051 HolidayParserPlan::yypgoto_[] =
01052 {
01053 -130, -130, -130, -130, -130, -130, -130, -130, -130, -130,
01054 -130, -130, -130, -130, -23, -130, -129, -20, 68, -130,
01055 -13, 106, -27, -26, -130
01056 };
01057
01058
01059 const signed char
01060 HolidayParserPlan::yydefgoto_[] =
01061 {
01062 -1, 2, 3, 4, 9, 14, 19, 7, 11, 16,
01063 24, 21, 26, 36, 44, 93, 127, 63, 37, 73,
01064 38, 100, 52, 53, 41
01065 };
01066
01067
01068
01069
01070 const signed char HolidayParserPlan::yytable_ninf_ = -63;
01071 const short int
01072 HolidayParserPlan::yytable_[] =
01073 {
01074 40, 42, 43, 45, 1, 46, -2, 109, 110, 47,
01075 48, 148, 149, 56, 54, 60, 61, 5, 10, 65,
01076 96, 42, 43, 68, 6, 76, 8, 66, 67, 94,
01077 95, 15, 101, 102, 97, 103, 12, 27, 74, 17,
01078 13, 104, 18, 105, 111, 99, 20, 30, 31, 108,
01079 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
01080 122, 123, 124, 125, 27, 28, 34, 22, 23, 49,
01081 101, 50, 132, 128, 30, 31, 51, 131, 35, 135,
01082 25, 136, 55, 130, 134, 101, 27, 28, 69, 90,
01083 70, 62, 92, 34, 106, 126, 30, 31, 138, 107,
01084 129, 71, 137, 142, 133, 35, 144, 143, 72, 140,
01085 141, 101, 147, 64, 146, 34, 0, 0, 27, 28,
01086 29, 28, 57, 150, 145, 27, 98, 35, 30, 31,
01087 28, 27, 39, 32, 27, 30, 31, 0, 42, 43,
01088 33, 30, 31, 0, 30, 31, 59, 34, 87, 88,
01089 89, 39, -62, 90, 34, 0, 0, 75, 58, 35,
01090 34, -62, 0, 34, 0, 0, 35, 58, 0, 0,
01091 0, 59, 35, 0, 0, 35, 77, 78, 79, 80,
01092 81, 82, 0, 0, 0, 0, 0, 83, 84, 85,
01093 86, 87, 88, 89, 0, 0, 90, 0, 0, 0,
01094 0, 0, 91, 77, 78, 79, 80, 81, 82, 0,
01095 0, 0, 0, 0, 83, 84, 85, 86, 87, 88,
01096 89, 0, 0, 90, 139, 77, 78, 79, 80, 81,
01097 82, 0, 0, 0, 0, 0, 83, 84, 85, 86,
01098 87, 88, 89, 0, 0, 90, 77, 78, 79, 80,
01099 81, 82, 0, 0, 0, 0, 0, 0, 84, 85,
01100 86, 87, 88, 89, 0, 0, 90, 77, 78, 79,
01101 80, 81, 82, 0, 0, 0, 0, 0, 0, 0,
01102 85, 86, 87, 88, 89, 0, 0, 90
01103 };
01104
01105
01106 const short int
01107 HolidayParserPlan::yycheck_[] =
01108 {
01109 26, 10, 11, 29, 26, 31, 0, 4, 5, 32,
01110 33, 140, 141, 39, 37, 42, 43, 7, 12, 45,
01111 9, 10, 11, 50, 0, 51, 27, 47, 48, 55,
01112 56, 6, 58, 59, 57, 62, 7, 3, 51, 7,
01113 28, 64, 29, 69, 41, 58, 7, 13, 14, 75,
01114 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
01115 87, 88, 89, 90, 3, 4, 32, 7, 6, 3,
01116 96, 37, 98, 93, 13, 14, 42, 97, 44, 105,
01117 8, 107, 35, 96, 104, 111, 3, 4, 5, 39,
01118 7, 17, 15, 32, 43, 5, 13, 14, 111, 35,
01119 35, 18, 9, 129, 41, 44, 133, 130, 25, 30,
01120 16, 137, 139, 45, 41, 32, -1, -1, 3, 4,
01121 5, 4, 5, 143, 137, 3, 4, 44, 13, 14,
01122 4, 3, 26, 18, 3, 13, 14, -1, 10, 11,
01123 25, 13, 14, -1, 13, 14, 40, 32, 34, 35,
01124 36, 45, 35, 39, 32, -1, -1, 51, 41, 44,
01125 32, 35, -1, 32, -1, -1, 44, 41, -1, -1,
01126 -1, 65, 44, -1, -1, 44, 19, 20, 21, 22,
01127 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
01128 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
01129 -1, -1, 45, 19, 20, 21, 22, 23, 24, -1,
01130 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
01131 36, -1, -1, 39, 40, 19, 20, 21, 22, 23,
01132 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
01133 34, 35, 36, -1, -1, 39, 19, 20, 21, 22,
01134 23, 24, -1, -1, -1, -1, -1, -1, 31, 32,
01135 33, 34, 35, 36, -1, -1, 39, 19, 20, 21,
01136 22, 23, 24, -1, -1, -1, -1, -1, -1, -1,
01137 32, 33, 34, 35, 36, -1, -1, 39
01138 };
01139
01140
01141
01142 const unsigned char
01143 HolidayParserPlan::yystos_[] =
01144 {
01145 0, 26, 47, 48, 49, 7, 0, 53, 27, 50,
01146 12, 54, 7, 28, 51, 6, 55, 7, 29, 52,
01147 7, 57, 7, 6, 56, 8, 58, 3, 4, 5,
01148 13, 14, 18, 25, 32, 44, 59, 64, 66, 67,
01149 69, 70, 10, 11, 60, 69, 69, 60, 60, 3,
01150 37, 42, 68, 69, 60, 35, 69, 5, 41, 67,
01151 68, 68, 17, 63, 64, 69, 63, 63, 68, 5,
01152 7, 18, 25, 65, 66, 67, 69, 19, 20, 21,
01153 22, 23, 24, 30, 31, 32, 33, 34, 35, 36,
01154 39, 45, 15, 61, 69, 69, 9, 60, 4, 66,
01155 67, 69, 69, 68, 60, 69, 43, 35, 69, 4,
01156 5, 41, 68, 68, 68, 68, 68, 68, 68, 68,
01157 68, 68, 68, 68, 68, 68, 5, 62, 63, 35,
01158 66, 63, 69, 41, 63, 69, 69, 9, 66, 40,
01159 30, 16, 69, 60, 68, 66, 41, 68, 62, 62,
01160 63
01161 };
01162
01163 #if YYDEBUG
01164
01165
01166 const unsigned short int
01167 HolidayParserPlan::yytoken_number_[] =
01168 {
01169 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
01170 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
01171 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
01172 285, 286, 45, 43, 42, 47, 37, 33, 287, 63,
01173 58, 46, 91, 93, 40, 41
01174 };
01175 #endif
01176
01177
01178 const unsigned char
01179 HolidayParserPlan::yyr1_[] =
01180 {
01181 0, 46, 47, 48, 49, 49, 50, 50, 51, 51,
01182 52, 52, 53, 53, 54, 54, 55, 55, 56, 56,
01183 57, 58, 58, 59, 59, 59, 59, 59, 59, 59,
01184 60, 60, 60, 61, 61, 62, 62, 62, 63, 63,
01185 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
01186 64, 65, 65, 65, 65, 65, 65, 65, 65, 65,
01187 65, 66, 66, 67, 68, 68, 68, 68, 68, 68,
01188 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
01189 68, 69, 69, 70, 70, 70, 70
01190 };
01191
01192
01193 const unsigned char
01194 HolidayParserPlan::yyr2_[] =
01195 {
01196 0, 2, 2, 4, 0, 2, 0, 2, 0, 2,
01197 0, 2, 0, 7, 0, 1, 0, 1, 0, 1,
01198 1, 0, 1, 3, 3, 4, 3, 4, 6, 5,
01199 0, 2, 2, 0, 4, 0, 1, 3, 0, 2,
01200 3, 4, 5, 3, 5, 2, 3, 2, 3, 4,
01201 1, 1, 1, 1, 3, 4, 3, 2, 2, 3,
01202 4, 1, 1, 1, 1, 3, 3, 3, 3, 3,
01203 3, 3, 3, 3, 3, 3, 3, 3, 5, 2,
01204 3, 3, 1, 1, 2, 1, 2
01205 };
01206
01207 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01208
01209
01210 const char*
01211 const HolidayParserPlan::yytname_[] =
01212 {
01213 "END", "error", "$undefined", "NUMBER", "MONTH", "WDAY", "COLOR",
01214 "STRING", "CALENDAR", "INOP", "PLUS", "MINUS", "SMALL", "YEAR",
01215 "LEAPYEAR", "SHIFT", "IF", "LENGTH", "EASTER", "EQ", "NE", "LE", "GE",
01216 "LT", "GT", "PASCHA", "COUNTRY", "LANGUAGE", "NAME", "DESCRIPTION", "OR",
01217 "AND", "'-'", "'+'", "'*'", "'/'", "'%'", "'!'", "UMINUS", "'?'", "':'",
01218 "'.'", "'['", "']'", "'('", "')'", "$accept", "planfile", "metadata",
01219 "countrycode", "languagecode", "name", "description", "list", "small",
01220 "stringcolor", "daycolor", "eventname", "calendar", "eventrule",
01221 "offset", "conditionaloffset", "wdaycondition", "length", "date",
01222 "reldate", "month", "monthnumber", "expr", "pexpr", "number", 0
01223 };
01224 #endif
01225
01226 #if YYDEBUG
01227
01228 const HolidayParserPlan::rhs_number_type
01229 HolidayParserPlan::yyrhs_[] =
01230 {
01231 47, 0, -1, 48, 53, -1, 49, 50, 51, 52,
01232 -1, -1, 26, 7, -1, -1, 27, 7, -1, -1,
01233 28, 7, -1, -1, 29, 7, -1, -1, 53, 54,
01234 55, 57, 56, 58, 59, -1, -1, 12, -1, -1,
01235 6, -1, -1, 6, -1, 7, -1, -1, 8, -1,
01236 18, 60, 63, -1, 25, 60, 63, -1, 64, 60,
01237 61, 63, -1, 5, 60, 63, -1, 69, 5, 60,
01238 63, -1, 69, 5, 9, 66, 60, 63, -1, 5,
01239 69, 64, 60, 63, -1, -1, 10, 68, -1, 11,
01240 68, -1, -1, 15, 62, 16, 62, -1, -1, 5,
01241 -1, 5, 30, 62, -1, -1, 17, 68, -1, 69,
01242 41, 66, -1, 69, 41, 66, 41, -1, 69, 41,
01243 66, 41, 68, -1, 66, 35, 69, -1, 66, 35,
01244 69, 35, 69, -1, 67, 69, -1, 67, 69, 69,
01245 -1, 69, 67, -1, 69, 67, 69, -1, 69, 41,
01246 4, 69, -1, 69, -1, 7, -1, 18, -1, 25,
01247 -1, 69, 41, 66, -1, 69, 41, 66, 41, -1,
01248 66, 35, 69, -1, 69, 4, -1, 67, 69, -1,
01249 5, 69, 69, -1, 69, 5, 9, 66, -1, 67,
01250 -1, 69, -1, 4, -1, 69, -1, 68, 30, 68,
01251 -1, 68, 31, 68, -1, 68, 19, 68, -1, 68,
01252 20, 68, -1, 68, 21, 68, -1, 68, 22, 68,
01253 -1, 68, 23, 68, -1, 68, 24, 68, -1, 68,
01254 33, 68, -1, 68, 32, 68, -1, 68, 34, 68,
01255 -1, 68, 35, 68, -1, 68, 36, 68, -1, 68,
01256 39, 68, 40, 68, -1, 37, 68, -1, 42, 65,
01257 43, -1, 44, 68, 45, -1, 70, -1, 3, -1,
01258 32, 3, -1, 13, -1, 14, 69, -1
01259 };
01260
01261
01262
01263 const unsigned short int
01264 HolidayParserPlan::yyprhs_[] =
01265 {
01266 0, 0, 3, 6, 11, 12, 15, 16, 19, 20,
01267 23, 24, 27, 28, 36, 37, 39, 40, 42, 43,
01268 45, 47, 48, 50, 54, 58, 63, 67, 72, 79,
01269 85, 86, 89, 92, 93, 98, 99, 101, 105, 106,
01270 109, 113, 118, 124, 128, 134, 137, 141, 144, 148,
01271 153, 155, 157, 159, 161, 165, 170, 174, 177, 180,
01272 184, 189, 191, 193, 195, 197, 201, 205, 209, 213,
01273 217, 221, 225, 229, 233, 237, 241, 245, 249, 255,
01274 258, 262, 266, 268, 270, 273, 275
01275 };
01276
01277
01278 const unsigned char
01279 HolidayParserPlan::yyrline_[] =
01280 {
01281 0, 123, 123, 126, 129, 130, 133, 134, 137, 138,
01282 141, 142, 145, 146, 149, 150, 153, 154, 157, 158,
01283 161, 164, 165, 168, 169, 170, 171, 172, 173, 174,
01284 177, 178, 179, 182, 183, 186, 187, 188, 191, 192,
01285 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
01286 205, 208, 209, 210, 211, 212, 213, 214, 215, 216,
01287 217, 220, 221, 224, 227, 228, 229, 230, 231, 232,
01288 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
01289 243, 246, 247, 250, 251, 252, 253
01290 };
01291
01292
01293 void
01294 HolidayParserPlan::yystack_print_ ()
01295 {
01296 *yycdebug_ << "Stack now";
01297 for (state_stack_type::const_iterator i = yystate_stack_.begin ();
01298 i != yystate_stack_.end (); ++i)
01299 *yycdebug_ << ' ' << *i;
01300 *yycdebug_ << std::endl;
01301 }
01302
01303
01304 void
01305 HolidayParserPlan::yy_reduce_print_ (int yyrule)
01306 {
01307 unsigned int yylno = yyrline_[yyrule];
01308 int yynrhs = yyr2_[yyrule];
01309
01310 *yycdebug_ << "Reducing stack by rule " << yyrule - 1
01311 << " (line " << yylno << "), ";
01312
01313 for (int yyi = 0; yyi < yynrhs; yyi++)
01314 YY_SYMBOL_PRINT (" $" << yyi + 1 << " =",
01315 yyrhs_[yyprhs_[yyrule] + yyi],
01316 &(yysemantic_stack_[(yynrhs) - (yyi + 1)]),
01317 &(yylocation_stack_[(yynrhs) - (yyi + 1)]));
01318 }
01319 #endif // YYDEBUG
01320
01321
01322 HolidayParserPlan::token_number_type
01323 HolidayParserPlan::yytranslate_ (int t)
01324 {
01325 static
01326 const token_number_type
01327 translate_table[] =
01328 {
01329 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01332 2, 2, 2, 37, 2, 2, 2, 36, 2, 2,
01333 44, 45, 34, 33, 2, 32, 41, 35, 2, 2,
01334 2, 2, 2, 2, 2, 2, 2, 2, 40, 2,
01335 2, 2, 2, 39, 2, 2, 2, 2, 2, 2,
01336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01338 2, 42, 2, 43, 2, 2, 2, 2, 2, 2,
01339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
01354 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
01355 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
01356 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
01357 25, 26, 27, 28, 29, 30, 31, 38
01358 };
01359 if ((unsigned int) t <= yyuser_token_number_max_)
01360 return translate_table[t];
01361 else
01362 return yyundef_token_;
01363 }
01364
01365 const int HolidayParserPlan::yyeof_ = 0;
01366 const int HolidayParserPlan::yylast_ = 287;
01367 const int HolidayParserPlan::yynnts_ = 25;
01368 const int HolidayParserPlan::yyempty_ = -2;
01369 const int HolidayParserPlan::yyfinal_ = 6;
01370 const int HolidayParserPlan::yyterror_ = 1;
01371 const int HolidayParserPlan::yyerrcode_ = 256;
01372 const int HolidayParserPlan::yyntokens_ = 46;
01373
01374 const unsigned int HolidayParserPlan::yyuser_token_number_max_ = 287;
01375 const HolidayParserPlan::token_number_type HolidayParserPlan::yyundef_token_ = 2;
01376
01377 }
01378
01379 #line 256 "holidayparserplan.ypp"
01380
01381
01382
01383
01384 void KHolidays::HolidayParserPlan::error( const KHolidays::HolidayParserPlan::location_type &errorLocation, const std::string &errorMessage )
01385 {
01386 driver.error( errorLocation, errorMessage.c_str() );
01387 }
01388