GNU Bison XML Automaton Report

input grammar: parser.yy

Table of Contents

Reductions

Nonterminals useless in grammar

Terminals unused in grammar

"abs" "ceiling" "floor" "log2" "loge" "log10" "max" "min" "pow" "sample_rate" "sign" "sin" "start" "time" "time_millis"

Rules useless in grammar

Conflicts

Grammar

0 $acceptprogram $end 1 programblocks $end 2 blocksmain_block 3 | block 4 | blocks block 5 block"also" one_or_more_statements "end" "also" 6 | "when" exp one_or_more_statements "end" "when" 7 main_blockone_or_more_statements 8 zero_or_more_statements → %empty 9 | zero_or_more_statements statement 10 one_or_more_statementsstatement 11 | one_or_more_statements statement 12 statementarray_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment"identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement"clear" "all" 35 continue_statement"continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement"exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement"for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 45 elseif_group → %empty 46 | elseif_group elseif_clause 47 elseif_clause"elseif" exp "then" zero_or_more_statements 48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call"print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement"reset" 53 wait_statement"wait" exp 54 while_statement"while" exp zero_or_more_statements "end" "while" 55 expression_listexp 56 | expression_list "," exp 57 exp"number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 82 string_liststring_exp 83 | exp 84 | string_list "," string_exp 85 | string_list "," exp 86 string_exp"quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")"

Terminals, with rules where they appear

Nonterminals, with rules where they appear

Automaton

State 0

0 $accept program $end 1 program blocks $end 2 blocks main_block 3 | block 4 | blocks block 5 block "also" one_or_more_statements "end" "also" 6 | "when" exp one_or_more_statements "end" "when" 7 main_block one_or_more_statements 10 one_or_more_statements statement 11 | one_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "also" shift, and go to state 1 "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "when" shift, and go to state 11 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 program go to state 16 blocks go to state 17 block go to state 18 main_block go to state 19 one_or_more_statements go to state 20 statement go to state 21 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 1

5 block"also" one_or_more_statements "end" "also" 10 one_or_more_statements statement 11 | one_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 one_or_more_statements go to state 33 statement go to state 21 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 2

34 clear_statement"clear" "all" "all" shift, and go to state 34

State 3

35 continue_statement"continue" "for" 36 | "continue" "while" 37 | "continue" "all" "all" shift, and go to state 35 "for" shift, and go to state 36 "while" shift, and go to state 37

State 4

38 exit_statement"exit" "for" 39 | "exit" "while" 40 | "exit" "all" "all" shift, and go to state 38 "for" shift, and go to state 39 "while" shift, and go to state 40

State 5

29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 41 for_statement"for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" "identifier" shift, and go to state 41 "in_port" shift, and go to state 14 "out_port" shift, and go to state 42 assignment go to state 43

State 6

48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 58

State 7

50 procedure_call"print" "(" "out_port" "," string_list ")" "(" shift, and go to state 59

State 8

52 reset_statement"reset" $default reduce using rule 52 (reset_statement)

State 9

51 procedure_call"set_channels" "(" "out_port" "," exp ")" "(" shift, and go to state 60

State 10

53 wait_statement"wait" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 61

State 11

6 block"when" exp one_or_more_statements "end" "when" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 62

State 12

54 while_statement"while" exp zero_or_more_statements "end" "while" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 63

State 13

23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment"identifier" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp "=" shift, and go to state 64 "[" shift, and go to state 65 "$" shift, and go to state 66

State 14

30 assignment"in_port" "=" exp "=" shift, and go to state 67

State 15

25 array_assignment"out_port" "[" exp "]" "=" exp 31 assignment"out_port" "=" exp "=" shift, and go to state 68 "[" shift, and go to state 69

State 16

0 $acceptprogram $end $end shift, and go to state 70

State 17

1 programblocks $end 4 blocksblocks block 5 block "also" one_or_more_statements "end" "also" 6 | "when" exp one_or_more_statements "end" "when" $end shift, and go to state 71 "also" shift, and go to state 1 "when" shift, and go to state 11 block go to state 72

State 18

3 blocksblock $default reduce using rule 3 (blocks)

State 19

2 blocksmain_block $default reduce using rule 2 (blocks)

State 20

7 main_blockone_or_more_statements [$end, "also", "when"] 11 one_or_more_statementsone_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 $default reduce using rule 7 (main_block) statement go to state 73 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 21

