BNF

Accept ::= statement

statement ::= insertStatement

statement ::= describeSpecification

statement ::= rollbackWork

statement ::= deleteStatementSearched

statement ::= updateStatementSearched

statement ::= beginWork

statement ::= querySpecification

statement ::= showSpecification

statement ::= commitWork

insertStatement ::= insert into targetTable insertColumnsAndSource

describeSpecification ::= describe identifier

rollbackWork ::= rollback work?

deleteStatementSearched ::= delete from targetTable

deleteStatementSearched ::= delete from targetTable where searchCondition

updateStatementSearched ::= update targetTable set setClause+

updateStatementSearched ::= update targetTable set setClause+ where searchCondition

beginWork ::= begin work?

beginWork ::= start transaction

querySpecification ::= select selectList tableExpression

showSpecification ::= show identifier

commitWork ::= commit work?

targetTable ::= identifier

insertColumnsAndSource ::= fromConstructor

searchCondition ::= booleanValueExpression

selectList ::= selectSublist ('\,' selectSublist)*

selectList ::= asterisk

tableExpression ::= fromClause whereClause? orderByClause?

fromConstructor ::= '(' column ('\,' column)* ')' values '(' literal ('\,' literal)* ')'

booleanValueExpression ::= booleanValueExpression or booleanTerm

booleanValueExpression ::= booleanTerm

setClause ::= identifier '=' literal

selectSublist ::= identifier

selectSublist ::= identifier '.' identifier

asterisk ::= '*'

fromClause ::= from tableReference ('\,' tableReference)*

column ::= identifier

literal ::= dateValue

literal ::= ':' identifier placeholderType

literal ::= string

literal ::= timeValue

literal ::= timestampValue

literal ::= integer

literal ::= ':' identifier default literal

literal ::= decimal

booleanTerm ::= booleanFactor

booleanTerm ::= booleanTerm and booleanFactor

tableReference ::= identifier as? identifier

tableReference ::= identifier

whereClause ::= where searchCondition

orderByClause ::= order by sortSpecification ('\,' sortSpecification)*

dateValue ::= date string

placeholderType ::=

timeValue ::= time string

timestampValue ::= timestamp string

booleanFactor ::= not booleanTest

booleanFactor ::= booleanTest

sortSpecification ::= rowValuePredicant desc

sortSpecification ::= rowValuePredicant

sortSpecification ::= rowValuePredicant asc

booleanTest ::= booleanPrimary

booleanTest ::= booleanPrimary is truthValue

booleanTest ::= booleanPrimary is not truthValue

rowValuePredicant ::= identifier

rowValuePredicant ::= identifier '.' identifier

rowValuePredicant ::= literal

booleanPrimary ::= predicate

booleanPrimary ::= booleanPredicate

truthValue ::= falseL

truthValue ::= unknown

truthValue ::= trueL

predicate ::= comparisonPredicate

predicate ::= betweenPredicate

predicate ::= likePredicate

predicate ::= nullPredicate

predicate ::= inPredicate

booleanPredicate ::= parenthesizedBooleanValueExpression

comparisonPredicate ::= rowValuePredicant '<>' rowValuePredicant

comparisonPredicate ::= rowValuePredicant '<=' rowValuePredicant

comparisonPredicate ::= rowValuePredicant '>' rowValuePredicant

comparisonPredicate ::= rowValuePredicant '>=' rowValuePredicant

comparisonPredicate ::= rowValuePredicant '=' rowValuePredicant

comparisonPredicate ::= rowValuePredicant '<' rowValuePredicant

betweenPredicate ::= rowValuePredicant not between rowValuePredicant and rowValuePredicant

betweenPredicate ::= rowValuePredicant between rowValuePredicant and rowValuePredicant

likePredicate ::= rowValuePredicant like string

likePredicate ::= rowValuePredicant not like string

likePredicate ::= rowValuePredicant like string escape string

likePredicate ::= rowValuePredicant not like string escape string

nullPredicate ::= rowValuePredicant is not null

nullPredicate ::= rowValuePredicant is null

inPredicate ::= rowValuePredicant not in inPredicateValue

