Grammar

This grammar is LALR(1)

Number of Rules 30

Number of Terminals 24

Number of Lr0 States14

Number of La States0

BNF

Accept ::= ascTime

ascTime ::= EEE ', ' MMM ' ' dd ' ' HH ':' mm ':' ss ' ' yyyy

2: EEE ::= 'Sat|Satu|Satur|Saturd|Saturda|Saturday'

3: EEE ::= 'Wed|Wedn|Wedne|Wednes|Wednesd|Wednesda|Wednesday'

4: EEE ::= 'Fri|Frid|Frida|Friday'

5: EEE ::= 'Thu|Thur|Thurs|Thursd|Thursda|Thursday'

6: EEE ::= 'Sun|Sund|Sunda|Sunday'

7: EEE ::= 'Mon|Mond|Monda|Monday'

8: EEE ::= 'Tue|Tues|Tuesd|Tuesda|Tuesday'

9: MMM ::= 'Apr|Apri|April'

10: MMM ::= 'Aug|Augu|Augus|August'

11: MMM ::= 'Dec|Dece|Decem|Decemb|Decembe|December'

12: MMM ::= 'Sep|Sept|Septe|Septem|Septemb|Septembe|September'

13: MMM ::= 'Feb|Febr|Febru|Februa|Februar|February'

14: MMM ::= 'Mar|Marc|March'

15: MMM ::= 'Jun|June'

16: MMM ::= 'May'

17: MMM ::= 'Jul|July'

18: MMM ::= 'Jan|Janu|Janua|Januar|January'

19: MMM ::= 'Nov|Nove|Novem|Novemb|Novembe|November'

20: MMM ::= 'Oct|Octo|Octob|Octobe|October'

dd ::= dayInMonth

HH ::= hour23

mm ::= minute

ss ::= second

yyyy ::= year4

26: dayInMonth ::= digit12

27: hour23 ::= digit12

28: minute ::= digit12

29: second ::= digit12

Terminals

digit12 = '[0-9]{1,2}'

year4 = '[0-9]{4}'

States

State 1

( )

Accept->.ascTime

'Tue|Tues|Tuesd|Tuesda|Tuesday' Sh/Rd 8

'Mon|Mond|Monda|Monday' Sh/Rd 7

'Sun|Sund|Sunda|Sunday' Sh/Rd 6

'Thu|Thur|Thurs|Thursd|Thursda|Thursday' Sh/Rd 5

'Fri|Frid|Frida|Friday' Sh/Rd 4

'Wed|Wedn|Wedne|Wednes|Wednesd|Wednesda|Wednesday' Sh/Rd 3

'Sat|Satu|Satur|Saturd|Saturda|Saturday' Sh/Rd 2

ascTime Goto 2

EEE Goto 3

State 2

( 1 )

Accept->ascTime . (0)

Accept->ascTime . (0)

Eof Reduce 0

State 3

( 1 )

ascTime->EEE .', ' MMM ' ' dd ' ' HH ':' mm ':' ss ' ' yyyy

', ' Shift 4

State 4

( 3 )

ascTime->EEE ', ' .MMM ' ' dd ' ' HH ':' mm ':' ss ' ' yyyy

'Oct|Octo|Octob|Octobe|October' Sh/Rd 20

'Nov|Nove|Novem|Novemb|Novembe|November' Sh/Rd 19

'Jan|Janu|Janua|Januar|January' Sh/Rd 18

'Jul|July' Sh/Rd 17

'May' Sh/Rd 16

'Jun|June' Sh/Rd 15

'Mar|Marc|March' Sh/Rd 14

'Feb|Febr|Febru|Februa|Februar|February' Sh/Rd 13

'Sep|Sept|Septe|Septem|Septemb|Septembe|September' Sh/Rd 12

'Dec|Dece|Decem|Decemb|Decembe|December' Sh/Rd 11

'Aug|Augu|Augus|August' Sh/Rd 10

'Apr|Apri|April' Sh/Rd 9

MMM Goto 5

State 5

( 4 )

ascTime->EEE ', ' MMM .' ' dd ' ' HH ':' mm ':' ss ' ' yyyy

' ' Shift 6

State 6

( 5 )

ascTime->EEE ', ' MMM ' ' .dd ' ' HH ':' mm ':' ss ' ' yyyy

digit12 Sh/Rd 26

