Terminals which are not used T_ERROR Grammar 0 $accept: program $end 1 program: declaration_list block_list 2 declaration_list: declaration_list declaration 3 | empty 4 declaration: variable_declaration T_SEMIC 5 | object_declaration T_SEMIC 6 | forward_declaration T_SEMIC 7 variable_declaration: T_TYPE T_ID optional_initializer 8 | T_TYPE T_ID T_LBRACKET expression T_RBRACKET 9 optional_initializer: T_ASSIGN expression 10 | empty 11 object_declaration: object_type T_ID T_LPAREN parameter_list_or_empty T_RPAREN 12 | object_type T_ID T_LBRACKET expression T_RBRACKET 13 object_type: T_TRIANGLE 14 | T_PIXMAP 15 | T_CIRCLE 16 | T_RECTANGLE 17 | T_TEXTBOX 18 parameter_list_or_empty: parameter_list 19 | empty 20 parameter_list: parameter_list T_COMMA parameter 21 | parameter 22 parameter: T_ID T_ASSIGN expression 23 forward_declaration: T_FORWARD T_ANIMATION T_ID T_LPAREN animation_parameter T_RPAREN 24 block_list: block_list block 25 | empty 26 block: initialization_block 27 | animation_block 28 | on_block 29 initialization_block: T_INITIALIZATION statement_block 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block 31 animation_parameter: object_type T_ID 32 check_animation_parameter: T_TRIANGLE T_ID 33 | T_PIXMAP T_ID 34 | T_CIRCLE T_ID 35 | T_RECTANGLE T_ID 36 | T_TEXTBOX T_ID 37 on_block: T_ON keystroke statement_block 38 keystroke: T_SPACE 39 | T_LEFTARROW 40 | T_RIGHTARROW 41 | T_UPARROW 42 | T_DOWNARROW 43 | T_F1 44 | T_KEY 45 if_block: statement_block_creator statement end_of_statement_block 46 | statement_block 47 statement_block: T_LBRACE statement_block_creator statement_list T_RBRACE end_of_statement_block 48 statement_block_creator: /* empty */ 49 end_of_statement_block: /* empty */ 50 statement_list: statement_list statement 51 | empty 52 statement: if_statement 53 | for_statement 54 | assign_statement T_SEMIC 55 | print_statement T_SEMIC 56 | exit_statement T_SEMIC 57 if_statement: T_IF T_LPAREN expression T_RPAREN if_block 58 | T_IF T_LPAREN expression T_RPAREN if_block T_ELSE if_block 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block 60 print_statement: T_PRINT T_LPAREN expression T_RPAREN 61 exit_statement: T_EXIT T_LPAREN expression T_RPAREN 62 assign_statement: variable T_ASSIGN expression 63 | variable T_PLUS_ASSIGN expression 64 | variable T_MINUS_ASSIGN expression 65 | variable T_DIVIDE_ASSIGN expression 66 | variable T_MOD_ASSIGN expression 67 | variable T_ASTERISK_ASSIGN 68 variable: T_ID 69 | T_ID T_LBRACKET expression T_RBRACKET 70 | T_ID T_PERIOD T_ID 71 | T_ID T_LBRACKET expression T_RBRACKET T_PERIOD T_ID 72 expression: primary_expression 73 | expression T_OR expression 74 | expression T_AND expression 75 | expression T_LESS_EQUAL expression 76 | expression T_GREATER_EQUAL expression 77 | expression T_LESS expression 78 | expression T_GREATER expression 79 | expression T_EQUAL expression 80 | expression T_NOT_EQUAL expression 81 | expression T_PLUS expression 82 | expression T_MINUS expression 83 | expression T_ASTERISK expression 84 | expression T_DIVIDE expression 85 | expression T_MOD expression 86 | T_MINUS expression 87 | T_NOT expression 88 | math_operator T_LPAREN expression T_RPAREN 89 | variable geometric_operator variable 90 primary_expression: T_LPAREN expression T_RPAREN 91 | variable 92 | T_INT_CONSTANT 93 | T_TRUE 94 | T_FALSE 95 | T_DOUBLE_CONSTANT 96 | T_STRING_CONSTANT 97 geometric_operator: T_TOUCHES 98 | T_NEAR 99 math_operator: T_SIN 100 | T_COS 101 | T_TAN 102 | T_ASIN 103 | T_ACOS 104 | T_ATAN 105 | T_SQRT 106 | T_ABS 107 | T_FLOOR 108 | T_RANDOM 109 empty: /* empty */ Terminals, with rules where they appear $end (0) 0 error (256) T_LPAREN (258) 11 23 30 57 58 59 60 61 88 90 T_RPAREN (259) 11 23 30 57 58 59 60 61 88 90 T_LBRACE (260) 30 47 T_RBRACE (261) 30 47 T_LBRACKET (262) 8 12 69 71 T_RBRACKET (263) 8 12 69 71 T_PLUS (264) 81 T_ASTERISK (265) 83 T_MINUS (266) 82 86 T_MOD (267) 85 T_COMMA (268) 20 T_PERIOD (269) 70 71 T_SEMIC (270) 4 5 6 54 55 56 59 T_DIVIDE (271) 84 T_DIVIDE_ASSIGN (272) 65 T_PLUS_ASSIGN (273) 63 T_MINUS_ASSIGN (274) 64 T_MOD_ASSIGN (275) 66 T_ASTERISK_ASSIGN (276) 67 T_ASSIGN (277) 9 22 62 T_AND (278) 74 T_OR (279) 73 T_EQUAL (280) 79 T_LESS_EQUAL (281) 75 T_GREATER_EQUAL (282) 76 T_NOT_EQUAL (283) 80 T_GREATER (284) 78 T_LESS (285) 77 T_IF (286) 57 58 T_ELSE (287) 58 T_FOR (288) 59 T_FORWARD (289) 23 T_INITIALIZATION (290) 29 T_ANIMATION (291) 23 30 T_EXIT (292) 61 T_ID (293) 7 8 11 12 22 23 30 31 32 33 34 35 36 68 69 70 71 T_PRINT (294) 60 T_ON (295) 37 T_NOT (296) 87 T_TRUE (297) 93 T_FALSE (298) 94 T_TOUCHES (299) 97 T_NEAR (300) 98 T_SIN (301) 99 T_COS (302) 100 T_TAN (303) 101 T_ASIN (304) 102 T_ACOS (305) 103 T_ATAN (306) 104 T_SQRT (307) 105 T_ABS (308) 106 T_FLOOR (309) 107 T_RANDOM (310) 108 T_TYPE (311) 7 8 T_TRIANGLE (312) 13 32 T_PIXMAP (313) 14 33 T_CIRCLE (314) 15 34 T_RECTANGLE (315) 16 35 T_TEXTBOX (316) 17 36 T_LEFTARROW (317) 39 T_RIGHTARROW (318) 40 T_DOWNARROW (319) 42 T_UPARROW (320) 41 T_F1 (321) 43 T_SPACE (322) 38 T_STRING_CONSTANT (323) 96 T_DOUBLE_CONSTANT (324) 95 T_INT_CONSTANT (325) 92 T_ERROR (326) T_KEY (327) 44 IF_NO_ELSE (328) UNARY_OPS (329) Nonterminals, with rules where they appear $accept (75) on left: 0 program (76) on left: 1, on right: 0 declaration_list (77) on left: 2 3, on right: 1 2 declaration (78) on left: 4 5 6, on right: 2 variable_declaration (79) on left: 7 8, on right: 4 optional_initializer (80) on left: 9 10, on right: 7 object_declaration (81) on left: 11 12, on right: 5 object_type (82) on left: 13 14 15 16 17, on right: 11 12 31 parameter_list_or_empty (83) on left: 18 19, on right: 11 parameter_list (84) on left: 20 21, on right: 18 20 parameter (85) on left: 22, on right: 20 21 forward_declaration (86) on left: 23, on right: 6 block_list (87) on left: 24 25, on right: 1 24 block (88) on left: 26 27 28, on right: 24 initialization_block (89) on left: 29, on right: 26 animation_block (90) on left: 30, on right: 27 animation_parameter (91) on left: 31, on right: 23 check_animation_parameter (92) on left: 32 33 34 35 36, on right: 30 on_block (93) on left: 37, on right: 28 keystroke (94) on left: 38 39 40 41 42 43 44, on right: 37 if_block (95) on left: 45 46, on right: 57 58 statement_block (96) on left: 47, on right: 29 37 46 59 statement_block_creator (97) on left: 48, on right: 45 47 59 end_of_statement_block (98) on left: 49, on right: 30 45 47 59 statement_list (99) on left: 50 51, on right: 30 47 50 statement (100) on left: 52 53 54 55 56, on right: 45 50 if_statement (101) on left: 57 58, on right: 52 for_statement (102) on left: 59, on right: 53 print_statement (103) on left: 60, on right: 55 exit_statement (104) on left: 61, on right: 56 assign_statement (105) on left: 62 63 64 65 66 67, on right: 54 59 variable (106) on left: 68 69 70 71, on right: 62 63 64 65 66 67 89 91 expression (107) on left: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 , on right: 8 9 12 22 57 58 59 60 61 62 63 64 65 66 69 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 90 primary_expression (108) on left: 90 91 92 93 94 95 96, on right: 72 geometric_operator (109) on left: 97 98, on right: 89 math_operator (110) on left: 99 100 101 102 103 104 105 106 107 108, on right: 88 empty (111) on left: 109, on right: 3 10 19 25 51 state 0 0 $accept: . program $end $default reduce using rule 109 (empty) program go to state 1 declaration_list go to state 2 empty go to state 3 state 1 0 $accept: program . $end $end shift, and go to state 4 state 2 1 program: declaration_list . block_list 2 declaration_list: declaration_list . declaration T_FORWARD shift, and go to state 5 T_TYPE shift, and go to state 6 T_TRIANGLE shift, and go to state 7 T_PIXMAP shift, and go to state 8 T_CIRCLE shift, and go to state 9 T_RECTANGLE shift, and go to state 10 T_TEXTBOX shift, and go to state 11 $default reduce using rule 109 (empty) declaration go to state 12 variable_declaration go to state 13 object_declaration go to state 14 object_type go to state 15 forward_declaration go to state 16 block_list go to state 17 empty go to state 18 state 3 3 declaration_list: empty . $default reduce using rule 3 (declaration_list) state 4 0 $accept: program $end . $default accept state 5 23 forward_declaration: T_FORWARD . T_ANIMATION T_ID T_LPAREN animation_parameter T_RPAREN T_ANIMATION shift, and go to state 19 state 6 7 variable_declaration: T_TYPE . T_ID optional_initializer 8 | T_TYPE . T_ID T_LBRACKET expression T_RBRACKET T_ID shift, and go to state 20 state 7 13 object_type: T_TRIANGLE . $default reduce using rule 13 (object_type) state 8 14 object_type: T_PIXMAP . $default reduce using rule 14 (object_type) state 9 15 object_type: T_CIRCLE . $default reduce using rule 15 (object_type) state 10 16 object_type: T_RECTANGLE . $default reduce using rule 16 (object_type) state 11 17 object_type: T_TEXTBOX . $default reduce using rule 17 (object_type) state 12 2 declaration_list: declaration_list declaration . $default reduce using rule 2 (declaration_list) state 13 4 declaration: variable_declaration . T_SEMIC T_SEMIC shift, and go to state 21 state 14 5 declaration: object_declaration . T_SEMIC T_SEMIC shift, and go to state 22 state 15 11 object_declaration: object_type . T_ID T_LPAREN parameter_list_or_empty T_RPAREN 12 | object_type . T_ID T_LBRACKET expression T_RBRACKET T_ID shift, and go to state 23 state 16 6 declaration: forward_declaration . T_SEMIC T_SEMIC shift, and go to state 24 state 17 1 program: declaration_list block_list . 24 block_list: block_list . block T_INITIALIZATION shift, and go to state 25 T_ANIMATION shift, and go to state 26 T_ON shift, and go to state 27 $default reduce using rule 1 (program) block go to state 28 initialization_block go to state 29 animation_block go to state 30 on_block go to state 31 state 18 25 block_list: empty . $default reduce using rule 25 (block_list) state 19 23 forward_declaration: T_FORWARD T_ANIMATION . T_ID T_LPAREN animation_parameter T_RPAREN T_ID shift, and go to state 32 state 20 7 variable_declaration: T_TYPE T_ID . optional_initializer 8 | T_TYPE T_ID . T_LBRACKET expression T_RBRACKET T_LBRACKET shift, and go to state 33 T_ASSIGN shift, and go to state 34 $default reduce using rule 109 (empty) optional_initializer go to state 35 empty go to state 36 state 21 4 declaration: variable_declaration T_SEMIC . $default reduce using rule 4 (declaration) state 22 5 declaration: object_declaration T_SEMIC . $default reduce using rule 5 (declaration) state 23 11 object_declaration: object_type T_ID . T_LPAREN parameter_list_or_empty T_RPAREN 12 | object_type T_ID . T_LBRACKET expression T_RBRACKET T_LPAREN shift, and go to state 37 T_LBRACKET shift, and go to state 38 state 24 6 declaration: forward_declaration T_SEMIC . $default reduce using rule 6 (declaration) state 25 29 initialization_block: T_INITIALIZATION . statement_block T_LBRACE shift, and go to state 39 statement_block go to state 40 state 26 30 animation_block: T_ANIMATION . T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block T_ID shift, and go to state 41 state 27 37 on_block: T_ON . keystroke statement_block T_LEFTARROW shift, and go to state 42 T_RIGHTARROW shift, and go to state 43 T_DOWNARROW shift, and go to state 44 T_UPARROW shift, and go to state 45 T_F1 shift, and go to state 46 T_SPACE shift, and go to state 47 T_KEY shift, and go to state 48 keystroke go to state 49 state 28 24 block_list: block_list block . $default reduce using rule 24 (block_list) state 29 26 block: initialization_block . $default reduce using rule 26 (block) state 30 27 block: animation_block . $default reduce using rule 27 (block) state 31 28 block: on_block . $default reduce using rule 28 (block) state 32 23 forward_declaration: T_FORWARD T_ANIMATION T_ID . T_LPAREN animation_parameter T_RPAREN T_LPAREN shift, and go to state 50 state 33 8 variable_declaration: T_TYPE T_ID T_LBRACKET . expression T_RBRACKET T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 71 primary_expression go to state 72 math_operator go to state 73 state 34 9 optional_initializer: T_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 74 primary_expression go to state 72 math_operator go to state 73 state 35 7 variable_declaration: T_TYPE T_ID optional_initializer . $default reduce using rule 7 (variable_declaration) state 36 10 optional_initializer: empty . $default reduce using rule 10 (optional_initializer) state 37 11 object_declaration: object_type T_ID T_LPAREN . parameter_list_or_empty T_RPAREN T_ID shift, and go to state 75 $default reduce using rule 109 (empty) parameter_list_or_empty go to state 76 parameter_list go to state 77 parameter go to state 78 empty go to state 79 state 38 12 object_declaration: object_type T_ID T_LBRACKET . expression T_RBRACKET T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 80 primary_expression go to state 72 math_operator go to state 73 state 39 47 statement_block: T_LBRACE . statement_block_creator statement_list T_RBRACE end_of_statement_block $default reduce using rule 48 (statement_block_creator) statement_block_creator go to state 81 state 40 29 initialization_block: T_INITIALIZATION statement_block . $default reduce using rule 29 (initialization_block) state 41 30 animation_block: T_ANIMATION T_ID . T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block T_LPAREN shift, and go to state 82 state 42 39 keystroke: T_LEFTARROW . $default reduce using rule 39 (keystroke) state 43 40 keystroke: T_RIGHTARROW . $default reduce using rule 40 (keystroke) state 44 42 keystroke: T_DOWNARROW . $default reduce using rule 42 (keystroke) state 45 41 keystroke: T_UPARROW . $default reduce using rule 41 (keystroke) state 46 43 keystroke: T_F1 . $default reduce using rule 43 (keystroke) state 47 38 keystroke: T_SPACE . $default reduce using rule 38 (keystroke) state 48 44 keystroke: T_KEY . $default reduce using rule 44 (keystroke) state 49 37 on_block: T_ON keystroke . statement_block T_LBRACE shift, and go to state 39 statement_block go to state 83 state 50 23 forward_declaration: T_FORWARD T_ANIMATION T_ID T_LPAREN . animation_parameter T_RPAREN T_TRIANGLE shift, and go to state 7 T_PIXMAP shift, and go to state 8 T_CIRCLE shift, and go to state 9 T_RECTANGLE shift, and go to state 10 T_TEXTBOX shift, and go to state 11 object_type go to state 84 animation_parameter go to state 85 state 51 90 primary_expression: T_LPAREN . expression T_RPAREN T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 86 primary_expression go to state 72 math_operator go to state 73 state 52 86 expression: T_MINUS . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 87 primary_expression go to state 72 math_operator go to state 73 state 53 68 variable: T_ID . 69 | T_ID . T_LBRACKET expression T_RBRACKET 70 | T_ID . T_PERIOD T_ID 71 | T_ID . T_LBRACKET expression T_RBRACKET T_PERIOD T_ID T_LBRACKET shift, and go to state 88 T_PERIOD shift, and go to state 89 $default reduce using rule 68 (variable) state 54 87 expression: T_NOT . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 90 primary_expression go to state 72 math_operator go to state 73 state 55 93 primary_expression: T_TRUE . $default reduce using rule 93 (primary_expression) state 56 94 primary_expression: T_FALSE . $default reduce using rule 94 (primary_expression) state 57 99 math_operator: T_SIN . $default reduce using rule 99 (math_operator) state 58 100 math_operator: T_COS . $default reduce using rule 100 (math_operator) state 59 101 math_operator: T_TAN . $default reduce using rule 101 (math_operator) state 60 102 math_operator: T_ASIN . $default reduce using rule 102 (math_operator) state 61 103 math_operator: T_ACOS . $default reduce using rule 103 (math_operator) state 62 104 math_operator: T_ATAN . $default reduce using rule 104 (math_operator) state 63 105 math_operator: T_SQRT . $default reduce using rule 105 (math_operator) state 64 106 math_operator: T_ABS . $default reduce using rule 106 (math_operator) state 65 107 math_operator: T_FLOOR . $default reduce using rule 107 (math_operator) state 66 108 math_operator: T_RANDOM . $default reduce using rule 108 (math_operator) state 67 96 primary_expression: T_STRING_CONSTANT . $default reduce using rule 96 (primary_expression) state 68 95 primary_expression: T_DOUBLE_CONSTANT . $default reduce using rule 95 (primary_expression) state 69 92 primary_expression: T_INT_CONSTANT . $default reduce using rule 92 (primary_expression) state 70 89 expression: variable . geometric_operator variable 91 primary_expression: variable . T_TOUCHES shift, and go to state 91 T_NEAR shift, and go to state 92 $default reduce using rule 91 (primary_expression) geometric_operator go to state 93 state 71 8 variable_declaration: T_TYPE T_ID T_LBRACKET expression . T_RBRACKET 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RBRACKET shift, and go to state 94 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 72 72 expression: primary_expression . $default reduce using rule 72 (expression) state 73 88 expression: math_operator . T_LPAREN expression T_RPAREN T_LPAREN shift, and go to state 108 state 74 9 optional_initializer: T_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 9 (optional_initializer) state 75 22 parameter: T_ID . T_ASSIGN expression T_ASSIGN shift, and go to state 109 state 76 11 object_declaration: object_type T_ID T_LPAREN parameter_list_or_empty . T_RPAREN T_RPAREN shift, and go to state 110 state 77 18 parameter_list_or_empty: parameter_list . 20 parameter_list: parameter_list . T_COMMA parameter T_COMMA shift, and go to state 111 $default reduce using rule 18 (parameter_list_or_empty) state 78 21 parameter_list: parameter . $default reduce using rule 21 (parameter_list) state 79 19 parameter_list_or_empty: empty . $default reduce using rule 19 (parameter_list_or_empty) state 80 12 object_declaration: object_type T_ID T_LBRACKET expression . T_RBRACKET 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RBRACKET shift, and go to state 112 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 81 47 statement_block: T_LBRACE statement_block_creator . statement_list T_RBRACE end_of_statement_block $default reduce using rule 109 (empty) statement_list go to state 113 empty go to state 114 state 82 30 animation_block: T_ANIMATION T_ID T_LPAREN . check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block T_TRIANGLE shift, and go to state 115 T_PIXMAP shift, and go to state 116 T_CIRCLE shift, and go to state 117 T_RECTANGLE shift, and go to state 118 T_TEXTBOX shift, and go to state 119 check_animation_parameter go to state 120 state 83 37 on_block: T_ON keystroke statement_block . $default reduce using rule 37 (on_block) state 84 31 animation_parameter: object_type . T_ID T_ID shift, and go to state 121 state 85 23 forward_declaration: T_FORWARD T_ANIMATION T_ID T_LPAREN animation_parameter . T_RPAREN T_RPAREN shift, and go to state 122 state 86 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression 90 primary_expression: T_LPAREN expression . T_RPAREN T_RPAREN shift, and go to state 123 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 87 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression 86 | T_MINUS expression . $default reduce using rule 86 (expression) state 88 69 variable: T_ID T_LBRACKET . expression T_RBRACKET 71 | T_ID T_LBRACKET . expression T_RBRACKET T_PERIOD T_ID T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 124 primary_expression go to state 72 math_operator go to state 73 state 89 70 variable: T_ID T_PERIOD . T_ID T_ID shift, and go to state 125 state 90 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression 87 | T_NOT expression . $default reduce using rule 87 (expression) state 91 97 geometric_operator: T_TOUCHES . $default reduce using rule 97 (geometric_operator) state 92 98 geometric_operator: T_NEAR . $default reduce using rule 98 (geometric_operator) state 93 89 expression: variable geometric_operator . variable T_ID shift, and go to state 53 variable go to state 126 state 94 8 variable_declaration: T_TYPE T_ID T_LBRACKET expression T_RBRACKET . $default reduce using rule 8 (variable_declaration) state 95 81 expression: expression T_PLUS . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 127 primary_expression go to state 72 math_operator go to state 73 state 96 83 expression: expression T_ASTERISK . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 128 primary_expression go to state 72 math_operator go to state 73 state 97 82 expression: expression T_MINUS . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 129 primary_expression go to state 72 math_operator go to state 73 state 98 85 expression: expression T_MOD . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 130 primary_expression go to state 72 math_operator go to state 73 state 99 84 expression: expression T_DIVIDE . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 131 primary_expression go to state 72 math_operator go to state 73 state 100 74 expression: expression T_AND . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 132 primary_expression go to state 72 math_operator go to state 73 state 101 73 expression: expression T_OR . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 133 primary_expression go to state 72 math_operator go to state 73 state 102 79 expression: expression T_EQUAL . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 134 primary_expression go to state 72 math_operator go to state 73 state 103 75 expression: expression T_LESS_EQUAL . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 135 primary_expression go to state 72 math_operator go to state 73 state 104 76 expression: expression T_GREATER_EQUAL . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 136 primary_expression go to state 72 math_operator go to state 73 state 105 80 expression: expression T_NOT_EQUAL . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 137 primary_expression go to state 72 math_operator go to state 73 state 106 78 expression: expression T_GREATER . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 138 primary_expression go to state 72 math_operator go to state 73 state 107 77 expression: expression T_LESS . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 139 primary_expression go to state 72 math_operator go to state 73 state 108 88 expression: math_operator T_LPAREN . expression T_RPAREN T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 140 primary_expression go to state 72 math_operator go to state 73 state 109 22 parameter: T_ID T_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 141 primary_expression go to state 72 math_operator go to state 73 state 110 11 object_declaration: object_type T_ID T_LPAREN parameter_list_or_empty T_RPAREN . $default reduce using rule 11 (object_declaration) state 111 20 parameter_list: parameter_list T_COMMA . parameter T_ID shift, and go to state 75 parameter go to state 142 state 112 12 object_declaration: object_type T_ID T_LBRACKET expression T_RBRACKET . $default reduce using rule 12 (object_declaration) state 113 47 statement_block: T_LBRACE statement_block_creator statement_list . T_RBRACE end_of_statement_block 50 statement_list: statement_list . statement T_RBRACE shift, and go to state 143 T_IF shift, and go to state 144 T_FOR shift, and go to state 145 T_EXIT shift, and go to state 146 T_ID shift, and go to state 53 T_PRINT shift, and go to state 147 statement go to state 148 if_statement go to state 149 for_statement go to state 150 print_statement go to state 151 exit_statement go to state 152 assign_statement go to state 153 variable go to state 154 state 114 51 statement_list: empty . $default reduce using rule 51 (statement_list) state 115 32 check_animation_parameter: T_TRIANGLE . T_ID T_ID shift, and go to state 155 state 116 33 check_animation_parameter: T_PIXMAP . T_ID T_ID shift, and go to state 156 state 117 34 check_animation_parameter: T_CIRCLE . T_ID T_ID shift, and go to state 157 state 118 35 check_animation_parameter: T_RECTANGLE . T_ID T_ID shift, and go to state 158 state 119 36 check_animation_parameter: T_TEXTBOX . T_ID T_ID shift, and go to state 159 state 120 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter . T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block T_RPAREN shift, and go to state 160 state 121 31 animation_parameter: object_type T_ID . $default reduce using rule 31 (animation_parameter) state 122 23 forward_declaration: T_FORWARD T_ANIMATION T_ID T_LPAREN animation_parameter T_RPAREN . $default reduce using rule 23 (forward_declaration) state 123 90 primary_expression: T_LPAREN expression T_RPAREN . $default reduce using rule 90 (primary_expression) state 124 69 variable: T_ID T_LBRACKET expression . T_RBRACKET 71 | T_ID T_LBRACKET expression . T_RBRACKET T_PERIOD T_ID 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RBRACKET shift, and go to state 161 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 125 70 variable: T_ID T_PERIOD T_ID . $default reduce using rule 70 (variable) state 126 89 expression: variable geometric_operator variable . $default reduce using rule 89 (expression) state 127 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 81 | expression T_PLUS expression . 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_ASTERISK shift, and go to state 96 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 81 (expression) state 128 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 83 | expression T_ASTERISK expression . 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression $default reduce using rule 83 (expression) state 129 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 82 | expression T_MINUS expression . 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_ASTERISK shift, and go to state 96 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 82 (expression) state 130 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression 85 | expression T_MOD expression . $default reduce using rule 85 (expression) state 131 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 84 | expression T_DIVIDE expression . 85 | expression . T_MOD expression $default reduce using rule 84 (expression) state 132 73 expression: expression . T_OR expression 74 | expression . T_AND expression 74 | expression T_AND expression . 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 74 (expression) state 133 73 expression: expression . T_OR expression 73 | expression T_OR expression . 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 73 (expression) state 134 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 79 | expression T_EQUAL expression . 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 79 (expression) state 135 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 75 | expression T_LESS_EQUAL expression . 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 75 (expression) state 136 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 76 | expression T_GREATER_EQUAL expression . 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 76 (expression) state 137 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 80 | expression T_NOT_EQUAL expression . 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 80 (expression) state 138 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 78 | expression T_GREATER expression . 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 78 (expression) state 139 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 77 | expression T_LESS expression . 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 $default reduce using rule 77 (expression) state 140 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression 88 | math_operator T_LPAREN expression . T_RPAREN T_RPAREN shift, and go to state 162 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 141 22 parameter: T_ID T_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 22 (parameter) state 142 20 parameter_list: parameter_list T_COMMA parameter . $default reduce using rule 20 (parameter_list) state 143 47 statement_block: T_LBRACE statement_block_creator statement_list T_RBRACE . end_of_statement_block $default reduce using rule 49 (end_of_statement_block) end_of_statement_block go to state 163 state 144 57 if_statement: T_IF . T_LPAREN expression T_RPAREN if_block 58 | T_IF . T_LPAREN expression T_RPAREN if_block T_ELSE if_block T_LPAREN shift, and go to state 164 state 145 59 for_statement: T_FOR . T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block T_LPAREN shift, and go to state 165 state 146 61 exit_statement: T_EXIT . T_LPAREN expression T_RPAREN T_LPAREN shift, and go to state 166 state 147 60 print_statement: T_PRINT . T_LPAREN expression T_RPAREN T_LPAREN shift, and go to state 167 state 148 50 statement_list: statement_list statement . $default reduce using rule 50 (statement_list) state 149 52 statement: if_statement . $default reduce using rule 52 (statement) state 150 53 statement: for_statement . $default reduce using rule 53 (statement) state 151 55 statement: print_statement . T_SEMIC T_SEMIC shift, and go to state 168 state 152 56 statement: exit_statement . T_SEMIC T_SEMIC shift, and go to state 169 state 153 54 statement: assign_statement . T_SEMIC T_SEMIC shift, and go to state 170 state 154 62 assign_statement: variable . T_ASSIGN expression 63 | variable . T_PLUS_ASSIGN expression 64 | variable . T_MINUS_ASSIGN expression 65 | variable . T_DIVIDE_ASSIGN expression 66 | variable . T_MOD_ASSIGN expression 67 | variable . T_ASTERISK_ASSIGN T_DIVIDE_ASSIGN shift, and go to state 171 T_PLUS_ASSIGN shift, and go to state 172 T_MINUS_ASSIGN shift, and go to state 173 T_MOD_ASSIGN shift, and go to state 174 T_ASTERISK_ASSIGN shift, and go to state 175 T_ASSIGN shift, and go to state 176 state 155 32 check_animation_parameter: T_TRIANGLE T_ID . $default reduce using rule 32 (check_animation_parameter) state 156 33 check_animation_parameter: T_PIXMAP T_ID . $default reduce using rule 33 (check_animation_parameter) state 157 34 check_animation_parameter: T_CIRCLE T_ID . $default reduce using rule 34 (check_animation_parameter) state 158 35 check_animation_parameter: T_RECTANGLE T_ID . $default reduce using rule 35 (check_animation_parameter) state 159 36 check_animation_parameter: T_TEXTBOX T_ID . $default reduce using rule 36 (check_animation_parameter) state 160 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN . T_LBRACE statement_list T_RBRACE end_of_statement_block T_LBRACE shift, and go to state 177 state 161 69 variable: T_ID T_LBRACKET expression T_RBRACKET . 71 | T_ID T_LBRACKET expression T_RBRACKET . T_PERIOD T_ID T_PERIOD shift, and go to state 178 $default reduce using rule 69 (variable) state 162 88 expression: math_operator T_LPAREN expression T_RPAREN . $default reduce using rule 88 (expression) state 163 47 statement_block: T_LBRACE statement_block_creator statement_list T_RBRACE end_of_statement_block . $default reduce using rule 47 (statement_block) state 164 57 if_statement: T_IF T_LPAREN . expression T_RPAREN if_block 58 | T_IF T_LPAREN . expression T_RPAREN if_block T_ELSE if_block T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 179 primary_expression go to state 72 math_operator go to state 73 state 165 59 for_statement: T_FOR T_LPAREN . statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block $default reduce using rule 48 (statement_block_creator) statement_block_creator go to state 180 state 166 61 exit_statement: T_EXIT T_LPAREN . expression T_RPAREN T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 181 primary_expression go to state 72 math_operator go to state 73 state 167 60 print_statement: T_PRINT T_LPAREN . expression T_RPAREN T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 182 primary_expression go to state 72 math_operator go to state 73 state 168 55 statement: print_statement T_SEMIC . $default reduce using rule 55 (statement) state 169 56 statement: exit_statement T_SEMIC . $default reduce using rule 56 (statement) state 170 54 statement: assign_statement T_SEMIC . $default reduce using rule 54 (statement) state 171 65 assign_statement: variable T_DIVIDE_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 183 primary_expression go to state 72 math_operator go to state 73 state 172 63 assign_statement: variable T_PLUS_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 184 primary_expression go to state 72 math_operator go to state 73 state 173 64 assign_statement: variable T_MINUS_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 185 primary_expression go to state 72 math_operator go to state 73 state 174 66 assign_statement: variable T_MOD_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 186 primary_expression go to state 72 math_operator go to state 73 state 175 67 assign_statement: variable T_ASTERISK_ASSIGN . $default reduce using rule 67 (assign_statement) state 176 62 assign_statement: variable T_ASSIGN . expression T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 187 primary_expression go to state 72 math_operator go to state 73 state 177 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE . statement_list T_RBRACE end_of_statement_block $default reduce using rule 109 (empty) statement_list go to state 188 empty go to state 114 state 178 71 variable: T_ID T_LBRACKET expression T_RBRACKET T_PERIOD . T_ID T_ID shift, and go to state 189 state 179 57 if_statement: T_IF T_LPAREN expression . T_RPAREN if_block 58 | T_IF T_LPAREN expression . T_RPAREN if_block T_ELSE if_block 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RPAREN shift, and go to state 190 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 180 59 for_statement: T_FOR T_LPAREN statement_block_creator . assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block T_ID shift, and go to state 53 assign_statement go to state 191 variable go to state 154 state 181 61 exit_statement: T_EXIT T_LPAREN expression . T_RPAREN 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RPAREN shift, and go to state 192 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 182 60 print_statement: T_PRINT T_LPAREN expression . T_RPAREN 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_RPAREN shift, and go to state 193 T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 183 65 assign_statement: variable T_DIVIDE_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 65 (assign_statement) state 184 63 assign_statement: variable T_PLUS_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 63 (assign_statement) state 185 64 assign_statement: variable T_MINUS_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 64 (assign_statement) state 186 66 assign_statement: variable T_MOD_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 66 (assign_statement) state 187 62 assign_statement: variable T_ASSIGN expression . 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 $default reduce using rule 62 (assign_statement) state 188 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list . T_RBRACE end_of_statement_block 50 statement_list: statement_list . statement T_RBRACE shift, and go to state 194 T_IF shift, and go to state 144 T_FOR shift, and go to state 145 T_EXIT shift, and go to state 146 T_ID shift, and go to state 53 T_PRINT shift, and go to state 147 statement go to state 148 if_statement go to state 149 for_statement go to state 150 print_statement go to state 151 exit_statement go to state 152 assign_statement go to state 153 variable go to state 154 state 189 71 variable: T_ID T_LBRACKET expression T_RBRACKET T_PERIOD T_ID . $default reduce using rule 71 (variable) state 190 57 if_statement: T_IF T_LPAREN expression T_RPAREN . if_block 58 | T_IF T_LPAREN expression T_RPAREN . if_block T_ELSE if_block T_LBRACE shift, and go to state 39 $default reduce using rule 48 (statement_block_creator) if_block go to state 195 statement_block go to state 196 statement_block_creator go to state 197 state 191 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement . end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block $default reduce using rule 49 (end_of_statement_block) end_of_statement_block go to state 198 state 192 61 exit_statement: T_EXIT T_LPAREN expression T_RPAREN . $default reduce using rule 61 (exit_statement) state 193 60 print_statement: T_PRINT T_LPAREN expression T_RPAREN . $default reduce using rule 60 (print_statement) state 194 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE . end_of_statement_block $default reduce using rule 49 (end_of_statement_block) end_of_statement_block go to state 199 state 195 57 if_statement: T_IF T_LPAREN expression T_RPAREN if_block . 58 | T_IF T_LPAREN expression T_RPAREN if_block . T_ELSE if_block T_ELSE shift, and go to state 200 $default reduce using rule 57 (if_statement) state 196 46 if_block: statement_block . $default reduce using rule 46 (if_block) state 197 45 if_block: statement_block_creator . statement end_of_statement_block T_IF shift, and go to state 144 T_FOR shift, and go to state 145 T_EXIT shift, and go to state 146 T_ID shift, and go to state 53 T_PRINT shift, and go to state 147 statement go to state 201 if_statement go to state 149 for_statement go to state 150 print_statement go to state 151 exit_statement go to state 152 assign_statement go to state 153 variable go to state 154 state 198 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block . T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block T_SEMIC shift, and go to state 202 state 199 30 animation_block: T_ANIMATION T_ID T_LPAREN check_animation_parameter T_RPAREN T_LBRACE statement_list T_RBRACE end_of_statement_block . $default reduce using rule 30 (animation_block) state 200 58 if_statement: T_IF T_LPAREN expression T_RPAREN if_block T_ELSE . if_block T_LBRACE shift, and go to state 39 $default reduce using rule 48 (statement_block_creator) if_block go to state 203 statement_block go to state 196 statement_block_creator go to state 197 state 201 45 if_block: statement_block_creator statement . end_of_statement_block $default reduce using rule 49 (end_of_statement_block) end_of_statement_block go to state 204 state 202 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC . expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block T_LPAREN shift, and go to state 51 T_MINUS shift, and go to state 52 T_ID shift, and go to state 53 T_NOT shift, and go to state 54 T_TRUE shift, and go to state 55 T_FALSE shift, and go to state 56 T_SIN shift, and go to state 57 T_COS shift, and go to state 58 T_TAN shift, and go to state 59 T_ASIN shift, and go to state 60 T_ACOS shift, and go to state 61 T_ATAN shift, and go to state 62 T_SQRT shift, and go to state 63 T_ABS shift, and go to state 64 T_FLOOR shift, and go to state 65 T_RANDOM shift, and go to state 66 T_STRING_CONSTANT shift, and go to state 67 T_DOUBLE_CONSTANT shift, and go to state 68 T_INT_CONSTANT shift, and go to state 69 variable go to state 70 expression go to state 205 primary_expression go to state 72 math_operator go to state 73 state 203 58 if_statement: T_IF T_LPAREN expression T_RPAREN if_block T_ELSE if_block . $default reduce using rule 58 (if_statement) state 204 45 if_block: statement_block_creator statement end_of_statement_block . $default reduce using rule 45 (if_block) state 205 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression . T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block 73 expression: expression . T_OR expression 74 | expression . T_AND expression 75 | expression . T_LESS_EQUAL expression 76 | expression . T_GREATER_EQUAL expression 77 | expression . T_LESS expression 78 | expression . T_GREATER expression 79 | expression . T_EQUAL expression 80 | expression . T_NOT_EQUAL expression 81 | expression . T_PLUS expression 82 | expression . T_MINUS expression 83 | expression . T_ASTERISK expression 84 | expression . T_DIVIDE expression 85 | expression . T_MOD expression T_PLUS shift, and go to state 95 T_ASTERISK shift, and go to state 96 T_MINUS shift, and go to state 97 T_MOD shift, and go to state 98 T_SEMIC shift, and go to state 206 T_DIVIDE shift, and go to state 99 T_AND shift, and go to state 100 T_OR shift, and go to state 101 T_EQUAL shift, and go to state 102 T_LESS_EQUAL shift, and go to state 103 T_GREATER_EQUAL shift, and go to state 104 T_NOT_EQUAL shift, and go to state 105 T_GREATER shift, and go to state 106 T_LESS shift, and go to state 107 state 206 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC . statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block $default reduce using rule 48 (statement_block_creator) statement_block_creator go to state 207 state 207 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator . assign_statement end_of_statement_block T_RPAREN statement_block T_ID shift, and go to state 53 assign_statement go to state 208 variable go to state 154 state 208 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement . end_of_statement_block T_RPAREN statement_block $default reduce using rule 49 (end_of_statement_block) end_of_statement_block go to state 209 state 209 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block . T_RPAREN statement_block T_RPAREN shift, and go to state 210 state 210 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN . statement_block T_LBRACE shift, and go to state 39 statement_block go to state 211 state 211 59 for_statement: T_FOR T_LPAREN statement_block_creator assign_statement end_of_statement_block T_SEMIC expression T_SEMIC statement_block_creator assign_statement end_of_statement_block T_RPAREN statement_block . $default reduce using rule 59 (for_statement)