inPredicate ::= rowValuePredicant in inPredicateValue

parenthesizedBooleanValueExpression ::= '(' booleanValueExpression ')'

inPredicateValue ::= '(' inValueList ')'

inValueList ::= rowValuePredicant

inValueList ::= inValueList ',' rowValuePredicant

Terminals

string = ''[^']*'|"[^"]*"'

unknown = 'unknown'

integer = '[\+\-]?[0-9]+'

cComment = '/\*.*\*/'

falseL = 'false'

trueL = 'true'

hashComment = '#[^\n]*\n'

identifier = '[a-zA-z][a-zA-z0-9_]*'

whiteSpace = '[ \t\r\n]+'

decimal = '[\+\-]?[0-9]+\.[0-9]+'

doubleSlashComment = '\-\-[^\n]*\n'

describe = 'desc|descr|descri|describ|describe'

start = 'start'

transaction = 'transaction'

begin = 'begin'

work = 'work'

commit = 'commit'

rollback = 'rollback'

select = 'select'

insert = 'insert'

delete = 'delete'

update = 'update'

set = 'set'

into = 'into'

values = 'values'

from = 'from'

where = 'where'

order = 'order'

by = 'by'

as = 'as'

or = 'or'

and = 'and'

not = 'not'

is = 'is'

in = 'in'

between = 'between'

like = 'like'

escape = 'escape'

null = 'null'

asc = 'asc'

desc = 'desc'

date = 'date'

time = 'time'

timestamp = 'timestamp'

show = 'show'

default = 'default'

States

State 1

( )

Accept->.statement

commit Shift 3

show Shift 4

select Shift 5

start Shift 6

begin Shift 7

update Shift 8

delete Shift 9

rollback Shift 10

describe Shift 11

insert Shift 12

statement Goto 2

commitWork Gt/Rd 9

showSpecification Gt/Rd 8

querySpecification Gt/Rd 7

beginWork Gt/Rd 6

updateStatementSearched Gt/Rd 5

deleteStatementSearched Gt/Rd 4

rollbackWork Gt/Rd 3

describeSpecification Gt/Rd 2

insertStatement Gt/Rd 1

State 2

( 1 )

Accept->statement . (0)

Accept->statement . (0)

Eof Reduce 0

State 3

( 1 )

commitWork->commit .work?

work?->. (24)

work Sh/Rd 25

work? Gt/Rd 21

Eof Reduce 24

State 4

( 1 )

showSpecification->show .identifier

identifier Sh/Rd 20

State 5

( 1 )

querySpecification->select .selectList tableExpression

'*' Sh/Rd 40

identifier Shift 15

selectList Goto 13

asterisk Gt/Rd 30

selectSublist Goto 14

State 6

( 1 )

beginWork->start .transaction

transaction Sh/Rd 18

State 7

( 1 )

beginWork->begin .work?

work?->. (24)

work Sh/Rd 25

work? Gt/Rd 17

Eof Reduce 24

State 8

( 1 )

updateStatementSearched->update .targetTable set setClause+

updateStatementSearched->update .targetTable set setClause+ where searchCondition

identifier Sh/Rd 22

targetTable Goto 16

State 9

( 1 )

deleteStatementSearched->delete .from targetTable

deleteStatementSearched->delete .from targetTable where searchCondition

from Shift 17

State 10

( 1 )

rollbackWork->rollback .work?

work?->. (24)

work Sh/Rd 25

work? Gt/Rd 12

Eof Reduce 24

State 11

( 1 )

describeSpecification->describe .identifier

identifier Sh/Rd 11

State 12

( 1 )

insertStatement->insert .into targetTable insertColumnsAndSource

into Shift 18

State 13

( 5 )

querySpecification->select selectList .tableExpression

from Shift 20

tableExpression Gt/Rd 19

fromClause Goto 19

State 14

( 5 )

selectList->selectSublist .('\,' selectSublist)*

('\,' selectSublist)*->. (39)

('\,' selectSublist)* Goto 21

',' Reduce 39

from Reduce 39

State 15

( 5 30 )

