Grammar

This grammar is LALR(1)

Number of Rules 7

Number of Terminals 3

Number of Lr0 States6

Number of La States0

BNF

Accept ::= sqlDate

sqlDate ::= yyyy '-' MM '-' dd

yyyy ::= year4

MM ::= month

dd ::= dayInMonth

5: month ::= digit12

6: dayInMonth ::= digit12

Terminals

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

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

States

State 1

( )

Accept->.sqlDate

year4 Sh/Rd 2

sqlDate Goto 2

yyyy Goto 3

State 2

( 1 )

Accept->sqlDate . (0)

Accept->sqlDate . (0)

Eof Reduce 0

State 3

( 1 )

sqlDate->yyyy .'-' MM '-' dd

'-' Shift 4

State 4

( 3 )

sqlDate->yyyy '-' .MM '-' dd

digit12 Sh/Rd 5

MM Goto 5

month Gt/Rd 3

State 5

( 4 )

sqlDate->yyyy '-' MM .'-' dd

'-' Shift 6

State 6

( 5 )

sqlDate->yyyy '-' MM '-' .dd

digit12 Sh/Rd 6

dd Gt/Rd 1

dayInMonth Gt/Rd 4

First Map for Nonterminals

dayInMonth ==>> { digit12}

dd ==>> { digit12}

month ==>> { digit12}

yyyy ==>> { year4}

MM ==>> { digit12}

sqlDate ==>> { year4}

Accept ==>> { year4}

Closure for Nonterminals

dayInMonth ==>> {}

dd ==>> { dayInMonth}

month ==>> {}

yyyy ==>> {}

MM ==>> { month}

sqlDate ==>> { yyyy}

Accept ==>> { yyyy sqlDate}

Nullable Nonterminals

dayInMonth ==>> false

dd ==>> false

month ==>> false

yyyy ==>> false

MM ==>> false

sqlDate ==>> false

Accept ==>> false