GNU Bison XML Automaton Report

input grammar: neblina.y

Table of Contents

Reductions

Nonterminals useless in grammar

Terminals unused in grammar

DNAME ENDFILE ENDPROG INCLUDE DOLAR PLUS '^'

Rules useless in grammar

Conflicts

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

Grammar

0 $acceptprogram $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 stmFOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END 20 | USING NAME 21 $@5 → ε 22 $@6 → ε 23 stmWHILE $@5 cond $@6 stms END 24 | callfunc 25 | rparams ASSIG argparams 26 | exp 27 if_stmif_part END 28 | else_part 29 $@7 → ε 30 if_partIF cond $@7 stms 31 $@8 → ε 32 else_partif_part ELSE $@8 stms END 33 $@9 → ε 34 callfuncNAME $@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_listfunction lines 43 | function_list function lines 44 lines → ε 45 | EOL 46 | lines EOL 47 $@10 → ε 48 $@11 → ε 49 functionFUNCTION NAME $@10 '(' rparams ')' $@11 stms END 50 argparams → ε 51 | argtype 52 | argparams ',' argtype 53 argtypecallfunc 54 | str 55 | number 56 | exp 57 | vector_declare 58 | matrix_declare 59 vector_declaredata_type '[' exp ']' 60 | NAME '[' exp TWO_DOTS exp ']' 61 | data_type '[' ']' '(' argparams ')' 62 argmov_valueNAME 63 | vector_declare 64 | matrix_declare 65 argmovargmov_value 66 | argmov ',' argmov_value 67 memcpyTODEV argmov 68 | TOHOST argmov 69 matrix_declaredata_type '[' exp ',' exp ']' 70 | SPARSE data_type '[' exp ',' exp ']' 71 expexp '+' 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 expcondexp 99 | str 100 strSTRING 101 | str '+' str 102 | str '+' exp 103 | exp '+' str 104 numberINT 105 | FLOAT 106 data_typeDT_INT 107 | DT_FLOAT 108 | DT_STRING 109 | DT_COMPLEX

Terminals, with rules where they appear

$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)

Nonterminals, with rules where they appear

$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

Automaton

state 0

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

state 1

0 $acceptprogram . $end $end shift, and go to state 3

state 2

2 programstms . function_list 4 stmsstms . 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

state 3

0 $acceptprogram $end . $default accept

state 4

8 stmNAME . INCR 9 | NAME . DECR 33 $@9. ['('] 34 callfuncNAME . $@9 '(' argparams ')' 36 rparamsNAME . [ASSIG, ','] 37 | NAME . '[' exp ']' 38 | NAME . '[' exp ',' exp ']' 83 expNAME . [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

state 5

104 numberINT . $default reduce using rule 104 (number)

state 6

105 numberFLOAT . $default reduce using rule 105 (number)

state 7

30 if_partIF . 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

state 8

15 $@1. 19 stmFOR . $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END $default reduce using rule 15 ($@1) $@1 go to state 43

state 9

21 $@5. 23 stmWHILE . $@5 cond $@6 stms END $default reduce using rule 21 ($@5) $@5 go to state 44

state 10

49 functionFUNCTION . NAME $@10 '(' rparams ')' $@11 stms END NAME shift, and go to state 45

state 11

12 stmPRINT . 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

state 12

11 stmRETURN . 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

state 13

20 stmUSING . NAME NAME shift, and go to state 63

state 14

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 memcpyTODEV . 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

state 15

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 memcpyTOHOST . 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

state 16

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

state 17

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

state 18

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

state 19

4 stmsstms stm . EOL 5 | stms stm . ';' 6 | stms stm . ';' EOL EOL shift, and go to state 73 ';' shift, and go to state 74

state 20

14 stmif_stm . $default reduce using rule 14 (stm)

state 21

27 if_stmif_part . END 32 else_partif_part . ELSE $@8 stms END ELSE shift, and go to state 75 END shift, and go to state 76

state 22

28 if_stmelse_part . $default reduce using rule 28 (if_stm)

state 23

24 stmcallfunc . [EOL, ';'] 81 expcallfunc . [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)

state 24

25 stmrparams . ASSIG argparams 39 rparamsrparams . ',' NAME 40 | rparams . ',' NAME '[' exp ']' 41 | rparams . ',' NAME '[' exp ',' exp ']' ASSIG shift, and go to state 77 ',' shift, and go to state 78

state 25

2 programstms function_list . [$end] 43 function_listfunction_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

state 26

42 function_listfunction . 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

state 27

10 stmmemcpy . $default reduce using rule 10 (stm)

state 28

26 stmexp . [EOL, ';'] 71 expexp . '+' 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)