selectSublist->identifier . (36)

selectSublist->identifier .'.' identifier

selectSublist->identifier . (36)

'.' Shift 22

',' Reduce 36

from Reduce 36

State 16

( 8 )

updateStatementSearched->update targetTable .set setClause+

updateStatementSearched->update targetTable .set setClause+ where searchCondition

set Shift 23

State 17

( 9 )

deleteStatementSearched->delete from .targetTable

deleteStatementSearched->delete from .targetTable where searchCondition

identifier Sh/Rd 22

targetTable Goto 24

State 18

( 12 )

insertStatement->insert into .targetTable insertColumnsAndSource

identifier Sh/Rd 22

targetTable Goto 25

State 19

( 13 )

tableExpression->fromClause .whereClause? orderByClause?

whereClause?->. (42)

where Shift 27

whereClause? Goto 26

whereClause Gt/Rd 43

order Reduce 42

Eof Reduce 42

State 20

( 13 )

fromClause->from .tableReference ('\,' tableReference)*

identifier Shift 29

tableReference Goto 28

State 21

( 14 )

selectList->selectSublist ('\,' selectSublist)* . (29)

('\,' selectSublist)*->('\,' selectSublist)* .('\,' selectSublist)

selectList->selectSublist ('\,' selectSublist)* . (29)

',' Shift 30

('\,' selectSublist) Gt/Rd 38

from Reduce 29

State 22

( 15 )

selectSublist->identifier '.' .identifier

identifier Sh/Rd 37

State 23

( 16 )

updateStatementSearched->update targetTable set .setClause+

updateStatementSearched->update targetTable set .setClause+ where searchCondition

identifier Shift 32

setClause+ Goto 31

setClause Gt/Rd 27

State 24

( 17 )

deleteStatementSearched->delete from targetTable . (13)

deleteStatementSearched->delete from targetTable .where searchCondition

deleteStatementSearched->delete from targetTable . (13)

where Shift 33

Eof Reduce 13

State 25

( 18 )

insertStatement->insert into targetTable .insertColumnsAndSource

'(' Shift 34

insertColumnsAndSource Gt/Rd 10

fromConstructor Gt/Rd 23

State 26

( 19 )

tableExpression->fromClause whereClause? .orderByClause?

orderByClause?->. (45)

order Shift 35

orderByClause? Gt/Rd 31

orderByClause Gt/Rd 44

Eof Reduce 45

State 27

( 19 )

whereClause->where .searchCondition

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

searchCondition Gt/Rd 66

booleanFactor Gt/Rd 59

booleanPrimary Goto 36

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

rowValuePredicant Goto 42

parenthesizedBooleanValueExpression Gt/Rd 101

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

booleanTest Gt/Rd 75

booleanTerm Goto 45

booleanValueExpression Goto 46

State 28

( 20 )

fromClause->from tableReference .('\,' tableReference)*

('\,' tableReference)*->. (64)

('\,' tableReference)* Goto 47

',' Reduce 64

where Reduce 64

order Reduce 64

Eof Reduce 64

State 29

( 20 70 )

tableReference->identifier .as? identifier

tableReference->identifier . (63)

as?->. (76)

tableReference->identifier . (63)

as Sh/Rd 77

as? Goto 48

identifier Reduce 76

',' Reduce 63

where Reduce 63

order Reduce 63

Eof Reduce 63

State 30

( 21 )

('\,' selectSublist)->',' .selectSublist

identifier Shift 15

selectSublist Gt/Rd 61

State 31

( 23 )

updateStatementSearched->update targetTable set setClause+ . (15)

updateStatementSearched->update targetTable set setClause+ .where searchCondition

setClause+->setClause+ .setClause

updateStatementSearched->update targetTable set setClause+ . (15)

where Shift 49

identifier Shift 32

setClause Gt/Rd 28

Eof Reduce 15

State 32

( 23 31 )

setClause->identifier .'=' literal

'=' Shift 50

State 33

( 24 )

deleteStatementSearched->delete from targetTable where .searchCondition

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

searchCondition Gt/Rd 14

