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