thirdparty/google_appengine/google/appengine/cron/GrocParser.py
changeset 2309 be1b94099f2d
parent 828 f5fd65cc3bf3
equal deleted inserted replaced
2307:81c128f487e6 2309:be1b94099f2d
    30 
    30 
    31 
    31 
    32 HIDDEN = BaseRecognizer.HIDDEN
    32 HIDDEN = BaseRecognizer.HIDDEN
    33 
    33 
    34 THIRD=12
    34 THIRD=12
    35 SEPTEMBER=34
    35 SEPTEMBER=35
    36 FOURTH=13
    36 FOURTH=13
    37 SECOND=11
    37 SECOND=11
    38 WEDNESDAY=20
    38 WEDNESDAY=21
    39 NOVEMBER=36
    39 NOVEMBER=37
    40 SATURDAY=23
    40 SATURDAY=24
    41 JULY=32
    41 JULY=33
    42 APRIL=29
    42 APRIL=30
    43 DIGITS=8
    43 DIGITS=8
    44 OCTOBER=35
    44 OCTOBER=36
    45 MAY=30
    45 MAY=31
    46 EVERY=6
    46 EVERY=6
    47 FEBRUARY=27
    47 FEBRUARY=28
    48 MONDAY=18
    48 MONDAY=19
    49 SUNDAY=24
    49 SUNDAY=25
    50 JUNE=31
    50 JUNE=32
    51 MARCH=28
    51 DAY=18
       
    52 MARCH=29
    52 OF=4
    53 OF=4
    53 EOF=-1
    54 EOF=-1
    54 JANUARY=26
    55 JANUARY=27
    55 MONTH=25
    56 MONTH=26
    56 FRIDAY=22
    57 FRIDAY=23
    57 FIFTH=14
    58 FIFTH=14
    58 MINUTES=17
    59 MINUTES=17
    59 TIME=5
    60 TIME=5
    60 WS=39
    61 WS=40
    61 QUARTER=38
    62 QUARTER=39
    62 THURSDAY=21
    63 THURSDAY=22
    63 COMMA=9
    64 COMMA=9
    64 DECEMBER=37
    65 DECEMBER=38
    65 AUGUST=33
    66 AUGUST=34
    66 DIGIT=7
    67 DIGIT=7
    67 TUESDAY=19
    68 TUESDAY=20
    68 HOURS=16
    69 HOURS=16
    69 FIRST=10
    70 FIRST=10
    70 FOURTH_OR_FIFTH=15
    71 FOURTH_OR_FIFTH=15
    71 
    72 
    72 tokenNames = [
    73 tokenNames = [
    73     "<invalid>", "<EOR>", "<DOWN>", "<UP>",
    74     "<invalid>", "<EOR>", "<DOWN>", "<UP>",
    74     "OF", "TIME", "EVERY", "DIGIT", "DIGITS", "COMMA", "FIRST", "SECOND",
    75     "OF", "TIME", "EVERY", "DIGIT", "DIGITS", "COMMA", "FIRST", "SECOND",
    75     "THIRD", "FOURTH", "FIFTH", "FOURTH_OR_FIFTH", "HOURS", "MINUTES", "MONDAY",
    76     "THIRD", "FOURTH", "FIFTH", "FOURTH_OR_FIFTH", "HOURS", "MINUTES", "DAY",
    76     "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY",
    77     "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY",
    77     "MONTH", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY",
    78     "SUNDAY", "MONTH", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE",
    78     "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "QUARTER",
    79     "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER", "QUARTER",
    79     "WS"
    80     "WS"
    80 ]
    81 ]
    81 
    82 
    82 
    83 
    83 
    84 
    92         if state is None:
    93         if state is None:
    93             state = RecognizerSharedState()
    94             state = RecognizerSharedState()
    94 
    95 
    95         Parser.__init__(self, input, state)
    96         Parser.__init__(self, input, state)
    96 
    97 
       
    98 
       
    99         self.dfa3 = self.DFA3(
       
   100             self, 3,
       
   101             eot = self.DFA3_eot,
       
   102             eof = self.DFA3_eof,
       
   103             min = self.DFA3_min,
       
   104             max = self.DFA3_max,
       
   105             accept = self.DFA3_accept,
       
   106             special = self.DFA3_special,
       
   107             transition = self.DFA3_transition
       
   108             )
    97 
   109 
    98 
   110 
    99 
   111 
   100 
   112 
   101         self.ordinal_set = set()
   113         self.ordinal_set = set()
   158                 if (LA1_0 == EVERY) :
   170                 if (LA1_0 == EVERY) :
   159                     LA1_1 = self.input.LA(2)
   171                     LA1_1 = self.input.LA(2)
   160 
   172 
   161                     if ((DIGIT <= LA1_1 <= DIGITS)) :
   173                     if ((DIGIT <= LA1_1 <= DIGITS)) :
   162                         alt1 = 2
   174                         alt1 = 2
   163                     elif ((MONDAY <= LA1_1 <= SUNDAY)) :
   175                     elif ((DAY <= LA1_1 <= SUNDAY)) :
   164                         alt1 = 1
   176                         alt1 = 1
   165                     else:
   177                     else:
   166                         nvae = NoViableAltException("", 1, 1, self.input)
   178                         nvae = NoViableAltException("", 1, 1, self.input)
   167 
   179 
   168                         raise nvae
   180                         raise nvae
   212 
   224 
   213         try:
   225         try:
   214             try:
   226             try:
   215                 pass
   227                 pass
   216                 pass
   228                 pass
   217                 pass
   229                 alt3 = 2
   218                 pass
   230                 alt3 = self.dfa3.predict(self.input)
   219                 pass
   231                 if alt3 == 1:
   220                 self._state.following.append(self.FOLLOW_ordinals_in_specifictime69)
   232                     pass
   221                 self.ordinals()
   233                     pass
   222 
   234                     pass
   223                 self._state.following.pop()
   235                     self._state.following.append(self.FOLLOW_ordinals_in_specifictime69)
   224                 self._state.following.append(self.FOLLOW_weekdays_in_specifictime71)
   236                     self.ordinals()
   225                 self.weekdays()
   237 
   226 
   238                     self._state.following.pop()
   227                 self._state.following.pop()
   239                     self._state.following.append(self.FOLLOW_weekdays_in_specifictime71)
   228 
   240                     self.weekdays()
   229 
   241 
   230 
   242                     self._state.following.pop()
   231 
   243 
   232 
   244 
   233 
   245 
   234                 self.match(self.input, OF, self.FOLLOW_OF_in_specifictime75)
   246                     self.match(self.input, OF, self.FOLLOW_OF_in_specifictime74)
   235                 alt2 = 2
       
   236                 LA2_0 = self.input.LA(1)
       
   237 
       
   238                 if ((MONTH <= LA2_0 <= DECEMBER)) :
       
   239                     alt2 = 1
       
   240                 elif ((FIRST <= LA2_0 <= THIRD) or LA2_0 == QUARTER) :
       
   241                     alt2 = 2
   247                     alt2 = 2
   242                 else:
   248                     LA2_0 = self.input.LA(1)
   243                     nvae = NoViableAltException("", 2, 0, self.input)
   249 
   244 
   250                     if ((MONTH <= LA2_0 <= DECEMBER)) :
   245                     raise nvae
   251                         alt2 = 1
   246 
   252                     elif ((FIRST <= LA2_0 <= THIRD) or LA2_0 == QUARTER) :
   247                 if alt2 == 1:
   253                         alt2 = 2
   248                     pass
   254                     else:
   249                     self._state.following.append(self.FOLLOW_monthspec_in_specifictime78)
   255                         nvae = NoViableAltException("", 2, 0, self.input)
   250                     self.monthspec()
   256 
       
   257                         raise nvae
       
   258 
       
   259                     if alt2 == 1:
       
   260                         pass
       
   261                         self._state.following.append(self.FOLLOW_monthspec_in_specifictime77)
       
   262                         self.monthspec()
       
   263 
       
   264                         self._state.following.pop()
       
   265 
       
   266 
       
   267                     elif alt2 == 2:
       
   268                         pass
       
   269                         self._state.following.append(self.FOLLOW_quarterspec_in_specifictime79)
       
   270                         self.quarterspec()
       
   271 
       
   272                         self._state.following.pop()
       
   273 
       
   274 
       
   275 
       
   276 
       
   277 
       
   278 
       
   279 
       
   280 
       
   281                 elif alt3 == 2:
       
   282                     pass
       
   283                     pass
       
   284                     self._state.following.append(self.FOLLOW_ordinals_in_specifictime96)
       
   285                     self.ordinals()
   251 
   286 
   252                     self._state.following.pop()
   287                     self._state.following.pop()
   253 
   288                     self._state.following.append(self.FOLLOW_weekdays_in_specifictime98)
   254 
   289                     self.weekdays()
   255                 elif alt2 == 2:
       
   256                     pass
       
   257                     self._state.following.append(self.FOLLOW_quarterspec_in_specifictime80)
       
   258                     self.quarterspec()
       
   259 
   290 
   260                     self._state.following.pop()
   291                     self._state.following.pop()
   261 
   292                     self.month_set = set(range(1,13))
   262 
   293 
   263 
   294 
   264 
   295 
   265 
   296 
   266 
   297 
   267                 TIME1=self.match(self.input, TIME, self.FOLLOW_TIME_in_specifictime93)
   298 
       
   299                 TIME1=self.match(self.input, TIME, self.FOLLOW_TIME_in_specifictime112)
   268                 self.time_string = TIME1.text
   300                 self.time_string = TIME1.text
   269 
   301 
   270 
   302 
   271 
   303 
   272 
   304 
   292 
   324 
   293         try:
   325         try:
   294             try:
   326             try:
   295                 pass
   327                 pass
   296                 pass
   328                 pass
   297                 self.match(self.input, EVERY, self.FOLLOW_EVERY_in_interval112)
   329                 self.match(self.input, EVERY, self.FOLLOW_EVERY_in_interval131)
   298                 intervalnum = self.input.LT(1)
   330                 intervalnum = self.input.LT(1)
   299                 if (DIGIT <= self.input.LA(1) <= DIGITS):
   331                 if (DIGIT <= self.input.LA(1) <= DIGITS):
   300                     self.input.consume()
   332                     self.input.consume()
   301                     self._state.errorRecovery = False
   333                     self._state.errorRecovery = False
   302 
   334 
   306 
   338 
   307 
   339 
   308 
   340 
   309                 self.interval_mins = int(intervalnum.text)
   341                 self.interval_mins = int(intervalnum.text)
   310 
   342 
   311                 self._state.following.append(self.FOLLOW_period_in_interval138)
   343                 self._state.following.append(self.FOLLOW_period_in_interval157)
   312                 period2 = self.period()
   344                 period2 = self.period()
   313 
   345 
   314                 self._state.following.pop()
   346                 self._state.following.pop()
   315 
   347 
   316                 if ((period2 is not None) and [self.input.toString(period2.start,period2.stop)] or [None])[0] == "hours":
   348                 if ((period2 is not None) and [self.input.toString(period2.start,period2.stop)] or [None])[0] == "hours":
   339     def ordinals(self, ):
   371     def ordinals(self, ):
   340 
   372 
   341         try:
   373         try:
   342             try:
   374             try:
   343                 pass
   375                 pass
   344                 alt4 = 2
   376                 alt5 = 2
   345                 LA4_0 = self.input.LA(1)
   377                 LA5_0 = self.input.LA(1)
   346 
   378 
   347                 if (LA4_0 == EVERY) :
   379                 if (LA5_0 == EVERY) :
   348                     alt4 = 1
   380                     alt5 = 1
   349                 elif ((FIRST <= LA4_0 <= FOURTH_OR_FIFTH)) :
   381                 elif ((FIRST <= LA5_0 <= FOURTH_OR_FIFTH)) :
   350                     alt4 = 2
   382                     alt5 = 2
   351                 else:
   383                 else:
   352                     nvae = NoViableAltException("", 4, 0, self.input)
   384                     nvae = NoViableAltException("", 5, 0, self.input)
   353 
   385 
   354                     raise nvae
   386                     raise nvae
   355 
   387 
   356                 if alt4 == 1:
   388                 if alt5 == 1:
   357                     pass
   389                     pass
   358                     self.match(self.input, EVERY, self.FOLLOW_EVERY_in_ordinals157)
   390                     self.match(self.input, EVERY, self.FOLLOW_EVERY_in_ordinals176)
   359                     self.ordinal_set = self.ordinal_set.union(allOrdinals)
   391                     self.ordinal_set = self.ordinal_set.union(allOrdinals)
   360 
   392 
   361 
   393 
   362                 elif alt4 == 2:
   394                 elif alt5 == 2:
   363                     pass
   395                     pass
   364                     pass
   396                     pass
   365                     self._state.following.append(self.FOLLOW_ordinal_in_ordinals173)
   397                     self._state.following.append(self.FOLLOW_ordinal_in_ordinals192)
   366                     self.ordinal()
   398                     self.ordinal()
   367 
   399 
   368                     self._state.following.pop()
   400                     self._state.following.pop()
   369                     while True:
   401                     while True:
   370                         alt3 = 2
   402                         alt4 = 2
   371                         LA3_0 = self.input.LA(1)
   403                         LA4_0 = self.input.LA(1)
   372 
   404 
   373                         if (LA3_0 == COMMA) :
   405                         if (LA4_0 == COMMA) :
   374                             alt3 = 1
   406                             alt4 = 1
   375 
   407 
   376 
   408 
   377                         if alt3 == 1:
   409                         if alt4 == 1:
   378                             pass
   410                             pass
   379                             self.match(self.input, COMMA, self.FOLLOW_COMMA_in_ordinals176)
   411                             self.match(self.input, COMMA, self.FOLLOW_COMMA_in_ordinals195)
   380                             self._state.following.append(self.FOLLOW_ordinal_in_ordinals178)
   412                             self._state.following.append(self.FOLLOW_ordinal_in_ordinals197)
   381                             self.ordinal()
   413                             self.ordinal()
   382 
   414 
   383                             self._state.following.pop()
   415                             self._state.following.pop()
   384 
   416 
   385 
   417 
   487     def weekdays(self, ):
   519     def weekdays(self, ):
   488 
   520 
   489         try:
   521         try:
   490             try:
   522             try:
   491                 pass
   523                 pass
   492                 pass
   524                 alt7 = 2
   493                 self._state.following.append(self.FOLLOW_weekday_in_weekdays261)
   525                 LA7_0 = self.input.LA(1)
   494                 self.weekday()
   526 
   495 
   527                 if (LA7_0 == DAY) :
   496                 self._state.following.pop()
   528                     alt7 = 1
   497                 while True:
   529                 elif ((MONDAY <= LA7_0 <= SUNDAY)) :
   498                     alt5 = 2
   530                     alt7 = 2
   499                     LA5_0 = self.input.LA(1)
   531                 else:
   500 
   532                     nvae = NoViableAltException("", 7, 0, self.input)
   501                     if (LA5_0 == COMMA) :
   533 
   502                         alt5 = 1
   534                     raise nvae
   503 
   535 
   504 
   536                 if alt7 == 1:
   505                     if alt5 == 1:
   537                     pass
   506                         pass
   538                     self.match(self.input, DAY, self.FOLLOW_DAY_in_weekdays280)
   507                         self.match(self.input, COMMA, self.FOLLOW_COMMA_in_weekdays264)
   539 
   508                         self._state.following.append(self.FOLLOW_weekday_in_weekdays266)
   540                     self.weekday_set = set([self.ValueOf(SUNDAY), self.ValueOf(MONDAY),
   509                         self.weekday()
   541                             self.ValueOf(TUESDAY), self.ValueOf(WEDNESDAY),
   510 
   542                             self.ValueOf(THURSDAY), self.ValueOf(FRIDAY),
   511                         self._state.following.pop()
   543                             self.ValueOf(SATURDAY), self.ValueOf(SUNDAY)])
   512 
   544 
   513 
   545 
   514                     else:
   546 
   515                         break
   547                 elif alt7 == 2:
       
   548                     pass
       
   549                     pass
       
   550                     self._state.following.append(self.FOLLOW_weekday_in_weekdays288)
       
   551                     self.weekday()
       
   552 
       
   553                     self._state.following.pop()
       
   554                     while True:
       
   555                         alt6 = 2
       
   556                         LA6_0 = self.input.LA(1)
       
   557 
       
   558                         if (LA6_0 == COMMA) :
       
   559                             alt6 = 1
       
   560 
       
   561 
       
   562                         if alt6 == 1:
       
   563                             pass
       
   564                             self.match(self.input, COMMA, self.FOLLOW_COMMA_in_weekdays291)
       
   565                             self._state.following.append(self.FOLLOW_weekday_in_weekdays293)
       
   566                             self.weekday()
       
   567 
       
   568                             self._state.following.pop()
       
   569 
       
   570 
       
   571                         else:
       
   572                             break
       
   573 
       
   574 
       
   575 
   516 
   576 
   517 
   577 
   518 
   578 
   519 
   579 
   520 
   580 
   571     def monthspec(self, ):
   631     def monthspec(self, ):
   572 
   632 
   573         try:
   633         try:
   574             try:
   634             try:
   575                 pass
   635                 pass
   576                 alt6 = 2
   636                 alt8 = 2
   577                 LA6_0 = self.input.LA(1)
   637                 LA8_0 = self.input.LA(1)
   578 
   638 
   579                 if (LA6_0 == MONTH) :
   639                 if (LA8_0 == MONTH) :
   580                     alt6 = 1
   640                     alt8 = 1
   581                 elif ((JANUARY <= LA6_0 <= DECEMBER)) :
   641                 elif ((JANUARY <= LA8_0 <= DECEMBER)) :
   582                     alt6 = 2
   642                     alt8 = 2
   583                 else:
   643                 else:
   584                     nvae = NoViableAltException("", 6, 0, self.input)
   644                     nvae = NoViableAltException("", 8, 0, self.input)
   585 
   645 
   586                     raise nvae
   646                     raise nvae
   587 
   647 
   588                 if alt6 == 1:
   648                 if alt8 == 1:
   589                     pass
   649                     pass
   590                     self.match(self.input, MONTH, self.FOLLOW_MONTH_in_monthspec344)
   650                     self.match(self.input, MONTH, self.FOLLOW_MONTH_in_monthspec373)
   591 
   651 
   592                     self.month_set = self.month_set.union(set([
   652                     self.month_set = self.month_set.union(set([
   593                         self.ValueOf(JANUARY), self.ValueOf(FEBRUARY), self.ValueOf(MARCH),
   653                         self.ValueOf(JANUARY), self.ValueOf(FEBRUARY), self.ValueOf(MARCH),
   594                         self.ValueOf(APRIL), self.ValueOf(MAY), self.ValueOf(JUNE),
   654                         self.ValueOf(APRIL), self.ValueOf(MAY), self.ValueOf(JUNE),
   595                         self.ValueOf(JULY), self.ValueOf(AUGUST), self.ValueOf(SEPTEMBER),
   655                         self.ValueOf(JULY), self.ValueOf(AUGUST), self.ValueOf(SEPTEMBER),
   596                         self.ValueOf(OCTOBER), self.ValueOf(NOVEMBER),
   656                         self.ValueOf(OCTOBER), self.ValueOf(NOVEMBER),
   597                         self.ValueOf(DECEMBER)]))
   657                         self.ValueOf(DECEMBER)]))
   598 
   658 
   599 
   659 
   600 
   660 
   601                 elif alt6 == 2:
   661                 elif alt8 == 2:
   602                     pass
   662                     pass
   603                     self._state.following.append(self.FOLLOW_months_in_monthspec354)
   663                     self._state.following.append(self.FOLLOW_months_in_monthspec383)
   604                     self.months()
   664                     self.months()
   605 
   665 
   606                     self._state.following.pop()
   666                     self._state.following.pop()
   607 
   667 
   608 
   668 
   626 
   686 
   627         try:
   687         try:
   628             try:
   688             try:
   629                 pass
   689                 pass
   630                 pass
   690                 pass
   631                 self._state.following.append(self.FOLLOW_month_in_months371)
   691                 self._state.following.append(self.FOLLOW_month_in_months400)
   632                 self.month()
   692                 self.month()
   633 
   693 
   634                 self._state.following.pop()
   694                 self._state.following.pop()
   635                 while True:
   695                 while True:
   636                     alt7 = 2
   696                     alt9 = 2
   637                     LA7_0 = self.input.LA(1)
   697                     LA9_0 = self.input.LA(1)
   638 
   698 
   639                     if (LA7_0 == COMMA) :
   699                     if (LA9_0 == COMMA) :
   640                         alt7 = 1
   700                         alt9 = 1
   641 
   701 
   642 
   702 
   643                     if alt7 == 1:
   703                     if alt9 == 1:
   644                         pass
   704                         pass
   645                         self.match(self.input, COMMA, self.FOLLOW_COMMA_in_months374)
   705                         self.match(self.input, COMMA, self.FOLLOW_COMMA_in_months403)
   646                         self._state.following.append(self.FOLLOW_month_in_months376)
   706                         self._state.following.append(self.FOLLOW_month_in_months405)
   647                         self.month()
   707                         self.month()
   648 
   708 
   649                         self._state.following.pop()
   709                         self._state.following.pop()
   650 
   710 
   651 
   711 
   707     def quarterspec(self, ):
   767     def quarterspec(self, ):
   708 
   768 
   709         try:
   769         try:
   710             try:
   770             try:
   711                 pass
   771                 pass
   712                 alt8 = 2
   772                 alt10 = 2
   713                 LA8_0 = self.input.LA(1)
   773                 LA10_0 = self.input.LA(1)
   714 
   774 
   715                 if (LA8_0 == QUARTER) :
   775                 if (LA10_0 == QUARTER) :
   716                     alt8 = 1
   776                     alt10 = 1
   717                 elif ((FIRST <= LA8_0 <= THIRD)) :
   777                 elif ((FIRST <= LA10_0 <= THIRD)) :
   718                     alt8 = 2
   778                     alt10 = 2
   719                 else:
   779                 else:
   720                     nvae = NoViableAltException("", 8, 0, self.input)
   780                     nvae = NoViableAltException("", 10, 0, self.input)
   721 
   781 
   722                     raise nvae
   782                     raise nvae
   723 
   783 
   724                 if alt8 == 1:
   784                 if alt10 == 1:
   725                     pass
   785                     pass
   726                     self.match(self.input, QUARTER, self.FOLLOW_QUARTER_in_quarterspec468)
   786                     self.match(self.input, QUARTER, self.FOLLOW_QUARTER_in_quarterspec497)
   727 
   787 
   728                     self.month_set = self.month_set.union(set([
   788                     self.month_set = self.month_set.union(set([
   729                         self.ValueOf(JANUARY), self.ValueOf(APRIL), self.ValueOf(JULY),
   789                         self.ValueOf(JANUARY), self.ValueOf(APRIL), self.ValueOf(JULY),
   730                         self.ValueOf(OCTOBER)]))
   790                         self.ValueOf(OCTOBER)]))
   731 
   791 
   732 
   792 
   733                 elif alt8 == 2:
   793                 elif alt10 == 2:
   734                     pass
   794                     pass
   735                     pass
   795                     pass
   736                     self._state.following.append(self.FOLLOW_quarter_ordinals_in_quarterspec480)
   796                     self._state.following.append(self.FOLLOW_quarter_ordinals_in_quarterspec509)
   737                     self.quarter_ordinals()
   797                     self.quarter_ordinals()
   738 
   798 
   739                     self._state.following.pop()
   799                     self._state.following.pop()
   740                     self.match(self.input, MONTH, self.FOLLOW_MONTH_in_quarterspec482)
   800                     self.match(self.input, MONTH, self.FOLLOW_MONTH_in_quarterspec511)
   741                     self.match(self.input, OF, self.FOLLOW_OF_in_quarterspec484)
   801                     self.match(self.input, OF, self.FOLLOW_OF_in_quarterspec513)
   742                     self.match(self.input, QUARTER, self.FOLLOW_QUARTER_in_quarterspec486)
   802                     self.match(self.input, QUARTER, self.FOLLOW_QUARTER_in_quarterspec515)
   743 
   803 
   744 
   804 
   745 
   805 
   746 
   806 
   747 
   807 
   765 
   825 
   766         try:
   826         try:
   767             try:
   827             try:
   768                 pass
   828                 pass
   769                 pass
   829                 pass
   770                 self._state.following.append(self.FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals505)
   830                 self._state.following.append(self.FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals534)
   771                 self.month_of_quarter_ordinal()
   831                 self.month_of_quarter_ordinal()
   772 
   832 
   773                 self._state.following.pop()
   833                 self._state.following.pop()
   774                 while True:
   834                 while True:
   775                     alt9 = 2
   835                     alt11 = 2
   776                     LA9_0 = self.input.LA(1)
   836                     LA11_0 = self.input.LA(1)
   777 
   837 
   778                     if (LA9_0 == COMMA) :
   838                     if (LA11_0 == COMMA) :
   779                         alt9 = 1
   839                         alt11 = 1
   780 
   840 
   781 
   841 
   782                     if alt9 == 1:
   842                     if alt11 == 1:
   783                         pass
   843                         pass
   784                         self.match(self.input, COMMA, self.FOLLOW_COMMA_in_quarter_ordinals508)
   844                         self.match(self.input, COMMA, self.FOLLOW_COMMA_in_quarter_ordinals537)
   785                         self._state.following.append(self.FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals510)
   845                         self._state.following.append(self.FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals539)
   786                         self.month_of_quarter_ordinal()
   846                         self.month_of_quarter_ordinal()
   787 
   847 
   788                         self._state.following.pop()
   848                         self._state.following.pop()
   789 
   849 
   790 
   850 
   848 
   908 
   849 
   909 
   850 
   910 
   851 
   911 
   852 
   912 
       
   913     DFA3_eot = DFA.unpack(
       
   914         u"\13\uffff"
       
   915         )
       
   916 
       
   917     DFA3_eof = DFA.unpack(
       
   918         u"\13\uffff"
       
   919         )
       
   920 
       
   921     DFA3_min = DFA.unpack(
       
   922         u"\1\6\1\22\1\11\2\4\1\12\2\uffff\1\23\1\11\1\4"
       
   923         )
       
   924 
       
   925     DFA3_max = DFA.unpack(
       
   926         u"\1\17\2\31\1\5\1\11\1\17\2\uffff\2\31\1\11"
       
   927         )
       
   928 
       
   929     DFA3_accept = DFA.unpack(
       
   930         u"\6\uffff\1\1\1\2\3\uffff"
       
   931         )
       
   932 
       
   933     DFA3_special = DFA.unpack(
       
   934         u"\13\uffff"
       
   935         )
       
   936 
       
   937 
       
   938     DFA3_transition = [
       
   939         DFA.unpack(u"\1\1\3\uffff\6\2"),
       
   940         DFA.unpack(u"\1\3\7\4"),
       
   941         DFA.unpack(u"\1\5\10\uffff\1\3\7\4"),
       
   942         DFA.unpack(u"\1\6\1\7"),
       
   943         DFA.unpack(u"\1\6\1\7\3\uffff\1\10"),
       
   944         DFA.unpack(u"\6\11"),
       
   945         DFA.unpack(u""),
       
   946         DFA.unpack(u""),
       
   947         DFA.unpack(u"\7\12"),
       
   948         DFA.unpack(u"\1\5\10\uffff\1\3\7\4"),
       
   949         DFA.unpack(u"\1\6\1\7\3\uffff\1\10")
       
   950     ]
       
   951 
       
   952 
       
   953     DFA3 = DFA
       
   954 
   853 
   955 
   854     FOLLOW_specifictime_in_timespec44 = frozenset([1])
   956     FOLLOW_specifictime_in_timespec44 = frozenset([1])
   855     FOLLOW_interval_in_timespec48 = frozenset([1])
   957     FOLLOW_interval_in_timespec48 = frozenset([1])
   856     FOLLOW_ordinals_in_specifictime69 = frozenset([18, 19, 20, 21, 22, 23, 24])
   958     FOLLOW_ordinals_in_specifictime69 = frozenset([18, 19, 20, 21, 22, 23, 24, 25])
   857     FOLLOW_weekdays_in_specifictime71 = frozenset([4])
   959     FOLLOW_weekdays_in_specifictime71 = frozenset([4])
   858     FOLLOW_OF_in_specifictime75 = frozenset([10, 11, 12, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38])
   960     FOLLOW_OF_in_specifictime74 = frozenset([10, 11, 12, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39])
   859     FOLLOW_monthspec_in_specifictime78 = frozenset([5])
   961     FOLLOW_monthspec_in_specifictime77 = frozenset([5])
   860     FOLLOW_quarterspec_in_specifictime80 = frozenset([5])
   962     FOLLOW_quarterspec_in_specifictime79 = frozenset([5])
   861     FOLLOW_TIME_in_specifictime93 = frozenset([1])
   963     FOLLOW_ordinals_in_specifictime96 = frozenset([18, 19, 20, 21, 22, 23, 24, 25])
   862     FOLLOW_EVERY_in_interval112 = frozenset([7, 8])
   964     FOLLOW_weekdays_in_specifictime98 = frozenset([5])
   863     FOLLOW_set_in_interval122 = frozenset([16, 17])
   965     FOLLOW_TIME_in_specifictime112 = frozenset([1])
   864     FOLLOW_period_in_interval138 = frozenset([1])
   966     FOLLOW_EVERY_in_interval131 = frozenset([7, 8])
   865     FOLLOW_EVERY_in_ordinals157 = frozenset([1])
   967     FOLLOW_set_in_interval141 = frozenset([16, 17])
   866     FOLLOW_ordinal_in_ordinals173 = frozenset([1, 9])
   968     FOLLOW_period_in_interval157 = frozenset([1])
   867     FOLLOW_COMMA_in_ordinals176 = frozenset([10, 11, 12, 13, 14, 15])
   969     FOLLOW_EVERY_in_ordinals176 = frozenset([1])
   868     FOLLOW_ordinal_in_ordinals178 = frozenset([1, 9])
   970     FOLLOW_ordinal_in_ordinals192 = frozenset([1, 9])
   869     FOLLOW_set_in_ordinal199 = frozenset([1])
   971     FOLLOW_COMMA_in_ordinals195 = frozenset([10, 11, 12, 13, 14, 15])
   870     FOLLOW_set_in_period238 = frozenset([1])
   972     FOLLOW_ordinal_in_ordinals197 = frozenset([1, 9])
   871     FOLLOW_weekday_in_weekdays261 = frozenset([1, 9])
   973     FOLLOW_set_in_ordinal218 = frozenset([1])
   872     FOLLOW_COMMA_in_weekdays264 = frozenset([18, 19, 20, 21, 22, 23, 24])
   974     FOLLOW_set_in_period257 = frozenset([1])
   873     FOLLOW_weekday_in_weekdays266 = frozenset([1, 9])
   975     FOLLOW_DAY_in_weekdays280 = frozenset([1])
   874     FOLLOW_set_in_weekday285 = frozenset([1])
   976     FOLLOW_weekday_in_weekdays288 = frozenset([1, 9])
   875     FOLLOW_MONTH_in_monthspec344 = frozenset([1])
   977     FOLLOW_COMMA_in_weekdays291 = frozenset([18, 19, 20, 21, 22, 23, 24, 25])
   876     FOLLOW_months_in_monthspec354 = frozenset([1])
   978     FOLLOW_weekday_in_weekdays293 = frozenset([1, 9])
   877     FOLLOW_month_in_months371 = frozenset([1, 9])
   979     FOLLOW_set_in_weekday314 = frozenset([1])
   878     FOLLOW_COMMA_in_months374 = frozenset([25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37])
   980     FOLLOW_MONTH_in_monthspec373 = frozenset([1])
   879     FOLLOW_month_in_months376 = frozenset([1, 9])
   981     FOLLOW_months_in_monthspec383 = frozenset([1])
   880     FOLLOW_set_in_month395 = frozenset([1])
   982     FOLLOW_month_in_months400 = frozenset([1, 9])
   881     FOLLOW_QUARTER_in_quarterspec468 = frozenset([1])
   983     FOLLOW_COMMA_in_months403 = frozenset([26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38])
   882     FOLLOW_quarter_ordinals_in_quarterspec480 = frozenset([25])
   984     FOLLOW_month_in_months405 = frozenset([1, 9])
   883     FOLLOW_MONTH_in_quarterspec482 = frozenset([4])
   985     FOLLOW_set_in_month424 = frozenset([1])
   884     FOLLOW_OF_in_quarterspec484 = frozenset([38])
   986     FOLLOW_QUARTER_in_quarterspec497 = frozenset([1])
   885     FOLLOW_QUARTER_in_quarterspec486 = frozenset([1])
   987     FOLLOW_quarter_ordinals_in_quarterspec509 = frozenset([26])
   886     FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals505 = frozenset([1, 9])
   988     FOLLOW_MONTH_in_quarterspec511 = frozenset([4])
   887     FOLLOW_COMMA_in_quarter_ordinals508 = frozenset([10, 11, 12, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38])
   989     FOLLOW_OF_in_quarterspec513 = frozenset([39])
   888     FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals510 = frozenset([1, 9])
   990     FOLLOW_QUARTER_in_quarterspec515 = frozenset([1])
   889     FOLLOW_set_in_month_of_quarter_ordinal529 = frozenset([1])
   991     FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals534 = frozenset([1, 9])
       
   992     FOLLOW_COMMA_in_quarter_ordinals537 = frozenset([10, 11, 12, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39])
       
   993     FOLLOW_month_of_quarter_ordinal_in_quarter_ordinals539 = frozenset([1, 9])
       
   994     FOLLOW_set_in_month_of_quarter_ordinal558 = frozenset([1])
   890 
   995 
   891 
   996 
   892 
   997 
   893 def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr):
   998 def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr):
   894     from antlr3.main import ParserMain
   999     from antlr3.main import ParserMain