Grammar
This grammar is LALR(1)
Number of Rules 14
Number of Terminals 6
Number of Lr0 States7
Number of La States0
BNF
Accept ::= sqlTime
sqlTime ::= HH ':' mm ':' ss
sqlTime ::= HH ':' mm ':' ss Z
HH ::= hour23
mm ::= minute
ss ::= second
Z ::= rfc822
7: hour23 ::= digit12
8: minute ::= digit12
9: second ::= digit12
10: rfc822 ::= rfc822String1
11: rfc822 ::= rfc822String2
12: rfc822 ::= rfc822String3
13: rfc822 ::= rfc822String4
Terminals
rfc822String4 = '[\+\-][0-9]{2}[0-9]{2}'
rfc822String2 = 'GMT[\+\-][0-9]{2}[0-9]{2}'
rfc822String1 = 'GMT[\+\-][0-9]{2}:[0-9]{2}'
rfc822String3 = '[\+\-][0-9]{2}:[0-9]{2}'
digit12 = '[0-9]{1,2}'
States
State 1
( )
Accept->.sqlTime
digit12 Sh/Rd 7
sqlTime Goto 2
HH Goto 3
hour23 Gt/Rd 3
State 2
( 1 )
Accept->sqlTime . (0)
Accept->sqlTime . (0)
Eof Reduce 0
State 3
( 1 )
sqlTime->HH .':' mm ':' ss
sqlTime->HH .':' mm ':' ss Z
':' Shift 4
State 4
( 3 )
sqlTime->HH ':' .mm ':' ss
sqlTime->HH ':' .mm ':' ss Z
digit12 Sh/Rd 8
mm Goto 5
minute Gt/Rd 4
State 5
( 4 )
sqlTime->HH ':' mm .':' ss
sqlTime->HH ':' mm .':' ss Z
':' Shift 6
State 6
( 5 )
sqlTime->HH ':' mm ':' .ss
sqlTime->HH ':' mm ':' .ss Z
digit12 Sh/Rd 9
ss Goto 7
second Gt/Rd 5
State 7
( 6 )
sqlTime->HH ':' mm ':' ss . (1)
sqlTime->HH ':' mm ':' ss .Z
sqlTime->HH ':' mm ':' ss . (1)
rfc822String4 Sh/Rd 13
rfc822String3 Sh/Rd 12
rfc822String2 Sh/Rd 11
rfc822String1 Sh/Rd 10
Z Gt/Rd 2
rfc822 Gt/Rd 6
Eof Reduce 1
First Map for Nonterminals
minute ==>> { digit12}
mm ==>> { digit12}
HH ==>> { digit12}
rfc822 ==>> { rfc822String1 rfc822String2 rfc822String3 rfc822String4}
second ==>> { digit12}
sqlTime ==>> { digit12}
ss ==>> { digit12}
hour23 ==>> { digit12}
Z ==>> { rfc822String1 rfc822String2 rfc822String3 rfc822String4}
Accept ==>> { digit12}
Closure for Nonterminals
minute ==>> {}
mm ==>> { minute}
HH ==>> { hour23}
rfc822 ==>> {}
second ==>> {}
sqlTime ==>> { hour23 HH}
ss ==>> { second}
hour23 ==>> {}
Z ==>> { rfc822}
Accept ==>> { HH hour23 sqlTime}
Nullable Nonterminals
minute ==>> false
mm ==>> false
HH ==>> false
rfc822 ==>> false
second ==>> false
sqlTime ==>> false
ss ==>> false
hour23 ==>> false
Z ==>> false
Accept ==>> false