booleanFactor Gt/Rd 59

booleanPrimary Goto 36

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

rowValuePredicant Goto 42

parenthesizedBooleanValueExpression Gt/Rd 101

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

booleanTest Gt/Rd 75

booleanTerm Goto 45

booleanValueExpression Goto 46

State 34

( 25 )

fromConstructor->'(' .column ('\,' column)* ')' values '(' literal ('\,' literal)* ')'

identifier Sh/Rd 46

column Goto 51

State 35

( 26 )

orderByClause->order .by sortSpecification ('\,' sortSpecification)*

by Shift 52

State 36

( 27 33 43 44 49 68 69 )

booleanTest->booleanPrimary . (84)

booleanTest->booleanPrimary .is truthValue

booleanTest->booleanPrimary .is not truthValue

booleanTest->booleanPrimary . (84)

is Shift 53

and Reduce 84

or Reduce 84

Eof Reduce 84

')' Reduce 84

order Reduce 84

State 37

( 27 33 43 44 49 52 59 61 62 63 64 65 66 68 69 76 82 89 93 94 96 )

rowValuePredicant->identifier . (87)

rowValuePredicant->identifier .'.' identifier

rowValuePredicant->identifier . (87)

'.' Shift 54

is Reduce 87

and Reduce 87

or Reduce 87

Eof Reduce 87

')' Reduce 87

order Reduce 87

',' Reduce 87

desc Reduce 87

asc Reduce 87

'<>' Reduce 87

'<=' Reduce 87

'>' Reduce 87

'>=' Reduce 87

'=' Reduce 87

'<' Reduce 87

not Reduce 87

between Reduce 87

like Reduce 87

in Reduce 87

State 38

( 27 33 43 44 49 50 52 59 61 62 63 64 65 66 68 69 75 76 82 89 93 94 96 97 100 )

dateValue->date .string

string Sh/Rd 69

State 39

( 27 33 43 44 49 50 52 59 61 62 63 64 65 66 68 69 75 76 82 89 93 94 96 97 100 )

timeValue->time .string

string Sh/Rd 71

State 40

( 27 33 43 44 49 50 52 59 61 62 63 64 65 66 68 69 75 76 82 89 93 94 96 97 100 )

timestampValue->timestamp .string

string Sh/Rd 72

State 41

( 27 33 43 44 49 50 52 59 61 62 63 64 65 66 68 69 75 76 82 89 93 94 96 97 100 )

literal->':' .identifier placeholderType

literal->':' .identifier default literal

identifier Shift 55

State 42

( 27 33 43 44 49 68 69 )

comparisonPredicate->rowValuePredicant .'<>' rowValuePredicant

comparisonPredicate->rowValuePredicant .'<=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'>' rowValuePredicant

comparisonPredicate->rowValuePredicant .'>=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'=' rowValuePredicant

comparisonPredicate->rowValuePredicant .'<' rowValuePredicant

betweenPredicate->rowValuePredicant .not between rowValuePredicant and rowValuePredicant

betweenPredicate->rowValuePredicant .between rowValuePredicant and rowValuePredicant

likePredicate->rowValuePredicant .like string

likePredicate->rowValuePredicant .not like string

likePredicate->rowValuePredicant .like string escape string

likePredicate->rowValuePredicant .not like string escape string

nullPredicate->rowValuePredicant .is not null

nullPredicate->rowValuePredicant .is null

inPredicate->rowValuePredicant .not in inPredicateValue

inPredicate->rowValuePredicant .in inPredicateValue

in Shift 56

is Shift 57

like Shift 58

between Shift 59

not Shift 60

'<' Shift 61

'=' Shift 62

'>=' Shift 63

'>' Shift 64

'<=' Shift 65

'<>' Shift 66

State 43

( 27 33 43 44 49 68 69 )

parenthesizedBooleanValueExpression->'(' .booleanValueExpression ')'

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

booleanValueExpression Goto 67

booleanTest Gt/Rd 75

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

parenthesizedBooleanValueExpression Gt/Rd 101

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

literal Gt/Rd 89

rowValuePredicant Goto 42

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

