# 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" "mod" "pow" "sign" "sin"

### Rules useless in grammar

## Conflicts

## Grammar

0 $accept → meta_start $end 1 meta_start → circle_list $end 2 | exp $end 3 circle_list → circle 4 | circle_list circle 5 circle → "[" "]" assignments 6 assignments → assign 7 | assignments assign 8 assign → "identifier" "=" "number" 9 | "identifier" "=" "-" "number" 10 | "identifier" "=" "quoted_string" 11 exp → "number" 12 | "note" 13 | "-" "number" 14 | "not" exp 15 | "identifier" 16 | exp "+" exp 17 | exp "-" exp 18 | exp "*" exp 19 | exp "/" exp 20 | exp "comparison" exp 21 | exp "and" exp 22 | exp "or" exp 23 | "oneargfunc" "(" exp ")" 24 | "twoargfunc" "(" exp "," exp ")" 25 | "limit" "(" exp "," exp "," exp ")" 26 | "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | exp "?" exp ":" exp 28 | "(" exp ")"

### Terminals, with rules where they appear

- $end (0) 0 1 2
- error (256)
- "=" <std::string> (258) 8 9 10
- "abs" <std::string> (259)
- "and" <std::string> (260) 21
- "ceiling" <std::string> (261)
- "floor" <std::string> (262)
- "limit" <std::string> (263) 25
- "log2" <std::string> (264)
- "loge" <std::string> (265)
- "log10" <std::string> (266)
- "max" <std::string> (267)
- "min" <std::string> (268)
- "mod" <std::string> (269)
- "not" <std::string> (270) 14
- "or" <std::string> (271) 22
- "pow" <std::string> (272)
- "scale" <std::string> (273) 26
- "sign" <std::string> (274)
- "sin" <std::string> (275)
- "-" <std::string> (276) 9 13 17
- "+" <std::string> (277) 16
- "*" <std::string> (278) 18
- "/" <std::string> (279) 19
- "(" <std::string> (280) 23 24 25 26 28
- ")" <std::string> (281) 23 24 25 26 28
- "[" <std::string> (282) 5
- "]" <std::string> (283) 5
- "," <std::string> (284) 24 25 26
- "?" <std::string> (285) 27
- ":" <std::string> (286) 27
- "identifier" <std::string> (287) 8 9 10 15
- "quoted_string" <std::string> (288) 10
- "number" <float> (289) 8 9 11 13
- "note" <std::string> (290) 12
- "oneargfunc" <std::string> (291) 23
- "twoargfunc" <std::string> (292) 24
- "comparison" <std::string> (293) 20
- NEG (294)

### Nonterminals, with rules where they appear

- $accept (40)
  - on left: 0
- meta_start (41)
  - on left: 1 2
  - on right: 0
- circle_list <CircleList> (42)
  - on left: 3 4
  - on right: 1 4
- circle <Circle> (43)
  - on left: 5
  - on right: 3 4
- assignments <Assignments> (44)
  - on left: 6 7
  - on right: 5 7
- assign <Assignment> (45)
  - on left: 8 9 10
  - on right: 6 7
- exp <VennExpression> (46)
  - on left: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  - on right: 2 14 16 17 18 19 20 21 22 23 24 25 26 27 28

## Automaton

### State 0

0 $accept → • meta_start $end 1 meta_start → • circle_list $end 2 | • exp $end 3 circle_list → • circle 4 | • circle_list circle 5 circle → • "[" "]" assignments 11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "[" shift, and go to state 6 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 meta_start go to state 12 circle_list go to state 13 circle go to state 14 exp go to state 15

### State 1

25 exp → "limit" • "(" exp "," exp "," exp ")" "(" shift, and go to state 16

### State 2

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 14 | "not" • exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 17

### State 3

26 exp → "scale" • "(" exp "," exp "," exp "," exp "," exp ")" "(" shift, and go to state 18

### State 4