10 one_or_more_statementsstatement $default reduce using rule 10 (one_or_more_statements)

State 22

12 statementarray_assignment $default reduce using rule 12 (statement)

State 23

13 statementassignment $default reduce using rule 13 (statement)

State 24

14 statementclear_statement $default reduce using rule 14 (statement)

State 25

15 statementcontinue_statement $default reduce using rule 15 (statement)

State 26

16 statementexit_statement $default reduce using rule 16 (statement)

State 27

17 statementfor_statement $default reduce using rule 17 (statement)

State 28

18 statementif_statement $default reduce using rule 18 (statement)

State 29

19 statementprocedure_call $default reduce using rule 19 (statement)

State 30

20 statementreset_statement $default reduce using rule 20 (statement)

State 31

21 statementwait_statement $default reduce using rule 21 (statement)

State 32

22 statementwhile_statement $default reduce using rule 22 (statement)

State 33

5 block"also" one_or_more_statements "end" "also" 11 one_or_more_statementsone_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "end" shift, and go to state 74 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 73 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 34

34 clear_statement"clear" "all" $default reduce using rule 34 (clear_statement)

State 35

37 continue_statement"continue" "all" $default reduce using rule 37 (continue_statement)

State 36

35 continue_statement"continue" "for" $default reduce using rule 35 (continue_statement)

State 37

36 continue_statement"continue" "while" $default reduce using rule 36 (continue_statement)

State 38

40 exit_statement"exit" "all" $default reduce using rule 40 (exit_statement)

State 39

38 exit_statement"exit" "for" $default reduce using rule 38 (exit_statement)

State 40

39 exit_statement"exit" "while" $default reduce using rule 39 (exit_statement)

State 41

29 assignment"identifier" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp "=" shift, and go to state 64 "$" shift, and go to state 75

State 42

31 assignment"out_port" "=" exp "=" shift, and go to state 68

State 43

41 for_statement"for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" "to" shift, and go to state 76

State 44

74 exp"channels" "(" "in_port" ")" "(" shift, and go to state 77

State 45

75 exp"connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" "(" shift, and go to state 78

State 46

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 79

State 47

77 exp"trigger" "(" "in_port" ")" "(" shift, and go to state 80

State 48

59 exp"-" "number" "number" shift, and go to state 81

State 49

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 82

State 50