booleanPrimary Goto 36

booleanTerm Goto 45

booleanFactor Gt/Rd 59

State 44

( 27 33 43 49 68 69 )

booleanFactor->not .booleanTest

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

booleanTest Gt/Rd 74

booleanPrimary Goto 36

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

rowValuePredicant Goto 42

parenthesizedBooleanValueExpression Gt/Rd 101

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

State 45

( 27 33 43 49 )

booleanValueExpression->booleanTerm . (34)

booleanTerm->booleanTerm .and booleanFactor

booleanValueExpression->booleanTerm . (34)

and Shift 68

or Reduce 34

Eof Reduce 34

')' Reduce 34

order Reduce 34

State 46

( 27 33 49 )

searchCondition->booleanValueExpression . (26)

booleanValueExpression->booleanValueExpression .or booleanTerm

searchCondition->booleanValueExpression . (26)

or Shift 69

Eof Reduce 26

order Reduce 26

State 47

( 28 )

fromClause->from tableReference ('\,' tableReference)* . (41)

('\,' tableReference)*->('\,' tableReference)* .('\,' tableReference)

fromClause->from tableReference ('\,' tableReference)* . (41)

',' Shift 70

('\,' tableReference) Gt/Rd 65

where Reduce 41

order Reduce 41

Eof Reduce 41

State 48

( 29 )

tableReference->identifier as? .identifier

identifier Sh/Rd 62

State 49

( 31 )

updateStatementSearched->update targetTable set setClause+ where .searchCondition

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

searchCondition Gt/Rd 16

booleanFactor Gt/Rd 59

booleanPrimary Goto 36

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

rowValuePredicant Goto 42

parenthesizedBooleanValueExpression Gt/Rd 101

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

booleanTest Gt/Rd 75

booleanTerm Goto 45

booleanValueExpression Goto 46

State 50

( 32 )

setClause->identifier '=' .literal

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

literal Gt/Rd 35

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 51

( 34 )

fromConstructor->'(' column .('\,' column)* ')' values '(' literal ('\,' literal)* ')'

('\,' column)*->. (48)

('\,' column)* Goto 71

')' Reduce 48

',' Reduce 48

State 52

( 35 )

orderByClause->order by .sortSpecification ('\,' sortSpecification)*

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

sortSpecification Goto 72

rowValuePredicant Goto 73

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

literal Gt/Rd 89

State 53

( 36 )

booleanTest->booleanPrimary is .truthValue

booleanTest->booleanPrimary is .not truthValue

not Shift 74

trueL Sh/Rd 95

unknown Sh/Rd 94

falseL Sh/Rd 93

truthValue Gt/Rd 85

State 54

( 37 )

rowValuePredicant->identifier '.' .identifier

identifier Sh/Rd 88

State 55

( 41 )

literal->':' identifier .placeholderType

literal->':' identifier .default literal

placeholderType->. (70)

default Shift 75

placeholderType Gt/Rd 50

')' Reduce 70

',' Reduce 70

is Reduce 70

and Reduce 70

or Reduce 70

Eof Reduce 70

order Reduce 70

desc Reduce 70

asc Reduce 70

'<>' Reduce 70

'<=' Reduce 70

'>' Reduce 70

'>=' Reduce 70

'=' Reduce 70

'<' Reduce 70

not Reduce 70

between Reduce 70

like Reduce 70

in Reduce 70

where Reduce 70

identifier Reduce 70

State 56

( 42 )

inPredicate->rowValuePredicant in .inPredicateValue

'(' Shift 76

inPredicateValue Gt/Rd 117

State 57

( 42 )

nullPredicate->rowValuePredicant is .not null

nullPredicate->rowValuePredicant is .null

null Sh/Rd 115

not Shift 77

State 58

( 42 )

likePredicate->rowValuePredicant like .string

likePredicate->rowValuePredicant like .string escape string

string Shift 78

State 59

( 42 )

betweenPredicate->rowValuePredicant between .rowValuePredicant and rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Goto 79

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 60

( 42 )

betweenPredicate->rowValuePredicant not .between rowValuePredicant and rowValuePredicant