state 29

82 expnumber . $default reduce using rule 82 (exp)

state 30

8 stmNAME INCR . $default reduce using rule 8 (stm)

state 31

9 stmNAME DECR . $default reduce using rule 9 (stm)

state 32

34 callfunc. NAME $@9 '(' argparams ')' 37 rparamsNAME '[' . 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

state 33

34 callfuncNAME $@9 . '(' argparams ')' '(' shift, and go to state 92

state 34

33 $@9. ['('] 34 callfuncNAME . $@9 '(' argparams ')' 83 expNAME . [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

state 35

100 strSTRING . $default reduce using rule 100 (str)

state 36

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

state 37

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

state 38

81 expcallfunc . $default reduce using rule 81 (exp)

state 39

71 expexp . '+' 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 expcondexp . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 103 strexp . '+' 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)

state 40

29 $@7. [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 30 if_partIF cond . $@7 stms 96 condcond . 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

state 41

90 condexpcond . 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

state 42

99 expcondstr . [NAME, INT, FLOAT, IF, ELSE, FOR, WHILE, EOL, PRINT, RETURN, END, AND, OR, C_EQ, USING, LESSEQ, DIFF, GREATEQ, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ')', ',', '>', '<'] 101 strstr . '+' str 102 | str . '+' exp '+' shift, and go to state 107 '+' [reduce using rule 99 (expcond)] $default reduce using rule 99 (expcond)

state 43

19 stmFOR $@1 . NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END NAME shift, and go to state 108

state 44

23 stmWHILE $@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

state 45

47 $@10. 49 functionFUNCTION NAME . $@10 '(' rparams ')' $@11 stms END $default reduce using rule 47 ($@10) $@10 go to state 110

state 46

12 stmPRINT exp . [EOL, ';'] 71 expexp . '+' 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 strexp . '+' 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)

state 47

13 stmPRINT str . [EOL, ';'] 101 strstr . '+' str 102 | str . '+' exp '+' shift, and go to state 107 $default reduce using rule 13 (stm)

state 48

33 $@9. ['('] 34 callfuncNAME . $@9 '(' argparams ')' 60 vector_declareNAME . '[' exp TWO_DOTS exp ']' 83 expNAME . [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

state 49

70 matrix_declareSPARSE . 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

state 50

106 data_typeDT_INT . $default reduce using rule 106 (data_type)

state 51

107 data_typeDT_FLOAT . $default reduce using rule 107 (data_type)

state 52

108 data_typeDT_STRING . $default reduce using rule 108 (data_type)

state 53

109 data_typeDT_COMPLEX . $default reduce using rule 109 (data_type)

state 54

53 argtypecallfunc . [EOL, ';', ')', ','] 81 expcallfunc . [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)

state 55

11 stmRETURN argparams . [EOL, ';'] 52 argparamsargparams . ',' argtype ',' shift, and go to state 113 $default reduce using rule 11 (stm)

state 56

51 argparamsargtype . $default reduce using rule 51 (argparams)

state 57

57 argtypevector_declare . $default reduce using rule 57 (argtype)

state 58

58 argtypematrix_declare . $default reduce using rule 58 (argtype)

state 59

56 argtypeexp . [EOL, ';', ')', ','] 71 expexp . '+' 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 strexp . '+' 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)