13 exp → "-" • "number" "number" shift, and go to state 19

### State 5

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" 28 | "(" • exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 20

### State 6

5 circle → "[" • "]" assignments "]" shift, and go to state 21

### State 7

15 exp → "identifier" • $default reduce using rule 15 (exp)

### State 8

11 exp → "number" • $default reduce using rule 11 (exp)

### State 9

12 exp → "note" • $default reduce using rule 12 (exp)

### State 10

23 exp → "oneargfunc" • "(" exp ")" "(" shift, and go to state 22

### State 11

24 exp → "twoargfunc" • "(" exp "," exp ")" "(" shift, and go to state 23

### State 12

0 $accept → meta_start • $end $end shift, and go to state 24

### State 13

1 meta_start → circle_list • $end 4 circle_list → circle_list • circle 5 circle → • "[" "]" assignments $end shift, and go to state 25 "[" shift, and go to state 6 circle go to state 26

### State 14

3 circle_list → circle • $default reduce using rule 3 (circle_list)

### State 15

2 meta_start → exp • $end 16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp $end shift, and go to state 27 "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 16

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 25 | "limit" "(" • exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 36

### State 17

14 exp → "not" exp • [$end, "and", "or", "-", "+", "*", "/", ")", ",", "?", ":", "comparison"] 16 | exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp $default reduce using rule 14 (exp) Conflict between rule 14 and token "and" resolved as reduce ("and" < NEG). Conflict between rule 14 and token "or" resolved as reduce ("or" < NEG). Conflict between rule 14 and token "-" resolved as reduce ("-" < NEG). Conflict between rule 14 and token "+" resolved as reduce ("+" < NEG). Conflict between rule 14 and token "*" resolved as reduce ("*" < NEG). Conflict between rule 14 and token "/" resolved as reduce ("/" < NEG). Conflict between rule 14 and token "?" resolved as reduce ("?" < NEG). Conflict between rule 14 and token "comparison" resolved as reduce ("comparison" < NEG).

### State 18

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 26 | "scale" "(" • exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 37

### State 19

13 exp → "-" "number" • $default reduce using rule 13 (exp)

### State 20

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp 28 | "(" exp • ")" "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 ")" shift, and go to state 38 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 21

5 circle → "[" "]" • assignments 6 assignments → • assign 7 | • assignments assign 8 assign → • "identifier" "=" "number" 9 | • "identifier" "=" "-" "number" 10 | • "identifier" "=" "quoted_string" "identifier" shift, and go to state 39 assignments go to state 40 assign go to state 41

### State 22

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 23 | "oneargfunc" "(" • exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 42

### State 23

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 24 | "twoargfunc" "(" • exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 43

### State 24

0 $accept → meta_start $end • $default accept

### State 25

1 meta_start → circle_list $end • $default reduce using rule 1 (meta_start)

### State 26

4 circle_list → circle_list circle • $default reduce using rule 4 (circle_list)

### State 27

2 meta_start → exp $end • $default reduce using rule 2 (meta_start)

### State 28

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 21 | exp "and" • exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 44

### State 29

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 22 | exp "or" • exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 45

### State 30

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 17 | exp "-" • exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 46

### State 31

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 16 | exp "+" • exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 47

### State 32

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 18 | exp "*" • exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 48

### State 33

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 19 | exp "/" • exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 49

### State 34

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 27 | exp "?" • exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 50

### State 35

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 20 | exp "comparison" • exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 51

### State 36

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 25 | "limit" "(" exp • "," exp "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 52 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 37

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 26 | "scale" "(" exp • "," exp "," exp "," exp "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 53 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 38

28 exp → "(" exp ")" • $default reduce using rule 28 (exp)

### State 39

8 assign → "identifier" • "=" "number" 9 | "identifier" • "=" "-" "number" 10 | "identifier" • "=" "quoted_string" "=" shift, and go to state 54

### State 40

