spreadsheet
typeScript/javascript spreadsheet parser, with formulas.
git clone https://git.vogt.world/spreadsheet.git
Log | Files | README.md
← Commit log
commit
message
[Parser,ParserConstants] removing NOT related constants, we don't need it
author
Ben Vogt <[email protected]>
date
2017-12-10 23:16:03
stats
2 file(s) changed, 49 insertions(+), 127 deletions(-)
files
src/Parser/Parser.ts
src/Parser/ParserConstants.ts
  1diff --git a/src/Parser/Parser.ts b/src/Parser/Parser.ts
  2index 4c0d2bc..7002e00 100644
  3--- a/src/Parser/Parser.ts
  4+++ b/src/Parser/Parser.ts
  5@@ -75,9 +75,6 @@ let Parser = (function () {
  6           case ReduceActions.NOT_EQ:
  7             this.$ = sharedStateYY.handler.helper.logicMatch('<>', virtualStack[vsl - 3], virtualStack[vsl]);
  8             break;
  9-          case ReduceActions.NOT:
 10-            this.$ = sharedStateYY.handler.helper.logicMatch('NOT', virtualStack[vsl - 2], virtualStack[vsl]);
 11-            break;
 12           case ReduceActions.GT:
 13             this.$ = sharedStateYY.handler.helper.logicMatch('>', virtualStack[vsl - 2], virtualStack[vsl]);
 14             break;
 15@@ -186,7 +183,6 @@ let Parser = (function () {
 16             case ReduceActions.LTE:
 17             case ReduceActions.GTE:
 18             case ReduceActions.NOT_EQ:
 19-            case ReduceActions.NOT:
 20             case ReduceActions.GT:
 21             case ReduceActions.LT:
 22             case ReduceActions.MINUS:
 23@@ -905,8 +901,6 @@ let Parser = (function () {
 24             return Symbol.GREATER_THAN;
 25           case RuleIndex.LESS_THAN_SIGN:
 26             return Symbol.LESS_THAN;
 27-          case RuleIndex.NOT:
 28-            return Symbol.NOT;
 29           case RuleIndex.OPEN_DOUBLE_QUOTE:
 30             return '"';
 31           case RuleIndex.OPEN_SINGLE_QUITE:
 32@@ -926,41 +920,40 @@ let Parser = (function () {
 33       conditions: {
 34         INITIAL: {
 35           rules: [
 36-            0,
 37-            1,
 38-            2,
 39-            3,
 40-            6,
 41-            7,
 42-            8,
 43-            9,
 44-            10,
 45-            11,
 46-            12,
 47-            13,
 48-            14,
 49-            15,
 50-            16,
 51-            17,
 52-            18,
 53-            19,
 54-            20,
 55-            21,
 56-            22,
 57-            23,
 58-            24,
 59-            25,
 60-            26,
 61-            27,
 62-            28,
 63-            29,
 64-            30,
 65-            31,
 66-            32,
 67-            33,
 68-            34,
 69-            35,
 70-            36,
 71+            RuleIndex.WHITE_SPACE,
 72+            RuleIndex.DOUBLE_QUOTES,
 73+            RuleIndex.SINGLE_QUOTES,
 74+            RuleIndex.FORMULA_NAME,
 75+            RuleIndex.$_A1_CELL,
 76+            RuleIndex.A1_CELL,
 77+            RuleIndex.FORMULA_NAME_SIMPLE,
 78+            RuleIndex.VARIABLE,
 79+            RuleIndex.SIMPLE_VARIABLE ,
 80+            RuleIndex.INTEGER,
 81+            RuleIndex.OPEN_AND_CLOSE_OF_ARRAY,
 82+            RuleIndex.DOLLAR_SIGN,
 83+            RuleIndex.AMPERSAND_SIGN ,
 84+            RuleIndex.SINGLE_WHITESPACE,
 85+            RuleIndex.PERIOD,
 86+            RuleIndex.COLON,
 87+            RuleIndex.SEMI_COLON,
 88+            RuleIndex.COMMA,
 89+            RuleIndex.ASTERISK,
 90+            RuleIndex.FORWARD_SLASH,
 91+            RuleIndex.MINUS_SIGN,
 92+            RuleIndex.PLUS_SIGN,
 93+            RuleIndex.CARET_SIGN,
 94+            RuleIndex.OPEN_PAREN,
 95+            RuleIndex.CLOSE_PAREN,
 96+            RuleIndex.GREATER_THAN_SIGN,
 97+            RuleIndex.LESS_THAN_SIGN,
 98+            RuleIndex.OPEN_DOUBLE_QUOTE,
 99+            RuleIndex.OPEN_SINGLE_QUITE,
100+            RuleIndex.EXCLAMATION_POINT_RULE,
101+            RuleIndex.EQUALS_SIGN,
102+            RuleIndex.PERCENT_SIGN,
103+            RuleIndex.POUND_SIGN,
104+            RuleIndex.END_OF_STRING,
105             37
106           ],
107           "inclusive": true
108diff --git a/src/Parser/ParserConstants.ts b/src/Parser/ParserConstants.ts
109index 398cf6e..1646d57 100644
110--- a/src/Parser/ParserConstants.ts
111+++ b/src/Parser/ParserConstants.ts
112@@ -30,7 +30,6 @@ const OPEN_PAREN_RULE = /^(?:\()/;
113 const CLOSE_PAREN_RULE = /^(?:\))/;
114 const GREATER_THAN_SIGN_RULE = /^(?:>)/;
115 const LESS_THAN_SIGN_RULE = /^(?:<)/;
116-const NOT_RULE = /^(?:NOT\b)/;
117 const OPEN_DOUBLE_QUOTE = /^(?:")/;
118 const OPEN_SINGLE_QUITE = /^(?:')/;
119 const EXCLAMATION_POINT_RULE = /^(?:!)/;
120@@ -68,7 +67,6 @@ const enum RuleIndex {
121   CLOSE_PAREN = 26,
122   GREATER_THAN_SIGN = 27,
123   LESS_THAN_SIGN = 28,
124-  NOT = 29,
125   OPEN_DOUBLE_QUOTE = 30,
126   OPEN_SINGLE_QUITE = 31,
127   EXCLAMATION_POINT_RULE = 32,
128@@ -108,7 +106,6 @@ RULES[RuleIndex.OPEN_PAREN] = OPEN_PAREN_RULE;
129 RULES[RuleIndex.CLOSE_PAREN] = CLOSE_PAREN_RULE;
130 RULES[RuleIndex.GREATER_THAN_SIGN] = GREATER_THAN_SIGN_RULE;
131 RULES[RuleIndex.LESS_THAN_SIGN] = LESS_THAN_SIGN_RULE;
132-RULES[RuleIndex.NOT] = NOT_RULE;
133 RULES[RuleIndex.OPEN_DOUBLE_QUOTE] = OPEN_DOUBLE_QUOTE;
134 RULES[RuleIndex.OPEN_SINGLE_QUITE] = OPEN_SINGLE_QUITE;
135 RULES[RuleIndex.EXCLAMATION_POINT_RULE] = EXCLAMATION_POINT_RULE;
136@@ -139,7 +136,6 @@ const enum ReduceActions {
137   LTE = 11,
138   GTE = 12,
139   NOT_EQ = 13,
140-  NOT = 14,
141   GT = 15,
142   LT = 16,
143   MINUS = 17,
144@@ -219,7 +215,6 @@ productions[ReduceActions.LAST_NUMBER] = new ReductionPair(4, 3);
145 productions[ReduceActions.LTE] = new ReductionPair(4, 4);
146 productions[ReduceActions.GTE] = new ReductionPair(4, 4);
147 productions[ReduceActions.NOT_EQ] = new ReductionPair(4, 4);
148-productions[ReduceActions.NOT] = new ReductionPair(4, 3);
149 productions[ReduceActions.GT] = new ReductionPair(4, 3);
150 productions[ReduceActions.LT] = new ReductionPair(4, 3);
151 productions[ReduceActions.MINUS] = new ReductionPair(4, 3);
152@@ -269,7 +264,6 @@ enum Symbol {
153   RIGHT_PAREN = 15,
154   LESS_THAN = 16,
155   GREATER_THAN = 17,
156-  NOT = 18,
157   MINUS = 19,
158   ASTERISK = 20,
159   DIVIDE = 21,
160@@ -308,7 +302,6 @@ const SYMBOL_NAME_TO_INDEX = {
161   ")": Symbol.RIGHT_PAREN,
162   "<": Symbol.LESS_THAN,
163   ">": Symbol.GREATER_THAN,
164-  "NOT": Symbol.NOT,
165   "-": Symbol.MINUS,
166   "*": Symbol.ASTERISK,
167   "/": Symbol.DIVIDE,
168@@ -339,7 +332,6 @@ symbolIndexToName[Symbol.LEFT_PAREN] = "(";
169 symbolIndexToName[Symbol.RIGHT_PAREN] = ")";
170 symbolIndexToName[Symbol.LESS_THAN] = "<";
171 symbolIndexToName[Symbol.GREATER_THAN] = ">";
172-symbolIndexToName[Symbol.NOT] = "NOTE";
173 symbolIndexToName[Symbol.MINUS] = "-";
174 symbolIndexToName[Symbol.ASTERISK] = "*";
175 symbolIndexToName[Symbol.DIVIDE] = "/";
176@@ -418,7 +410,6 @@ table[2] = ObjectBuilder
177   .add(Symbol.PLUS, [SHIFT, State.NUMBER_FOLLOWED_BY_PLUS])
178   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
179   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
180-  .add(Symbol.NOT, [SHIFT, 25])
181   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
182   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
183   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
184@@ -432,7 +423,6 @@ table[3] = ObjectBuilder
185   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.CALL_VARIABLE])
186   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.CALL_VARIABLE])
187   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.CALL_VARIABLE])
188-  .add(Symbol.NOT, [REDUCE, ReduceActions.CALL_VARIABLE])
189   .add(Symbol.MINUS, [REDUCE, ReduceActions.CALL_VARIABLE])
190   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.CALL_VARIABLE])
191   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.CALL_VARIABLE])
192@@ -449,7 +439,6 @@ table[State.START_NUMBER] = ObjectBuilder
193   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.AS_NUMBER])
194   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.AS_NUMBER])
195   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.AS_NUMBER])
196-  .add(Symbol.NOT, [REDUCE, ReduceActions.AS_NUMBER])
197   .add(Symbol.MINUS, [REDUCE, ReduceActions.AS_NUMBER])
198   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.AS_NUMBER])
199   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.AS_NUMBER])
200@@ -466,7 +455,6 @@ table[State.START_STRING] = ObjectBuilder
201   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.AS_STRING])
202   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.AS_STRING])
203   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.AS_STRING])
204-  .add(Symbol.NOT, [REDUCE, ReduceActions.AS_STRING])
205   .add(Symbol.MINUS, [REDUCE, ReduceActions.AS_STRING])
206   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.AS_STRING])
207   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.AS_STRING])
208@@ -536,7 +524,6 @@ table[12] = ObjectBuilder
209   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.I25])
210   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.I25])
211   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.I25])
212-  .add(Symbol.NOT, [REDUCE, ReduceActions.I25])
213   .add(Symbol.MINUS, [REDUCE, ReduceActions.I25])
214   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.I25])
215   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.I25])
216@@ -553,7 +540,6 @@ table[13] = ObjectBuilder
217   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.I26])
218   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.I26])
219   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.I26])
220-  .add(Symbol.NOT, [REDUCE, ReduceActions.I26])
221   .add(Symbol.MINUS, [REDUCE, ReduceActions.I26])
222   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.I26])
223   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.I26])
224@@ -571,7 +557,6 @@ table[14] = ObjectBuilder
225   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
226   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
227   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
228-  .add(Symbol.NOT, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
229   .add(Symbol.MINUS, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
230   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
231   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY])
232@@ -589,7 +574,6 @@ table[15] = ObjectBuilder
233   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
234   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
235   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
236-  .add(Symbol.NOT, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
237   .add(Symbol.MINUS, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
238   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
239   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.REFLEXIVE_REDUCE])
240@@ -608,7 +592,6 @@ table[16] = ObjectBuilder
241   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.FIXED_CELL_VAL])
242   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.FIXED_CELL_VAL])
243   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.FIXED_CELL_VAL])
244-  .add(Symbol.NOT, [REDUCE, ReduceActions.FIXED_CELL_VAL])
245   .add(Symbol.MINUS, [REDUCE, ReduceActions.FIXED_CELL_VAL])
246   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.FIXED_CELL_VAL])
247   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.FIXED_CELL_VAL])
248@@ -625,7 +608,6 @@ table[17] = ObjectBuilder
249   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.CELL_VALUE])
250   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.CELL_VALUE])
251   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.CELL_VALUE])
252-  .add(Symbol.NOT, [REDUCE, ReduceActions.CELL_VALUE])
253   .add(Symbol.MINUS, [REDUCE, ReduceActions.CELL_VALUE])
254   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.CELL_VALUE])
255   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.CELL_VALUE])
256@@ -827,7 +809,6 @@ table[31] = ObjectBuilder
257   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
258   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
259   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
260-  .add(Symbol.NOT, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
261   .add(Symbol.MINUS, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
262   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
263   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.REDUCE_PREV_AS_PERCENT])
264@@ -844,7 +825,6 @@ table[32] = ObjectBuilder
265   .add(Symbol.RIGHT_PAREN, [SHIFT, State.CLOSE_PAREN_ON_EXPRESSION])
266   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
267   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
268-  .add(Symbol.NOT, [SHIFT, 25])
269   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
270   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
271   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
272@@ -858,7 +838,6 @@ table[33] = ObjectBuilder
273   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.INVERT_NUM])
274   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.INVERT_NUM])
275   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.INVERT_NUM])
276-  .add(Symbol.NOT, [REDUCE, ReduceActions.INVERT_NUM])
277   .add(Symbol.MINUS, [REDUCE, ReduceActions.INVERT_NUM])
278   .add(Symbol.ASTERISK, [SHIFT, ReduceActions.I27])
279   .add(Symbol.DIVIDE, [SHIFT, ReduceActions.FIXED_CELL_VAL])
280@@ -874,7 +853,6 @@ table[34] = ObjectBuilder
281   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
282   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
283   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
284-  .add(Symbol.NOT, [REDUCE, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
285   .add(Symbol.MINUS, [REDUCE, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
286   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
287   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
288@@ -910,7 +888,6 @@ table[36] = ObjectBuilder
289   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.I27])
290   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.I27])
291   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.I27])
292-  .add(Symbol.NOT, [REDUCE, ReduceActions.I27])
293   .add(Symbol.MINUS, [REDUCE, ReduceActions.I27])
294   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.I27])
295   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.I27])
296@@ -944,7 +921,6 @@ table[43] = ObjectBuilder
297   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.AMPERSAND])
298   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.AMPERSAND])
299   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.AMPERSAND])
300-  .add(Symbol.NOT, [REDUCE, ReduceActions.AMPERSAND])
301   .add(Symbol.MINUS, [REDUCE, ReduceActions.AMPERSAND])
302   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.AMPERSAND])
303   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.AMPERSAND])
304@@ -960,7 +936,6 @@ table[44] = ObjectBuilder
305   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.EQUALS])
306   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
307   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
308-  .add(Symbol.NOT, [SHIFT, 25])
309   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
310   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
311   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
312@@ -976,7 +951,6 @@ table[State.ADD_TWO_NUMBERS] = ObjectBuilder
313   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.PLUS])
314   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.PLUS])
315   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.PLUS])
316-  .add(Symbol.NOT, [REDUCE, ReduceActions.PLUS])
317   .add(Symbol.MINUS, [REDUCE, ReduceActions.PLUS])
318   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
319   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
320@@ -1026,7 +1000,6 @@ table[48] = ObjectBuilder
321   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.LT])
322   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.LT])
323   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.LT])
324-  .add(Symbol.NOT, [REDUCE, ReduceActions.LT])
325   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
326   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
327   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
328@@ -1059,7 +1032,6 @@ table[50] = ObjectBuilder
329   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.GT])
330   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.GT])
331   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.GT])
332-  .add(Symbol.NOT, [REDUCE, ReduceActions.GT])
333   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
334   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
335   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
336@@ -1068,46 +1040,38 @@ table[50] = ObjectBuilder
337   .add(Symbol.COMMA, [REDUCE, ReduceActions.GT])
338   .build();
339 table[51] = ObjectBuilder
340-  .add(Symbol.EOF, [REDUCE, ReduceActions.NOT])
341-  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])
342-  .add(Symbol.EQUALS, [REDUCE, ReduceActions.NOT])
343-  .add(Symbol.PLUS, [SHIFT, ReduceActions.TO_NUMBER_NAN_AS_ZERO])
344-  .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.NOT])
345-  .add(Symbol.LESS_THAN, [SHIFT, ReduceActions.CALL_FUNCTION_LAST_BLANK])
346-  .add(Symbol.GREATER_THAN, [SHIFT, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
347-  .add(Symbol.NOT, [REDUCE, ReduceActions.NOT])
348-  .add(Symbol.MINUS, [SHIFT, ReduceActions.I26])
349-  .add(Symbol.ASTERISK, [SHIFT, ReduceActions.I27])
350-  .add(Symbol.DIVIDE, [SHIFT, ReduceActions.FIXED_CELL_VAL])
351-  .add(Symbol.CARROT, [SHIFT, ReduceActions.FIXED_CELL_RANGE_VAL])
352-  .add(Symbol.SEMI_COLON, [REDUCE, ReduceActions.NOT])
353-  .add(Symbol.COMMA, [REDUCE, ReduceActions.NOT])
354+  .add(Symbol.AMPERSAND, [SHIFT, 20])
355+  .add(Symbol.PLUS, [SHIFT, 22])
356+  .add(Symbol.LESS_THAN, [SHIFT, 23])
357+  .add(Symbol.GREATER_THAN, [SHIFT, 24])
358+  .add(Symbol.MINUS, [SHIFT, 26])
359+  .add(Symbol.ASTERISK, [SHIFT, 27])
360+  .add(Symbol.DIVIDE, [SHIFT, 28])
361+  .add(Symbol.CARROT, [SHIFT, 29])
362   .build();
363 table[State.SUBTRACT_TWO_NUMBERS] = ObjectBuilder
364   .add(Symbol.EOF, [REDUCE, ReduceActions.MINUS])
365-  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])
366+  .add(Symbol.AMPERSAND, [SHIFT, 20])
367   .add(Symbol.EQUALS, [REDUCE, ReduceActions.MINUS])
368   .add(Symbol.PLUS, [REDUCE, ReduceActions.MINUS])
369   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.MINUS])
370   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.MINUS])
371   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.MINUS])
372-  .add(Symbol.NOT, [REDUCE, ReduceActions.MINUS])
373   .add(Symbol.MINUS, [REDUCE, ReduceActions.MINUS])
374-  .add(Symbol.ASTERISK, [SHIFT, ReduceActions.I27])
375-  .add(Symbol.DIVIDE, [SHIFT, ReduceActions.FIXED_CELL_VAL])
376-  .add(Symbol.CARROT, [SHIFT, ReduceActions.FIXED_CELL_RANGE_VAL])
377+  .add(Symbol.ASTERISK, [SHIFT, 27])
378+  .add(Symbol.DIVIDE, [SHIFT, 28])
379+  .add(Symbol.CARROT, [SHIFT, 29])
380   .add(Symbol.SEMI_COLON, [REDUCE, ReduceActions.MINUS])
381   .add(Symbol.COMMA, [REDUCE, ReduceActions.MINUS])
382   .build();
383 table[State.MULTIPLY_TWO_NUMBERS] = ObjectBuilder
384   .add(Symbol.EOF, [REDUCE, ReduceActions.MULTIPLY])
385-  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])
386+  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])// ??? questionable use of shift. should it be reduce?
387   .add(Symbol.EQUALS, [REDUCE, ReduceActions.MULTIPLY])
388   .add(Symbol.PLUS, [REDUCE, ReduceActions.MULTIPLY])
389   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.MULTIPLY])
390   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.MULTIPLY])
391   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.MULTIPLY])
392-  .add(Symbol.NOT, [REDUCE, ReduceActions.MULTIPLY])
393   .add(Symbol.MINUS, [REDUCE, ReduceActions.MULTIPLY])
394   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.MULTIPLY])
395   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.MULTIPLY])
396@@ -1117,13 +1081,12 @@ table[State.MULTIPLY_TWO_NUMBERS] = ObjectBuilder
397   .build();
398 table[State.DIVIDE_TWO_NUMBERS] = ObjectBuilder
399   .add(Symbol.EOF, [REDUCE, ReduceActions.DIVIDE])
400-  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])
401+  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER]) // ???same
402   .add(Symbol.EQUALS, [REDUCE, ReduceActions.DIVIDE])
403   .add(Symbol.PLUS, [REDUCE, ReduceActions.DIVIDE])
404   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.DIVIDE])
405   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.DIVIDE])
406   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.DIVIDE])
407-  .add(Symbol.NOT, [REDUCE, ReduceActions.DIVIDE])
408   .add(Symbol.MINUS, [REDUCE, ReduceActions.DIVIDE])
409   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.DIVIDE])
410   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.DIVIDE])
411@@ -1133,13 +1096,12 @@ table[State.DIVIDE_TWO_NUMBERS] = ObjectBuilder
412   .build();
413 table[State.NUMBER_TO_POWER_OF_OTHER] = ObjectBuilder
414   .add(Symbol.EOF, [REDUCE, ReduceActions.TO_POWER])
415-  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER])
416+  .add(Symbol.AMPERSAND, [SHIFT, ReduceActions.TO_POWER]) // ???same
417   .add(Symbol.EQUALS, [REDUCE, ReduceActions.TO_POWER])
418   .add(Symbol.PLUS, [REDUCE, ReduceActions.TO_POWER])
419   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.TO_POWER])
420   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.TO_POWER])
421   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.TO_POWER])
422-  .add(Symbol.NOT, [REDUCE, ReduceActions.TO_POWER])
423   .add(Symbol.MINUS, [REDUCE, ReduceActions.TO_POWER])
424   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.TO_POWER])
425   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.TO_POWER])
426@@ -1155,7 +1117,6 @@ table[56] = ObjectBuilder
427   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
428   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
429   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
430-  .add(Symbol.NOT, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
431   .add(Symbol.MINUS, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
432   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
433   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH])
434@@ -1172,7 +1133,6 @@ table[State.CLOSE_PAREN_ON_EXPRESSION] = ObjectBuilder
435   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.LAST_NUMBER])
436   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.LAST_NUMBER])
437   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.LAST_NUMBER])
438-  .add(Symbol.NOT, [REDUCE, ReduceActions.LAST_NUMBER])
439   .add(Symbol.MINUS, [REDUCE, ReduceActions.LAST_NUMBER])
440   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.LAST_NUMBER])
441   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.LAST_NUMBER])
442@@ -1188,7 +1148,6 @@ table[58] = ObjectBuilder
443   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
444   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
445   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
446-  .add(Symbol.NOT, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
447   .add(Symbol.MINUS, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
448   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
449   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_BLANK])
450@@ -1208,7 +1167,6 @@ table[60] = ObjectBuilder
451   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.ENSURE_IS_ARRAY])
452   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
453   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
454-  .add(Symbol.NOT, [SHIFT, 25])
455   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
456   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
457   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
458@@ -1232,7 +1190,6 @@ table[63] = ObjectBuilder
459   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_FLOAT])
460   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.REDUCE_FLOAT])
461   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.REDUCE_FLOAT])
462-  .add(Symbol.NOT, [REDUCE, ReduceActions.REDUCE_FLOAT])
463   .add(Symbol.MINUS, [REDUCE, ReduceActions.REDUCE_FLOAT])
464   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.REDUCE_FLOAT])
465   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.REDUCE_FLOAT])
466@@ -1249,7 +1206,6 @@ table[64] = ObjectBuilder
467   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
468   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
469   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
470-  .add(Symbol.NOT, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
471   .add(Symbol.MINUS, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
472   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
473   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.FIXED_CELL_RANGE_VAL])
474@@ -1264,7 +1220,6 @@ table[65] = ObjectBuilder
475   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
476   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
477   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
478-  .add(Symbol.NOT, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
479   .add(Symbol.MINUS, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
480   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
481   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.CELL_RANGE_VALUE])
482@@ -1279,7 +1234,6 @@ table[66] = ObjectBuilder
483   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
484   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
485   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
486-  .add(Symbol.NOT, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
487   .add(Symbol.MINUS, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
488   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
489   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.REDUCE_LAST_THREE_A])
490@@ -1296,7 +1250,6 @@ table[67] = ObjectBuilder
491   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.LTE])
492   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.LTE])
493   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.LTE])
494-  .add(Symbol.NOT, [REDUCE, ReduceActions.LTE])
495   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
496   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
497   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
498@@ -1311,7 +1264,6 @@ table[68] = ObjectBuilder
499   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.NOT_EQ])
500   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.NOT_EQ])
501   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.NOT_EQ])
502-  .add(Symbol.NOT, [REDUCE, ReduceActions.NOT_EQ])
503   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
504   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
505   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
506@@ -1326,7 +1278,6 @@ table[State.COMPARE_TWO_EXPRESSIONS_WITH_GTE] = ObjectBuilder
507   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.GTE])
508   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.GTE])
509   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.GTE])
510-  .add(Symbol.NOT, [REDUCE, ReduceActions.GTE])
511   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
512   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
513   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
514@@ -1342,7 +1293,6 @@ table[State.CLOSE_PAREN_ON_FUNCTION] = ObjectBuilder
515   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
516   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
517   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
518-  .add(Symbol.NOT, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
519   .add(Symbol.MINUS, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
520   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
521   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.CALL_FUNCTION_LAST_TWO_IN_STACK])
522@@ -1395,7 +1345,6 @@ table[73] = ObjectBuilder
523   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
524   .add(Symbol.LESS_THAN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
525   .add(Symbol.GREATER_THAN, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
526-  .add(Symbol.NOT, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
527   .add(Symbol.MINUS, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
528   .add(Symbol.ASTERISK, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
529   .add(Symbol.DIVIDE, [REDUCE, ReduceActions.REDUCE_LAST_THREE_B])
530@@ -1412,7 +1361,6 @@ table[74] = ObjectBuilder
531   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_INT])
532   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
533   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
534-  .add(Symbol.NOT, [SHIFT, 25])
535   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
536   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
537   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])
538@@ -1426,7 +1374,6 @@ table[75] = ObjectBuilder
539   .add(Symbol.RIGHT_PAREN, [REDUCE, ReduceActions.REDUCE_PERCENT])
540   .add(Symbol.LESS_THAN, [SHIFT, State.LESS_THAN])
541   .add(Symbol.GREATER_THAN, [SHIFT, State.GREATER_THAN])
542-  .add(Symbol.NOT, [SHIFT, 25])
543   .add(Symbol.MINUS, [SHIFT, State.NUMBER_FOLLOWED_BY_MINUS])
544   .add(Symbol.ASTERISK, [SHIFT, State.NUMBER_FOLLOWED_BY_ASTERISK])
545   .add(Symbol.DIVIDE, [SHIFT, State.NUMBER_FOLLOWED_BY_SLASH])