state 60

54 argtypestr . [EOL, ';', ')', ','] 101 strstr . '+' str 102 | str . '+' exp '+' shift, and go to state 107 $default reduce using rule 54 (argtype)

state 61

55 argtypenumber . [EOL, ';', ')', ','] 82 expnumber . [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)

state 62

59 vector_declaredata_type . '[' exp ']' 61 | data_type . '[' ']' '(' argparams ')' 69 matrix_declaredata_type . '[' exp ',' exp ']' '[' shift, and go to state 114

state 63

20 stmUSING NAME . $default reduce using rule 20 (stm)

state 64

60 vector_declareNAME . '[' exp TWO_DOTS exp ']' 62 argmov_valueNAME . [EOL, ';', ','] '[' shift, and go to state 115 $default reduce using rule 62 (argmov_value)

state 65

63 argmov_valuevector_declare . $default reduce using rule 63 (argmov_value)

state 66

65 argmovargmov_value . $default reduce using rule 65 (argmov)

state 67

66 argmovargmov . ',' argmov_value 67 memcpyTODEV argmov . [EOL, ';'] ',' shift, and go to state 116 $default reduce using rule 67 (memcpy)

state 68

64 argmov_valuematrix_declare . $default reduce using rule 64 (argmov_value)

state 69

66 argmovargmov . ',' argmov_value 68 memcpyTOHOST argmov . [EOL, ';'] ',' shift, and go to state 116 $default reduce using rule 68 (memcpy)

state 70

71 expexp . '+' 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).

state 71

71 expexp . '+' 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).

state 72

71 expexp . '+' 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

state 73

4 stmsstms stm EOL . $default reduce using rule 4 (stms)

state 74

5 stmsstms 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)

state 75

31 $@8. 32 else_partif_part ELSE . $@8 stms END $default reduce using rule 31 ($@8) $@8 go to state 119

state 76

27 if_stmif_part END . $default reduce using rule 27 (if_stm)

state 77

25 stmrparams 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

state 78

39 rparamsrparams ',' . NAME 40 | rparams ',' . NAME '[' exp ']' 41 | rparams ',' . NAME '[' exp ',' exp ']' NAME shift, and go to state 121

state 79

43 function_listfunction_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

state 80

45 linesEOL . $default reduce using rule 45 (lines)

state 81

42 function_listfunction lines . [$end, FUNCTION] 46 lineslines . EOL EOL shift, and go to state 123 $default reduce using rule 42 (function_list)

state 82

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

state 83

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

state 84

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

state 85

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

state 86

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

state 87

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

state 88

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

state 89

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

state 90

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

state 91

37 rparamsNAME '[' exp . ']' 38 | NAME '[' exp . ',' exp ']' 71 expexp . '+' 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

state 92

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

state 93

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

state 94

89 condNEGT 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).

state 95

71 expexp . '+' 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 expcondexp . [C_EQ, LESSEQ, DIFF, GREATEQ, '>', '<'] 103 strexp . '+' 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)

state 96

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

state 97

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

state 98

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

state 99

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

state 100

3 stms. 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 30 if_partIF cond $@7 . stms $default reduce using rule 3 (stms) stms go to state 142

state 101

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 condexpcond 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

state 102

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 condexpcond 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

state 103

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 condexpcond 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

state 104

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 condexpcond 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

state 105

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 condexpcond '>' . 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

state 106

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 condexpcond '<' . 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

state 107

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

state 108

19 stmFOR $@1 NAME . ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END ASSIG shift, and go to state 151

state 109