likePredicate->rowValuePredicant not .like string

likePredicate->rowValuePredicant not .like string escape string

inPredicate->rowValuePredicant not .in inPredicateValue

in Shift 80

like Shift 81

between Shift 82

State 61

( 42 )

comparisonPredicate->rowValuePredicant '<' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 107

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 62

( 42 )

comparisonPredicate->rowValuePredicant '=' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 106

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 63

( 42 )

comparisonPredicate->rowValuePredicant '>=' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 105

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 64

( 42 )

comparisonPredicate->rowValuePredicant '>' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 104

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 65

( 42 )

comparisonPredicate->rowValuePredicant '<=' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 103

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 66

( 42 )

comparisonPredicate->rowValuePredicant '<>' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 102

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 67

( 43 )

booleanValueExpression->booleanValueExpression .or booleanTerm

parenthesizedBooleanValueExpression->'(' booleanValueExpression .')'

')' Sh/Rd 118

or Shift 69

State 68

( 45 83 )

booleanTerm->booleanTerm and .booleanFactor

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

booleanFactor Gt/Rd 60

booleanTest Gt/Rd 75

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

parenthesizedBooleanValueExpression Gt/Rd 101

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

literal Gt/Rd 89

rowValuePredicant Goto 42

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

booleanPrimary Goto 36

State 69

( 46 67 )

booleanValueExpression->booleanValueExpression or .booleanTerm

identifier Shift 37

date Shift 38

time Shift 39

timestamp Shift 40

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

'(' Shift 43

not Shift 44

booleanTerm Goto 83

booleanFactor Gt/Rd 59

booleanPrimary Goto 36

inPredicate Gt/Rd 100

nullPredicate Gt/Rd 99

likePredicate Gt/Rd 98

betweenPredicate Gt/Rd 97

comparisonPredicate Gt/Rd 96

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

rowValuePredicant Goto 42

parenthesizedBooleanValueExpression Gt/Rd 101

booleanPredicate Gt/Rd 92

predicate Gt/Rd 91

booleanTest Gt/Rd 75

State 70

( 47 )

('\,' tableReference)->',' .tableReference

identifier Shift 29

tableReference Gt/Rd 78

State 71

( 51 )

fromConstructor->'(' column ('\,' column)* .')' values '(' literal ('\,' literal)* ')'

('\,' column)*->('\,' column)* .('\,' column)

')' Shift 84

',' Shift 85

('\,' column) Gt/Rd 47

State 72

( 52 )

orderByClause->order by sortSpecification .('\,' sortSpecification)*

('\,' sortSpecification)*->. (82)

('\,' sortSpecification)* Goto 86

',' Reduce 82

Eof Reduce 82

State 73

( 52 93 )

sortSpecification->rowValuePredicant .desc

sortSpecification->rowValuePredicant . (80)

sortSpecification->rowValuePredicant .asc

sortSpecification->rowValuePredicant . (80)

asc Sh/Rd 81

desc Sh/Rd 79

',' Reduce 80

Eof Reduce 80

State 74

( 53 )

booleanTest->booleanPrimary is not .truthValue

trueL Sh/Rd 95

unknown Sh/Rd 94

falseL Sh/Rd 93

truthValue Gt/Rd 86

State 75

( 55 )

literal->':' identifier default .literal

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

literal Gt/Rd 55

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 76

( 56 80 )

inPredicateValue->'(' .inValueList ')'

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

inValueList Goto 87

rowValuePredicant Gt/Rd 120

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

literal Gt/Rd 89

State 77

( 57 )

nullPredicate->rowValuePredicant is not .null

null Sh/Rd 114

State 78

( 58 )

likePredicate->rowValuePredicant like string . (110)

likePredicate->rowValuePredicant like string .escape string

likePredicate->rowValuePredicant like string . (110)

escape Shift 88

is Reduce 110

and Reduce 110

or Reduce 110

Eof Reduce 110

')' Reduce 110

order Reduce 110

State 79

( 59 )

betweenPredicate->rowValuePredicant between rowValuePredicant .and rowValuePredicant