5 circle → "[" "]" assignments • [$end, "["] 7 assignments → assignments • assign 8 assign → • "identifier" "=" "number" 9 | • "identifier" "=" "-" "number" 10 | • "identifier" "=" "quoted_string" "identifier" shift, and go to state 39 $default reduce using rule 5 (circle) assign go to state 55

### State 41

6 assignments → assign • $default reduce using rule 6 (assignments)

### State 42

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 23 | "oneargfunc" "(" exp • ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 ")" shift, and go to state 56 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 43

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 24 | "twoargfunc" "(" exp • "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 57 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 44

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 21 | exp "and" exp • [$end, "and", "or", ")", ",", "?", ":"] 22 | exp • "or" exp 27 | exp • "?" exp ":" exp "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "comparison" shift, and go to state 35 $default reduce using rule 21 (exp) Conflict between rule 21 and token "and" resolved as reduce (%left "and"). Conflict between rule 21 and token "or" resolved as reduce ("or" < "and"). Conflict between rule 21 and token "-" resolved as shift ("and" < "-"). Conflict between rule 21 and token "+" resolved as shift ("and" < "+"). Conflict between rule 21 and token "*" resolved as shift ("and" < "*"). Conflict between rule 21 and token "/" resolved as shift ("and" < "/"). Conflict between rule 21 and token "?" resolved as reduce ("?" < "and"). Conflict between rule 21 and token "comparison" resolved as shift ("and" < "comparison").

### State 45

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 22 | exp "or" exp • [$end, "or", ")", ",", "?", ":"] 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "comparison" shift, and go to state 35 $default reduce using rule 22 (exp) Conflict between rule 22 and token "and" resolved as shift ("or" < "and"). Conflict between rule 22 and token "or" resolved as reduce (%left "or"). Conflict between rule 22 and token "-" resolved as shift ("or" < "-"). Conflict between rule 22 and token "+" resolved as shift ("or" < "+"). Conflict between rule 22 and token "*" resolved as shift ("or" < "*"). Conflict between rule 22 and token "/" resolved as shift ("or" < "/"). Conflict between rule 22 and token "?" resolved as reduce ("?" < "or"). Conflict between rule 22 and token "comparison" resolved as shift ("or" < "comparison").

### State 46

16 exp → exp • "+" exp 17 | exp • "-" exp 17 | exp "-" exp • [$end, "and", "or", "-", "+", ")", ",", "?", ":", "comparison"] 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp "*" shift, and go to state 32 "/" shift, and go to state 33 $default reduce using rule 17 (exp) Conflict between rule 17 and token "and" resolved as reduce ("and" < "-"). Conflict between rule 17 and token "or" resolved as reduce ("or" < "-"). Conflict between rule 17 and token "-" resolved as reduce (%left "-"). Conflict between rule 17 and token "+" resolved as reduce (%left "+"). Conflict between rule 17 and token "*" resolved as shift ("-" < "*"). Conflict between rule 17 and token "/" resolved as shift ("-" < "/"). Conflict between rule 17 and token "?" resolved as reduce ("?" < "-"). Conflict between rule 17 and token "comparison" resolved as reduce ("comparison" < "-").

### State 47

16 exp → exp • "+" exp 16 | exp "+" exp • [$end, "and", "or", "-", "+", ")", ",", "?", ":", "comparison"] 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp "*" shift, and go to state 32 "/" shift, and go to state 33 $default reduce using rule 16 (exp) Conflict between rule 16 and token "and" resolved as reduce ("and" < "+"). Conflict between rule 16 and token "or" resolved as reduce ("or" < "+"). Conflict between rule 16 and token "-" resolved as reduce (%left "-"). Conflict between rule 16 and token "+" resolved as reduce (%left "+"). Conflict between rule 16 and token "*" resolved as shift ("+" < "*"). Conflict between rule 16 and token "/" resolved as shift ("+" < "/"). Conflict between rule 16 and token "?" resolved as reduce ("?" < "+"). Conflict between rule 16 and token "comparison" resolved as reduce ("comparison" < "+").