64 exp"identifier" [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 65 | "identifier" "[" exp "]" "[" shift, and go to state 83 $default reduce using rule 64 (exp)

State 51

57 exp"number" $default reduce using rule 57 (exp)

State 52

58 exp"note" $default reduce using rule 58 (exp)

State 53

61 exp"in_port" [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 62 | "in_port" "[" exp "]" "[" shift, and go to state 84 $default reduce using rule 61 (exp)

State 54

63 exp"out_port" $default reduce using rule 63 (exp)

State 55

73 exp"zeroargfunc" "(" ")" "(" shift, and go to state 85

State 56

78 exp"oneargfunc" "(" exp ")" "(" shift, and go to state 86

State 57

79 exp"twoargfunc" "(" exp "," exp ")" "(" shift, and go to state 87

State 58

48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "then" shift, and go to state 90 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 59

50 procedure_call"print" "(" "out_port" "," string_list ")" "out_port" shift, and go to state 97

State 60

51 procedure_call"set_channels" "(" "out_port" "," exp ")" "out_port" shift, and go to state 98

State 61

53 wait_statement"wait" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 53 (wait_statement)

State 62

6 block"when" exp one_or_more_statements "end" "when" 10 one_or_more_statements statement 11 | one_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "or" shift, and go to state 89 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 "comparison" shift, and go to state 96 one_or_more_statements go to state 99 statement go to state 21 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 63

8 zero_or_more_statements %empty ["clear", "continue", "end", "exit", "for", "if", "print", "reset", "set_channels", "wait", "while", "identifier", "in_port", "out_port"] 9 | zero_or_more_statements statement 54 while_statement"while" exp zero_or_more_statements "end" "while" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 100

State 64

29 assignment"identifier" "=" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 101

State 65

23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 102

State 66

26 array_assignment"identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 32 assignment"identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp "=" shift, and go to state 103 "[" shift, and go to state 104

State 67

30 assignment"in_port" "=" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 105

State 68

31 assignment"out_port" "=" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 106

State 69

25 array_assignment"out_port" "[" exp "]" "=" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 107

State 70

0 $acceptprogram $end $default accept

State 71

1 programblocks $end $default reduce using rule 1 (program)

State 72

4 blocksblocks block $default reduce using rule 4 (blocks)

State 73

11 one_or_more_statementsone_or_more_statements statement $default reduce using rule 11 (one_or_more_statements)

State 74

5 block"also" one_or_more_statements "end" "also" "also" shift, and go to state 108

State 75

32 assignment"identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp "=" shift, and go to state 103

State 76

41 for_statement"for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 109

State 77

74 exp"channels" "(" "in_port" ")" "in_port" shift, and go to state 110

State 78

75 exp"connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" "in_port" shift, and go to state 111 "out_port" shift, and go to state 112

State 79

60 exp"not" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp $default reduce using rule 60 (exp) Conflict between rule 60 and token "and" resolved as reduce ("and" < NEG). Conflict between rule 60 and token "or" resolved as reduce ("or" < NEG). Conflict between rule 60 and token "-" resolved as reduce ("-" < NEG). Conflict between rule 60 and token "+" resolved as reduce ("+" < NEG). Conflict between rule 60 and token "*" resolved as reduce ("*" < NEG). Conflict between rule 60 and token "/" resolved as reduce ("/" < NEG). Conflict between rule 60 and token "?" resolved as reduce ("?" < NEG). Conflict between rule 60 and token "comparison" resolved as reduce ("comparison" < NEG).

State 80

77 exp"trigger" "(" "in_port" ")" "in_port" shift, and go to state 113

State 81

59 exp"-" "number" $default reduce using rule 59 (exp)

State 82

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 81 | "(" exp ")" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 114 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 83

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 115

State 84

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 116

State 85

73 exp"zeroargfunc" "(" ")" ")" shift, and go to state 117

State 86

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 118

State 87

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 119

State 88

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 120

State 89

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 121

State 90

8 zero_or_more_statements %empty 9 | zero_or_more_statements statement 48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 122

State 91

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 123

State 92

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 124

State 93

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 125

State 94

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 126

State 95

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 127

State 96

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 128

State 97

50 procedure_call"print" "(" "out_port" "," string_list ")" "," shift, and go to state 129

State 98

51 procedure_call"set_channels" "(" "out_port" "," exp ")" "," shift, and go to state 130

State 99

6 block"when" exp one_or_more_statements "end" "when" 11 one_or_more_statementsone_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "end" shift, and go to state 131 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 73 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 100

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" 54 | "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "end" shift, and go to state 132 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 101

29 assignment"identifier" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "to", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 29 (assignment)

State 102

23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 134 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 103

32 assignment"identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 86 string_exp "quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "debug" shift, and go to state 135 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 136 "quoted_string" shift, and go to state 137 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 138 string_exp go to state 139

State 104

26 array_assignment"identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 140

State 105

30 assignment"in_port" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "to", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 30 (assignment)

State 106

31 assignment"out_port" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "to", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 31 (assignment)

State 107

25 array_assignment"out_port" "[" exp "]" "=" exp 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 141 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 108

5 block"also" one_or_more_statements "end" "also" $default reduce using rule 5 (block)

State 109

8 zero_or_more_statements %empty ["clear", "continue", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "while", "identifier", "in_port", "out_port"] 9 | zero_or_more_statements statement 41 for_statement"for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "step" shift, and go to state 142 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 143

State 110

74 exp"channels" "(" "in_port" ")" ")" shift, and go to state 144

State 111

75 exp"connected" "(" "in_port" ")" ")" shift, and go to state 145

State 112

76 exp"connected" "(" "out_port" ")" ")" shift, and go to state 146

State 113

77 exp"trigger" "(" "in_port" ")" ")" shift, and go to state 147

State 114

81 exp"(" exp ")" $default reduce using rule 81 (exp)

State 115

65 exp"identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 148 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 116

62 exp"in_port" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 149 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 117

73 exp"zeroargfunc" "(" ")" $default reduce using rule 73 (exp)

State 118

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 78 | "oneargfunc" "(" exp ")" 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 150 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 119

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "," shift, and go to state 151 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 120

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 71 | exp "and" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port"] 72 | exp "or" exp 80 | exp "?" exp ":" exp "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "comparison" shift, and go to state 96 $default reduce using rule 71 (exp) Conflict between rule 71 and token "and" resolved as reduce (%left "and"). Conflict between rule 71 and token "or" resolved as reduce ("or" < "and"). Conflict between rule 71 and token "-" resolved as shift ("and" < "-"). Conflict between rule 71 and token "+" resolved as shift ("and" < "+"). Conflict between rule 71 and token "*" resolved as shift ("and" < "*"). Conflict between rule 71 and token "/" resolved as shift ("and" < "/"). Conflict between rule 71 and token "?" resolved as reduce ("?" < "and"). Conflict between rule 71 and token "comparison" resolved as shift ("and" < "comparison").

State 121

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 72 | exp "or" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port"] 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "comparison" shift, and go to state 96 $default reduce using rule 72 (exp) Conflict between rule 72 and token "and" resolved as shift ("or" < "and"). Conflict between rule 72 and token "or" resolved as reduce (%left "or"). Conflict between rule 72 and token "-" resolved as shift ("or" < "-"). Conflict between rule 72 and token "+" resolved as shift ("or" < "+"). Conflict between rule 72 and token "*" resolved as shift ("or" < "*"). Conflict between rule 72 and token "/" resolved as shift ("or" < "/"). Conflict between rule 72 and token "?" resolved as reduce ("?" < "or"). Conflict between rule 72 and token "comparison" resolved as shift ("or" < "comparison").

State 122

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 45 elseif_group %empty ["else", "elseif", "end"] 46 | elseif_group elseif_clause 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 48 | "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 $default reduce using rule 45 (elseif_group) statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 elseif_group go to state 152 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 123

66 expexp "+" exp 67 | exp "-" exp 67 | exp "-" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "*" shift, and go to state 93 "/" shift, and go to state 94 $default reduce using rule 67 (exp) Conflict between rule 67 and token "and" resolved as reduce ("and" < "-"). Conflict between rule 67 and token "or" resolved as reduce ("or" < "-"). Conflict between rule 67 and token "-" resolved as reduce (%left "-"). Conflict between rule 67 and token "+" resolved as reduce (%left "+"). Conflict between rule 67 and token "*" resolved as shift ("-" < "*"). Conflict between rule 67 and token "/" resolved as shift ("-" < "/"). Conflict between rule 67 and token "?" resolved as reduce ("?" < "-"). Conflict between rule 67 and token "comparison" resolved as reduce ("comparison" < "-").

State 124

66 expexp "+" exp 66 | exp "+" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "*" shift, and go to state 93 "/" shift, and go to state 94 $default reduce using rule 66 (exp) Conflict between rule 66 and token "and" resolved as reduce ("and" < "+"). Conflict between rule 66 and token "or" resolved as reduce ("or" < "+"). Conflict between rule 66 and token "-" resolved as reduce (%left "-"). Conflict between rule 66 and token "+" resolved as reduce (%left "+"). Conflict between rule 66 and token "*" resolved as shift ("+" < "*"). Conflict between rule 66 and token "/" resolved as shift ("+" < "/"). Conflict between rule 66 and token "?" resolved as reduce ("?" < "+"). Conflict between rule 66 and token "comparison" resolved as reduce ("comparison" < "+").

State 125

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 68 | exp "*" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp $default reduce using rule 68 (exp) Conflict between rule 68 and token "and" resolved as reduce ("and" < "*"). Conflict between rule 68 and token "or" resolved as reduce ("or" < "*"). Conflict between rule 68 and token "-" resolved as reduce ("-" < "*"). Conflict between rule 68 and token "+" resolved as reduce ("+" < "*"). Conflict between rule 68 and token "*" resolved as reduce (%left "*"). Conflict between rule 68 and token "/" resolved as reduce (%left "/"). Conflict between rule 68 and token "?" resolved as reduce ("?" < "*"). Conflict between rule 68 and token "comparison" resolved as reduce ("comparison" < "*").

State 126

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 69 | exp "/" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp $default reduce using rule 69 (exp) Conflict between rule 69 and token "and" resolved as reduce ("and" < "/"). Conflict between rule 69 and token "or" resolved as reduce ("or" < "/"). Conflict between rule 69 and token "-" resolved as reduce ("-" < "/"). Conflict between rule 69 and token "+" resolved as reduce ("+" < "/"). Conflict between rule 69 and token "*" resolved as reduce (%left "*"). Conflict between rule 69 and token "/" resolved as reduce (%left "/"). Conflict between rule 69 and token "?" resolved as reduce ("?" < "/"). Conflict between rule 69 and token "comparison" resolved as reduce ("comparison" < "/").

State 127

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 ":" shift, and go to state 153 "comparison" shift, and go to state 96

State 128

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 70 | exp "comparison" exp [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", ")", "}", "]", ",", "?", ":", "identifier", "in_port", "out_port", "comparison"] 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 $default reduce using rule 70 (exp) Conflict between rule 70 and token "and" resolved as reduce ("and" < "comparison"). Conflict between rule 70 and token "or" resolved as reduce ("or" < "comparison"). Conflict between rule 70 and token "-" resolved as shift ("comparison" < "-"). Conflict between rule 70 and token "+" resolved as shift ("comparison" < "+"). Conflict between rule 70 and token "*" resolved as shift ("comparison" < "*"). Conflict between rule 70 and token "/" resolved as shift ("comparison" < "/"). Conflict between rule 70 and token "?" resolved as reduce ("?" < "comparison"). Conflict between rule 70 and token "comparison" resolved as reduce (%left "comparison").

