diff options
| author | Bicker <bickerkards@tuta.io> | 2019-05-22 17:45:37 +0200 |
|---|---|---|
| committer | Bicker <bickerkards@tuta.io> | 2019-05-22 17:45:37 +0200 |
| commit | 25314fd2aed81aa5281bc3d93dbcc7919368ebe1 (patch) | |
| tree | 1995521ee652e419926de5fced0f2e3b655e70fb /ql/parser/parser.out | |
Diffstat (limited to 'ql/parser/parser.out')
| -rw-r--r-- | ql/parser/parser.out | 2214 |
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 + |