dd Goto 7

dayInMonth Gt/Rd 21

State 7

( 6 )

ascTime->EEE ', ' MMM ' ' dd .' ' HH ':' mm ':' ss ' ' yyyy

' ' Shift 8

State 8

( 7 )

ascTime->EEE ', ' MMM ' ' dd ' ' .HH ':' mm ':' ss ' ' yyyy

digit12 Sh/Rd 27

HH Goto 9

hour23 Gt/Rd 22

State 9

( 8 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH .':' mm ':' ss ' ' yyyy

':' Shift 10

State 10

( 9 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH ':' .mm ':' ss ' ' yyyy

digit12 Sh/Rd 28

mm Goto 11

minute Gt/Rd 23

State 11

( 10 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH ':' mm .':' ss ' ' yyyy

':' Shift 12

State 12

( 11 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH ':' mm ':' .ss ' ' yyyy

digit12 Sh/Rd 29

ss Goto 13

second Gt/Rd 24

State 13

( 12 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH ':' mm ':' ss .' ' yyyy

' ' Shift 14

State 14

( 13 )

ascTime->EEE ', ' MMM ' ' dd ' ' HH ':' mm ':' ss ' ' .yyyy

year4 Sh/Rd 25

yyyy Gt/Rd 1

First Map for Nonterminals

minute ==>> { digit12}

ascTime ==>> { 'Sat|Satu|Satur|Saturd|Saturda|Saturday' 'Wed|Wedn|Wedne|Wednes|Wednesd|Wednesda|Wednesday' 'Fri|Frid|Frida|Friday' 'Thu|Thur|Thurs|Thursd|Thursda|Thursday' 'Sun|Sund|Sunda|Sunday' 'Mon|Mond|Monda|Monday' 'Tue|Tues|Tuesd|Tuesda|Tuesday'}

MMM ==>> { 'Apr|Apri|April' 'Aug|Augu|Augus|August' 'Dec|Dece|Decem|Decemb|Decembe|December' 'Sep|Sept|Septe|Septem|Septemb|Septembe|September' 'Feb|Febr|Febru|Februa|Februar|February' 'Mar|Marc|March' 'Jun|June' 'May' 'Jul|July' 'Jan|Janu|Janua|Januar|January' 'Nov|Nove|Novem|Novemb|Novembe|November' 'Oct|Octo|Octob|Octobe|October'}

dayInMonth ==>> { digit12}

dd ==>> { digit12}

mm ==>> { digit12}

HH ==>> { digit12}

second ==>> { digit12}

EEE ==>> { 'Sat|Satu|Satur|Saturd|Saturda|Saturday' 'Wed|Wedn|Wedne|Wednes|Wednesd|Wednesda|Wednesday' 'Fri|Frid|Frida|Friday' 'Thu|Thur|Thurs|Thursd|Thursda|Thursday' 'Sun|Sund|Sunda|Sunday' 'Mon|Mond|Monda|Monday' 'Tue|Tues|Tuesd|Tuesda|Tuesday'}

yyyy ==>> { year4}

ss ==>> { digit12}

hour23 ==>> { digit12}

Accept ==>> { 'Sat|Satu|Satur|Saturd|Saturda|Saturday' 'Wed|Wedn|Wedne|Wednes|Wednesd|Wednesda|Wednesday' 'Fri|Frid|Frida|Friday' 'Thu|Thur|Thurs|Thursd|Thursda|Thursday' 'Sun|Sund|Sunda|Sunday' 'Mon|Mond|Monda|Monday' 'Tue|Tues|Tuesd|Tuesda|Tuesday'}

Closure for Nonterminals

minute ==>> {}

ascTime ==>> { EEE}

MMM ==>> {}

dayInMonth ==>> {}

dd ==>> { dayInMonth}

mm ==>> { minute}

HH ==>> { hour23}

second ==>> {}

EEE ==>> {}

yyyy ==>> {}

ss ==>> { second}

hour23 ==>> {}

Accept ==>> { EEE ascTime}

Nullable Nonterminals

minute ==>> false

ascTime ==>> false

MMM ==>> false

dayInMonth ==>> false

dd ==>> false

mm ==>> false

HH ==>> false

second ==>> false

EEE ==>> false

yyyy ==>> false

ss ==>> false

hour23 ==>> false

Accept ==>> false