State 129

50 procedure_call"print" "(" "out_port" "," string_list ")" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 82 string_list string_exp 83 | exp 84 | string_list "," string_exp 85 | string_list "," exp 86 string_exp "quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "debug" shift, and go to state 135 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 136 "quoted_string" shift, and go to state 137 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 154 string_list go to state 155 string_exp go to state 156

State 130

51 procedure_call"set_channels" "(" "out_port" "," exp ")" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 157

State 131

6 block"when" exp one_or_more_statements "end" "when" "when" shift, and go to state 158

State 132

54 while_statement"while" exp zero_or_more_statements "end" "while" "while" shift, and go to state 159

State 133

9 zero_or_more_statementszero_or_more_statements statement $default reduce using rule 9 (zero_or_more_statements)

State 134

23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" "=" shift, and go to state 160

State 135

89 string_exp"debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "(" shift, and go to state 161

State 136

64 exp"identifier" [$end, "also", "and", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "or", "print", "reset", "set_channels", "to", "wait", "when", "while", "-", "+", "*", "/", ")", "}", ",", "?", "identifier", "in_port", "out_port", "comparison"] 65 | "identifier" "[" exp "]" 87 string_exp"identifier" "$" 88 | "identifier" "$" "[" exp "]" "[" shift, and go to state 83 "$" shift, and go to state 162 $default reduce using rule 64 (exp)

State 137

86 string_exp"quoted_string" $default reduce using rule 86 (string_exp)

State 138

32 assignment"identifier" "$" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "to", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 32 (assignment)

State 139

33 assignment"identifier" "$" "=" string_exp $default reduce using rule 33 (assignment)

State 140

26 array_assignment"identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 163 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 141

25 array_assignment"out_port" "[" exp "]" "=" exp "=" shift, and go to state 164

State 142

42 for_statement"for" assignment "to" exp "step" exp zero_or_more_statements "next" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 165

State 143

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 41 | "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "next" shift, and go to state 166 "nexthighcpu" shift, and go to state 167 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 144

74 exp"channels" "(" "in_port" ")" $default reduce using rule 74 (exp)

State 145

75 exp"connected" "(" "in_port" ")" $default reduce using rule 75 (exp)

State 146

76 exp"connected" "(" "out_port" ")" $default reduce using rule 76 (exp)

State 147

77 exp"trigger" "(" "in_port" ")" $default reduce using rule 77 (exp)

State 148

65 exp"identifier" "[" exp "]" $default reduce using rule 65 (exp)

State 149

62 exp"in_port" "[" exp "]" $default reduce using rule 62 (exp)

State 150

78 exp"oneargfunc" "(" exp ")" $default reduce using rule 78 (exp)

State 151

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 168

State 152

46 elseif_groupelseif_group elseif_clause 47 elseif_clause "elseif" exp "then" zero_or_more_statements 48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" "else" shift, and go to state 169 "elseif" shift, and go to state 170 "end" shift, and go to state 171 elseif_clause go to state 172

State 153

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 173

State 154

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 83 string_listexp [")", "}", ","] "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 83 (string_list)

State 155

50 procedure_call"print" "(" "out_port" "," string_list ")" 84 string_liststring_list "," string_exp 85 | string_list "," exp ")" shift, and go to state 174 "," shift, and go to state 175

State 156

82 string_liststring_exp $default reduce using rule 82 (string_list)

State 157

51 procedure_call"set_channels" "(" "out_port" "," exp ")" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 176 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 158

6 block"when" exp one_or_more_statements "end" "when" $default reduce using rule 6 (block)

State 159

54 while_statement"while" exp zero_or_more_statements "end" "while" $default reduce using rule 54 (while_statement)

State 160

23 array_assignment"identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "{" shift, and go to state 177 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 178

State 161

89 string_exp"debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "identifier" shift, and go to state 179

State 162

87 string_exp"identifier" "$" [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "to", "wait", "when", "while", ")", "}", ",", "identifier", "in_port", "out_port"] 88 | "identifier" "$" "[" exp "]" "[" shift, and go to state 180 $default reduce using rule 87 (string_exp)

State 163

26 array_assignment"identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" "=" shift, and go to state 181

State 164

25 array_assignment"out_port" "[" exp "]" "=" exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 182

State 165

8 zero_or_more_statements %empty ["clear", "continue", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "while", "identifier", "in_port", "out_port"] 9 | zero_or_more_statements statement 42 for_statement"for" assignment "to" exp "step" exp zero_or_more_statements "next" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 183

State 166

41 for_statement"for" assignment "to" exp zero_or_more_statements "next" $default reduce using rule 41 (for_statement)

State 167

43 for_statement"for" assignment "to" exp zero_or_more_statements "nexthighcpu" $default reduce using rule 43 (for_statement)

State 168

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 184 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 169

8 zero_or_more_statements %empty 9 | zero_or_more_statements statement 49 if_statement"if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 185

State 170

47 elseif_clause"elseif" exp "then" zero_or_more_statements 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 186

State 171

48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" "if" shift, and go to state 187

State 172

46 elseif_groupelseif_group elseif_clause $default reduce using rule 46 (elseif_group)

State 173

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 80 | exp "?" exp ":" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "step", "then", "to", "wait", "when", "while", ")", "}", "]", ",", ":", "identifier", "in_port", "out_port"] "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 80 (exp) Conflict between rule 80 and token "and" resolved as shift (":" < "and"). Conflict between rule 80 and token "or" resolved as shift (":" < "or"). Conflict between rule 80 and token "-" resolved as shift (":" < "-"). Conflict between rule 80 and token "+" resolved as shift (":" < "+"). Conflict between rule 80 and token "*" resolved as shift (":" < "*"). Conflict between rule 80 and token "/" resolved as shift (":" < "/"). Conflict between rule 80 and token "?" resolved as shift (%right "?"). Conflict between rule 80 and token "comparison" resolved as shift (":" < "comparison").

State 174

50 procedure_call"print" "(" "out_port" "," string_list ")" $default reduce using rule 50 (procedure_call)

State 175

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 84 string_liststring_list "," string_exp 85 | string_list "," exp 86 string_exp "quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "debug" shift, and go to state 135 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 136 "quoted_string" shift, and go to state 137 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 188 string_exp go to state 189

State 176

51 procedure_call"set_channels" "(" "out_port" "," exp ")" $default reduce using rule 51 (procedure_call)

State 177

24 array_assignment"identifier" "[" exp "]" "=" "{" expression_list "}" 55 expression_list exp 56 | expression_list "," exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 expression_list go to state 190 exp go to state 191

State 178

23 array_assignment"identifier" "[" exp "]" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 23 (array_assignment)

State 179

89 string_exp"debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" ")" shift, and go to state 192 "[" shift, and go to state 193 "$" shift, and go to state 194

State 180

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 88 string_exp"identifier" "$" "[" exp "]" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 195

State 181

26 array_assignment"identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 86 string_exp "quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "debug" shift, and go to state 135 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "{" shift, and go to state 196 "identifier" shift, and go to state 136 "quoted_string" shift, and go to state 137 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 197 string_exp go to state 198

State 182

25 array_assignment"out_port" "[" exp "]" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 25 (array_assignment)

State 183

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "next" shift, and go to state 199 "nexthighcpu" shift, and go to state 200 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 184

79 exp"twoargfunc" "(" exp "," exp ")" $default reduce using rule 79 (exp)

State 185

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "end" shift, and go to state 201 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 186

47 elseif_clause"elseif" exp "then" zero_or_more_statements 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "then" shift, and go to state 202 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 187

48 if_statement"if" exp "then" zero_or_more_statements elseif_group "end" "if" $default reduce using rule 48 (if_statement)

State 188

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 85 string_liststring_list "," exp [")", "}", ","] "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 85 (string_list)

State 189

84 string_liststring_list "," string_exp $default reduce using rule 84 (string_list)

State 190

24 array_assignment"identifier" "[" exp "]" "=" "{" expression_list "}" 56 expression_listexpression_list "," exp "}" shift, and go to state 203 "," shift, and go to state 204

State 191

55 expression_listexp ["}", ","] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 55 (expression_list)

State 192

89 string_exp"debug" "(" "identifier" ")" $default reduce using rule 89 (string_exp)

State 193

91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "]" shift, and go to state 205

State 194

90 string_exp"debug" "(" "identifier" "$" ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" ")" shift, and go to state 206 "[" shift, and go to state 207

State 195

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 88 string_exp"identifier" "$" "[" exp "]" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "]" shift, and go to state 208 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 196

28 array_assignment"identifier" "$" "[" exp "]" "=" "{" string_list "}" 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 82 string_list string_exp 83 | exp 84 | string_list "," string_exp 85 | string_list "," exp 86 string_exp "quoted_string" 87 | "identifier" "$" 88 | "identifier" "$" "[" exp "]" 89 | "debug" "(" "identifier" ")" 90 | "debug" "(" "identifier" "$" ")" 91 | "debug" "(" "identifier" "[" "]" "," exp "," exp ")" 92 | "debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "debug" shift, and go to state 135 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 136 "quoted_string" shift, and go to state 137 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 154 string_list go to state 209 string_exp go to state 156

State 197

26 array_assignment"identifier" "$" "[" exp "]" "=" exp [$end, "also", "clear", "continue", "else", "elseif", "end", "exit", "for", "if", "next", "nexthighcpu", "print", "reset", "set_channels", "wait", "when", "while", "identifier", "in_port", "out_port"] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 26 (array_assignment)

State 198

27 array_assignment"identifier" "$" "[" exp "]" "=" string_exp $default reduce using rule 27 (array_assignment)

State 199

42 for_statement"for" assignment "to" exp "step" exp zero_or_more_statements "next" $default reduce using rule 42 (for_statement)

State 200

44 for_statement"for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" $default reduce using rule 44 (for_statement)

State 201

49 if_statement"if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" "if" shift, and go to state 210

State 202

8 zero_or_more_statements %empty 9 | zero_or_more_statements statement 47 elseif_clause"elseif" exp "then" zero_or_more_statements $default reduce using rule 8 (zero_or_more_statements) zero_or_more_statements go to state 211

State 203

24 array_assignment"identifier" "[" exp "]" "=" "{" expression_list "}" $default reduce using rule 24 (array_assignment)

State 204

56 expression_listexpression_list "," exp 57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 212

State 205

91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "," shift, and go to state 213

State 206

90 string_exp"debug" "(" "identifier" "$" ")" $default reduce using rule 90 (string_exp)

State 207

92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "]" shift, and go to state 214

State 208

88 string_exp"identifier" "$" "[" exp "]" $default reduce using rule 88 (string_exp)

State 209

28 array_assignment"identifier" "$" "[" exp "]" "=" "{" string_list "}" 84 string_liststring_list "," string_exp 85 | string_list "," exp "}" shift, and go to state 215 "," shift, and go to state 175

State 210

49 if_statement"if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" $default reduce using rule 49 (if_statement)

State 211

9 zero_or_more_statementszero_or_more_statements statement 12 statement array_assignment 13 | assignment 14 | clear_statement 15 | continue_statement 16 | exit_statement 17 | for_statement 18 | if_statement 19 | procedure_call 20 | reset_statement 21 | wait_statement 22 | while_statement 23 array_assignment "identifier" "[" exp "]" "=" exp 24 | "identifier" "[" exp "]" "=" "{" expression_list "}" 25 | "out_port" "[" exp "]" "=" exp 26 | "identifier" "$" "[" exp "]" "=" exp 27 | "identifier" "$" "[" exp "]" "=" string_exp 28 | "identifier" "$" "[" exp "]" "=" "{" string_list "}" 29 assignment "identifier" "=" exp 30 | "in_port" "=" exp 31 | "out_port" "=" exp 32 | "identifier" "$" "=" exp 33 | "identifier" "$" "=" string_exp 34 clear_statement "clear" "all" 35 continue_statement "continue" "for" 36 | "continue" "while" 37 | "continue" "all" 38 exit_statement "exit" "for" 39 | "exit" "while" 40 | "exit" "all" 41 for_statement "for" assignment "to" exp zero_or_more_statements "next" 42 | "for" assignment "to" exp "step" exp zero_or_more_statements "next" 43 | "for" assignment "to" exp zero_or_more_statements "nexthighcpu" 44 | "for" assignment "to" exp "step" exp zero_or_more_statements "nexthighcpu" 47 elseif_clause"elseif" exp "then" zero_or_more_statements ["else", "elseif", "end"] 48 if_statement "if" exp "then" zero_or_more_statements elseif_group "end" "if" 49 | "if" exp "then" zero_or_more_statements elseif_group "else" zero_or_more_statements "end" "if" 50 procedure_call "print" "(" "out_port" "," string_list ")" 51 | "set_channels" "(" "out_port" "," exp ")" 52 reset_statement "reset" 53 wait_statement "wait" exp 54 while_statement "while" exp zero_or_more_statements "end" "while" "clear" shift, and go to state 2 "continue" shift, and go to state 3 "exit" shift, and go to state 4 "for" shift, and go to state 5 "if" shift, and go to state 6 "print" shift, and go to state 7 "reset" shift, and go to state 8 "set_channels" shift, and go to state 9 "wait" shift, and go to state 10 "while" shift, and go to state 12 "identifier" shift, and go to state 13 "in_port" shift, and go to state 14 "out_port" shift, and go to state 15 $default reduce using rule 47 (elseif_clause) statement go to state 133 array_assignment go to state 22 assignment go to state 23 clear_statement go to state 24 continue_statement go to state 25 exit_statement go to state 26 for_statement go to state 27 if_statement go to state 28 procedure_call go to state 29 reset_statement go to state 30 wait_statement go to state 31 while_statement go to state 32

State 212

56 expression_listexpression_list "," exp ["}", ","] 66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "?" shift, and go to state 95 "comparison" shift, and go to state 96 $default reduce using rule 56 (expression_list)

State 213

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 216

State 214

92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "," shift, and go to state 217

State 215

28 array_assignment"identifier" "$" "[" exp "]" "=" "{" string_list "}" $default reduce using rule 28 (array_assignment)

State 216

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "," shift, and go to state 218 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 217

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 219

State 218

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 220

State 219

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 "," shift, and go to state 221 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 220

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 222 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 221

57 exp "number" 58 | "note" 59 | "-" "number" 60 | "not" exp 61 | "in_port" 62 | "in_port" "[" exp "]" 63 | "out_port" 64 | "identifier" 65 | "identifier" "[" exp "]" 66 | exp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 73 | "zeroargfunc" "(" ")" 74 | "channels" "(" "in_port" ")" 75 | "connected" "(" "in_port" ")" 76 | "connected" "(" "out_port" ")" 77 | "trigger" "(" "in_port" ")" 78 | "oneargfunc" "(" exp ")" 79 | "twoargfunc" "(" exp "," exp ")" 80 | exp "?" exp ":" exp 81 | "(" exp ")" 92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "channels" shift, and go to state 44 "connected" shift, and go to state 45 "not" shift, and go to state 46 "trigger" shift, and go to state 47 "-" shift, and go to state 48 "(" shift, and go to state 49 "identifier" shift, and go to state 50 "number" shift, and go to state 51 "note" shift, and go to state 52 "in_port" shift, and go to state 53 "out_port" shift, and go to state 54 "zeroargfunc" shift, and go to state 55 "oneargfunc" shift, and go to state 56 "twoargfunc" shift, and go to state 57 exp go to state 223

State 222

91 string_exp"debug" "(" "identifier" "[" "]" "," exp "," exp ")" $default reduce using rule 91 (string_exp)

State 223

66 expexp "+" exp 67 | exp "-" exp 68 | exp "*" exp 69 | exp "/" exp 70 | exp "comparison" exp 71 | exp "and" exp 72 | exp "or" exp 80 | exp "?" exp ":" exp 92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" "and" shift, and go to state 88 "or" shift, and go to state 89 "-" shift, and go to state 91 "+" shift, and go to state 92 "*" shift, and go to state 93 "/" shift, and go to state 94 ")" shift, and go to state 224 "?" shift, and go to state 95 "comparison" shift, and go to state 96

State 224

92 string_exp"debug" "(" "identifier" "$" "[" "]" "," exp "," exp ")" $default reduce using rule 92 (string_exp)