aboutsummaryrefslogtreecommitdiff
path: root/ql/parser/parser.out
diff options
context:
space:
mode:
Diffstat (limited to 'ql/parser/parser.out')
-rw-r--r--ql/parser/parser.out2214
1 files changed, 2214 insertions, 0 deletions
diff --git a/ql/parser/parser.out b/ql/parser/parser.out
new file mode 100644
index 0000000..e1a1452
--- /dev/null
+++ b/ql/parser/parser.out
@@ -0,0 +1,2214 @@
+Created by PLY version 3.11 (http://www.dabeaz.com/ply)
+
+Grammar
+
+Rule 0 S' -> form
+Rule 1 form -> FORM IDENTIFIER block
+Rule 2 block -> LEFT_BRACE statements RIGHT_BRACE
+Rule 3 statements -> statement statements
+Rule 4 statements -> statement
+Rule 5 statement -> if
+Rule 6 statement -> question
+Rule 7 question -> STRING_LITERAL IDENTIFIER COLON type
+Rule 8 question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression
+Rule 9 if -> IF condition block
+Rule 10 condition -> LEFT_BRACKET expression RIGHT_BRACKET
+Rule 11 expression -> LEFT_BRACKET expression RIGHT_BRACKET
+Rule 12 expression -> IDENTIFIER
+Rule 13 expression -> NOT expression
+Rule 14 expression -> MINUS expression
+Rule 15 expression -> expression AND expression
+Rule 16 expression -> expression OR expression
+Rule 17 expression -> expression PLUS expression
+Rule 18 expression -> expression MINUS expression
+Rule 19 expression -> expression TIMES expression
+Rule 20 expression -> expression DIVIDE expression
+Rule 21 expression -> expression EQUALS expression
+Rule 22 expression -> expression NOT_EQUALS expression
+Rule 23 expression -> expression LESS_EQUALS expression
+Rule 24 expression -> expression LESS_THAN expression
+Rule 25 expression -> expression GREATER_EQUALS expression
+Rule 26 expression -> expression GREATER_THAN expression
+Rule 27 expression -> FALSE
+Rule 28 expression -> TRUE
+Rule 29 expression -> DATE_LITERAL
+Rule 30 expression -> INTEGER_LITERAL
+Rule 31 expression -> DECIMAL_LITERAL
+Rule 32 expression -> currency DECIMAL_LITERAL
+Rule 33 expression -> currency INTEGER_LITERAL
+Rule 34 expression -> STRING_LITERAL
+Rule 35 currency -> DOLLAR
+Rule 36 currency -> RUBLE
+Rule 37 type -> BOOLEAN
+Rule 38 type -> DECIMAL
+Rule 39 type -> STRING
+Rule 40 type -> DATE
+Rule 41 type -> MONEY
+Rule 42 type -> INTEGER
+Rule 43 form -> FORM LEFT_BRACE
+Rule 44 form -> FORM IDENTIFIER LEFT_BRACE RIGHT_BRACE
+Rule 45 statement -> IF condition LEFT_BRACE RIGHT_BRACE
+Rule 46 condition -> LEFT_BRACKET RIGHT_BRACKET
+
+Terminals, with rules where they appear
+
+AND : 15
+ASSIGN : 8
+BOOLEAN : 37
+COLON : 7 8
+DATE : 40
+DATE_LITERAL : 29
+DECIMAL : 38
+DECIMAL_LITERAL : 31 32
+DIVIDE : 20
+DOLLAR : 35
+EQUALS : 21
+FALSE : 27
+FORM : 1 43 44
+GREATER_EQUALS : 25
+GREATER_THAN : 26
+IDENTIFIER : 1 7 8 12 44
+IF : 9 45
+INTEGER : 42
+INTEGER_LITERAL : 30 33
+LEFT_BRACE : 2 43 44 45
+LEFT_BRACKET : 10 11 46
+LESS_EQUALS : 23
+LESS_THAN : 24
+MINUS : 14 18
+MONEY : 41
+NOT : 13
+NOT_EQUALS : 22
+OR : 16
+PLUS : 17
+RIGHT_BRACE : 2 44 45
+RIGHT_BRACKET : 10 11 46
+RUBLE : 36
+STRING : 39
+STRING_LITERAL : 7 8 34
+TIMES : 19
+TRUE : 28
+error :
+
+Nonterminals, with rules where they appear
+
+block : 1 9
+condition : 9 45
+currency : 32 33
+expression : 8 10 11 13 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26
+form : 0
+if : 5
+question : 6
+statement : 3 4
+statements : 2 3
+type : 7 8
+
+Parsing method: LALR
+
+state 0
+
+ (0) S' -> . form
+ (1) form -> . FORM IDENTIFIER block
+ (43) form -> . FORM LEFT_BRACE
+ (44) form -> . FORM IDENTIFIER LEFT_BRACE RIGHT_BRACE
+
+ FORM shift and go to state 1
+
+ form shift and go to state 2
+
+state 1
+
+ (1) form -> FORM . IDENTIFIER block
+ (43) form -> FORM . LEFT_BRACE
+ (44) form -> FORM . IDENTIFIER LEFT_BRACE RIGHT_BRACE
+
+ IDENTIFIER shift and go to state 3
+ LEFT_BRACE shift and go to state 4
+
+
+state 2
+
+ (0) S' -> form .
+
+
+
+state 3
+
+ (1) form -> FORM IDENTIFIER . block
+ (44) form -> FORM IDENTIFIER . LEFT_BRACE RIGHT_BRACE
+ (2) block -> . LEFT_BRACE statements RIGHT_BRACE
+
+ LEFT_BRACE shift and go to state 5
+
+ block shift and go to state 6
+
+state 4
+
+ (43) form -> FORM LEFT_BRACE .
+
+ $end reduce using rule 43 (form -> FORM LEFT_BRACE .)
+
+
+state 5
+
+ (44) form -> FORM IDENTIFIER LEFT_BRACE . RIGHT_BRACE
+ (2) block -> LEFT_BRACE . statements RIGHT_BRACE
+ (3) statements -> . statement statements
+ (4) statements -> . statement
+ (5) statement -> . if
+ (6) statement -> . question
+ (45) statement -> . IF condition LEFT_BRACE RIGHT_BRACE
+ (9) if -> . IF condition block
+ (7) question -> . STRING_LITERAL IDENTIFIER COLON type
+ (8) question -> . STRING_LITERAL IDENTIFIER COLON type ASSIGN expression
+
+ RIGHT_BRACE shift and go to state 13
+ IF shift and go to state 11
+ STRING_LITERAL shift and go to state 12
+
+ if shift and go to state 7
+ question shift and go to state 8
+ statements shift and go to state 9
+ statement shift and go to state 10
+
+state 6
+
+ (1) form -> FORM IDENTIFIER block .
+
+ $end reduce using rule 1 (form -> FORM IDENTIFIER block .)
+
+
+state 7
+
+ (5) statement -> if .
+
+ IF reduce using rule 5 (statement -> if .)
+ STRING_LITERAL reduce using rule 5 (statement -> if .)
+ RIGHT_BRACE reduce using rule 5 (statement -> if .)
+
+
+state 8
+
+ (6) statement -> question .
+
+ IF reduce using rule 6 (statement -> question .)
+ STRING_LITERAL reduce using rule 6 (statement -> question .)
+ RIGHT_BRACE reduce using rule 6 (statement -> question .)
+
+
+state 9
+
+ (2) block -> LEFT_BRACE statements . RIGHT_BRACE
+
+ RIGHT_BRACE shift and go to state 14
+
+
+state 10
+
+ (3) statements -> statement . statements
+ (4) statements -> statement .
+ (3) statements -> . statement statements
+ (4) statements -> . statement
+ (5) statement -> . if
+ (6) statement -> . question
+ (45) statement -> . IF condition LEFT_BRACE RIGHT_BRACE
+ (9) if -> . IF condition block
+ (7) question -> . STRING_LITERAL IDENTIFIER COLON type
+ (8) question -> . STRING_LITERAL IDENTIFIER COLON type ASSIGN expression
+
+ RIGHT_BRACE reduce using rule 4 (statements -> statement .)
+ IF shift and go to state 11
+ STRING_LITERAL shift and go to state 12
+
+ if shift and go to state 7
+ question shift and go to state 8
+ statements shift and go to state 15
+ statement shift and go to state 10
+
+state 11
+
+ (45) statement -> IF . condition LEFT_BRACE RIGHT_BRACE
+ (9) if -> IF . condition block
+ (10) condition -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (46) condition -> . LEFT_BRACKET RIGHT_BRACKET
+
+ LEFT_BRACKET shift and go to state 17
+
+ condition shift and go to state 16
+
+state 12
+
+ (7) question -> STRING_LITERAL . IDENTIFIER COLON type
+ (8) question -> STRING_LITERAL . IDENTIFIER COLON type ASSIGN expression
+
+ IDENTIFIER shift and go to state 18
+
+
+state 13
+
+ (44) form -> FORM IDENTIFIER LEFT_BRACE RIGHT_BRACE .
+
+ $end reduce using rule 44 (form -> FORM IDENTIFIER LEFT_BRACE RIGHT_BRACE .)
+
+
+state 14
+
+ (2) block -> LEFT_BRACE statements RIGHT_BRACE .
+
+ IF reduce using rule 2 (block -> LEFT_BRACE statements RIGHT_BRACE .)
+ STRING_LITERAL reduce using rule 2 (block -> LEFT_BRACE statements RIGHT_BRACE .)
+ RIGHT_BRACE reduce using rule 2 (block -> LEFT_BRACE statements RIGHT_BRACE .)
+ $end reduce using rule 2 (block -> LEFT_BRACE statements RIGHT_BRACE .)
+
+
+state 15
+
+ (3) statements -> statement statements .
+
+ RIGHT_BRACE reduce using rule 3 (statements -> statement statements .)
+
+
+state 16
+
+ (45) statement -> IF condition . LEFT_BRACE RIGHT_BRACE
+ (9) if -> IF condition . block
+ (2) block -> . LEFT_BRACE statements RIGHT_BRACE
+
+ LEFT_BRACE shift and go to state 19
+
+ block shift and go to state 20
+
+state 17
+
+ (10) condition -> LEFT_BRACKET . expression RIGHT_BRACKET
+ (46) condition -> LEFT_BRACKET . RIGHT_BRACKET
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ RIGHT_BRACKET shift and go to state 21
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 33
+
+state 18
+
+ (7) question -> STRING_LITERAL IDENTIFIER . COLON type
+ (8) question -> STRING_LITERAL IDENTIFIER . COLON type ASSIGN expression
+
+ COLON shift and go to state 36
+
+
+state 19
+
+ (45) statement -> IF condition LEFT_BRACE . RIGHT_BRACE
+ (2) block -> LEFT_BRACE . statements RIGHT_BRACE
+ (3) statements -> . statement statements
+ (4) statements -> . statement
+ (5) statement -> . if
+ (6) statement -> . question
+ (45) statement -> . IF condition LEFT_BRACE RIGHT_BRACE
+ (9) if -> . IF condition block
+ (7) question -> . STRING_LITERAL IDENTIFIER COLON type
+ (8) question -> . STRING_LITERAL IDENTIFIER COLON type ASSIGN expression
+
+ RIGHT_BRACE shift and go to state 37
+ IF shift and go to state 11
+ STRING_LITERAL shift and go to state 12
+
+ if shift and go to state 7
+ question shift and go to state 8
+ statements shift and go to state 9
+ statement shift and go to state 10
+
+state 20
+
+ (9) if -> IF condition block .
+
+ IF reduce using rule 9 (if -> IF condition block .)
+ STRING_LITERAL reduce using rule 9 (if -> IF condition block .)
+ RIGHT_BRACE reduce using rule 9 (if -> IF condition block .)
+
+
+state 21
+
+ (46) condition -> LEFT_BRACKET RIGHT_BRACKET .
+
+ LEFT_BRACE reduce using rule 46 (condition -> LEFT_BRACKET RIGHT_BRACKET .)
+
+
+state 22
+
+ (32) expression -> currency . DECIMAL_LITERAL
+ (33) expression -> currency . INTEGER_LITERAL
+
+ DECIMAL_LITERAL shift and go to state 38
+ INTEGER_LITERAL shift and go to state 39
+
+
+state 23
+
+ (36) currency -> RUBLE .
+
+ DECIMAL_LITERAL reduce using rule 36 (currency -> RUBLE .)
+ INTEGER_LITERAL reduce using rule 36 (currency -> RUBLE .)
+
+
+state 24
+
+ (29) expression -> DATE_LITERAL .
+
+ AND reduce using rule 29 (expression -> DATE_LITERAL .)
+ OR reduce using rule 29 (expression -> DATE_LITERAL .)
+ PLUS reduce using rule 29 (expression -> DATE_LITERAL .)
+ MINUS reduce using rule 29 (expression -> DATE_LITERAL .)
+ TIMES reduce using rule 29 (expression -> DATE_LITERAL .)
+ DIVIDE reduce using rule 29 (expression -> DATE_LITERAL .)
+ EQUALS reduce using rule 29 (expression -> DATE_LITERAL .)
+ NOT_EQUALS reduce using rule 29 (expression -> DATE_LITERAL .)
+ LESS_EQUALS reduce using rule 29 (expression -> DATE_LITERAL .)
+ LESS_THAN reduce using rule 29 (expression -> DATE_LITERAL .)
+ GREATER_EQUALS reduce using rule 29 (expression -> DATE_LITERAL .)
+ GREATER_THAN reduce using rule 29 (expression -> DATE_LITERAL .)
+ IF reduce using rule 29 (expression -> DATE_LITERAL .)
+ STRING_LITERAL reduce using rule 29 (expression -> DATE_LITERAL .)
+ RIGHT_BRACE reduce using rule 29 (expression -> DATE_LITERAL .)
+ RIGHT_BRACKET reduce using rule 29 (expression -> DATE_LITERAL .)
+
+
+state 25
+
+ (14) expression -> MINUS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 40
+
+state 26
+
+ (30) expression -> INTEGER_LITERAL .
+
+ AND reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ OR reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ PLUS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ MINUS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ TIMES reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ DIVIDE reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ EQUALS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ NOT_EQUALS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ LESS_EQUALS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ LESS_THAN reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ GREATER_EQUALS reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ GREATER_THAN reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ IF reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ STRING_LITERAL reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ RIGHT_BRACE reduce using rule 30 (expression -> INTEGER_LITERAL .)
+ RIGHT_BRACKET reduce using rule 30 (expression -> INTEGER_LITERAL .)
+
+
+state 27
+
+ (13) expression -> NOT . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 41
+
+state 28
+
+ (34) expression -> STRING_LITERAL .
+
+ AND reduce using rule 34 (expression -> STRING_LITERAL .)
+ OR reduce using rule 34 (expression -> STRING_LITERAL .)
+ PLUS reduce using rule 34 (expression -> STRING_LITERAL .)
+ MINUS reduce using rule 34 (expression -> STRING_LITERAL .)
+ TIMES reduce using rule 34 (expression -> STRING_LITERAL .)
+ DIVIDE reduce using rule 34 (expression -> STRING_LITERAL .)
+ EQUALS reduce using rule 34 (expression -> STRING_LITERAL .)
+ NOT_EQUALS reduce using rule 34 (expression -> STRING_LITERAL .)
+ LESS_EQUALS reduce using rule 34 (expression -> STRING_LITERAL .)
+ LESS_THAN reduce using rule 34 (expression -> STRING_LITERAL .)
+ GREATER_EQUALS reduce using rule 34 (expression -> STRING_LITERAL .)
+ GREATER_THAN reduce using rule 34 (expression -> STRING_LITERAL .)
+ IF reduce using rule 34 (expression -> STRING_LITERAL .)
+ STRING_LITERAL reduce using rule 34 (expression -> STRING_LITERAL .)
+ RIGHT_BRACE reduce using rule 34 (expression -> STRING_LITERAL .)
+ RIGHT_BRACKET reduce using rule 34 (expression -> STRING_LITERAL .)
+
+
+state 29
+
+ (35) currency -> DOLLAR .
+
+ DECIMAL_LITERAL reduce using rule 35 (currency -> DOLLAR .)
+ INTEGER_LITERAL reduce using rule 35 (currency -> DOLLAR .)
+
+
+state 30
+
+ (11) expression -> LEFT_BRACKET . expression RIGHT_BRACKET
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 42
+
+state 31
+
+ (31) expression -> DECIMAL_LITERAL .
+
+ AND reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ OR reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ PLUS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ MINUS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ TIMES reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ DIVIDE reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ EQUALS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ NOT_EQUALS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ LESS_EQUALS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ LESS_THAN reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ GREATER_EQUALS reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ GREATER_THAN reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ IF reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ STRING_LITERAL reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ RIGHT_BRACE reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+ RIGHT_BRACKET reduce using rule 31 (expression -> DECIMAL_LITERAL .)
+
+
+state 32
+
+ (28) expression -> TRUE .
+
+ AND reduce using rule 28 (expression -> TRUE .)
+ OR reduce using rule 28 (expression -> TRUE .)
+ PLUS reduce using rule 28 (expression -> TRUE .)
+ MINUS reduce using rule 28 (expression -> TRUE .)
+ TIMES reduce using rule 28 (expression -> TRUE .)
+ DIVIDE reduce using rule 28 (expression -> TRUE .)
+ EQUALS reduce using rule 28 (expression -> TRUE .)
+ NOT_EQUALS reduce using rule 28 (expression -> TRUE .)
+ LESS_EQUALS reduce using rule 28 (expression -> TRUE .)
+ LESS_THAN reduce using rule 28 (expression -> TRUE .)
+ GREATER_EQUALS reduce using rule 28 (expression -> TRUE .)
+ GREATER_THAN reduce using rule 28 (expression -> TRUE .)
+ IF reduce using rule 28 (expression -> TRUE .)
+ STRING_LITERAL reduce using rule 28 (expression -> TRUE .)
+ RIGHT_BRACE reduce using rule 28 (expression -> TRUE .)
+ RIGHT_BRACKET reduce using rule 28 (expression -> TRUE .)
+
+
+state 33
+
+ (10) condition -> LEFT_BRACKET expression . RIGHT_BRACKET
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ RIGHT_BRACKET shift and go to state 43
+ AND shift and go to state 52
+ OR shift and go to state 50
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ EQUALS shift and go to state 46
+ NOT_EQUALS shift and go to state 45
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+
+state 34
+
+ (12) expression -> IDENTIFIER .
+
+ AND reduce using rule 12 (expression -> IDENTIFIER .)
+ OR reduce using rule 12 (expression -> IDENTIFIER .)
+ PLUS reduce using rule 12 (expression -> IDENTIFIER .)
+ MINUS reduce using rule 12 (expression -> IDENTIFIER .)
+ TIMES reduce using rule 12 (expression -> IDENTIFIER .)
+ DIVIDE reduce using rule 12 (expression -> IDENTIFIER .)
+ EQUALS reduce using rule 12 (expression -> IDENTIFIER .)
+ NOT_EQUALS reduce using rule 12 (expression -> IDENTIFIER .)
+ LESS_EQUALS reduce using rule 12 (expression -> IDENTIFIER .)
+ LESS_THAN reduce using rule 12 (expression -> IDENTIFIER .)
+ GREATER_EQUALS reduce using rule 12 (expression -> IDENTIFIER .)
+ GREATER_THAN reduce using rule 12 (expression -> IDENTIFIER .)
+ IF reduce using rule 12 (expression -> IDENTIFIER .)
+ STRING_LITERAL reduce using rule 12 (expression -> IDENTIFIER .)
+ RIGHT_BRACE reduce using rule 12 (expression -> IDENTIFIER .)
+ RIGHT_BRACKET reduce using rule 12 (expression -> IDENTIFIER .)
+
+
+state 35
+
+ (27) expression -> FALSE .
+
+ AND reduce using rule 27 (expression -> FALSE .)
+ OR reduce using rule 27 (expression -> FALSE .)
+ PLUS reduce using rule 27 (expression -> FALSE .)
+ MINUS reduce using rule 27 (expression -> FALSE .)
+ TIMES reduce using rule 27 (expression -> FALSE .)
+ DIVIDE reduce using rule 27 (expression -> FALSE .)
+ EQUALS reduce using rule 27 (expression -> FALSE .)
+ NOT_EQUALS reduce using rule 27 (expression -> FALSE .)
+ LESS_EQUALS reduce using rule 27 (expression -> FALSE .)
+ LESS_THAN reduce using rule 27 (expression -> FALSE .)
+ GREATER_EQUALS reduce using rule 27 (expression -> FALSE .)
+ GREATER_THAN reduce using rule 27 (expression -> FALSE .)
+ IF reduce using rule 27 (expression -> FALSE .)
+ STRING_LITERAL reduce using rule 27 (expression -> FALSE .)
+ RIGHT_BRACE reduce using rule 27 (expression -> FALSE .)
+ RIGHT_BRACKET reduce using rule 27 (expression -> FALSE .)
+
+
+state 36
+
+ (7) question -> STRING_LITERAL IDENTIFIER COLON . type
+ (8) question -> STRING_LITERAL IDENTIFIER COLON . type ASSIGN expression
+ (37) type -> . BOOLEAN
+ (38) type -> . DECIMAL
+ (39) type -> . STRING
+ (40) type -> . DATE
+ (41) type -> . MONEY
+ (42) type -> . INTEGER
+
+ BOOLEAN shift and go to state 62
+ DECIMAL shift and go to state 57
+ STRING shift and go to state 58
+ DATE shift and go to state 56
+ MONEY shift and go to state 60
+ INTEGER shift and go to state 61
+
+ type shift and go to state 59
+
+state 37
+
+ (45) statement -> IF condition LEFT_BRACE RIGHT_BRACE .
+
+ IF reduce using rule 45 (statement -> IF condition LEFT_BRACE RIGHT_BRACE .)
+ STRING_LITERAL reduce using rule 45 (statement -> IF condition LEFT_BRACE RIGHT_BRACE .)
+ RIGHT_BRACE reduce using rule 45 (statement -> IF condition LEFT_BRACE RIGHT_BRACE .)
+
+
+state 38
+
+ (32) expression -> currency DECIMAL_LITERAL .
+
+ AND reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ OR reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ PLUS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ MINUS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ TIMES reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ DIVIDE reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ EQUALS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ NOT_EQUALS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ LESS_EQUALS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ LESS_THAN reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ GREATER_EQUALS reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ GREATER_THAN reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ IF reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ STRING_LITERAL reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ RIGHT_BRACE reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+ RIGHT_BRACKET reduce using rule 32 (expression -> currency DECIMAL_LITERAL .)
+
+
+state 39
+
+ (33) expression -> currency INTEGER_LITERAL .
+
+ AND reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ OR reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ PLUS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ MINUS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ TIMES reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ DIVIDE reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ EQUALS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ NOT_EQUALS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ LESS_EQUALS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ LESS_THAN reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ GREATER_EQUALS reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ GREATER_THAN reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ IF reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ STRING_LITERAL reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ RIGHT_BRACE reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+ RIGHT_BRACKET reduce using rule 33 (expression -> currency INTEGER_LITERAL .)
+
+
+state 40
+
+ (14) expression -> MINUS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 14 (expression -> MINUS expression .)
+ OR reduce using rule 14 (expression -> MINUS expression .)
+ PLUS reduce using rule 14 (expression -> MINUS expression .)
+ MINUS reduce using rule 14 (expression -> MINUS expression .)
+ EQUALS reduce using rule 14 (expression -> MINUS expression .)
+ NOT_EQUALS reduce using rule 14 (expression -> MINUS expression .)
+ LESS_EQUALS reduce using rule 14 (expression -> MINUS expression .)
+ LESS_THAN reduce using rule 14 (expression -> MINUS expression .)
+ GREATER_EQUALS reduce using rule 14 (expression -> MINUS expression .)
+ GREATER_THAN reduce using rule 14 (expression -> MINUS expression .)
+ IF reduce using rule 14 (expression -> MINUS expression .)
+ STRING_LITERAL reduce using rule 14 (expression -> MINUS expression .)
+ RIGHT_BRACE reduce using rule 14 (expression -> MINUS expression .)
+ RIGHT_BRACKET reduce using rule 14 (expression -> MINUS expression .)
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! TIMES [ reduce using rule 14 (expression -> MINUS expression .) ]
+ ! DIVIDE [ reduce using rule 14 (expression -> MINUS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 41
+
+ (13) expression -> NOT expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 13 (expression -> NOT expression .)
+ OR reduce using rule 13 (expression -> NOT expression .)
+ PLUS reduce using rule 13 (expression -> NOT expression .)
+ MINUS reduce using rule 13 (expression -> NOT expression .)
+ TIMES reduce using rule 13 (expression -> NOT expression .)
+ DIVIDE reduce using rule 13 (expression -> NOT expression .)
+ EQUALS reduce using rule 13 (expression -> NOT expression .)
+ NOT_EQUALS reduce using rule 13 (expression -> NOT expression .)
+ LESS_EQUALS reduce using rule 13 (expression -> NOT expression .)
+ LESS_THAN reduce using rule 13 (expression -> NOT expression .)
+ GREATER_EQUALS reduce using rule 13 (expression -> NOT expression .)
+ GREATER_THAN reduce using rule 13 (expression -> NOT expression .)
+ IF reduce using rule 13 (expression -> NOT expression .)
+ STRING_LITERAL reduce using rule 13 (expression -> NOT expression .)
+ RIGHT_BRACE reduce using rule 13 (expression -> NOT expression .)
+ RIGHT_BRACKET reduce using rule 13 (expression -> NOT expression .)
+
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! TIMES [ shift and go to state 49 ]
+ ! DIVIDE [ shift and go to state 51 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 42
+
+ (11) expression -> LEFT_BRACKET expression . RIGHT_BRACKET
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ RIGHT_BRACKET shift and go to state 63
+ AND shift and go to state 52
+ OR shift and go to state 50
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ EQUALS shift and go to state 46
+ NOT_EQUALS shift and go to state 45
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+
+state 43
+
+ (10) condition -> LEFT_BRACKET expression RIGHT_BRACKET .
+
+ LEFT_BRACE reduce using rule 10 (condition -> LEFT_BRACKET expression RIGHT_BRACKET .)
+
+
+state 44
+
+ (17) expression -> expression PLUS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 64
+
+state 45
+
+ (22) expression -> expression NOT_EQUALS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 65
+
+state 46
+
+ (21) expression -> expression EQUALS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 66
+
+state 47
+
+ (24) expression -> expression LESS_THAN . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 67
+
+state 48
+
+ (18) expression -> expression MINUS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 68
+
+state 49
+
+ (19) expression -> expression TIMES . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 69
+
+state 50
+
+ (16) expression -> expression OR . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 70
+
+state 51
+
+ (20) expression -> expression DIVIDE . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 71
+
+state 52
+
+ (15) expression -> expression AND . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 72
+
+state 53
+
+ (26) expression -> expression GREATER_THAN . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 73
+
+state 54
+
+ (23) expression -> expression LESS_EQUALS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 74
+
+state 55
+
+ (25) expression -> expression GREATER_EQUALS . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ currency shift and go to state 22
+ expression shift and go to state 75
+
+state 56
+
+ (40) type -> DATE .
+
+ ASSIGN reduce using rule 40 (type -> DATE .)
+ IF reduce using rule 40 (type -> DATE .)
+ STRING_LITERAL reduce using rule 40 (type -> DATE .)
+ RIGHT_BRACE reduce using rule 40 (type -> DATE .)
+
+
+state 57
+
+ (38) type -> DECIMAL .
+
+ ASSIGN reduce using rule 38 (type -> DECIMAL .)
+ IF reduce using rule 38 (type -> DECIMAL .)
+ STRING_LITERAL reduce using rule 38 (type -> DECIMAL .)
+ RIGHT_BRACE reduce using rule 38 (type -> DECIMAL .)
+
+
+state 58
+
+ (39) type -> STRING .
+
+ ASSIGN reduce using rule 39 (type -> STRING .)
+ IF reduce using rule 39 (type -> STRING .)
+ STRING_LITERAL reduce using rule 39 (type -> STRING .)
+ RIGHT_BRACE reduce using rule 39 (type -> STRING .)
+
+
+state 59
+
+ (7) question -> STRING_LITERAL IDENTIFIER COLON type .
+ (8) question -> STRING_LITERAL IDENTIFIER COLON type . ASSIGN expression
+
+ IF reduce using rule 7 (question -> STRING_LITERAL IDENTIFIER COLON type .)
+ STRING_LITERAL reduce using rule 7 (question -> STRING_LITERAL IDENTIFIER COLON type .)
+ RIGHT_BRACE reduce using rule 7 (question -> STRING_LITERAL IDENTIFIER COLON type .)
+ ASSIGN shift and go to state 76
+
+
+state 60
+
+ (41) type -> MONEY .
+
+ ASSIGN reduce using rule 41 (type -> MONEY .)
+ IF reduce using rule 41 (type -> MONEY .)
+ STRING_LITERAL reduce using rule 41 (type -> MONEY .)
+ RIGHT_BRACE reduce using rule 41 (type -> MONEY .)
+
+
+state 61
+
+ (42) type -> INTEGER .
+
+ ASSIGN reduce using rule 42 (type -> INTEGER .)
+ IF reduce using rule 42 (type -> INTEGER .)
+ STRING_LITERAL reduce using rule 42 (type -> INTEGER .)
+ RIGHT_BRACE reduce using rule 42 (type -> INTEGER .)
+
+
+state 62
+
+ (37) type -> BOOLEAN .
+
+ ASSIGN reduce using rule 37 (type -> BOOLEAN .)
+ IF reduce using rule 37 (type -> BOOLEAN .)
+ STRING_LITERAL reduce using rule 37 (type -> BOOLEAN .)
+ RIGHT_BRACE reduce using rule 37 (type -> BOOLEAN .)
+
+
+state 63
+
+ (11) expression -> LEFT_BRACKET expression RIGHT_BRACKET .
+
+ AND reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ OR reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ PLUS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ MINUS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ TIMES reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ DIVIDE reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ EQUALS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ NOT_EQUALS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ LESS_EQUALS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ LESS_THAN reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ GREATER_EQUALS reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ GREATER_THAN reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ IF reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ STRING_LITERAL reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ RIGHT_BRACE reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+ RIGHT_BRACKET reduce using rule 11 (expression -> LEFT_BRACKET expression RIGHT_BRACKET .)
+
+
+state 64
+
+ (17) expression -> expression PLUS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 17 (expression -> expression PLUS expression .)
+ OR reduce using rule 17 (expression -> expression PLUS expression .)
+ PLUS reduce using rule 17 (expression -> expression PLUS expression .)
+ MINUS reduce using rule 17 (expression -> expression PLUS expression .)
+ EQUALS reduce using rule 17 (expression -> expression PLUS expression .)
+ NOT_EQUALS reduce using rule 17 (expression -> expression PLUS expression .)
+ LESS_EQUALS reduce using rule 17 (expression -> expression PLUS expression .)
+ LESS_THAN reduce using rule 17 (expression -> expression PLUS expression .)
+ GREATER_EQUALS reduce using rule 17 (expression -> expression PLUS expression .)
+ GREATER_THAN reduce using rule 17 (expression -> expression PLUS expression .)
+ IF reduce using rule 17 (expression -> expression PLUS expression .)
+ STRING_LITERAL reduce using rule 17 (expression -> expression PLUS expression .)
+ RIGHT_BRACE reduce using rule 17 (expression -> expression PLUS expression .)
+ RIGHT_BRACKET reduce using rule 17 (expression -> expression PLUS expression .)
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! TIMES [ reduce using rule 17 (expression -> expression PLUS expression .) ]
+ ! DIVIDE [ reduce using rule 17 (expression -> expression PLUS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 65
+
+ (22) expression -> expression NOT_EQUALS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ OR reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ EQUALS reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ NOT_EQUALS reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ IF reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ STRING_LITERAL reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ RIGHT_BRACE reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ RIGHT_BRACKET reduce using rule 22 (expression -> expression NOT_EQUALS expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+ ! PLUS [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! MINUS [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! TIMES [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! DIVIDE [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! LESS_EQUALS [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! LESS_THAN [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! GREATER_EQUALS [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! GREATER_THAN [ reduce using rule 22 (expression -> expression NOT_EQUALS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+
+
+state 66
+
+ (21) expression -> expression EQUALS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 21 (expression -> expression EQUALS expression .)
+ OR reduce using rule 21 (expression -> expression EQUALS expression .)
+ EQUALS reduce using rule 21 (expression -> expression EQUALS expression .)
+ NOT_EQUALS reduce using rule 21 (expression -> expression EQUALS expression .)
+ IF reduce using rule 21 (expression -> expression EQUALS expression .)
+ STRING_LITERAL reduce using rule 21 (expression -> expression EQUALS expression .)
+ RIGHT_BRACE reduce using rule 21 (expression -> expression EQUALS expression .)
+ RIGHT_BRACKET reduce using rule 21 (expression -> expression EQUALS expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+ ! PLUS [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! MINUS [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! TIMES [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! DIVIDE [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! LESS_EQUALS [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! LESS_THAN [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! GREATER_EQUALS [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! GREATER_THAN [ reduce using rule 21 (expression -> expression EQUALS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+
+
+state 67
+
+ (24) expression -> expression LESS_THAN expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ OR reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ EQUALS reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ NOT_EQUALS reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ LESS_EQUALS reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ LESS_THAN reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ GREATER_EQUALS reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ GREATER_THAN reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ IF reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ STRING_LITERAL reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ RIGHT_BRACE reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ RIGHT_BRACKET reduce using rule 24 (expression -> expression LESS_THAN expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! PLUS [ reduce using rule 24 (expression -> expression LESS_THAN expression .) ]
+ ! MINUS [ reduce using rule 24 (expression -> expression LESS_THAN expression .) ]
+ ! TIMES [ reduce using rule 24 (expression -> expression LESS_THAN expression .) ]
+ ! DIVIDE [ reduce using rule 24 (expression -> expression LESS_THAN expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 68
+
+ (18) expression -> expression MINUS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 18 (expression -> expression MINUS expression .)
+ OR reduce using rule 18 (expression -> expression MINUS expression .)
+ PLUS reduce using rule 18 (expression -> expression MINUS expression .)
+ MINUS reduce using rule 18 (expression -> expression MINUS expression .)
+ EQUALS reduce using rule 18 (expression -> expression MINUS expression .)
+ NOT_EQUALS reduce using rule 18 (expression -> expression MINUS expression .)
+ LESS_EQUALS reduce using rule 18 (expression -> expression MINUS expression .)
+ LESS_THAN reduce using rule 18 (expression -> expression MINUS expression .)
+ GREATER_EQUALS reduce using rule 18 (expression -> expression MINUS expression .)
+ GREATER_THAN reduce using rule 18 (expression -> expression MINUS expression .)
+ IF reduce using rule 18 (expression -> expression MINUS expression .)
+ STRING_LITERAL reduce using rule 18 (expression -> expression MINUS expression .)
+ RIGHT_BRACE reduce using rule 18 (expression -> expression MINUS expression .)
+ RIGHT_BRACKET reduce using rule 18 (expression -> expression MINUS expression .)
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! TIMES [ reduce using rule 18 (expression -> expression MINUS expression .) ]
+ ! DIVIDE [ reduce using rule 18 (expression -> expression MINUS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 69
+
+ (19) expression -> expression TIMES expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 19 (expression -> expression TIMES expression .)
+ OR reduce using rule 19 (expression -> expression TIMES expression .)
+ PLUS reduce using rule 19 (expression -> expression TIMES expression .)
+ MINUS reduce using rule 19 (expression -> expression TIMES expression .)
+ TIMES reduce using rule 19 (expression -> expression TIMES expression .)
+ DIVIDE reduce using rule 19 (expression -> expression TIMES expression .)
+ EQUALS reduce using rule 19 (expression -> expression TIMES expression .)
+ NOT_EQUALS reduce using rule 19 (expression -> expression TIMES expression .)
+ LESS_EQUALS reduce using rule 19 (expression -> expression TIMES expression .)
+ LESS_THAN reduce using rule 19 (expression -> expression TIMES expression .)
+ GREATER_EQUALS reduce using rule 19 (expression -> expression TIMES expression .)
+ GREATER_THAN reduce using rule 19 (expression -> expression TIMES expression .)
+ IF reduce using rule 19 (expression -> expression TIMES expression .)
+ STRING_LITERAL reduce using rule 19 (expression -> expression TIMES expression .)
+ RIGHT_BRACE reduce using rule 19 (expression -> expression TIMES expression .)
+ RIGHT_BRACKET reduce using rule 19 (expression -> expression TIMES expression .)
+
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! TIMES [ shift and go to state 49 ]
+ ! DIVIDE [ shift and go to state 51 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 70
+
+ (16) expression -> expression OR expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ OR reduce using rule 16 (expression -> expression OR expression .)
+ IF reduce using rule 16 (expression -> expression OR expression .)
+ STRING_LITERAL reduce using rule 16 (expression -> expression OR expression .)
+ RIGHT_BRACE reduce using rule 16 (expression -> expression OR expression .)
+ RIGHT_BRACKET reduce using rule 16 (expression -> expression OR expression .)
+ AND shift and go to state 52
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ EQUALS shift and go to state 46
+ NOT_EQUALS shift and go to state 45
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+ ! AND [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! PLUS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! MINUS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! TIMES [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! DIVIDE [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! EQUALS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! NOT_EQUALS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! LESS_EQUALS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! LESS_THAN [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! GREATER_EQUALS [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! GREATER_THAN [ reduce using rule 16 (expression -> expression OR expression .) ]
+ ! OR [ shift and go to state 50 ]
+
+
+state 71
+
+ (20) expression -> expression DIVIDE expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 20 (expression -> expression DIVIDE expression .)
+ OR reduce using rule 20 (expression -> expression DIVIDE expression .)
+ PLUS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ MINUS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ TIMES reduce using rule 20 (expression -> expression DIVIDE expression .)
+ DIVIDE reduce using rule 20 (expression -> expression DIVIDE expression .)
+ EQUALS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ NOT_EQUALS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ LESS_EQUALS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ LESS_THAN reduce using rule 20 (expression -> expression DIVIDE expression .)
+ GREATER_EQUALS reduce using rule 20 (expression -> expression DIVIDE expression .)
+ GREATER_THAN reduce using rule 20 (expression -> expression DIVIDE expression .)
+ IF reduce using rule 20 (expression -> expression DIVIDE expression .)
+ STRING_LITERAL reduce using rule 20 (expression -> expression DIVIDE expression .)
+ RIGHT_BRACE reduce using rule 20 (expression -> expression DIVIDE expression .)
+ RIGHT_BRACKET reduce using rule 20 (expression -> expression DIVIDE expression .)
+
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! PLUS [ shift and go to state 44 ]
+ ! MINUS [ shift and go to state 48 ]
+ ! TIMES [ shift and go to state 49 ]
+ ! DIVIDE [ shift and go to state 51 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 72
+
+ (15) expression -> expression AND expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 15 (expression -> expression AND expression .)
+ OR reduce using rule 15 (expression -> expression AND expression .)
+ IF reduce using rule 15 (expression -> expression AND expression .)
+ STRING_LITERAL reduce using rule 15 (expression -> expression AND expression .)
+ RIGHT_BRACE reduce using rule 15 (expression -> expression AND expression .)
+ RIGHT_BRACKET reduce using rule 15 (expression -> expression AND expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ EQUALS shift and go to state 46
+ NOT_EQUALS shift and go to state 45
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+
+ ! PLUS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! MINUS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! TIMES [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! DIVIDE [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! EQUALS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! NOT_EQUALS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! LESS_EQUALS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! LESS_THAN [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! GREATER_EQUALS [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! GREATER_THAN [ reduce using rule 15 (expression -> expression AND expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+
+
+state 73
+
+ (26) expression -> expression GREATER_THAN expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ OR reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ EQUALS reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ NOT_EQUALS reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ LESS_EQUALS reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ LESS_THAN reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ GREATER_EQUALS reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ GREATER_THAN reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ IF reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ STRING_LITERAL reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ RIGHT_BRACE reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ RIGHT_BRACKET reduce using rule 26 (expression -> expression GREATER_THAN expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! PLUS [ reduce using rule 26 (expression -> expression GREATER_THAN expression .) ]
+ ! MINUS [ reduce using rule 26 (expression -> expression GREATER_THAN expression .) ]
+ ! TIMES [ reduce using rule 26 (expression -> expression GREATER_THAN expression .) ]
+ ! DIVIDE [ reduce using rule 26 (expression -> expression GREATER_THAN expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 74
+
+ (23) expression -> expression LESS_EQUALS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ OR reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ EQUALS reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ NOT_EQUALS reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ LESS_EQUALS reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ LESS_THAN reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ GREATER_EQUALS reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ GREATER_THAN reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ IF reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ STRING_LITERAL reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ RIGHT_BRACE reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ RIGHT_BRACKET reduce using rule 23 (expression -> expression LESS_EQUALS expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! PLUS [ reduce using rule 23 (expression -> expression LESS_EQUALS expression .) ]
+ ! MINUS [ reduce using rule 23 (expression -> expression LESS_EQUALS expression .) ]
+ ! TIMES [ reduce using rule 23 (expression -> expression LESS_EQUALS expression .) ]
+ ! DIVIDE [ reduce using rule 23 (expression -> expression LESS_EQUALS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 75
+
+ (25) expression -> expression GREATER_EQUALS expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ AND reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ OR reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ EQUALS reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ NOT_EQUALS reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ LESS_EQUALS reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ LESS_THAN reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ GREATER_EQUALS reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ GREATER_THAN reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ IF reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ STRING_LITERAL reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ RIGHT_BRACE reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ RIGHT_BRACKET reduce using rule 25 (expression -> expression GREATER_EQUALS expression .)
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+
+ ! PLUS [ reduce using rule 25 (expression -> expression GREATER_EQUALS expression .) ]
+ ! MINUS [ reduce using rule 25 (expression -> expression GREATER_EQUALS expression .) ]
+ ! TIMES [ reduce using rule 25 (expression -> expression GREATER_EQUALS expression .) ]
+ ! DIVIDE [ reduce using rule 25 (expression -> expression GREATER_EQUALS expression .) ]
+ ! AND [ shift and go to state 52 ]
+ ! OR [ shift and go to state 50 ]
+ ! EQUALS [ shift and go to state 46 ]
+ ! NOT_EQUALS [ shift and go to state 45 ]
+ ! LESS_EQUALS [ shift and go to state 54 ]
+ ! LESS_THAN [ shift and go to state 47 ]
+ ! GREATER_EQUALS [ shift and go to state 55 ]
+ ! GREATER_THAN [ shift and go to state 53 ]
+
+
+state 76
+
+ (8) question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN . expression
+ (11) expression -> . LEFT_BRACKET expression RIGHT_BRACKET
+ (12) expression -> . IDENTIFIER
+ (13) expression -> . NOT expression
+ (14) expression -> . MINUS expression
+ (15) expression -> . expression AND expression
+ (16) expression -> . expression OR expression
+ (17) expression -> . expression PLUS expression
+ (18) expression -> . expression MINUS expression
+ (19) expression -> . expression TIMES expression
+ (20) expression -> . expression DIVIDE expression
+ (21) expression -> . expression EQUALS expression
+ (22) expression -> . expression NOT_EQUALS expression
+ (23) expression -> . expression LESS_EQUALS expression
+ (24) expression -> . expression LESS_THAN expression
+ (25) expression -> . expression GREATER_EQUALS expression
+ (26) expression -> . expression GREATER_THAN expression
+ (27) expression -> . FALSE
+ (28) expression -> . TRUE
+ (29) expression -> . DATE_LITERAL
+ (30) expression -> . INTEGER_LITERAL
+ (31) expression -> . DECIMAL_LITERAL
+ (32) expression -> . currency DECIMAL_LITERAL
+ (33) expression -> . currency INTEGER_LITERAL
+ (34) expression -> . STRING_LITERAL
+ (35) currency -> . DOLLAR
+ (36) currency -> . RUBLE
+
+ LEFT_BRACKET shift and go to state 30
+ IDENTIFIER shift and go to state 34
+ NOT shift and go to state 27
+ MINUS shift and go to state 25
+ FALSE shift and go to state 35
+ TRUE shift and go to state 32
+ DATE_LITERAL shift and go to state 24
+ INTEGER_LITERAL shift and go to state 26
+ DECIMAL_LITERAL shift and go to state 31
+ STRING_LITERAL shift and go to state 28
+ DOLLAR shift and go to state 29
+ RUBLE shift and go to state 23
+
+ expression shift and go to state 77
+ currency shift and go to state 22
+
+state 77
+
+ (8) question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression .
+ (15) expression -> expression . AND expression
+ (16) expression -> expression . OR expression
+ (17) expression -> expression . PLUS expression
+ (18) expression -> expression . MINUS expression
+ (19) expression -> expression . TIMES expression
+ (20) expression -> expression . DIVIDE expression
+ (21) expression -> expression . EQUALS expression
+ (22) expression -> expression . NOT_EQUALS expression
+ (23) expression -> expression . LESS_EQUALS expression
+ (24) expression -> expression . LESS_THAN expression
+ (25) expression -> expression . GREATER_EQUALS expression
+ (26) expression -> expression . GREATER_THAN expression
+
+ IF reduce using rule 8 (question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression .)
+ STRING_LITERAL reduce using rule 8 (question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression .)
+ RIGHT_BRACE reduce using rule 8 (question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression .)
+ AND shift and go to state 52
+ OR shift and go to state 50
+ PLUS shift and go to state 44
+ MINUS shift and go to state 48
+ TIMES shift and go to state 49
+ DIVIDE shift and go to state 51
+ EQUALS shift and go to state 46
+ NOT_EQUALS shift and go to state 45
+ LESS_EQUALS shift and go to state 54
+ LESS_THAN shift and go to state 47
+ GREATER_EQUALS shift and go to state 55
+ GREATER_THAN shift and go to state 53
+