22 $@6. [NAME, INT, FLOAT, IF, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 23 stmWHILE $@5 cond . $@6 stms END 96 condcond . 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

state 110

49 functionFUNCTION NAME $@10 . '(' rparams ')' $@11 stms END '(' shift, and go to state 153

state 111

34 callfunc. NAME $@9 '(' argparams ')' 60 vector_declareNAME '[' . 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

state 112

70 matrix_declareSPARSE data_type . '[' exp ',' exp ']' '[' shift, and go to state 155

state 113

34 callfunc. NAME $@9 '(' argparams ')' 52 argparamsargparams ',' . 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

state 114

34 callfunc. NAME $@9 '(' argparams ')' 59 vector_declaredata_type '[' . exp ']' 61 | data_type '[' . ']' '(' argparams ')' 69 matrix_declaredata_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

state 115

34 callfunc. NAME $@9 '(' argparams ')' 60 vector_declareNAME '[' . 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

state 116

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 argmovargmov ',' . 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

state 117

80 exp'(' exp ')' . $default reduce using rule 80 (exp)

state 118

6 stmsstms stm ';' EOL . $default reduce using rule 6 (stms)

state 119

3 stms. 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 32 else_partif_part ELSE $@8 . stms END $default reduce using rule 3 (stms) stms go to state 161

state 120

25 stmrparams ASSIG argparams . [EOL, ';'] 52 argparamsargparams . ',' argtype ',' shift, and go to state 113 $default reduce using rule 25 (stm)

state 121

39 rparamsrparams ',' NAME . [ASSIG, ')', ','] 40 | rparams ',' NAME . '[' exp ']' 41 | rparams ',' NAME . '[' exp ',' exp ']' '[' shift, and go to state 162 $default reduce using rule 39 (rparams)

state 122

43 function_listfunction_list function lines . [$end, FUNCTION] 46 lineslines . EOL EOL shift, and go to state 123 $default reduce using rule 43 (function_list)

state 123

46 lineslines EOL . $default reduce using rule 46 (lines)

state 124

71 expexp . '+' 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 < '/').

state 125

71 expexp . '+' 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 < '/').

state 126

71 expexp . '+' 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 ('|' < '/').

state 127

71 expexp . '+' 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 ('&' < '/').

state 128

71 expexp . '+' 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 ('%' < '/').

state 129

71 expexp . '+' 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 ('-' < '/').

state 130

71 expexp . '+' 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 ('+' < '/').

state 131

71 expexp . '+' 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 '/').

state 132

71 expexp . '+' 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 '/').

state 133

37 rparamsNAME '[' exp ']' . [ASSIG, ','] 84 expNAME '[' exp ']' . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] ASSIG reduce using rule 37 (rparams) ',' reduce using rule 37 (rparams) $default reduce using rule 84 (exp)

state 134

34 callfunc. NAME $@9 '(' argparams ')' 38 rparamsNAME '[' 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

state 135

34 callfuncNAME $@9 '(' argparams . ')' 52 argparamsargparams . ',' argtype ')' shift, and go to state 164 ',' shift, and go to state 113

state 136

71 expexp . '+' 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

state 137

88 cond'(' cond ')' . $default reduce using rule 88 (cond)

state 138

71 expexp . '+' 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 strexp . '+' 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 ('+' < '/').

state 139

101 strstr . '+' 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 '+').

state 140

96 condcond . 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).

state 141

96 condcond . 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).

state 142

4 stmsstms . 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

state 143

94 condexpcond C_EQ expcond . $default reduce using rule 94 (cond)

state 144

90 condexpcond LESSEQ expcond . $default reduce using rule 90 (cond)

state 145

95 condexpcond DIFF expcond . $default reduce using rule 95 (cond)

state 146

91 condexpcond GREATEQ expcond . $default reduce using rule 91 (cond)

state 147

92 condexpcond '>' expcond . $default reduce using rule 92 (cond)

state 148

93 condexpcond '<' expcond . $default reduce using rule 93 (cond)

state 149

71 expexp . '+' 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 strstr '+' 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 '+').

state 150

101 strstr . '+' 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 '+').

state 151

19 stmFOR $@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

state 152

3 stms. 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 23 stmWHILE $@5 cond $@6 . stms END $default reduce using rule 3 (stms) stms go to state 168

state 153

