input grammar: neblina.y
DNAME ENDFILE ENDPROG INCLUDE DOLAR PLUS '^'
State 23 conflicts: 2 reduce/reduce State 26 conflicts: 1 shift/reduce State 34 conflicts: 1 reduce/reduce State 39 conflicts: 2 shift/reduce State 42 conflicts: 1 shift/reduce State 54 conflicts: 4 reduce/reduce State 61 conflicts: 4 reduce/reduce State 74 conflicts: 1 shift/reduce State 79 conflicts: 1 shift/reduce State 205 conflicts: 2 shift/reduce
0 $accept → program $end 1 program → ε 2 | stms function_list 3 stms → ε 4 | stms stm EOL 5 | stms stm ';' 6 | stms stm ';' EOL 7 stm → ε 8 | NAME INCR 9 | NAME DECR 10 | memcpy 11 | RETURN argparams 12 | PRINT exp 13 | PRINT str 14 | if_stm 15 $@1 → ε 16 $@2 → ε 17 $@3 → ε 18 $@4 → ε 19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | USING NAME 21 $@5 → ε 22 $@6 → ε 23 stm → WHILE $@5 cond $@6 stms END 24 | callfunc 25 | rparams ASSIG argparams 26 | exp 27 if_stm → if_part END 28 | else_part 29 $@7 → ε 30 if_part → IF cond $@7 stms 31 $@8 → ε 32 else_part → if_part ELSE $@8 stms END 33 $@9 → ε 34 callfunc → NAME $@9 '(' argparams ')' 35 rparams → ε 36 | NAME 37 | NAME '[' exp ']' 38 | NAME '[' exp ',' exp ']' 39 | rparams ',' NAME 40 | rparams ',' NAME '[' exp ']' 41 | rparams ',' NAME '[' exp ',' exp ']' 42 function_list → function lines 43 | function_list function lines 44 lines → ε 45 | EOL 46 | lines EOL 47 $@10 → ε 48 $@11 → ε 49 function → FUNCTION NAME $@10 '(' rparams ')' $@11 stms END 50 argparams → ε 51 | argtype 52 | argparams ',' argtype 53 argtype → callfunc 54 | str 55 | number 56 | exp 57 | vector_declare 58 | matrix_declare 59 vector_declare → data_type '[' exp ']' 60 | NAME '[' exp TWO_DOTS exp ']' 61 | data_type '[' ']' '(' argparams ')' 62 argmov_value → NAME 63 | vector_declare 64 | matrix_declare 65 argmov → argmov_value 66 | argmov ',' argmov_value 67 memcpy → TODEV argmov 68 | TOHOST argmov 69 matrix_declare → data_type '[' exp ',' exp ']' 70 | SPARSE data_type '[' exp ',' exp ']' 71 exp → exp '+' exp 72 | exp '-' exp 73 | exp '*' exp 74 | exp '/' exp 75 | exp '&' exp 76 | exp '|' exp 77 | exp '%' exp 78 | exp SHIFTR exp 79 | exp SHIFTL exp 80 | '(' exp ')' 81 | callfunc 82 | number 83 | NAME 84 | NAME '[' exp ']' 85 | NAME '[' exp ',' exp ']' 86 | '-' exp 87 | '+' exp 88 cond → '(' cond ')' 89 | NEGT cond 90 | expcond LESSEQ expcond 91 | expcond GREATEQ expcond 92 | expcond '>' expcond 93 | expcond '<' expcond 94 | expcond C_EQ expcond 95 | expcond DIFF expcond 96 | cond AND cond 97 | cond OR cond 98 expcond → exp 99 | str 100 str → STRING 101 | str '+' str 102 | str '+' exp 103 | exp '+' str 104 number → INT 105 | FLOAT 106 data_type → DT_INT 107 | DT_FLOAT 108 | DT_STRING 109 | DT_COMPLEX
$end (0) 0 '%' (37) 77 '&' (38) 75 '(' (40) 34 49 61 80 88 ')' (41) 34 49 61 80 88 '*' (42) 73 '+' (43) 71 87 101 102 103 ',' (44) 38 39 40 41 52 66 69 70 85 '-' (45) 72 86 '/' (47) 74 ';' (59) 5 6 '<' (60) 93 '>' (62) 92 '[' (91) 37 38 40 41 59 60 61 69 70 84 85 ']' (93) 37 38 40 41 59 60 61 69 70 84 85 '^' (94) '|' (124) 76 error (256) NAME (258) 8 9 19 20 34 36 37 38 39 40 41 49 60 62 83 84 85 DNAME (259) STRING (260) 100 INT (261) 104 FLOAT (262) 105 IF (263) 30 ELSE (264) 32 FOR (265) 19 WHILE (266) 23 FUNCTION (267) 49 NEGT (268) 89 EOL (269) 4 6 45 46 SPARSE (270) 70 ENDFILE (271) PRINT (272) 12 13 RETURN (273) 11 END (274) 19 23 27 32 49 SHIFTL (275) 79 SHIFTR (276) 78 AND (277) 96 OR (278) 97 C_EQ (279) 94 INCR (280) 8 DECR (281) 9 ENDPROG (282) INCLUDE (283) DT_INT (284) 106 DT_FLOAT (285) 107 DT_STRING (286) 108 DT_COMPLEX (287) 109 USING (288) 20 DOLAR (289) LESSEQ (290) 90 DIFF (291) 95 GREATEQ (292) 91 TODEV (293) 67 TOHOST (294) 68 PLUS (295) ASSIG (296) 19 25 TWO_DOTS (297) 19 60 NOT (298)
$accept (60) on left: 0 program (61) on left: 1 2 on right: 0 stms (62) on left: 3 4 5 6 on right: 2 4 5 6 19 23 30 32 49 stm (63) on left: 7 8 9 10 11 12 13 14 19 20 23 24 25 26 on right: 4 5 6 $@1 (64) on left: 15 on right: 19 $@2 (65) on left: 16 on right: 19 $@3 (66) on left: 17 on right: 19 $@4 (67) on left: 18 on right: 19 $@5 (68) on left: 21 on right: 23 $@6 (69) on left: 22 on right: 23 if_stm (70) on left: 27 28 on right: 14 if_part (71) on left: 30 on right: 27 32 $@7 (72) on left: 29 on right: 30 else_part (73) on left: 32 on right: 28 $@8 (74) on left: 31 on right: 32 callfunc (75) on left: 34 on right: 24 53 81 $@9 (76) on left: 33 on right: 34 rparams (77) on left: 35 36 37 38 39 40 41 on right: 25 39 40 41 49 function_list (78) on left: 42 43 on right: 2 43 lines (79) on left: 44 45 46 on right: 42 43 46 function (80) on left: 49 on right: 42 43 $@10 (81) on left: 47 on right: 49 $@11 (82) on left: 48 on right: 49 argparams (83) on left: 50 51 52 on right: 11 25 34 52 61 argtype (84) on left: 53 54 55 56 57 58 on right: 51 52 vector_declare (85) on left: 59 60 61 on right: 57 63 argmov_value (86) on left: 62 63 64 on right: 65 66 argmov (87) on left: 65 66 on right: 66 67 68 memcpy (88) on left: 67 68 on right: 10 matrix_declare (89) on left: 69 70 on right: 58 64 exp (90) on left: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 on right: 12 19 26 37 38 40 41 56 59 60 69 70 71 72 73 74 75 76 77 78 79 80 84 85 86 87 98 102 103 cond (91) on left: 88 89 90 91 92 93 94 95 96 97 on right: 23 30 88 89 96 97 expcond (92) on left: 98 99 on right: 90 91 92 93 94 95 str (93) on left: 100 101 102 103 on right: 13 54 99 101 102 103 number (94) on left: 104 105 on right: 55 82 data_type (95) on left: 106 107 108 109 on right: 59 61 69 70
0 $accept → . program $end 1 program → . [$end] 2 | . stms function_list 3 stms → . [NAME, INT, FLOAT, IF, FOR, WHILE, FUNCTION, EOL, PRINT, RETURN, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL $end reduce using rule 1 (program) $default reduce using rule 3 (stms) program go to state 1 stms go to state 2
0 $accept → program . $end $end shift, and go to state 3
2 program → stms . function_list 4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 32 else_part → . if_part ELSE $@8 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 42 function_list → . function lines 43 | . function_list function lines 49 function → . FUNCTION NAME $@10 '(' rparams ')' $@11 stms END 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 FUNCTION shift, and go to state 10 PRINT shift, and go to state 11 RETURN shift, and go to state 12 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 function_list go to state 25 function go to state 26 memcpy go to state 27 exp go to state 28 number go to state 29
0 $accept → program $end . $default accept
8 stm → NAME . INCR 9 | NAME . DECR 33 $@9 → . ['('] 34 callfunc → NAME . $@9 '(' argparams ')' 36 rparams → NAME . [ASSIG, ','] 37 | NAME . '[' exp ']' 38 | NAME . '[' exp ',' exp ']' 83 exp → NAME . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] 84 | NAME . '[' exp ']' 85 | NAME . '[' exp ',' exp ']' INCR shift, and go to state 30 DECR shift, and go to state 31 '[' shift, and go to state 32 ASSIG reduce using rule 36 (rparams) '(' reduce using rule 33 ($@9) ',' reduce using rule 36 (rparams) $default reduce using rule 83 (exp) $@9 go to state 33
104 number → INT . $default reduce using rule 104 (number)
105 number → FLOAT . $default reduce using rule 105 (number)
30 if_part → IF . cond $@7 stms 34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 89 | . NEGT cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 97 | . cond OR cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 39 cond go to state 40 expcond go to state 41 str go to state 42 number go to state 29
15 $@1 → . 19 stm → FOR . $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END $default reduce using rule 15 ($@1) $@1 go to state 43
21 $@5 → . 23 stm → WHILE . $@5 cond $@6 stms END $default reduce using rule 21 ($@5) $@5 go to state 44
49 function → FUNCTION . NAME $@10 '(' rparams ')' $@11 stms END NAME shift, and go to state 45
12 stm → PRINT . exp 13 | PRINT . str 34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 46 str go to state 47 number go to state 29
11 stm → RETURN . argparams 34 callfunc → . NAME $@9 '(' argparams ')' 50 argparams → . [EOL, ';', ','] 51 | . argtype 52 | . argparams ',' argtype 53 argtype → . callfunc 54 | . str 55 | . number 56 | . exp 57 | . vector_declare 58 | . matrix_declare 59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 48 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 $default reduce using rule 50 (argparams) callfunc go to state 54 argparams go to state 55 argtype go to state 56 vector_declare go to state 57 matrix_declare go to state 58 exp go to state 59 str go to state 60 number go to state 61 data_type go to state 62
20 stm → USING . NAME NAME shift, and go to state 63
59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 62 argmov_value → . NAME 63 | . vector_declare 64 | . matrix_declare 65 argmov → . argmov_value 66 | . argmov ',' argmov_value 67 memcpy → TODEV . argmov 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 64 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 vector_declare go to state 65 argmov_value go to state 66 argmov go to state 67 matrix_declare go to state 68 data_type go to state 62
59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 62 argmov_value → . NAME 63 | . vector_declare 64 | . matrix_declare 65 argmov → . argmov_value 66 | . argmov ',' argmov_value 68 memcpy → TOHOST . argmov 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 64 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 vector_declare go to state 65 argmov_value go to state 66 argmov go to state 69 matrix_declare go to state 68 data_type go to state 62
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 86 | '-' . exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 70 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 87 | '+' . exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 71 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 80 | '(' . exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 72 number go to state 29
4 stms → stms stm . EOL 5 | stms stm . ';' 6 | stms stm . ';' EOL EOL shift, and go to state 73 ';' shift, and go to state 74
14 stm → if_stm . $default reduce using rule 14 (stm)
27 if_stm → if_part . END 32 else_part → if_part . ELSE $@8 stms END ELSE shift, and go to state 75 END shift, and go to state 76
28 if_stm → else_part . $default reduce using rule 28 (if_stm)
24 stm → callfunc . [EOL, ';'] 81 exp → callfunc . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] EOL reduce using rule 24 (stm) EOL [reduce using rule 81 (exp)] ';' reduce using rule 24 (stm) ';' [reduce using rule 81 (exp)] $default reduce using rule 81 (exp)
25 stm → rparams . ASSIG argparams 39 rparams → rparams . ',' NAME 40 | rparams . ',' NAME '[' exp ']' 41 | rparams . ',' NAME '[' exp ',' exp ']' ASSIG shift, and go to state 77 ',' shift, and go to state 78
2 program → stms function_list . [$end] 43 function_list → function_list . function lines 49 function → . FUNCTION NAME $@10 '(' rparams ')' $@11 stms END FUNCTION shift, and go to state 10 $default reduce using rule 2 (program) function go to state 79
42 function_list → function . lines 44 lines → . [$end, FUNCTION, EOL] 45 | . EOL 46 | . lines EOL EOL shift, and go to state 80 EOL [reduce using rule 44 (lines)] $default reduce using rule 44 (lines) lines go to state 81
10 stm → memcpy . $default reduce using rule 10 (stm)
26 stm → exp . [EOL, ';'] 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 26 (stm)
82 exp → number . $default reduce using rule 82 (exp)
8 stm → NAME INCR . $default reduce using rule 8 (stm)
9 stm → NAME DECR . $default reduce using rule 9 (stm)
34 callfunc → . NAME $@9 '(' argparams ')' 37 rparams → NAME '[' . exp ']' 38 | NAME '[' . exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 84 | NAME '[' . exp ']' 85 | . NAME '[' exp ',' exp ']' 85 | NAME '[' . exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 91 number go to state 29
34 callfunc → NAME $@9 . '(' argparams ')' '(' shift, and go to state 92
33 $@9 → . ['('] 34 callfunc → NAME . $@9 '(' argparams ')' 83 exp → NAME . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', '*', '/', ';', '(', ')', ']', ',', '>', '<'] 84 | NAME . '[' exp ']' 85 | NAME . '[' exp ',' exp ']' '[' shift, and go to state 93 '(' reduce using rule 33 ($@9) '(' [reduce using rule 83 (exp)] $default reduce using rule 83 (exp) $@9 go to state 33
100 str → STRING . $default reduce using rule 100 (str)
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 89 | . NEGT cond 89 | NEGT . cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 97 | . cond OR cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 39 cond go to state 94 expcond go to state 41 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 80 | '(' . exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 88 | '(' . cond ')' 89 | . NEGT cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 97 | . cond OR cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 95 cond go to state 96 expcond go to state 41 str go to state 42 number go to state 29
81 exp → callfunc . $default reduce using rule 81 (exp)
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 98 expcond → exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 103 str → exp . '+' str SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 97 '*' shift, and go to state 89 '/' shift, and go to state 90 '-' [reduce using rule 98 (expcond)] '+' [reduce using rule 98 (expcond)] $default reduce using rule 98 (expcond)
29 $@7 → . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 30 if_part → IF cond . $@7 stms 96 cond → cond . AND cond 97 | cond . OR cond AND shift, and go to state 98 OR shift, and go to state 99 $default reduce using rule 29 ($@7) $@7 go to state 100
90 cond → expcond . LESSEQ expcond 91 | expcond . GREATEQ expcond 92 | expcond . '>' expcond 93 | expcond . '<' expcond 94 | expcond . C_EQ expcond 95 | expcond . DIFF expcond C_EQ shift, and go to state 101 LESSEQ shift, and go to state 102 DIFF shift, and go to state 103 GREATEQ shift, and go to state 104 '>' shift, and go to state 105 '<' shift, and go to state 106
99 expcond → str . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 101 str → str . '+' str 102 | str . '+' exp '+' shift, and go to state 107 '+' [reduce using rule 99 (expcond)] $default reduce using rule 99 (expcond)
19 stm → FOR $@1 . NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END NAME shift, and go to state 108
23 stm → WHILE $@5 . cond $@6 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 89 | . NEGT cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 97 | . cond OR cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 39 cond go to state 109 expcond go to state 41 str go to state 42 number go to state 29
47 $@10 → . 49 function → FUNCTION NAME . $@10 '(' rparams ')' $@11 stms END $default reduce using rule 47 ($@10) $@10 go to state 110
12 stm → PRINT exp . [EOL, ';'] 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 103 str → exp . '+' str SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 97 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 12 (stm)
13 stm → PRINT str . [EOL, ';'] 101 str → str . '+' str 102 | str . '+' exp '+' shift, and go to state 107 $default reduce using rule 13 (stm)
33 $@9 → . ['('] 34 callfunc → NAME . $@9 '(' argparams ')' 60 vector_declare → NAME . '[' exp TWO_DOTS exp ']' 83 exp → NAME . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';', ')', ','] 84 | NAME . '[' exp ']' 85 | NAME . '[' exp ',' exp ']' '[' shift, and go to state 111 '(' reduce using rule 33 ($@9) $default reduce using rule 83 (exp) $@9 go to state 33
70 matrix_declare → SPARSE . data_type '[' exp ',' exp ']' 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 data_type go to state 112
106 data_type → DT_INT . $default reduce using rule 106 (data_type)
107 data_type → DT_FLOAT . $default reduce using rule 107 (data_type)
108 data_type → DT_STRING . $default reduce using rule 108 (data_type)
109 data_type → DT_COMPLEX . $default reduce using rule 109 (data_type)
53 argtype → callfunc . [EOL, ';', ')', ','] 81 exp → callfunc . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';', ')', ','] EOL reduce using rule 53 (argtype) EOL [reduce using rule 81 (exp)] ';' reduce using rule 53 (argtype) ';' [reduce using rule 81 (exp)] ')' reduce using rule 53 (argtype) ')' [reduce using rule 81 (exp)] ',' reduce using rule 53 (argtype) ',' [reduce using rule 81 (exp)] $default reduce using rule 81 (exp)
11 stm → RETURN argparams . [EOL, ';'] 52 argparams → argparams . ',' argtype ',' shift, and go to state 113 $default reduce using rule 11 (stm)
51 argparams → argtype . $default reduce using rule 51 (argparams)
57 argtype → vector_declare . $default reduce using rule 57 (argtype)
58 argtype → matrix_declare . $default reduce using rule 58 (argtype)
56 argtype → exp . [EOL, ';', ')', ','] 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 103 str → exp . '+' str SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 97 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 56 (argtype)
54 argtype → str . [EOL, ';', ')', ','] 101 str → str . '+' str 102 | str . '+' exp '+' shift, and go to state 107 $default reduce using rule 54 (argtype)
55 argtype → number . [EOL, ';', ')', ','] 82 exp → number . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';', ')', ','] EOL reduce using rule 55 (argtype) EOL [reduce using rule 82 (exp)] ';' reduce using rule 55 (argtype) ';' [reduce using rule 82 (exp)] ')' reduce using rule 55 (argtype) ')' [reduce using rule 82 (exp)] ',' reduce using rule 55 (argtype) ',' [reduce using rule 82 (exp)] $default reduce using rule 82 (exp)
59 vector_declare → data_type . '[' exp ']' 61 | data_type . '[' ']' '(' argparams ')' 69 matrix_declare → data_type . '[' exp ',' exp ']' '[' shift, and go to state 114
20 stm → USING NAME . $default reduce using rule 20 (stm)
60 vector_declare → NAME . '[' exp TWO_DOTS exp ']' 62 argmov_value → NAME . [EOL, ';', ','] '[' shift, and go to state 115 $default reduce using rule 62 (argmov_value)
63 argmov_value → vector_declare . $default reduce using rule 63 (argmov_value)
65 argmov → argmov_value . $default reduce using rule 65 (argmov)
66 argmov → argmov . ',' argmov_value 67 memcpy → TODEV argmov . [EOL, ';'] ',' shift, and go to state 116 $default reduce using rule 67 (memcpy)
64 argmov_value → matrix_declare . $default reduce using rule 64 (argmov_value)
66 argmov → argmov . ',' argmov_value 68 memcpy → TOHOST argmov . [EOL, ';'] ',' shift, and go to state 116 $default reduce using rule 68 (memcpy)
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 86 | '-' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', '*', '/', ';', '(', ')', ']', ',', '>', '<'] $default reduce using rule 86 (exp) Conflict between rule 86 and token SHIFTL resolved as reduce (SHIFTL < NOT). Conflict between rule 86 and token SHIFTR resolved as reduce (SHIFTR < NOT). Conflict between rule 86 and token '|' resolved as reduce ('|' < NOT). Conflict between rule 86 and token '&' resolved as reduce ('&' < NOT). Conflict between rule 86 and token '%' resolved as reduce ('%' < NOT). Conflict between rule 86 and token '-' resolved as reduce ('-' < NOT). Conflict between rule 86 and token '+' resolved as reduce ('+' < NOT). Conflict between rule 86 and token '*' resolved as reduce ('*' < NOT). Conflict between rule 86 and token '/' resolved as reduce ('/' < NOT).
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 87 | '+' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', '*', '/', ';', '(', ')', ']', ',', '>', '<'] $default reduce using rule 87 (exp) Conflict between rule 87 and token SHIFTL resolved as reduce (SHIFTL < NOT). Conflict between rule 87 and token SHIFTR resolved as reduce (SHIFTR < NOT). Conflict between rule 87 and token '|' resolved as reduce ('|' < NOT). Conflict between rule 87 and token '&' resolved as reduce ('&' < NOT). Conflict between rule 87 and token '%' resolved as reduce ('%' < NOT). Conflict between rule 87 and token '-' resolved as reduce ('-' < NOT). Conflict between rule 87 and token '+' resolved as reduce ('+' < NOT). Conflict between rule 87 and token '*' resolved as reduce ('*' < NOT). Conflict between rule 87 and token '/' resolved as reduce ('/' < NOT).
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 80 | '(' exp . ')' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ')' shift, and go to state 117
4 stms → stms stm EOL . $default reduce using rule 4 (stms)
5 stms → stms stm ';' . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, FUNCTION, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 6 | stms stm ';' . EOL EOL shift, and go to state 118 EOL [reduce using rule 5 (stms)] $default reduce using rule 5 (stms)
31 $@8 → . 32 else_part → if_part ELSE . $@8 stms END $default reduce using rule 31 ($@8) $@8 go to state 119
27 if_stm → if_part END . $default reduce using rule 27 (if_stm)
25 stm → rparams ASSIG . argparams 34 callfunc → . NAME $@9 '(' argparams ')' 50 argparams → . [EOL, ';', ','] 51 | . argtype 52 | . argparams ',' argtype 53 argtype → . callfunc 54 | . str 55 | . number 56 | . exp 57 | . vector_declare 58 | . matrix_declare 59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 48 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 $default reduce using rule 50 (argparams) callfunc go to state 54 argparams go to state 120 argtype go to state 56 vector_declare go to state 57 matrix_declare go to state 58 exp go to state 59 str go to state 60 number go to state 61 data_type go to state 62
39 rparams → rparams ',' . NAME 40 | rparams ',' . NAME '[' exp ']' 41 | rparams ',' . NAME '[' exp ',' exp ']' NAME shift, and go to state 121
43 function_list → function_list function . lines 44 lines → . [$end, FUNCTION, EOL] 45 | . EOL 46 | . lines EOL EOL shift, and go to state 80 EOL [reduce using rule 44 (lines)] $default reduce using rule 44 (lines) lines go to state 122
45 lines → EOL . $default reduce using rule 45 (lines)
42 function_list → function lines . [$end, FUNCTION] 46 lines → lines . EOL EOL shift, and go to state 123 $default reduce using rule 42 (function_list)
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 79 | exp SHIFTL . exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 124 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 78 | exp SHIFTR . exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 125 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 76 | exp '|' . exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 126 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 75 | exp '&' . exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 127 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 77 | exp '%' . exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 128 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 72 | exp '-' . exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 129 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 71 | exp '+' . exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 130 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 73 | exp '*' . exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 131 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 74 | exp '/' . exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 132 number go to state 29
37 rparams → NAME '[' exp . ']' 38 | NAME '[' exp . ',' exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 84 | NAME '[' exp . ']' 85 | NAME '[' exp . ',' exp ']' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 133 ',' shift, and go to state 134
34 callfunc → . NAME $@9 '(' argparams ')' 34 | NAME $@9 '(' . argparams ')' 50 argparams → . [')', ','] 51 | . argtype 52 | . argparams ',' argtype 53 argtype → . callfunc 54 | . str 55 | . number 56 | . exp 57 | . vector_declare 58 | . matrix_declare 59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 48 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 $default reduce using rule 50 (argparams) callfunc go to state 54 argparams go to state 135 argtype go to state 56 vector_declare go to state 57 matrix_declare go to state 58 exp go to state 59 str go to state 60 number go to state 61 data_type go to state 62
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 84 | NAME '[' . exp ']' 85 | . NAME '[' exp ',' exp ']' 85 | NAME '[' . exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 136 number go to state 29
89 cond → NEGT cond . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ','] 96 | cond . AND cond 97 | cond . OR cond $default reduce using rule 89 (cond) Conflict between rule 89 and token AND resolved as reduce (AND < NEGT). Conflict between rule 89 and token OR resolved as reduce (OR < NEGT).
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 80 | '(' exp . ')' 98 expcond → exp . [C_EQ, LESSEQ, DIFF, GREATEQ, '>', '<'] 103 str → exp . '+' str SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 97 '*' shift, and go to state 89 '/' shift, and go to state 90 ')' shift, and go to state 117 $default reduce using rule 98 (expcond)
88 cond → '(' cond . ')' 96 | cond . AND cond 97 | cond . OR cond AND shift, and go to state 98 OR shift, and go to state 99 ')' shift, and go to state 137
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 71 | exp '+' . exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 103 | exp '+' . str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 138 str go to state 139 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 89 | . NEGT cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 96 | cond AND . cond 97 | . cond OR cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 39 cond go to state 140 expcond go to state 41 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 88 cond → . '(' cond ')' 89 | . NEGT cond 90 | . expcond LESSEQ expcond 91 | . expcond GREATEQ expcond 92 | . expcond '>' expcond 93 | . expcond '<' expcond 94 | . expcond C_EQ expcond 95 | . expcond DIFF expcond 96 | . cond AND cond 97 | . cond OR cond 97 | cond OR . cond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 NEGT shift, and go to state 36 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 37 callfunc go to state 38 exp go to state 39 cond go to state 141 expcond go to state 41 str go to state 42 number go to state 29
3 stms → . 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 30 if_part → IF cond $@7 . stms $default reduce using rule 3 (stms) stms go to state 142
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 94 cond → expcond C_EQ . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 143 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 90 cond → expcond LESSEQ . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 144 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 95 cond → expcond DIFF . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 145 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 91 cond → expcond GREATEQ . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 146 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 92 cond → expcond '>' . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 147 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 93 cond → expcond '<' . expcond 98 expcond → . exp 99 | . str 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 39 expcond go to state 148 str go to state 42 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 101 | str '+' . str 102 | . str '+' exp 102 | str '+' . exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 149 str go to state 150 number go to state 29
19 stm → FOR $@1 NAME . ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END ASSIG shift, and go to state 151
22 $@6 → . [NAME, INT, FLOAT, IF, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 23 stm → WHILE $@5 cond . $@6 stms END 96 cond → cond . AND cond 97 | cond . OR cond AND shift, and go to state 98 OR shift, and go to state 99 $default reduce using rule 22 ($@6) $@6 go to state 152
49 function → FUNCTION NAME $@10 . '(' rparams ')' $@11 stms END '(' shift, and go to state 153
34 callfunc → . NAME $@9 '(' argparams ')' 60 vector_declare → NAME '[' . exp TWO_DOTS exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 84 | NAME '[' . exp ']' 85 | . NAME '[' exp ',' exp ']' 85 | NAME '[' . exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 154 number go to state 29
70 matrix_declare → SPARSE data_type . '[' exp ',' exp ']' '[' shift, and go to state 155
34 callfunc → . NAME $@9 '(' argparams ')' 52 argparams → argparams ',' . argtype 53 argtype → . callfunc 54 | . str 55 | . number 56 | . exp 57 | . vector_declare 58 | . matrix_declare 59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 48 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 54 argtype go to state 156 vector_declare go to state 57 matrix_declare go to state 58 exp go to state 59 str go to state 60 number go to state 61 data_type go to state 62
34 callfunc → . NAME $@9 '(' argparams ')' 59 vector_declare → data_type '[' . exp ']' 61 | data_type '[' . ']' '(' argparams ')' 69 matrix_declare → data_type '[' . exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ']' shift, and go to state 157 callfunc go to state 38 exp go to state 158 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 60 vector_declare → NAME '[' . exp TWO_DOTS exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 159 number go to state 29
59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 62 argmov_value → . NAME 63 | . vector_declare 64 | . matrix_declare 66 argmov → argmov ',' . argmov_value 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 64 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 vector_declare go to state 65 argmov_value go to state 160 matrix_declare go to state 68 data_type go to state 62
80 exp → '(' exp ')' . $default reduce using rule 80 (exp)
6 stms → stms stm ';' EOL . $default reduce using rule 6 (stms)
3 stms → . 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 32 else_part → if_part ELSE $@8 . stms END $default reduce using rule 3 (stms) stms go to state 161
25 stm → rparams ASSIG argparams . [EOL, ';'] 52 argparams → argparams . ',' argtype ',' shift, and go to state 113 $default reduce using rule 25 (stm)
39 rparams → rparams ',' NAME . [ASSIG, ')', ','] 40 | rparams ',' NAME . '[' exp ']' 41 | rparams ',' NAME . '[' exp ',' exp ']' '[' shift, and go to state 162 $default reduce using rule 39 (rparams)
43 function_list → function_list function lines . [$end, FUNCTION] 46 lines → lines . EOL EOL shift, and go to state 123 $default reduce using rule 43 (function_list)
46 lines → lines EOL . $default reduce using rule 46 (lines)
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 79 | exp SHIFTL exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', ';', '(', ')', ']', ',', '>', '<'] '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 79 (exp) Conflict between rule 79 and token SHIFTL resolved as reduce (%left SHIFTL). Conflict between rule 79 and token SHIFTR resolved as reduce (%left SHIFTR). Conflict between rule 79 and token '|' resolved as reduce ('|' < SHIFTL). Conflict between rule 79 and token '&' resolved as reduce ('&' < SHIFTL). Conflict between rule 79 and token '%' resolved as shift (SHIFTL < '%'). Conflict between rule 79 and token '-' resolved as shift (SHIFTL < '-'). Conflict between rule 79 and token '+' resolved as shift (SHIFTL < '+'). Conflict between rule 79 and token '*' resolved as shift (SHIFTL < '*'). Conflict between rule 79 and token '/' resolved as shift (SHIFTL < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 78 | exp SHIFTR exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', ';', '(', ')', ']', ',', '>', '<'] 79 | exp . SHIFTL exp '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 78 (exp) Conflict between rule 78 and token SHIFTL resolved as reduce (%left SHIFTL). Conflict between rule 78 and token SHIFTR resolved as reduce (%left SHIFTR). Conflict between rule 78 and token '|' resolved as reduce ('|' < SHIFTR). Conflict between rule 78 and token '&' resolved as reduce ('&' < SHIFTR). Conflict between rule 78 and token '%' resolved as shift (SHIFTR < '%'). Conflict between rule 78 and token '-' resolved as shift (SHIFTR < '-'). Conflict between rule 78 and token '+' resolved as shift (SHIFTR < '+'). Conflict between rule 78 and token '*' resolved as shift (SHIFTR < '*'). Conflict between rule 78 and token '/' resolved as shift (SHIFTR < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 76 | exp '|' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', ';', '(', ')', ']', ',', '>', '<'] 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 76 (exp) Conflict between rule 76 and token SHIFTL resolved as shift ('|' < SHIFTL). Conflict between rule 76 and token SHIFTR resolved as shift ('|' < SHIFTR). Conflict between rule 76 and token '|' resolved as reduce (%left '|'). Conflict between rule 76 and token '&' resolved as shift ('|' < '&'). Conflict between rule 76 and token '%' resolved as shift ('|' < '%'). Conflict between rule 76 and token '-' resolved as shift ('|' < '-'). Conflict between rule 76 and token '+' resolved as shift ('|' < '+'). Conflict between rule 76 and token '*' resolved as shift ('|' < '*'). Conflict between rule 76 and token '/' resolved as shift ('|' < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 75 | exp '&' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', ';', '(', ')', ']', ',', '>', '<'] 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 75 (exp) Conflict between rule 75 and token SHIFTL resolved as shift ('&' < SHIFTL). Conflict between rule 75 and token SHIFTR resolved as shift ('&' < SHIFTR). Conflict between rule 75 and token '|' resolved as reduce ('|' < '&'). Conflict between rule 75 and token '&' resolved as reduce (%left '&'). Conflict between rule 75 and token '%' resolved as shift ('&' < '%'). Conflict between rule 75 and token '-' resolved as shift ('&' < '-'). Conflict between rule 75 and token '+' resolved as shift ('&' < '+'). Conflict between rule 75 and token '*' resolved as shift ('&' < '*'). Conflict between rule 75 and token '/' resolved as shift ('&' < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 77 | exp '%' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', ';', '(', ')', ']', ',', '>', '<'] 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 77 (exp) Conflict between rule 77 and token SHIFTL resolved as reduce (SHIFTL < '%'). Conflict between rule 77 and token SHIFTR resolved as reduce (SHIFTR < '%'). Conflict between rule 77 and token '|' resolved as reduce ('|' < '%'). Conflict between rule 77 and token '&' resolved as reduce ('&' < '%'). Conflict between rule 77 and token '%' resolved as reduce (%left '%'). Conflict between rule 77 and token '-' resolved as shift ('%' < '-'). Conflict between rule 77 and token '+' resolved as shift ('%' < '+'). Conflict between rule 77 and token '*' resolved as shift ('%' < '*'). Conflict between rule 77 and token '/' resolved as shift ('%' < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 72 | exp '-' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', ';', '(', ')', ']', ',', '>', '<'] 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 72 (exp) Conflict between rule 72 and token SHIFTL resolved as reduce (SHIFTL < '-'). Conflict between rule 72 and token SHIFTR resolved as reduce (SHIFTR < '-'). Conflict between rule 72 and token '|' resolved as reduce ('|' < '-'). Conflict between rule 72 and token '&' resolved as reduce ('&' < '-'). Conflict between rule 72 and token '%' resolved as reduce ('%' < '-'). Conflict between rule 72 and token '-' resolved as reduce (%left '-'). Conflict between rule 72 and token '+' resolved as reduce (%left '+'). Conflict between rule 72 and token '*' resolved as shift ('-' < '*'). Conflict between rule 72 and token '/' resolved as shift ('-' < '/').
71 exp → exp . '+' exp 71 | exp '+' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', ';', '(', ')', ']', ',', '>', '<'] 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 71 (exp) Conflict between rule 71 and token SHIFTL resolved as reduce (SHIFTL < '+'). Conflict between rule 71 and token SHIFTR resolved as reduce (SHIFTR < '+'). Conflict between rule 71 and token '|' resolved as reduce ('|' < '+'). Conflict between rule 71 and token '&' resolved as reduce ('&' < '+'). Conflict between rule 71 and token '%' resolved as reduce ('%' < '+'). Conflict between rule 71 and token '-' resolved as reduce (%left '-'). Conflict between rule 71 and token '+' resolved as reduce (%left '+'). Conflict between rule 71 and token '*' resolved as shift ('+' < '*'). Conflict between rule 71 and token '/' resolved as shift ('+' < '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 73 | exp '*' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', '*', '/', ';', '(', ')', ']', ',', '>', '<'] 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp $default reduce using rule 73 (exp) Conflict between rule 73 and token SHIFTL resolved as reduce (SHIFTL < '*'). Conflict between rule 73 and token SHIFTR resolved as reduce (SHIFTR < '*'). Conflict between rule 73 and token '|' resolved as reduce ('|' < '*'). Conflict between rule 73 and token '&' resolved as reduce ('&' < '*'). Conflict between rule 73 and token '%' resolved as reduce ('%' < '*'). Conflict between rule 73 and token '-' resolved as reduce ('-' < '*'). Conflict between rule 73 and token '+' resolved as reduce ('+' < '*'). Conflict between rule 73 and token '*' resolved as reduce (%left '*'). Conflict between rule 73 and token '/' resolved as reduce (%left '/').
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 74 | exp '/' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, TWO_DOTS, '|', '&', '%', '-', '+', '*', '/', ';', '(', ')', ']', ',', '>', '<'] 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp $default reduce using rule 74 (exp) Conflict between rule 74 and token SHIFTL resolved as reduce (SHIFTL < '/'). Conflict between rule 74 and token SHIFTR resolved as reduce (SHIFTR < '/'). Conflict between rule 74 and token '|' resolved as reduce ('|' < '/'). Conflict between rule 74 and token '&' resolved as reduce ('&' < '/'). Conflict between rule 74 and token '%' resolved as reduce ('%' < '/'). Conflict between rule 74 and token '-' resolved as reduce ('-' < '/'). Conflict between rule 74 and token '+' resolved as reduce ('+' < '/'). Conflict between rule 74 and token '*' resolved as reduce (%left '*'). Conflict between rule 74 and token '/' resolved as reduce (%left '/').
37 rparams → NAME '[' exp ']' . [ASSIG, ','] 84 exp → NAME '[' exp ']' . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] ASSIG reduce using rule 37 (rparams) ',' reduce using rule 37 (rparams) $default reduce using rule 84 (exp)
34 callfunc → . NAME $@9 '(' argparams ')' 38 rparams → NAME '[' exp ',' . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 85 | NAME '[' exp ',' . exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 163 number go to state 29
34 callfunc → NAME $@9 '(' argparams . ')' 52 argparams → argparams . ',' argtype ')' shift, and go to state 164 ',' shift, and go to state 113
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 84 | NAME '[' exp . ']' 85 | NAME '[' exp . ',' exp ']' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 165 ',' shift, and go to state 166
88 cond → '(' cond ')' . $default reduce using rule 88 (cond)
71 exp → exp . '+' exp 71 | exp '+' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, SHIFTL, SHIFTR, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '|', '&', '%', '-', '+', ';', '(', ')', ',', '>', '<'] 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 103 str → exp . '+' str '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 71 (exp) Conflict between rule 71 and token SHIFTL resolved as reduce (SHIFTL < '+'). Conflict between rule 71 and token SHIFTR resolved as reduce (SHIFTR < '+'). Conflict between rule 71 and token '|' resolved as reduce ('|' < '+'). Conflict between rule 71 and token '&' resolved as reduce ('&' < '+'). Conflict between rule 71 and token '%' resolved as reduce ('%' < '+'). Conflict between rule 71 and token '-' resolved as reduce (%left '-'). Conflict between rule 71 and token '+' resolved as reduce (%left '+'). Conflict between rule 71 and token '*' resolved as shift ('+' < '*'). Conflict between rule 71 and token '/' resolved as shift ('+' < '/').
101 str → str . '+' str 102 | str . '+' exp 103 | exp '+' str . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] $default reduce using rule 103 (str) Conflict between rule 103 and token '+' resolved as reduce (%left '+').
96 cond → cond . AND cond 96 | cond AND cond . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ','] 97 | cond . OR cond $default reduce using rule 96 (cond) Conflict between rule 96 and token AND resolved as reduce (%left AND). Conflict between rule 96 and token OR resolved as reduce (OR < AND).
96 cond → cond . AND cond 97 | cond . OR cond 97 | cond OR cond . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, OR, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ','] AND shift, and go to state 98 $default reduce using rule 97 (cond) Conflict between rule 97 and token AND resolved as shift (OR < AND). Conflict between rule 97 and token OR resolved as reduce (%left OR).
4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 30 | IF cond $@7 stms . [ELSE, END] 32 else_part → . if_part ELSE $@8 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 PRINT shift, and go to state 11 RETURN shift, and go to state 12 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ELSE reduce using rule 30 (if_part) END reduce using rule 30 (if_part) ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 memcpy go to state 27 exp go to state 28 number go to state 29
94 cond → expcond C_EQ expcond . $default reduce using rule 94 (cond)
90 cond → expcond LESSEQ expcond . $default reduce using rule 90 (cond)
95 cond → expcond DIFF expcond . $default reduce using rule 95 (cond)
91 cond → expcond GREATEQ expcond . $default reduce using rule 91 (cond)
92 cond → expcond '>' expcond . $default reduce using rule 92 (cond)
93 cond → expcond '<' expcond . $default reduce using rule 93 (cond)
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 102 str → str '+' exp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 103 | exp . '+' str SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 102 (str) Conflict between rule 102 and token '-' resolved as reduce (%left '-'). Conflict between rule 102 and token '+' resolved as reduce (%left '+').
101 str → str . '+' str 101 | str '+' str . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 102 | str . '+' exp $default reduce using rule 101 (str) Conflict between rule 101 and token '+' resolved as reduce (%left '+').
19 stm → FOR $@1 NAME ASSIG . exp $@2 TWO_DOTS $@3 exp $@4 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 167 number go to state 29
3 stms → . 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 23 stm → WHILE $@5 cond $@6 . stms END $default reduce using rule 3 (stms) stms go to state 168
35 rparams → . [')', ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 49 function → FUNCTION NAME $@10 '(' . rparams ')' $@11 stms END NAME shift, and go to state 169 $default reduce using rule 35 (rparams) rparams go to state 170
60 vector_declare → NAME '[' exp . TWO_DOTS exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 84 | NAME '[' exp . ']' 85 | NAME '[' exp . ',' exp ']' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 TWO_DOTS shift, and go to state 171 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 165 ',' shift, and go to state 166
34 callfunc → . NAME $@9 '(' argparams ')' 70 matrix_declare → SPARSE data_type '[' . exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 172 number go to state 29
52 argparams → argparams ',' argtype . $default reduce using rule 52 (argparams)
61 vector_declare → data_type '[' ']' . '(' argparams ')' '(' shift, and go to state 173
59 vector_declare → data_type '[' exp . ']' 69 matrix_declare → data_type '[' exp . ',' exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 174 ',' shift, and go to state 175
60 vector_declare → NAME '[' exp . TWO_DOTS exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 TWO_DOTS shift, and go to state 171 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90
66 argmov → argmov ',' argmov_value . $default reduce using rule 66 (argmov)
4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 32 else_part → . if_part ELSE $@8 stms END 32 | if_part ELSE $@8 stms . END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 PRINT shift, and go to state 11 RETURN shift, and go to state 12 END shift, and go to state 176 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 memcpy go to state 27 exp go to state 28 number go to state 29
34 callfunc → . NAME $@9 '(' argparams ')' 40 rparams → rparams ',' NAME '[' . exp ']' 41 | rparams ',' NAME '[' . exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 177 number go to state 29
38 rparams → NAME '[' exp ',' exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 85 | NAME '[' exp ',' exp . ']' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 178
34 callfunc → NAME $@9 '(' argparams ')' . $default reduce using rule 34 (callfunc)
84 exp → NAME '[' exp ']' . $default reduce using rule 84 (exp)
34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 85 | NAME '[' exp ',' . exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 179 number go to state 29
16 $@2 → . [TWO_DOTS] 19 stm → FOR $@1 NAME ASSIG exp . $@2 TWO_DOTS $@3 exp $@4 stms END 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 $default reduce using rule 16 ($@2) $@2 go to state 180
4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 23 | WHILE $@5 cond $@6 stms . END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 32 else_part → . if_part ELSE $@8 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 PRINT shift, and go to state 11 RETURN shift, and go to state 12 END shift, and go to state 181 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 memcpy go to state 27 exp go to state 28 number go to state 29
36 rparams → NAME . [')', ','] 37 | NAME . '[' exp ']' 38 | NAME . '[' exp ',' exp ']' '[' shift, and go to state 182 $default reduce using rule 36 (rparams)
39 rparams → rparams . ',' NAME 40 | rparams . ',' NAME '[' exp ']' 41 | rparams . ',' NAME '[' exp ',' exp ']' 49 function → FUNCTION NAME $@10 '(' rparams . ')' $@11 stms END ')' shift, and go to state 183 ',' shift, and go to state 78
34 callfunc → . NAME $@9 '(' argparams ')' 60 vector_declare → NAME '[' exp TWO_DOTS . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 184 number go to state 29
70 matrix_declare → SPARSE data_type '[' exp . ',' exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ',' shift, and go to state 185
34 callfunc → . NAME $@9 '(' argparams ')' 50 argparams → . [')', ','] 51 | . argtype 52 | . argparams ',' argtype 53 argtype → . callfunc 54 | . str 55 | . number 56 | . exp 57 | . vector_declare 58 | . matrix_declare 59 vector_declare → . data_type '[' exp ']' 60 | . NAME '[' exp TWO_DOTS exp ']' 61 | . data_type '[' ']' '(' argparams ')' 61 | data_type '[' ']' '(' . argparams ')' 69 matrix_declare → . data_type '[' exp ',' exp ']' 70 | . SPARSE data_type '[' exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 100 str → . STRING 101 | . str '+' str 102 | . str '+' exp 103 | . exp '+' str 104 number → . INT 105 | . FLOAT 106 data_type → . DT_INT 107 | . DT_FLOAT 108 | . DT_STRING 109 | . DT_COMPLEX NAME shift, and go to state 48 STRING shift, and go to state 35 INT shift, and go to state 5 FLOAT shift, and go to state 6 SPARSE shift, and go to state 49 DT_INT shift, and go to state 50 DT_FLOAT shift, and go to state 51 DT_STRING shift, and go to state 52 DT_COMPLEX shift, and go to state 53 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 $default reduce using rule 50 (argparams) callfunc go to state 54 argparams go to state 186 argtype go to state 56 vector_declare go to state 57 matrix_declare go to state 58 exp go to state 59 str go to state 60 number go to state 61 data_type go to state 62
59 vector_declare → data_type '[' exp ']' . $default reduce using rule 59 (vector_declare)
34 callfunc → . NAME $@9 '(' argparams ')' 69 matrix_declare → data_type '[' exp ',' . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 187 number go to state 29
32 else_part → if_part ELSE $@8 stms END . $default reduce using rule 32 (else_part)
40 rparams → rparams ',' NAME '[' exp . ']' 41 | rparams ',' NAME '[' exp . ',' exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 188 ',' shift, and go to state 189
38 rparams → NAME '[' exp ',' exp ']' . [ASSIG, ','] 85 exp → NAME '[' exp ',' exp ']' . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] ASSIG reduce using rule 38 (rparams) ',' reduce using rule 38 (rparams) $default reduce using rule 85 (exp)
71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp 85 | NAME '[' exp ',' exp . ']' SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 190
19 stm → FOR $@1 NAME ASSIG exp $@2 . TWO_DOTS $@3 exp $@4 stms END TWO_DOTS shift, and go to state 191
23 stm → WHILE $@5 cond $@6 stms END . $default reduce using rule 23 (stm)
34 callfunc → . NAME $@9 '(' argparams ')' 37 rparams → NAME '[' . exp ']' 38 | NAME '[' . exp ',' exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 192 number go to state 29
48 $@11 → . 49 function → FUNCTION NAME $@10 '(' rparams ')' . $@11 stms END $default reduce using rule 48 ($@11) $@11 go to state 193
60 vector_declare → NAME '[' exp TWO_DOTS exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 194
34 callfunc → . NAME $@9 '(' argparams ')' 70 matrix_declare → SPARSE data_type '[' exp ',' . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 195 number go to state 29
52 argparams → argparams . ',' argtype 61 vector_declare → data_type '[' ']' '(' argparams . ')' ')' shift, and go to state 196 ',' shift, and go to state 113
69 matrix_declare → data_type '[' exp ',' exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 197
40 rparams → rparams ',' NAME '[' exp ']' . $default reduce using rule 40 (rparams)
34 callfunc → . NAME $@9 '(' argparams ')' 41 rparams → rparams ',' NAME '[' exp ',' . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 198 number go to state 29
85 exp → NAME '[' exp ',' exp ']' . $default reduce using rule 85 (exp)
17 $@3 → . 19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS . $@3 exp $@4 stms END $default reduce using rule 17 ($@3) $@3 go to state 199
37 rparams → NAME '[' exp . ']' 38 | NAME '[' exp . ',' exp ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 200 ',' shift, and go to state 201
3 stms → . 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 49 function → FUNCTION NAME $@10 '(' rparams ')' $@11 . stms END $default reduce using rule 3 (stms) stms go to state 202
60 vector_declare → NAME '[' exp TWO_DOTS exp ']' . $default reduce using rule 60 (vector_declare)
70 matrix_declare → SPARSE data_type '[' exp ',' exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 203
61 vector_declare → data_type '[' ']' '(' argparams ')' . $default reduce using rule 61 (vector_declare)
69 matrix_declare → data_type '[' exp ',' exp ']' . $default reduce using rule 69 (matrix_declare)
41 rparams → rparams ',' NAME '[' exp ',' exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 204
19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 . exp $@4 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 205 number go to state 29
37 rparams → NAME '[' exp ']' . $default reduce using rule 37 (rparams)
34 callfunc → . NAME $@9 '(' argparams ')' 38 rparams → NAME '[' exp ',' . exp ']' 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 34 INT shift, and go to state 5 FLOAT shift, and go to state 6 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 callfunc go to state 38 exp go to state 206 number go to state 29
4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 32 else_part → . if_part ELSE $@8 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 49 function → FUNCTION NAME $@10 '(' rparams ')' $@11 stms . END 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 PRINT shift, and go to state 11 RETURN shift, and go to state 12 END shift, and go to state 207 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 memcpy go to state 27 exp go to state 28 number go to state 29
70 matrix_declare → SPARSE data_type '[' exp ',' exp ']' . $default reduce using rule 70 (matrix_declare)
41 rparams → rparams ',' NAME '[' exp ',' exp ']' . $default reduce using rule 41 (rparams)
18 $@4 → . [NAME, INT, FLOAT, IF, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp . $@4 stms END 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 '-' [reduce using rule 18 ($@4)] '+' [reduce using rule 18 ($@4)] $default reduce using rule 18 ($@4) $@4 go to state 208
38 rparams → NAME '[' exp ',' exp . ']' 71 exp → exp . '+' exp 72 | exp . '-' exp 73 | exp . '*' exp 74 | exp . '/' exp 75 | exp . '&' exp 76 | exp . '|' exp 77 | exp . '%' exp 78 | exp . SHIFTR exp 79 | exp . SHIFTL exp SHIFTL shift, and go to state 82 SHIFTR shift, and go to state 83 '|' shift, and go to state 84 '&' shift, and go to state 85 '%' shift, and go to state 86 '-' shift, and go to state 87 '+' shift, and go to state 88 '*' shift, and go to state 89 '/' shift, and go to state 90 ']' shift, and go to state 209
49 function → FUNCTION NAME $@10 '(' rparams ')' $@11 stms END . $default reduce using rule 49 (function)
3 stms → . 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 . stms END $default reduce using rule 3 (stms) stms go to state 210
38 rparams → NAME '[' exp ',' exp ']' . $default reduce using rule 38 (rparams)
4 stms → stms . stm EOL 5 | stms . stm ';' 6 | stms . stm ';' EOL 7 stm → . [EOL, ';'] 8 | . NAME INCR 9 | . NAME DECR 10 | . memcpy 11 | . RETURN argparams 12 | . PRINT exp 13 | . PRINT str 14 | . if_stm 19 | . FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 19 | FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms . END 20 | . USING NAME 23 | . WHILE $@5 cond $@6 stms END 24 | . callfunc 25 | . rparams ASSIG argparams 26 | . exp 27 if_stm → . if_part END 28 | . else_part 30 if_part → . IF cond $@7 stms 32 else_part → . if_part ELSE $@8 stms END 34 callfunc → . NAME $@9 '(' argparams ')' 35 rparams → . [ASSIG, ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 67 memcpy → . TODEV argmov 68 | . TOHOST argmov 71 exp → . exp '+' exp 72 | . exp '-' exp 73 | . exp '*' exp 74 | . exp '/' exp 75 | . exp '&' exp 76 | . exp '|' exp 77 | . exp '%' exp 78 | . exp SHIFTR exp 79 | . exp SHIFTL exp 80 | . '(' exp ')' 81 | . callfunc 82 | . number 83 | . NAME 84 | . NAME '[' exp ']' 85 | . NAME '[' exp ',' exp ']' 86 | . '-' exp 87 | . '+' exp 104 number → . INT 105 | . FLOAT NAME shift, and go to state 4 INT shift, and go to state 5 FLOAT shift, and go to state 6 IF shift, and go to state 7 FOR shift, and go to state 8 WHILE shift, and go to state 9 PRINT shift, and go to state 11 RETURN shift, and go to state 12 END shift, and go to state 211 USING shift, and go to state 13 TODEV shift, and go to state 14 TOHOST shift, and go to state 15 '-' shift, and go to state 16 '+' shift, and go to state 17 '(' shift, and go to state 18 ASSIG reduce using rule 35 (rparams) ',' reduce using rule 35 (rparams) $default reduce using rule 7 (stm) stm go to state 19 if_stm go to state 20 if_part go to state 21 else_part go to state 22 callfunc go to state 23 rparams go to state 24 memcpy go to state 27 exp go to state 28 number go to state 29
19 stm → FOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END . $default reduce using rule 19 (stm)