and Shift 89

State 80

( 60 )

inPredicate->rowValuePredicant not in .inPredicateValue

'(' Shift 76

inPredicateValue Gt/Rd 116

State 81

( 60 )

likePredicate->rowValuePredicant not like .string

likePredicate->rowValuePredicant not like .string escape string

string Shift 90

State 82

( 60 )

betweenPredicate->rowValuePredicant not between .rowValuePredicant and rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Goto 91

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 83

( 69 )

booleanValueExpression->booleanValueExpression or booleanTerm . (33)

booleanTerm->booleanTerm .and booleanFactor

booleanValueExpression->booleanValueExpression or booleanTerm . (33)

and Shift 68

or Reduce 33

Eof Reduce 33

')' Reduce 33

order Reduce 33

State 84

( 71 )

fromConstructor->'(' column ('\,' column)* ')' .values '(' literal ('\,' literal)* ')'

values Shift 92

State 85

( 71 )

('\,' column)->',' .column

identifier Sh/Rd 46

column Gt/Rd 68

State 86

( 72 )

orderByClause->order by sortSpecification ('\,' sortSpecification)* . (67)

('\,' sortSpecification)*->('\,' sortSpecification)* .('\,' sortSpecification)

orderByClause->order by sortSpecification ('\,' sortSpecification)* . (67)

',' Shift 93

('\,' sortSpecification) Gt/Rd 83

Eof Reduce 67

State 87

( 76 )

inPredicateValue->'(' inValueList .')'

inValueList->inValueList .',' rowValuePredicant

',' Shift 94

')' Sh/Rd 119

State 88

( 78 )

likePredicate->rowValuePredicant like string escape .string

string Sh/Rd 112

State 89

( 79 )

betweenPredicate->rowValuePredicant between rowValuePredicant and .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 109

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 90

( 81 )

likePredicate->rowValuePredicant not like string . (111)

likePredicate->rowValuePredicant not like string .escape string

likePredicate->rowValuePredicant not like string . (111)

escape Shift 95

is Reduce 111

and Reduce 111

or Reduce 111

Eof Reduce 111

')' Reduce 111

order Reduce 111

State 91

( 82 )

betweenPredicate->rowValuePredicant not between rowValuePredicant .and rowValuePredicant

and Shift 96

State 92

( 84 )

fromConstructor->'(' column ('\,' column)* ')' values .'(' literal ('\,' literal)* ')'

'(' Shift 97

State 93

( 86 )

('\,' sortSpecification)->',' .sortSpecification

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

sortSpecification Gt/Rd 90

rowValuePredicant Goto 73

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

literal Gt/Rd 89

State 94

( 87 )

inValueList->inValueList ',' .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 121

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 95

( 90 )

likePredicate->rowValuePredicant not like string escape .string

string Sh/Rd 113

State 96

( 91 )

betweenPredicate->rowValuePredicant not between rowValuePredicant and .rowValuePredicant

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

identifier Shift 37

rowValuePredicant Gt/Rd 108

literal Gt/Rd 89

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 97

( 92 )

fromConstructor->'(' column ('\,' column)* ')' values '(' .literal ('\,' literal)* ')'

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

literal Goto 98

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49

State 98

( 97 )

fromConstructor->'(' column ('\,' column)* ')' values '(' literal .('\,' literal)* ')'

('\,' literal)*->. (58)

('\,' literal)* Goto 99

')' Reduce 58

',' Reduce 58

State 99

( 98 )

fromConstructor->'(' column ('\,' column)* ')' values '(' literal ('\,' literal)* .')'

('\,' literal)*->('\,' literal)* .('\,' literal)

')' Sh/Rd 32

',' Shift 100

('\,' literal) Gt/Rd 57

State 100

( 99 )

('\,' literal)->',' .literal

decimal Sh/Rd 56

integer Sh/Rd 54

string Sh/Rd 51

':' Shift 41

timestamp Shift 40

time Shift 39

date Shift 38

literal Gt/Rd 73

timestampValue Gt/Rd 53

timeValue Gt/Rd 52

dateValue Gt/Rd 49