35 rparams. [')', ','] 36 | . NAME 37 | . NAME '[' exp ']' 38 | . NAME '[' exp ',' exp ']' 39 | . rparams ',' NAME 40 | . rparams ',' NAME '[' exp ']' 41 | . rparams ',' NAME '[' exp ',' exp ']' 49 functionFUNCTION NAME $@10 '(' . rparams ')' $@11 stms END NAME shift, and go to state 169 $default reduce using rule 35 (rparams) rparams go to state 170

state 154

60 vector_declareNAME '[' exp . TWO_DOTS exp ']' 71 expexp . '+' 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

state 155

34 callfunc. NAME $@9 '(' argparams ')' 70 matrix_declareSPARSE 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

state 156

52 argparamsargparams ',' argtype . $default reduce using rule 52 (argparams)

state 157

61 vector_declaredata_type '[' ']' . '(' argparams ')' '(' shift, and go to state 173

state 158

59 vector_declaredata_type '[' exp . ']' 69 matrix_declaredata_type '[' exp . ',' exp ']' 71 expexp . '+' 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

state 159

60 vector_declareNAME '[' exp . TWO_DOTS exp ']' 71 expexp . '+' 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

state 160

66 argmovargmov ',' argmov_value . $default reduce using rule 66 (argmov)

state 161

4 stmsstms . 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

state 162

34 callfunc. NAME $@9 '(' argparams ')' 40 rparamsrparams ',' 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

state 163

38 rparamsNAME '[' exp ',' exp . ']' 71 expexp . '+' 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

state 164

34 callfuncNAME $@9 '(' argparams ')' . $default reduce using rule 34 (callfunc)

state 165

84 expNAME '[' exp ']' . $default reduce using rule 84 (exp)

state 166

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

state 167

16 $@2. [TWO_DOTS] 19 stmFOR $@1 NAME ASSIG exp . $@2 TWO_DOTS $@3 exp $@4 stms END 71 expexp . '+' 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

state 168

4 stmsstms . 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

state 169

36 rparamsNAME . [')', ','] 37 | NAME . '[' exp ']' 38 | NAME . '[' exp ',' exp ']' '[' shift, and go to state 182 $default reduce using rule 36 (rparams)

state 170

39 rparamsrparams . ',' NAME 40 | rparams . ',' NAME '[' exp ']' 41 | rparams . ',' NAME '[' exp ',' exp ']' 49 functionFUNCTION NAME $@10 '(' rparams . ')' $@11 stms END ')' shift, and go to state 183 ',' shift, and go to state 78

state 171

34 callfunc. NAME $@9 '(' argparams ')' 60 vector_declareNAME '[' 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

state 172

70 matrix_declareSPARSE data_type '[' exp . ',' exp ']' 71 expexp . '+' 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

state 173

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

state 174

59 vector_declaredata_type '[' exp ']' . $default reduce using rule 59 (vector_declare)

state 175

34 callfunc. NAME $@9 '(' argparams ')' 69 matrix_declaredata_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

state 176

32 else_partif_part ELSE $@8 stms END . $default reduce using rule 32 (else_part)

state 177

40 rparamsrparams ',' NAME '[' exp . ']' 41 | rparams ',' NAME '[' exp . ',' exp ']' 71 expexp . '+' 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

state 178

38 rparamsNAME '[' exp ',' exp ']' . [ASSIG, ','] 85 expNAME '[' exp ',' exp ']' . [EOL, SHIFTL, SHIFTR, '|', '&', '%', '-', '+', '*', '/', ';'] ASSIG reduce using rule 38 (rparams) ',' reduce using rule 38 (rparams) $default reduce using rule 85 (exp)

state 179

71 expexp . '+' 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

state 180

19 stmFOR $@1 NAME ASSIG exp $@2 . TWO_DOTS $@3 exp $@4 stms END TWO_DOTS shift, and go to state 191

state 181

23 stmWHILE $@5 cond $@6 stms END . $default reduce using rule 23 (stm)