### State 48

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 18 | exp "*" exp • [$end, "and", "or", "-", "+", "*", "/", ")", ",", "?", ":", "comparison"] 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp $default reduce using rule 18 (exp) Conflict between rule 18 and token "and" resolved as reduce ("and" < "*"). Conflict between rule 18 and token "or" resolved as reduce ("or" < "*"). Conflict between rule 18 and token "-" resolved as reduce ("-" < "*"). Conflict between rule 18 and token "+" resolved as reduce ("+" < "*"). Conflict between rule 18 and token "*" resolved as reduce (%left "*"). Conflict between rule 18 and token "/" resolved as reduce (%left "/"). Conflict between rule 18 and token "?" resolved as reduce ("?" < "*"). Conflict between rule 18 and token "comparison" resolved as reduce ("comparison" < "*").

### State 49

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 19 | exp "/" exp • [$end, "and", "or", "-", "+", "*", "/", ")", ",", "?", ":", "comparison"] 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp $default reduce using rule 19 (exp) Conflict between rule 19 and token "and" resolved as reduce ("and" < "/"). Conflict between rule 19 and token "or" resolved as reduce ("or" < "/"). Conflict between rule 19 and token "-" resolved as reduce ("-" < "/"). Conflict between rule 19 and token "+" resolved as reduce ("+" < "/"). Conflict between rule 19 and token "*" resolved as reduce (%left "*"). Conflict between rule 19 and token "/" resolved as reduce (%left "/"). Conflict between rule 19 and token "?" resolved as reduce ("?" < "/"). Conflict between rule 19 and token "comparison" resolved as reduce ("comparison" < "/").

### State 50

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp 27 | exp "?" exp • ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "?" shift, and go to state 34 ":" shift, and go to state 58 "comparison" shift, and go to state 35

### State 51

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 20 | exp "comparison" exp • [$end, "and", "or", ")", ",", "?", ":", "comparison"] 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 $default reduce using rule 20 (exp) Conflict between rule 20 and token "and" resolved as reduce ("and" < "comparison"). Conflict between rule 20 and token "or" resolved as reduce ("or" < "comparison"). Conflict between rule 20 and token "-" resolved as shift ("comparison" < "-"). Conflict between rule 20 and token "+" resolved as shift ("comparison" < "+"). Conflict between rule 20 and token "*" resolved as shift ("comparison" < "*"). Conflict between rule 20 and token "/" resolved as shift ("comparison" < "/"). Conflict between rule 20 and token "?" resolved as reduce ("?" < "comparison"). Conflict between rule 20 and token "comparison" resolved as reduce (%left "comparison").

### State 52

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 25 | "limit" "(" exp "," • exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 59

### State 53

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 26 | "scale" "(" exp "," • exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 60

### State 54

8 assign → "identifier" "=" • "number" 9 | "identifier" "=" • "-" "number" 10 | "identifier" "=" • "quoted_string" "-" shift, and go to state 61 "quoted_string" shift, and go to state 62 "number" shift, and go to state 63

### State 55

7 assignments → assignments assign • $default reduce using rule 7 (assignments)

### State 56

23 exp → "oneargfunc" "(" exp ")" • $default reduce using rule 23 (exp)

### State 57

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 24 | "twoargfunc" "(" exp "," • exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 64

### State 58

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 27 | exp "?" exp ":" • exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 65

### State 59

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 25 | "limit" "(" exp "," exp • "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 66 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 60

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 26 | "scale" "(" exp "," exp • "," exp "," exp "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 67 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 61

9 assign → "identifier" "=" "-" • "number" "number" shift, and go to state 68

### State 62

10 assign → "identifier" "=" "quoted_string" • $default reduce using rule 10 (assign)

### State 63

8 assign → "identifier" "=" "number" • $default reduce using rule 8 (assign)

### State 64

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 24 | "twoargfunc" "(" exp "," exp • ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 ")" shift, and go to state 69 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 65

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 27 | exp • "?" exp ":" exp 27 | exp "?" exp ":" exp • [$end, ")", ",", ":"] "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "?" shift, and go to state 34 "comparison" shift, and go to state 35 $default reduce using rule 27 (exp) Conflict between rule 27 and token "and" resolved as shift (":" < "and"). Conflict between rule 27 and token "or" resolved as shift (":" < "or"). Conflict between rule 27 and token "-" resolved as shift (":" < "-"). Conflict between rule 27 and token "+" resolved as shift (":" < "+"). Conflict between rule 27 and token "*" resolved as shift (":" < "*"). Conflict between rule 27 and token "/" resolved as shift (":" < "/"). Conflict between rule 27 and token "?" resolved as shift (%right "?"). Conflict between rule 27 and token "comparison" resolved as shift (":" < "comparison").

### State 66

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 25 | "limit" "(" exp "," exp "," • exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 70

### State 67

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 26 | "scale" "(" exp "," exp "," • exp "," exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 71

### State 68

9 assign → "identifier" "=" "-" "number" • $default reduce using rule 9 (assign)

### State 69

24 exp → "twoargfunc" "(" exp "," exp ")" • $default reduce using rule 24 (exp)

### State 70

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 25 | "limit" "(" exp "," exp "," exp • ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 ")" shift, and go to state 72 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 71

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 26 | "scale" "(" exp "," exp "," exp • "," exp "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 73 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 72

25 exp → "limit" "(" exp "," exp "," exp ")" • $default reduce using rule 25 (exp)

### State 73

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 26 | "scale" "(" exp "," exp "," exp "," • exp "," exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 74

### State 74

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 26 | "scale" "(" exp "," exp "," exp "," exp • "," exp ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 "," shift, and go to state 75 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 75

11 exp → • "number" 12 | • "note" 13 | • "-" "number" 14 | • "not" exp 15 | • "identifier" 16 | • exp "+" exp 17 | • exp "-" exp 18 | • exp "*" exp 19 | • exp "/" exp 20 | • exp "comparison" exp 21 | • exp "and" exp 22 | • exp "or" exp 23 | • "oneargfunc" "(" exp ")" 24 | • "twoargfunc" "(" exp "," exp ")" 25 | • "limit" "(" exp "," exp "," exp ")" 26 | • "scale" "(" exp "," exp "," exp "," exp "," exp ")" 26 | "scale" "(" exp "," exp "," exp "," exp "," • exp ")" 27 | • exp "?" exp ":" exp 28 | • "(" exp ")" "limit" shift, and go to state 1 "not" shift, and go to state 2 "scale" shift, and go to state 3 "-" shift, and go to state 4 "(" shift, and go to state 5 "identifier" shift, and go to state 7 "number" shift, and go to state 8 "note" shift, and go to state 9 "oneargfunc" shift, and go to state 10 "twoargfunc" shift, and go to state 11 exp go to state 76

### State 76

16 exp → exp • "+" exp 17 | exp • "-" exp 18 | exp • "*" exp 19 | exp • "/" exp 20 | exp • "comparison" exp 21 | exp • "and" exp 22 | exp • "or" exp 26 | "scale" "(" exp "," exp "," exp "," exp "," exp • ")" 27 | exp • "?" exp ":" exp "and" shift, and go to state 28 "or" shift, and go to state 29 "-" shift, and go to state 30 "+" shift, and go to state 31 "*" shift, and go to state 32 "/" shift, and go to state 33 ")" shift, and go to state 77 "?" shift, and go to state 34 "comparison" shift, and go to state 35

### State 77

26 exp → "scale" "(" exp "," exp "," exp "," exp "," exp ")" • $default reduce using rule 26 (exp)