state 182

34 callfunc. NAME $@9 '(' argparams ')' 37 rparamsNAME '[' . 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

state 183

48 $@11. 49 functionFUNCTION NAME $@10 '(' rparams ')' . $@11 stms END $default reduce using rule 48 ($@11) $@11 go to state 193

state 184

60 vector_declareNAME '[' exp TWO_DOTS exp . ']' 71 expexp . '+' 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

state 185

34 callfunc. NAME $@9 '(' argparams ')' 70 matrix_declareSPARSE 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

state 186

52 argparamsargparams . ',' argtype 61 vector_declaredata_type '[' ']' '(' argparams . ')' ')' shift, and go to state 196 ',' shift, and go to state 113

state 187

69 matrix_declaredata_type '[' exp ',' exp . ']' 71 expexp . '+' 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

state 188

40 rparamsrparams ',' NAME '[' exp ']' . $default reduce using rule 40 (rparams)

state 189

34 callfunc. NAME $@9 '(' argparams ')' 41 rparamsrparams ',' 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

state 190

85 expNAME '[' exp ',' exp ']' . $default reduce using rule 85 (exp)

state 191

17 $@3. 19 stmFOR $@1 NAME ASSIG exp $@2 TWO_DOTS . $@3 exp $@4 stms END $default reduce using rule 17 ($@3) $@3 go to state 199

state 192

37 rparamsNAME '[' exp . ']' 38 | NAME '[' exp . ',' exp ']' 71 expexp . '+' 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

state 193

3 stms. 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 49 functionFUNCTION NAME $@10 '(' rparams ')' $@11 . stms END $default reduce using rule 3 (stms) stms go to state 202

state 194

60 vector_declareNAME '[' exp TWO_DOTS exp ']' . $default reduce using rule 60 (vector_declare)

state 195

70 matrix_declareSPARSE data_type '[' exp ',' exp . ']' 71 expexp . '+' 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

state 196

61 vector_declaredata_type '[' ']' '(' argparams ')' . $default reduce using rule 61 (vector_declare)

state 197

69 matrix_declaredata_type '[' exp ',' exp ']' . $default reduce using rule 69 (matrix_declare)

state 198

41 rparamsrparams ',' NAME '[' exp ',' exp . ']' 71 expexp . '+' 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

state 199

19 stmFOR $@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

state 200

37 rparamsNAME '[' exp ']' . $default reduce using rule 37 (rparams)

state 201

34 callfunc. NAME $@9 '(' argparams ')' 38 rparamsNAME '[' 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

state 202

4 stmsstms . 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 functionFUNCTION 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

state 203

70 matrix_declareSPARSE data_type '[' exp ',' exp ']' . $default reduce using rule 70 (matrix_declare)

state 204

41 rparamsrparams ',' NAME '[' exp ',' exp ']' . $default reduce using rule 41 (rparams)

state 205

18 $@4. [NAME, INT, FLOAT, IF, FOR, WHILE, EOL, PRINT, RETURN, END, USING, TODEV, TOHOST, ASSIG, '-', '+', ';', '(', ','] 19 stmFOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp . $@4 stms END 71 expexp . '+' 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

state 206

38 rparamsNAME '[' exp ',' exp . ']' 71 expexp . '+' 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

state 207

49 functionFUNCTION NAME $@10 '(' rparams ')' $@11 stms END . $default reduce using rule 49 (function)

state 208

3 stms. 4 | . stms stm EOL 5 | . stms stm ';' 6 | . stms stm ';' EOL 19 stmFOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 . stms END $default reduce using rule 3 (stms) stms go to state 210

state 209

38 rparamsNAME '[' exp ',' exp ']' . $default reduce using rule 38 (rparams)

state 210

4 stmsstms . 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

state 211

19 stmFOR $@1 NAME ASSIG exp $@2 TWO_DOTS $@3 exp $@4 stms END . $default reduce using rule 19 (stm)