name:
src/Parser/ParserConstants.ts
-rw-r--r--
61078
1import {
2 ObjectBuilder
3} from "../Utilities/ObjectBuilder";
4import {
5 Symbol
6} from "./Symbols";
7import {
8 ReduceActions
9} from "./ReduceActions";
10import {
11 ReductionPair
12} from "./ReductionPair";
13import {
14 RULES
15} from "./Rules";
16
17/**
18 * Actions to take when processing tokens one by one. We're always either taking the next token, reducing our current
19 * tokens, or accepting and returning.
20 */
21const SHIFT = 1;
22const REDUCE = 2;
23const ACCEPT = 3;
24
25
26/**
27 * Productions is used to look up both the number to use when reducing the stack (productions[x][1]) and the semantic
28 * value that will replace the tokens in the stack (productions[x][0]).
29 * @type {Array<ReductionPair>}
30 *
31 * Maps a ProductionRule to the appropriate number of previous tokens to use in a reduction action.
32 */
33let productions : Array<ReductionPair> = [];
34productions[ReduceActions.NoAction] = null;
35productions[ReduceActions.ReturnLast] = new ReductionPair(Symbol.Expressions, 2);
36productions[ReduceActions.CallVariable] = new ReductionPair(Symbol.Expression, 1);
37productions[ReduceActions.AsNumber] = new ReductionPair(Symbol.Expression, 1);
38productions[ReduceActions.AsString] = new ReductionPair(Symbol.Expression, 1);
39productions[ReduceActions.Ampersand] = new ReductionPair(Symbol.Expression, 3);
40productions[ReduceActions.Equals] = new ReductionPair(Symbol.Expression, 3);
41productions[ReduceActions.Plus] = new ReductionPair(Symbol.Expression, 3);
42productions[ReduceActions.LastExpression] = new ReductionPair(Symbol.Expression, 3);
43productions[ReduceActions.LTE] = new ReductionPair(Symbol.Expression, 4);
44productions[ReduceActions.GTE] = new ReductionPair(Symbol.Expression, 4);
45productions[ReduceActions.NotEqual] = new ReductionPair(Symbol.Expression, 4);
46productions[ReduceActions.GT] = new ReductionPair(Symbol.Expression, 3);
47productions[ReduceActions.LT] = new ReductionPair(Symbol.Expression, 3);
48productions[ReduceActions.Minus] = new ReductionPair(Symbol.Expression, 3);
49productions[ReduceActions.Multiply] = new ReductionPair(Symbol.Expression, 3);
50productions[ReduceActions.Divide] = new ReductionPair(Symbol.Expression, 3);
51productions[ReduceActions.ToPower] = new ReductionPair(Symbol.Expression, 3);
52productions[ReduceActions.InvertNumber] = new ReductionPair(Symbol.Expression, 2);
53productions[ReduceActions.ToNumberNANAsZero] = new ReductionPair(Symbol.Expression, 2);
54productions[ReduceActions.CallFunctionLastBlank] = new ReductionPair(Symbol.Expression, 3);
55productions[ReduceActions.CallFunctionLastTwoInStack] = new ReductionPair(Symbol.Expression, 4);
56productions[ReduceActions.CellValueAsExpression] = new ReductionPair(Symbol.Expression, 1);
57productions[ReduceActions.ErrorAndContinue] = new ReductionPair(Symbol.Expression, 1);
58productions[ReduceActions.ErrorAndContinueWithOtherErrors] = new ReductionPair(Symbol.Expression, 2);
59productions[ReduceActions.FixedCellValue] = new ReductionPair(Symbol.Cell, 1);
60productions[ReduceActions.FixedCellRangeValue] = new ReductionPair(Symbol.Cell, 3);
61productions[ReduceActions.CellValue] = new ReductionPair(Symbol.Cell, 1);
62productions[ReduceActions.CellRangeValue] = new ReductionPair(Symbol.Cell, 3);
63productions[ReduceActions.EnsureIsArray] = new ReductionPair(Symbol.ExpressionSeq, 1);
64productions[ReduceActions.EnsureYYTextIsArray] = new ReductionPair(Symbol.ExpressionSeq, 1);
65productions[ReduceActions.ReduceInt] = new ReductionPair(Symbol.ExpressionSeq, 3);
66productions[ReduceActions.ReducePercent] = new ReductionPair(Symbol.ExpressionSeq, 3);
67productions[ReduceActions.WrapCurrentTokenAsArray] = new ReductionPair(Symbol.VariableSeq, 1);
68productions[ReduceActions.EnsureLastTwoINArrayAndPush] = new ReductionPair(Symbol.VariableSeq, 3);
69productions[ReduceActions.ReflexiveReduce] = new ReductionPair(Symbol.Number, 1);
70productions[ReduceActions.ReduceFloat] = new ReductionPair(Symbol.Number, 3);
71productions[ReduceActions.ReducePrevAsPercent] = new ReductionPair(Symbol.Number, 2);
72productions[ReduceActions.ReduceLastThreeA] = new ReductionPair(Symbol.Error, 3);
73productions[ReduceActions.ReduceLastThreeB] = new ReductionPair(Symbol.Error, 4);
74productions[ReduceActions.AsError] = new ReductionPair(Symbol.Expression, 1);
75
76const PRODUCTIONS = productions;
77
78const SYMBOL_NAME_TO_INDEX = {
79 "$accept": Symbol.Accept,
80 "$end": Symbol.End,
81 "error": Symbol.Error,
82 "expressions": Symbol.Expressions,
83 "expression": Symbol.Expression,
84 "EOF": Symbol.EOF,
85 "variableSequence": Symbol.VariableSeq,
86 "number": Symbol.Number,
87 "STRING": Symbol.String,
88 "&": Symbol.Ampersand,
89 "=": Symbol.Equals,
90 "+": Symbol.Plus,
91 "(": Symbol.LeftParen,
92 ")": Symbol.RightParen,
93 "<": Symbol.LessThan,
94 ">": Symbol.GreaterThan,
95 "-": Symbol.Minus,
96 "*": Symbol.Asterisk,
97 "/": Symbol.Divide,
98 "^": Symbol.Carrot,
99 "FUNCTION": Symbol.Function,
100 "expseq": Symbol.ExpressionSeq,
101 "cell": Symbol.Cell,
102 "FIXEDCELL": Symbol.FixedCell,
103 ":": Symbol.Colon,
104 "CELL": Symbol.CellUpper,
105 "ARRAY": Symbol.Array,
106 ";": Symbol.Semicolon,
107 ",": Symbol.Comma,
108 "VARIABLE": Symbol.Variable,
109 "DECIMAL": Symbol.Decimal,
110 "NUMBER": Symbol.NumberUpper,
111 "%": Symbol.Percent,
112 "#": Symbol.FullError,
113 "!": Symbol.ExclamationPoint
114};
115let symbolIndexToName = {};
116symbolIndexToName[Symbol.EOF] = "EOF";
117symbolIndexToName[Symbol.String] = "String";
118symbolIndexToName[Symbol.Ampersand] = "&";
119symbolIndexToName[Symbol.Equals] = "=";
120symbolIndexToName[Symbol.Plus] = "+";
121symbolIndexToName[Symbol.LeftParen] = "(";
122symbolIndexToName[Symbol.RightParen] = ")";
123symbolIndexToName[Symbol.LessThan] = "<";
124symbolIndexToName[Symbol.GreaterThan] = ">";
125symbolIndexToName[Symbol.Minus] = "-";
126symbolIndexToName[Symbol.Asterisk] = "*";
127symbolIndexToName[Symbol.Divide] = "/";
128symbolIndexToName[Symbol.Carrot] = "^";
129symbolIndexToName[Symbol.Function] = "Function";
130symbolIndexToName[Symbol.FixedCell] = "FIXED_CELL_REF";
131symbolIndexToName[Symbol.Cell] = "Cell";
132symbolIndexToName[Symbol.Colon] = ";";
133symbolIndexToName[Symbol.Comma] = ",";
134symbolIndexToName[Symbol.Variable] = "Variable";
135symbolIndexToName[Symbol.Decimal] = "Decimal";
136symbolIndexToName[Symbol.NumberUpper] = "Number";
137symbolIndexToName[Symbol.Percent] = "%";
138symbolIndexToName[Symbol.FullError] = "#";
139symbolIndexToName[Symbol.Array] = "Array";
140symbolIndexToName[Symbol.ExclamationPoint] = "!";
141const SYMBOL_INDEX_TO_NAME = symbolIndexToName;
142
143
144/**
145 * State represents the state of the parser. Enums should be in the format {prev}_{next}.
146 */
147const enum State {
148 // Start
149 Start = 0,
150 Start_Number = 6,
151 Start_String = 7,
152 Start_Equals = 21,
153 Start_Equals_Expression = 44,
154 // Number
155 Number = 15,
156 Number_Decimal = 39,
157 Number_Ampersand_Expression = 43,
158 Number_Decimal_NumberUpper = 63,
159 // Prefix Operators
160 PrefixUnaryMinus = 9,
161 PrefixUnaryPlus = 10,
162 PrefixUnaryMinus_Expression = 33,
163 PrefixUnaryPlus_Expression = 34,
164 // Error
165 Error = 13,
166 Error_Error = 36,
167 Error_Variable = 37,
168 // LessThan
169 LessThan = 23,
170 LessThan_Equals = 46,
171 LessThan_GreaterThan = 47,
172 LessThan_Expression = 48,
173 LessThan_Equals_Expression = 67,
174 LessThan_GreaterThan_Expression = 68,
175 // GreaterThan
176 GreaterThan = 24,
177 GreaterThanEquals = 49,
178 GreaterThan_Expression = 50,
179 GreaterThanEquals_Expressions = 69,
180 // Operations
181 AddTwoNumbers = 45,
182 SubtractTwoNumbers = 52,
183 MultiplyTwoNumbers = 53,
184 DivideTwoNumbers = 54,
185 PowerTwoNumbers = 55,
186 // Variable
187 Variable = 14,
188 Variable_FullError_Variable = 62,
189 Variable_SemiColon = 71,
190 Variable_Comma = 72,
191 Variable_FullError = 38,
192 Variable_FullError_Variable_ExclamationPoint = 73,
193 // VariableSeq
194 VariableSeq = 3,
195 VariableSeq_Decimal = 30,
196 VariableSeq_Decimal_Variable = 56,
197 // Pound
198 Pound = 18,
199 Pound_Variable = 42,
200 Pound_Variable_ExclamationPoint = 66,
201 // Left Paren
202 LeftParen = 8,
203 LeftParen_Expression = 32,
204 LeftParen_Array = 61,
205 // Function
206 Function = 11,
207 Function_LeftParen_ExpressionSeq = 59,
208 Function_RightParenNoArguments = 58,
209 Function_LeftParen_Expression = 60,
210 Function_LeftParen = 35,
211 Function_Etc_RightParen = 70,
212 // Expressions
213 Expressions = 1,
214 Expression = 2,
215 Expression_Plus = 22,
216 Expression_Minus = 26,
217 Expression_RightParen = 57,
218 Expression_Asterisk = 27,
219 Expression_Divide = 28,
220 Expression_Carrot = 29,
221 Expression_Ampersand = 20,
222 Expression_Percent = 31,
223 // Cell
224 Cell = 12,
225 FixedCell = 16,
226 CellUpper = 17,
227 CellUpper_Colon_CellUpper = 65,
228 CellUpper_Colon = 41,
229 FixedCell_Colon = 40,
230 FixedCell_Colon_FixedCell = 64,
231 // Other
232 EOF_ReturnLast = 19
233}
234
235
236/**
237 * Array of to map rules to to LexActions and other rules. A single index in the object (e.g. `{2: 13}`) indicates the
238 * rule object to follow for the next token, while an array (e.g. `{23: [1, ReduceActions.LTE]}`) indicates the action to be taken,
239 * and the rule object to follow after the action.
240 */
241let table = [];
242// All functions in the spreadsheet start with a 0-token.
243table[State.Start] = ObjectBuilder
244 .add(Symbol.Error, State.Error)
245 .add(Symbol.Expressions, State.Expressions)
246 .add(Symbol.Expression, State.Expression)
247 .add(Symbol.VariableSeq, State.VariableSeq)
248 .add(Symbol.Number, State.Start_Number)
249 .add(Symbol.String, [SHIFT, State.Start_String])
250 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
251 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
252 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
253 .add(Symbol.Function, [SHIFT, State.Function])
254 .add(Symbol.Cell, State.Cell)
255 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
256 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
257 .add(Symbol.Variable, [SHIFT, State.Variable])
258 .add(Symbol.NumberUpper, [SHIFT, State.Number])
259 .add(Symbol.FullError, [SHIFT, State.Pound])
260 .build();
261table[State.Expressions] = ObjectBuilder
262 .add(Symbol.End, [ACCEPT])
263 .build();
264table[State.Expression] = ObjectBuilder
265 .add(Symbol.EOF, [SHIFT, State.EOF_ReturnLast])
266 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
267 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
268 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
269 .add(Symbol.LessThan, [SHIFT, State.LessThan])
270 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
271 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
272 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
273 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
274 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
275 .build();
276table[State.VariableSeq] = ObjectBuilder
277 .add(Symbol.EOF, [REDUCE, ReduceActions.CallVariable])
278 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CallVariable])
279 .add(Symbol.Equals, [REDUCE, ReduceActions.CallVariable])
280 .add(Symbol.Plus, [REDUCE, ReduceActions.CallVariable])
281 .add(Symbol.RightParen, [REDUCE, ReduceActions.CallVariable])
282 .add(Symbol.LessThan, [REDUCE, ReduceActions.CallVariable])
283 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CallVariable])
284 .add(Symbol.Minus, [REDUCE, ReduceActions.CallVariable])
285 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CallVariable])
286 .add(Symbol.Divide, [REDUCE, ReduceActions.CallVariable])
287 .add(Symbol.Carrot, [REDUCE, ReduceActions.CallVariable])
288 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CallVariable])
289 .add(Symbol.Comma, [REDUCE, ReduceActions.CallVariable])
290 .add(Symbol.Decimal, [SHIFT, State.VariableSeq_Decimal])
291 .build();
292table[State.Start_Number] = ObjectBuilder
293 .add(Symbol.EOF, [REDUCE, ReduceActions.AsNumber])
294 .add(Symbol.Ampersand, [REDUCE, ReduceActions.AsNumber])
295 .add(Symbol.Equals, [REDUCE, ReduceActions.AsNumber])
296 .add(Symbol.Plus, [REDUCE, ReduceActions.AsNumber])
297 .add(Symbol.RightParen, [REDUCE, ReduceActions.AsNumber])
298 .add(Symbol.LessThan, [REDUCE, ReduceActions.AsNumber])
299 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.AsNumber])
300 .add(Symbol.Minus, [REDUCE, ReduceActions.AsNumber])
301 .add(Symbol.Asterisk, [REDUCE, ReduceActions.AsNumber])
302 .add(Symbol.Divide, [REDUCE, ReduceActions.AsNumber])
303 .add(Symbol.Carrot, [REDUCE, ReduceActions.AsNumber])
304 .add(Symbol.Semicolon, [REDUCE, ReduceActions.AsNumber])
305 .add(Symbol.Comma, [REDUCE, ReduceActions.AsNumber])
306 .add(Symbol.Percent, [SHIFT, State.Expression_Percent])
307 .build();
308table[State.Start_String] = ObjectBuilder
309 .add(Symbol.EOF, [REDUCE, ReduceActions.AsString])
310 .add(Symbol.Ampersand, [REDUCE, ReduceActions.AsString])
311 .add(Symbol.Equals, [REDUCE, ReduceActions.AsString])
312 .add(Symbol.Plus, [REDUCE, ReduceActions.AsString])
313 .add(Symbol.RightParen, [REDUCE, ReduceActions.AsString])
314 .add(Symbol.LessThan, [REDUCE, ReduceActions.AsString])
315 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.AsString])
316 .add(Symbol.Minus, [REDUCE, ReduceActions.AsString])
317 .add(Symbol.Asterisk, [REDUCE, ReduceActions.AsString])
318 .add(Symbol.Divide, [REDUCE, ReduceActions.AsString])
319 .add(Symbol.Carrot, [REDUCE, ReduceActions.AsString])
320 .add(Symbol.Semicolon, [REDUCE, ReduceActions.AsString])
321 .add(Symbol.Comma, [REDUCE, ReduceActions.AsString])
322 .build();
323table[State.LeftParen] = ObjectBuilder
324 .add(Symbol.Error, State.Error)
325 .add(Symbol.Expression, State.LeftParen_Expression)
326 .add(Symbol.VariableSeq, State.VariableSeq)
327 .add(Symbol.Number, State.Start_Number)
328 .add(Symbol.String, [SHIFT, State.Start_String])
329 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
330 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
331 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
332 .add(Symbol.Function, [SHIFT, State.Function])
333 .add(Symbol.Cell, State.Cell)
334 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
335 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
336 .add(Symbol.Variable, [SHIFT, State.Variable])
337 .add(Symbol.NumberUpper, [SHIFT, State.Number])
338 .add(Symbol.FullError, [SHIFT, State.Pound])
339 .build();
340table[State.PrefixUnaryMinus] = ObjectBuilder
341 .add(Symbol.Error, State.Error)
342 .add(Symbol.Expression, State.PrefixUnaryMinus_Expression)
343 .add(Symbol.VariableSeq, State.VariableSeq)
344 .add(Symbol.Number, State.Start_Number)
345 .add(Symbol.String, [SHIFT, State.Start_String])
346 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
347 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
348 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
349 .add(Symbol.Function, [SHIFT, State.Function])
350 .add(Symbol.Cell, State.Cell)
351 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
352 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
353 .add(Symbol.Variable, [SHIFT, State.Variable])
354 .add(Symbol.NumberUpper, [SHIFT, State.Number])
355 .add(Symbol.FullError, [SHIFT, State.Pound])
356 .build();
357table[State.PrefixUnaryPlus] = ObjectBuilder
358 .add(Symbol.Error, State.Error)
359 .add(Symbol.Expression, State.PrefixUnaryPlus_Expression)
360 .add(Symbol.VariableSeq, State.VariableSeq)
361 .add(Symbol.Number, State.Start_Number)
362 .add(Symbol.String, [SHIFT, State.Start_String])
363 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
364 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
365 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
366 .add(Symbol.Function, [SHIFT, State.Function])
367 .add(Symbol.Cell, State.Cell)
368 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
369 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
370 .add(Symbol.Variable, [SHIFT, State.Variable])
371 .add(Symbol.NumberUpper, [SHIFT, State.Number])
372 .add(Symbol.FullError, [SHIFT, State.Pound])
373 .build();
374table[State.Function] = ObjectBuilder
375 .add(Symbol.LeftParen, [SHIFT, State.Function_LeftParen])
376 .build();
377table[State.Cell] = ObjectBuilder
378 .add(Symbol.EOF, [REDUCE, ReduceActions.CellValueAsExpression])
379 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CellValueAsExpression])
380 .add(Symbol.Equals, [REDUCE, ReduceActions.CellValueAsExpression])
381 .add(Symbol.Plus, [REDUCE, ReduceActions.CellValueAsExpression])
382 .add(Symbol.RightParen, [REDUCE, ReduceActions.CellValueAsExpression])
383 .add(Symbol.LessThan, [REDUCE, ReduceActions.CellValueAsExpression])
384 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CellValueAsExpression])
385 .add(Symbol.Minus, [REDUCE, ReduceActions.CellValueAsExpression])
386 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CellValueAsExpression])
387 .add(Symbol.Divide, [REDUCE, ReduceActions.CellValueAsExpression])
388 .add(Symbol.Carrot, [REDUCE, ReduceActions.CellValueAsExpression])
389 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CellValueAsExpression])
390 .add(Symbol.Comma, [REDUCE, ReduceActions.CellValueAsExpression])
391 .build();
392table[State.Error] = ObjectBuilder
393 .add(Symbol.Error, State.Error_Error)
394 .add(Symbol.EOF, [REDUCE, ReduceActions.ErrorAndContinue])
395 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ErrorAndContinue])
396 .add(Symbol.Equals, [REDUCE, ReduceActions.ErrorAndContinue])
397 .add(Symbol.Plus, [REDUCE, ReduceActions.ErrorAndContinue])
398 .add(Symbol.RightParen, [REDUCE, ReduceActions.ErrorAndContinue])
399 .add(Symbol.LessThan, [REDUCE, ReduceActions.ErrorAndContinue])
400 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ErrorAndContinue])
401 .add(Symbol.Minus, [REDUCE, ReduceActions.ErrorAndContinue])
402 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ErrorAndContinue])
403 .add(Symbol.Divide, [REDUCE, ReduceActions.ErrorAndContinue])
404 .add(Symbol.Carrot, [REDUCE, ReduceActions.ErrorAndContinue])
405 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ErrorAndContinue])
406 .add(Symbol.Comma, [REDUCE, ReduceActions.ErrorAndContinue])
407 .add(Symbol.Variable, [SHIFT, State.Error_Variable])
408 .add(Symbol.FullError, [SHIFT, State.Pound])
409 .build();
410table[State.Variable] = ObjectBuilder
411 .add(Symbol.EOF, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
412 .add(Symbol.Ampersand, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
413 .add(Symbol.Equals, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
414 .add(Symbol.Plus, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
415 .add(Symbol.RightParen, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
416 .add(Symbol.LessThan, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
417 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
418 .add(Symbol.Minus, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
419 .add(Symbol.Asterisk, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
420 .add(Symbol.Divide, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
421 .add(Symbol.Carrot, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
422 .add(Symbol.Semicolon, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
423 .add(Symbol.Comma, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
424 .add(Symbol.Decimal, [REDUCE, ReduceActions.WrapCurrentTokenAsArray])
425 .add(Symbol.FullError, [SHIFT, State.Variable_FullError])
426 .build();
427table[State.Number] = ObjectBuilder
428 .add(Symbol.EOF, [REDUCE, ReduceActions.ReflexiveReduce])
429 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ReflexiveReduce])
430 .add(Symbol.Equals, [REDUCE, ReduceActions.ReflexiveReduce])
431 .add(Symbol.Plus, [REDUCE, ReduceActions.ReflexiveReduce])
432 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReflexiveReduce])
433 .add(Symbol.LessThan, [REDUCE, ReduceActions.ReflexiveReduce])
434 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ReflexiveReduce])
435 .add(Symbol.Minus, [REDUCE, ReduceActions.ReflexiveReduce])
436 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ReflexiveReduce])
437 .add(Symbol.Divide, [REDUCE, ReduceActions.ReflexiveReduce])
438 .add(Symbol.Carrot, [REDUCE, ReduceActions.ReflexiveReduce])
439 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReflexiveReduce])
440 .add(Symbol.Comma, [REDUCE, ReduceActions.ReflexiveReduce])
441 .add(Symbol.Decimal, [SHIFT, State.Number_Decimal])
442 .add(Symbol.Percent, [REDUCE, ReduceActions.ReflexiveReduce])
443 .add(Symbol.ReflexiveReduce, [REDUCE, ReduceActions.ReflexiveReduce])
444 .build();
445table[State.FixedCell] = ObjectBuilder
446 .add(Symbol.EOF, [REDUCE, ReduceActions.FixedCellValue])
447 .add(Symbol.Ampersand, [REDUCE, ReduceActions.FixedCellValue])
448 .add(Symbol.Equals, [REDUCE, ReduceActions.FixedCellValue])
449 .add(Symbol.Plus, [REDUCE, ReduceActions.FixedCellValue])
450 .add(Symbol.RightParen, [REDUCE, ReduceActions.FixedCellValue])
451 .add(Symbol.LessThan, [REDUCE, ReduceActions.FixedCellValue])
452 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.FixedCellValue])
453 .add(Symbol.Minus, [REDUCE, ReduceActions.FixedCellValue])
454 .add(Symbol.Asterisk, [REDUCE, ReduceActions.FixedCellValue])
455 .add(Symbol.Divide, [REDUCE, ReduceActions.FixedCellValue])
456 .add(Symbol.Carrot, [REDUCE, ReduceActions.FixedCellValue])
457 .add(Symbol.Colon, [SHIFT, State.FixedCell_Colon])
458 .add(Symbol.Semicolon, [REDUCE, ReduceActions.FixedCellValue])
459 .add(Symbol.Comma, [REDUCE, ReduceActions.FixedCellValue])
460 .build();
461table[State.CellUpper] = ObjectBuilder
462 .add(Symbol.EOF, [REDUCE, ReduceActions.CellValue])
463 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CellValue])
464 .add(Symbol.Equals, [REDUCE, ReduceActions.CellValue])
465 .add(Symbol.Plus, [REDUCE, ReduceActions.CellValue])
466 .add(Symbol.RightParen, [REDUCE, ReduceActions.CellValue])
467 .add(Symbol.LessThan, [REDUCE, ReduceActions.CellValue])
468 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CellValue])
469 .add(Symbol.Minus, [REDUCE, ReduceActions.CellValue])
470 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CellValue])
471 .add(Symbol.Divide, [REDUCE, ReduceActions.CellValue])
472 .add(Symbol.Carrot, [REDUCE, ReduceActions.CellValue])
473 .add(Symbol.Colon, [SHIFT, State.CellUpper_Colon])
474 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CellValue])
475 .add(Symbol.Comma, [REDUCE, ReduceActions.CellValue])
476 .build();
477table[State.Pound] = ObjectBuilder
478 .add(Symbol.Variable, [SHIFT, State.Pound_Variable])
479 .add(Symbol.EOF, [REDUCE, ReduceActions.AsError])
480 .add(Symbol.RightParen, [REDUCE, ReduceActions.AsError])
481 .add(Symbol.Comma, [REDUCE, ReduceActions.AsError])
482 .build();
483table[State.EOF_ReturnLast] = ObjectBuilder
484 .add(Symbol.End, [REDUCE, ReduceActions.ReturnLast])
485 .build();
486table[State.Expression_Ampersand] = ObjectBuilder
487 .add(Symbol.Error, State.Error)
488 .add(Symbol.Expression, State.Number_Ampersand_Expression)
489 .add(Symbol.VariableSeq, State.VariableSeq)
490 .add(Symbol.Number, State.Start_Number)
491 .add(Symbol.String, [SHIFT, State.Start_String])
492 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
493 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
494 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
495 .add(Symbol.Function, [SHIFT, State.Function])
496 .add(Symbol.Cell, State.Cell)
497 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
498 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
499 .add(Symbol.Variable, [SHIFT, State.Variable])
500 .add(Symbol.NumberUpper, [SHIFT, State.Number])
501 .add(Symbol.FullError, [SHIFT, State.Pound])
502 .build();
503table[State.Start_Equals] = ObjectBuilder
504 .add(Symbol.Error, State.Error)
505 .add(Symbol.Expression, State.Start_Equals_Expression)
506 .add(Symbol.VariableSeq, State.VariableSeq)
507 .add(Symbol.Number, State.Start_Number)
508 .add(Symbol.String, [SHIFT, State.Start_String])
509 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
510 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
511 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
512 .add(Symbol.Function, [SHIFT, State.Function])
513 .add(Symbol.Cell, State.Cell)
514 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
515 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
516 .add(Symbol.Variable, [SHIFT, State.Variable])
517 .add(Symbol.NumberUpper, [SHIFT, State.Number])
518 .add(Symbol.FullError, [SHIFT, State.Pound])
519 .build();
520table[State.Expression_Plus] = ObjectBuilder
521 .add(Symbol.Error, State.Error)
522 .add(Symbol.Expression, State.AddTwoNumbers)
523 .add(Symbol.VariableSeq, State.VariableSeq)
524 .add(Symbol.Number, State.Start_Number)
525 .add(Symbol.String, [SHIFT, State.Start_String])
526 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
527 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
528 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
529 .add(Symbol.Function, [SHIFT, State.Function])
530 .add(Symbol.Cell, State.Cell)
531 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
532 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
533 .add(Symbol.Variable, [SHIFT, State.Variable])
534 .add(Symbol.NumberUpper, [SHIFT, State.Number])
535 .add(Symbol.FullError, [SHIFT, State.Pound])
536 .build();
537table[State.LessThan] = ObjectBuilder
538 .add(Symbol.Error, State.Error)
539 .add(Symbol.Expression, State.LessThan_Expression)
540 .add(Symbol.VariableSeq, State.VariableSeq)
541 .add(Symbol.Number, State.Start_Number)
542 .add(Symbol.String, [SHIFT, State.Start_String])
543 .add(Symbol.Equals, [SHIFT, State.LessThan_Equals])
544 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
545 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
546 .add(Symbol.GreaterThan, [SHIFT, State.LessThan_GreaterThan])
547 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
548 .add(Symbol.Function, [SHIFT, State.Function])
549 .add(Symbol.Cell, State.Cell)
550 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
551 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
552 .add(Symbol.Variable, [SHIFT, State.Variable])
553 .add(Symbol.NumberUpper, [SHIFT, State.Number])
554 .add(Symbol.FullError, [SHIFT, State.Pound])
555 .build();
556table[State.GreaterThan] = ObjectBuilder
557 .add(Symbol.Error, State.Error)
558 .add(Symbol.Expression, State.GreaterThan_Expression)
559 .add(Symbol.VariableSeq, State.VariableSeq)
560 .add(Symbol.Number, State.Start_Number)
561 .add(Symbol.String, [SHIFT, State.Start_String])
562 .add(Symbol.Equals, [SHIFT, State.GreaterThanEquals])
563 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
564 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
565 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
566 .add(Symbol.Function, [SHIFT, State.Function])
567 .add(Symbol.Cell, State.Cell)
568 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
569 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
570 .add(Symbol.Variable, [SHIFT, State.Variable])
571 .add(Symbol.NumberUpper, [SHIFT, State.Number])
572 .add(Symbol.FullError, [SHIFT, State.Pound])
573 .build();
574// table[25] is absent because it's unreachable.
575table[State.Expression_Minus] = ObjectBuilder
576 .add(Symbol.Error, State.Error)
577 .add(Symbol.Expression, State.SubtractTwoNumbers)
578 .add(Symbol.VariableSeq, State.VariableSeq)
579 .add(Symbol.Number, State.Start_Number)
580 .add(Symbol.String, [SHIFT, State.Start_String])
581 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
582 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
583 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
584 .add(Symbol.Function, [SHIFT, State.Function])
585 .add(Symbol.Cell, State.Cell)
586 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
587 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
588 .add(Symbol.Variable, [SHIFT, State.Variable])
589 .add(Symbol.NumberUpper, [SHIFT, State.Number])
590 .add(Symbol.FullError, [SHIFT, State.Pound])
591 .build();
592table[State.Expression_Asterisk] = ObjectBuilder
593 .add(Symbol.Error, State.Error)
594 .add(Symbol.Expression, State.MultiplyTwoNumbers)
595 .add(Symbol.VariableSeq, State.VariableSeq)
596 .add(Symbol.Number, State.Start_Number)
597 .add(Symbol.String, [SHIFT, State.Start_String])
598 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
599 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
600 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
601 .add(Symbol.Function, [SHIFT, State.Function])
602 .add(Symbol.Cell, State.Cell)
603 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
604 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
605 .add(Symbol.Variable, [SHIFT, State.Variable])
606 .add(Symbol.NumberUpper, [SHIFT, State.Number])
607 .add(Symbol.FullError, [SHIFT, State.Pound])
608 .build();
609table[State.Expression_Divide] = ObjectBuilder
610 .add(Symbol.Error, State.Error)
611 .add(Symbol.Expression, State.DivideTwoNumbers)
612 .add(Symbol.VariableSeq, State.VariableSeq)
613 .add(Symbol.Number, State.Start_Number)
614 .add(Symbol.String, [SHIFT, State.Start_String])
615 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
616 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
617 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
618 .add(Symbol.Function, [SHIFT, State.Function])
619 .add(Symbol.Cell, State.Cell)
620 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
621 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
622 .add(Symbol.Variable, [SHIFT, State.Variable])
623 .add(Symbol.NumberUpper, [SHIFT, State.Number])
624 .add(Symbol.FullError, [SHIFT, State.Pound])
625 .build();
626table[State.Expression_Carrot] = ObjectBuilder
627 .add(Symbol.Error, State.Error)
628 .add(Symbol.Expression, State.PowerTwoNumbers)
629 .add(Symbol.VariableSeq, State.VariableSeq)
630 .add(Symbol.Number, State.Start_Number)
631 .add(Symbol.String, [SHIFT, State.Start_String])
632 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
633 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
634 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
635 .add(Symbol.Function, [SHIFT, State.Function])
636 .add(Symbol.Cell, State.Cell)
637 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
638 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
639 .add(Symbol.Variable, [SHIFT, State.Variable])
640 .add(Symbol.NumberUpper, [SHIFT, State.Number])
641 .add(Symbol.FullError, [SHIFT, State.Pound])
642 .build();
643table[State.VariableSeq_Decimal] = ObjectBuilder
644 .add(Symbol.Variable, [SHIFT, State.VariableSeq_Decimal_Variable])
645 .build();
646table[State.Expression_Percent] = ObjectBuilder
647 .add(Symbol.EOF, [REDUCE, ReduceActions.ReducePrevAsPercent])
648 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ReducePrevAsPercent])
649 .add(Symbol.Equals, [REDUCE, ReduceActions.ReducePrevAsPercent])
650 .add(Symbol.Plus, [REDUCE, ReduceActions.ReducePrevAsPercent])
651 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReducePrevAsPercent])
652 .add(Symbol.LessThan, [REDUCE, ReduceActions.ReducePrevAsPercent])
653 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ReducePrevAsPercent])
654 .add(Symbol.Minus, [REDUCE, ReduceActions.ReducePrevAsPercent])
655 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ReducePrevAsPercent])
656 .add(Symbol.Divide, [REDUCE, ReduceActions.ReducePrevAsPercent])
657 .add(Symbol.Carrot, [REDUCE, ReduceActions.ReducePrevAsPercent])
658 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReducePrevAsPercent])
659 .add(Symbol.Comma, [REDUCE, ReduceActions.ReducePrevAsPercent])
660 .add(Symbol.Percent, [REDUCE, ReduceActions.ReducePrevAsPercent])
661 .add(Symbol.ReflexiveReduce, [REDUCE, ReduceActions.ReducePrevAsPercent])
662 .build();
663table[State.LeftParen_Expression] = ObjectBuilder
664 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
665 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
666 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
667 .add(Symbol.RightParen, [SHIFT, State.Expression_RightParen])
668 .add(Symbol.LessThan, [SHIFT, State.LessThan])
669 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
670 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
671 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
672 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
673 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
674 .build();
675table[State.PrefixUnaryMinus_Expression] = ObjectBuilder
676 .add(Symbol.EOF, [REDUCE, ReduceActions.InvertNumber])
677 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
678 .add(Symbol.Equals, [REDUCE, ReduceActions.InvertNumber])
679 .add(Symbol.Plus, [REDUCE, ReduceActions.InvertNumber])
680 .add(Symbol.RightParen, [REDUCE, ReduceActions.InvertNumber])
681 .add(Symbol.LessThan, [REDUCE, ReduceActions.InvertNumber])
682 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.InvertNumber])
683 .add(Symbol.Minus, [REDUCE, ReduceActions.InvertNumber])
684 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
685 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
686 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
687 .add(Symbol.Semicolon, [REDUCE, ReduceActions.InvertNumber])
688 .add(Symbol.Comma, [REDUCE, ReduceActions.InvertNumber])
689 .build();
690table[State.PrefixUnaryPlus_Expression] = ObjectBuilder
691 .add(Symbol.EOF, [REDUCE, ReduceActions.ToNumberNANAsZero])
692 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
693 .add(Symbol.Equals, [REDUCE, ReduceActions.ToNumberNANAsZero])
694 .add(Symbol.Plus, [REDUCE, ReduceActions.ToNumberNANAsZero])
695 .add(Symbol.RightParen, [REDUCE, ReduceActions.ToNumberNANAsZero])
696 .add(Symbol.LessThan, [REDUCE, ReduceActions.ToNumberNANAsZero])
697 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ToNumberNANAsZero])
698 .add(Symbol.Minus, [REDUCE, ReduceActions.ToNumberNANAsZero])
699 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
700 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
701 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
702 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ToNumberNANAsZero])
703 .add(Symbol.Comma, [REDUCE, ReduceActions.ToNumberNANAsZero])
704 .build();
705table[State.Function_LeftParen] = ObjectBuilder
706 .add(Symbol.Error, State.Error)
707 .add(Symbol.Expression, State.Function_LeftParen_Expression)
708 .add(Symbol.VariableSeq, State.VariableSeq)
709 .add(Symbol.Number, State.Start_Number)
710 .add(Symbol.String, [SHIFT, State.Start_String])
711 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
712 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
713 .add(Symbol.RightParen, [SHIFT, State.Function_RightParenNoArguments])
714 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
715 .add(Symbol.Function, [SHIFT, State.Function])
716 .add(Symbol.ExpressionSeq, State.Function_LeftParen_ExpressionSeq)
717 .add(Symbol.Cell, State.Cell)
718 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
719 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
720 .add(Symbol.Array, [SHIFT, State.LeftParen_Array])
721 .add(Symbol.Variable, [SHIFT, State.Variable])
722 .add(Symbol.NumberUpper, [SHIFT, State.Number])
723 .add(Symbol.FullError, [SHIFT, State.Pound])
724 .build();
725table[State.Error_Error] = ObjectBuilder
726 .add(Symbol.EOF, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
727 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
728 .add(Symbol.Equals, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
729 .add(Symbol.Plus, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
730 .add(Symbol.RightParen, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
731 .add(Symbol.LessThan, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
732 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
733 .add(Symbol.Minus, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
734 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
735 .add(Symbol.Divide, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
736 .add(Symbol.Carrot, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
737 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
738 .add(Symbol.Comma, [REDUCE, ReduceActions.ErrorAndContinueWithOtherErrors])
739 .build();
740table[State.Error_Variable] = ObjectBuilder
741 .add(Symbol.FullError, [REDUCE, ReduceActions.AsError])
742 .build();
743table[State.Variable_FullError] = ObjectBuilder
744 .add(Symbol.Variable, [SHIFT, State.Variable_FullError_Variable])
745 .build();
746table[State.Number_Decimal] = ObjectBuilder
747 .add(Symbol.NumberUpper, [SHIFT, State.Number_Decimal_NumberUpper])
748 .build();
749table[State.FixedCell_Colon] = ObjectBuilder
750 .add(Symbol.FixedCell, [SHIFT, State.FixedCell_Colon_FixedCell])
751 .build();
752table[State.CellUpper_Colon] = ObjectBuilder
753 .add(Symbol.CellUpper, [SHIFT, State.CellUpper_Colon_CellUpper])
754 .build();
755table[State.Pound_Variable] = ObjectBuilder
756 .add(Symbol.ExclamationPoint, [SHIFT, State.Pound_Variable_ExclamationPoint])
757 .build();
758table[State.Number_Ampersand_Expression] = ObjectBuilder
759 .add(Symbol.EOF, [REDUCE, ReduceActions.Ampersand])
760 .add(Symbol.Ampersand, [REDUCE, ReduceActions.Ampersand])
761 .add(Symbol.Equals, [REDUCE, ReduceActions.Ampersand])
762 .add(Symbol.Plus, [REDUCE, ReduceActions.Ampersand])
763 .add(Symbol.RightParen, [REDUCE, ReduceActions.Ampersand])
764 .add(Symbol.LessThan, [REDUCE, ReduceActions.Ampersand])
765 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.Ampersand])
766 .add(Symbol.Minus, [REDUCE, ReduceActions.Ampersand])
767 .add(Symbol.Asterisk, [REDUCE, ReduceActions.Ampersand])
768 .add(Symbol.Divide, [REDUCE, ReduceActions.Ampersand])
769 .add(Symbol.Carrot, [REDUCE, ReduceActions.Ampersand])
770 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Ampersand])
771 .add(Symbol.Comma, [REDUCE, ReduceActions.Ampersand])
772 .build();
773table[State.Start_Equals_Expression] = ObjectBuilder
774 .add(Symbol.EOF, [REDUCE, ReduceActions.Equals])
775 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
776 .add(Symbol.Equals, [REDUCE, ReduceActions.Equals])
777 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
778 .add(Symbol.RightParen, [REDUCE, ReduceActions.Equals])
779 .add(Symbol.LessThan, [SHIFT, State.LessThan])
780 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
781 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
782 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
783 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
784 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
785 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Equals])
786 .add(Symbol.Comma, [REDUCE, ReduceActions.Equals])
787 .build();
788table[State.AddTwoNumbers] = ObjectBuilder
789 .add(Symbol.EOF, [REDUCE, ReduceActions.Plus])
790 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
791 .add(Symbol.Equals, [REDUCE, ReduceActions.Plus])
792 .add(Symbol.Plus, [REDUCE, ReduceActions.Plus])
793 .add(Symbol.RightParen, [REDUCE, ReduceActions.Plus])
794 .add(Symbol.LessThan, [REDUCE, ReduceActions.Plus])
795 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.Plus])
796 .add(Symbol.Minus, [REDUCE, ReduceActions.Plus])
797 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
798 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
799 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
800 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Plus])
801 .add(Symbol.Comma, [REDUCE, ReduceActions.Plus])
802 .build();
803table[State.LessThan_Equals] = ObjectBuilder
804 .add(Symbol.Error, State.Error)
805 .add(Symbol.Expression, State.LessThan_Equals_Expression)
806 .add(Symbol.VariableSeq, State.VariableSeq)
807 .add(Symbol.Number, State.Start_Number)
808 .add(Symbol.String, [SHIFT, State.Start_String])
809 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
810 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
811 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
812 .add(Symbol.Function, [SHIFT, State.Function])
813 .add(Symbol.Cell, State.Cell)
814 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
815 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
816 .add(Symbol.Variable, [SHIFT, State.Variable])
817 .add(Symbol.NumberUpper, [SHIFT, State.Number])
818 .add(Symbol.FullError, [SHIFT, State.Pound])
819 .build();
820table[State.LessThan_GreaterThan] = ObjectBuilder
821 .add(Symbol.Error, State.Error)
822 .add(Symbol.Expression, State.LessThan_GreaterThan_Expression)
823 .add(Symbol.VariableSeq, State.VariableSeq)
824 .add(Symbol.Number, State.Start_Number)
825 .add(Symbol.String, [SHIFT, State.Start_String])
826 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
827 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
828 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
829 .add(Symbol.Function, [SHIFT, State.Function])
830 .add(Symbol.Cell, State.Cell)
831 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
832 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
833 .add(Symbol.Variable, [SHIFT, State.Variable])
834 .add(Symbol.NumberUpper, [SHIFT, State.Number])
835 .add(Symbol.FullError, [SHIFT, State.Pound])
836 .build();
837table[State.LessThan_Expression] = ObjectBuilder
838 .add(Symbol.EOF, [REDUCE, ReduceActions.LT])
839 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
840 .add(Symbol.Equals, [REDUCE, ReduceActions.LT])
841 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
842 .add(Symbol.RightParen, [REDUCE, ReduceActions.LT])
843 .add(Symbol.LessThan, [REDUCE, ReduceActions.LT])
844 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.LT])
845 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
846 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
847 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
848 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
849 .add(Symbol.Semicolon, [REDUCE, ReduceActions.LT])
850 .add(Symbol.Comma, [REDUCE, ReduceActions.LT])
851 .build();
852table[State.GreaterThanEquals] = ObjectBuilder
853 .add(Symbol.Error, State.Error)
854 .add(Symbol.Expression, State.GreaterThanEquals_Expressions)
855 .add(Symbol.VariableSeq, State.VariableSeq)
856 .add(Symbol.Number, State.Start_Number)
857 .add(Symbol.String, [SHIFT, State.Start_String])
858 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
859 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
860 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
861 .add(Symbol.Function, [SHIFT, State.Function])
862 .add(Symbol.Cell, State.Cell)
863 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
864 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
865 .add(Symbol.Variable, [SHIFT, State.Variable])
866 .add(Symbol.NumberUpper, [SHIFT, State.Number])
867 .add(Symbol.FullError, [SHIFT, State.Pound])
868 .build();
869table[State.GreaterThan_Expression] = ObjectBuilder
870 .add(Symbol.EOF, [REDUCE, ReduceActions.GT])
871 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
872 .add(Symbol.Equals, [REDUCE, ReduceActions.GT])
873 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
874 .add(Symbol.RightParen, [REDUCE, ReduceActions.GT])
875 .add(Symbol.LessThan, [REDUCE, ReduceActions.GT])
876 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.GT])
877 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
878 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
879 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
880 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
881 .add(Symbol.Semicolon, [REDUCE, ReduceActions.GT])
882 .add(Symbol.Comma, [REDUCE, ReduceActions.GT])
883 .build();
884table[51] = ObjectBuilder
885 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
886 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
887 .add(Symbol.LessThan, [SHIFT, State.LessThan])
888 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
889 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
890 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
891 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
892 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
893 .build();
894table[State.SubtractTwoNumbers] = ObjectBuilder
895 .add(Symbol.EOF, [REDUCE, ReduceActions.Minus])
896 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
897 .add(Symbol.Equals, [REDUCE, ReduceActions.Minus])
898 .add(Symbol.Plus, [REDUCE, ReduceActions.Minus])
899 .add(Symbol.RightParen, [REDUCE, ReduceActions.Minus])
900 .add(Symbol.LessThan, [REDUCE, ReduceActions.Minus])
901 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.Minus])
902 .add(Symbol.Minus, [REDUCE, ReduceActions.Minus])
903 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
904 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
905 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
906 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Minus])
907 .add(Symbol.Comma, [REDUCE, ReduceActions.Minus])
908 .build();
909table[State.MultiplyTwoNumbers] = ObjectBuilder
910 .add(Symbol.EOF, [REDUCE, ReduceActions.Multiply])
911 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
912 .add(Symbol.Equals, [REDUCE, ReduceActions.Multiply])
913 .add(Symbol.Plus, [REDUCE, ReduceActions.Multiply])
914 .add(Symbol.RightParen, [REDUCE, ReduceActions.Multiply])
915 .add(Symbol.LessThan, [REDUCE, ReduceActions.Multiply])
916 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.Multiply])
917 .add(Symbol.Minus, [REDUCE, ReduceActions.Multiply])
918 .add(Symbol.Asterisk, [REDUCE, ReduceActions.Multiply])
919 .add(Symbol.Divide, [REDUCE, ReduceActions.Multiply])
920 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
921 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Multiply])
922 .add(Symbol.Comma, [REDUCE, ReduceActions.Multiply])
923 .build();
924table[State.DivideTwoNumbers] = ObjectBuilder
925 .add(Symbol.EOF, [REDUCE, ReduceActions.Divide])
926 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
927 .add(Symbol.Equals, [REDUCE, ReduceActions.Divide])
928 .add(Symbol.Plus, [REDUCE, ReduceActions.Divide])
929 .add(Symbol.RightParen, [REDUCE, ReduceActions.Divide])
930 .add(Symbol.LessThan, [REDUCE, ReduceActions.Divide])
931 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.Divide])
932 .add(Symbol.Minus, [REDUCE, ReduceActions.Divide])
933 .add(Symbol.Asterisk, [REDUCE, ReduceActions.Divide])
934 .add(Symbol.Divide, [REDUCE, ReduceActions.Divide])
935 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
936 .add(Symbol.Semicolon, [REDUCE, ReduceActions.Divide])
937 .add(Symbol.Comma, [REDUCE, ReduceActions.Divide])
938 .build();
939table[State.PowerTwoNumbers] = ObjectBuilder
940 .add(Symbol.EOF, [REDUCE, ReduceActions.ToPower])
941 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
942 .add(Symbol.Equals, [REDUCE, ReduceActions.ToPower])
943 .add(Symbol.Plus, [REDUCE, ReduceActions.ToPower])
944 .add(Symbol.RightParen, [REDUCE, ReduceActions.ToPower])
945 .add(Symbol.LessThan, [REDUCE, ReduceActions.ToPower])
946 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ToPower])
947 .add(Symbol.Minus, [REDUCE, ReduceActions.ToPower])
948 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ToPower])
949 .add(Symbol.Divide, [REDUCE, ReduceActions.ToPower])
950 .add(Symbol.Carrot, [REDUCE, ReduceActions.ToPower])
951 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ToPower])
952 .add(Symbol.Comma, [REDUCE, ReduceActions.ToPower])
953 .build();
954table[State.VariableSeq_Decimal_Variable] = ObjectBuilder
955 .add(Symbol.EOF, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
956 .add(Symbol.Ampersand, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
957 .add(Symbol.Equals, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
958 .add(Symbol.Plus, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
959 .add(Symbol.RightParen, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
960 .add(Symbol.LessThan, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
961 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
962 .add(Symbol.Minus, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
963 .add(Symbol.Asterisk, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
964 .add(Symbol.Divide, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
965 .add(Symbol.Carrot, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
966 .add(Symbol.Semicolon, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
967 .add(Symbol.Comma, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
968 .add(Symbol.Decimal, [REDUCE, ReduceActions.EnsureLastTwoINArrayAndPush])
969 .build();
970table[State.Expression_RightParen] = ObjectBuilder
971 .add(Symbol.EOF, [REDUCE, ReduceActions.LastExpression])
972 .add(Symbol.Ampersand, [REDUCE, ReduceActions.LastExpression])
973 .add(Symbol.Equals, [REDUCE, ReduceActions.LastExpression])
974 .add(Symbol.Plus, [REDUCE, ReduceActions.LastExpression])
975 .add(Symbol.RightParen, [REDUCE, ReduceActions.LastExpression])
976 .add(Symbol.LessThan, [REDUCE, ReduceActions.LastExpression])
977 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.LastExpression])
978 .add(Symbol.Minus, [REDUCE, ReduceActions.LastExpression])
979 .add(Symbol.Asterisk, [REDUCE, ReduceActions.LastExpression])
980 .add(Symbol.Divide, [REDUCE, ReduceActions.LastExpression])
981 .add(Symbol.Carrot, [REDUCE, ReduceActions.LastExpression])
982 .add(Symbol.Semicolon, [REDUCE, ReduceActions.LastExpression])
983 .add(Symbol.Comma, [REDUCE, ReduceActions.LastExpression])
984 .build();
985table[State.Function_RightParenNoArguments] = ObjectBuilder
986 .add(Symbol.EOF, [REDUCE, ReduceActions.CallFunctionLastBlank])
987 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CallFunctionLastBlank])
988 .add(Symbol.Equals, [REDUCE, ReduceActions.CallFunctionLastBlank])
989 .add(Symbol.Plus, [REDUCE, ReduceActions.CallFunctionLastBlank])
990 .add(Symbol.RightParen, [REDUCE, ReduceActions.CallFunctionLastBlank])
991 .add(Symbol.LessThan, [REDUCE, ReduceActions.CallFunctionLastBlank])
992 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CallFunctionLastBlank])
993 .add(Symbol.Minus, [REDUCE, ReduceActions.CallFunctionLastBlank])
994 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CallFunctionLastBlank])
995 .add(Symbol.Divide, [REDUCE, ReduceActions.CallFunctionLastBlank])
996 .add(Symbol.Carrot, [REDUCE, ReduceActions.CallFunctionLastBlank])
997 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CallFunctionLastBlank])
998 .add(Symbol.Comma, [REDUCE, ReduceActions.CallFunctionLastBlank])
999 .build();
1000table[State.Function_LeftParen_ExpressionSeq] = ObjectBuilder
1001 .add(Symbol.RightParen, [SHIFT, State.Function_Etc_RightParen])
1002 .add(Symbol.Semicolon, [SHIFT, State.Variable_SemiColon])
1003 .add(Symbol.Comma, [SHIFT, State.Variable_Comma])
1004 .build();
1005table[State.Function_LeftParen_Expression] = ObjectBuilder
1006 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1007 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
1008 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1009 .add(Symbol.RightParen, [REDUCE, ReduceActions.EnsureIsArray])
1010 .add(Symbol.LessThan, [SHIFT, State.LessThan])
1011 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
1012 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1013 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1014 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1015 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1016 .add(Symbol.Semicolon, [REDUCE, ReduceActions.EnsureIsArray])
1017 .add(Symbol.Comma, [REDUCE, ReduceActions.EnsureIsArray])
1018 .build();
1019table[State.LeftParen_Array] = ObjectBuilder
1020 .add(Symbol.RightParen, [REDUCE, ReduceActions.EnsureYYTextIsArray])
1021 .add(Symbol.Semicolon, [REDUCE, ReduceActions.EnsureYYTextIsArray])
1022 .add(Symbol.Comma, [REDUCE, ReduceActions.EnsureYYTextIsArray])
1023 .build();
1024table[State.Variable_FullError_Variable] = ObjectBuilder
1025 .add(Symbol.ExclamationPoint, [SHIFT, State.Variable_FullError_Variable_ExclamationPoint])
1026 .build();
1027table[State.Number_Decimal_NumberUpper] = ObjectBuilder
1028 .add(Symbol.EOF, [REDUCE, ReduceActions.ReduceFloat])
1029 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ReduceFloat])
1030 .add(Symbol.Equals, [REDUCE, ReduceActions.ReduceFloat])
1031 .add(Symbol.Plus, [REDUCE, ReduceActions.ReduceFloat])
1032 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReduceFloat])
1033 .add(Symbol.LessThan, [REDUCE, ReduceActions.ReduceFloat])
1034 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ReduceFloat])
1035 .add(Symbol.Minus, [REDUCE, ReduceActions.ReduceFloat])
1036 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ReduceFloat])
1037 .add(Symbol.Divide, [REDUCE, ReduceActions.ReduceFloat])
1038 .add(Symbol.Carrot, [REDUCE, ReduceActions.ReduceFloat])
1039 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReduceFloat])
1040 .add(Symbol.Comma, [REDUCE, ReduceActions.ReduceFloat])
1041 .add(Symbol.Percent, [REDUCE, ReduceActions.ReduceFloat])
1042 .add(Symbol.ReflexiveReduce, [REDUCE, ReduceActions.ReduceFloat]).build();
1043table[State.FixedCell_Colon_FixedCell] = ObjectBuilder
1044 .add(Symbol.EOF, [REDUCE, ReduceActions.FixedCellRangeValue])
1045 .add(Symbol.Ampersand, [REDUCE, ReduceActions.FixedCellRangeValue])
1046 .add(Symbol.Equals, [REDUCE, ReduceActions.FixedCellRangeValue])
1047 .add(Symbol.Plus, [REDUCE, ReduceActions.FixedCellRangeValue])
1048 .add(Symbol.RightParen, [REDUCE, ReduceActions.FixedCellRangeValue])
1049 .add(Symbol.LessThan, [REDUCE, ReduceActions.FixedCellRangeValue])
1050 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.FixedCellRangeValue])
1051 .add(Symbol.Minus, [REDUCE, ReduceActions.FixedCellRangeValue])
1052 .add(Symbol.Asterisk, [REDUCE, ReduceActions.FixedCellRangeValue])
1053 .add(Symbol.Divide, [REDUCE, ReduceActions.FixedCellRangeValue])
1054 .add(Symbol.Carrot, [REDUCE, ReduceActions.FixedCellRangeValue])
1055 .add(Symbol.Semicolon, [REDUCE, ReduceActions.FixedCellRangeValue])
1056 .add(Symbol.Comma, [REDUCE, ReduceActions.FixedCellRangeValue]).build();
1057table[State.CellUpper_Colon_CellUpper] = ObjectBuilder
1058 .add(Symbol.EOF, [REDUCE, ReduceActions.CellRangeValue])
1059 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CellRangeValue])
1060 .add(Symbol.Equals, [REDUCE, ReduceActions.CellRangeValue])
1061 .add(Symbol.Plus, [REDUCE, ReduceActions.CellRangeValue])
1062 .add(Symbol.RightParen, [REDUCE, ReduceActions.CellRangeValue])
1063 .add(Symbol.LessThan, [REDUCE, ReduceActions.CellRangeValue])
1064 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CellRangeValue])
1065 .add(Symbol.Minus, [REDUCE, ReduceActions.CellRangeValue])
1066 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CellRangeValue])
1067 .add(Symbol.Divide, [REDUCE, ReduceActions.CellRangeValue])
1068 .add(Symbol.Carrot, [REDUCE, ReduceActions.CellRangeValue])
1069 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CellRangeValue])
1070 .add(Symbol.Comma, [REDUCE, ReduceActions.CellRangeValue]).build();
1071table[State.Pound_Variable_ExclamationPoint] = ObjectBuilder
1072 .add(Symbol.EOF, [REDUCE, ReduceActions.ReduceLastThreeA])
1073 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ReduceLastThreeA])
1074 .add(Symbol.Equals, [REDUCE, ReduceActions.ReduceLastThreeA])
1075 .add(Symbol.Plus, [REDUCE, ReduceActions.ReduceLastThreeA])
1076 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReduceLastThreeA])
1077 .add(Symbol.LessThan, [REDUCE, ReduceActions.ReduceLastThreeA])
1078 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ReduceLastThreeA])
1079 .add(Symbol.Minus, [REDUCE, ReduceActions.ReduceLastThreeA])
1080 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ReduceLastThreeA])
1081 .add(Symbol.Divide, [REDUCE, ReduceActions.ReduceLastThreeA])
1082 .add(Symbol.Carrot, [REDUCE, ReduceActions.ReduceLastThreeA])
1083 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReduceLastThreeA])
1084 .add(Symbol.Comma, [REDUCE, ReduceActions.ReduceLastThreeA])
1085 .add(Symbol.Variable, [REDUCE, ReduceActions.ReduceLastThreeA])
1086 .add(Symbol.FullError, [REDUCE, ReduceActions.ReduceLastThreeA]).build();
1087table[State.LessThan_Equals_Expression] = ObjectBuilder
1088 .add(Symbol.EOF, [REDUCE, ReduceActions.LTE])
1089 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1090 .add(Symbol.Equals, [REDUCE, ReduceActions.LTE])
1091 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1092 .add(Symbol.RightParen, [REDUCE, ReduceActions.LTE])
1093 .add(Symbol.LessThan, [REDUCE, ReduceActions.LTE])
1094 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.LTE])
1095 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1096 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1097 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1098 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1099 .add(Symbol.Semicolon, [REDUCE, ReduceActions.LTE])
1100 .add(Symbol.Comma, [REDUCE, ReduceActions.LTE]).build();
1101table[State.LessThan_GreaterThan_Expression] = ObjectBuilder
1102 .add(Symbol.EOF, [REDUCE, ReduceActions.NotEqual])
1103 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1104 .add(Symbol.Equals, [REDUCE, ReduceActions.NotEqual])
1105 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1106 .add(Symbol.RightParen, [REDUCE, ReduceActions.NotEqual])
1107 .add(Symbol.LessThan, [REDUCE, ReduceActions.NotEqual])
1108 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.NotEqual])
1109 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1110 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1111 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1112 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1113 .add(Symbol.Semicolon, [REDUCE, ReduceActions.NotEqual])
1114 .add(Symbol.Comma, [REDUCE, ReduceActions.NotEqual]).build();
1115table[State.GreaterThanEquals_Expressions] = ObjectBuilder
1116 .add(Symbol.EOF, [REDUCE, ReduceActions.GTE])
1117 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1118 .add(Symbol.Equals, [REDUCE, ReduceActions.GTE])
1119 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1120 .add(Symbol.RightParen, [REDUCE, ReduceActions.GTE])
1121 .add(Symbol.LessThan, [REDUCE, ReduceActions.GTE])
1122 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.GTE])
1123 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1124 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1125 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1126 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1127 .add(Symbol.Semicolon, [REDUCE, ReduceActions.GTE])
1128 .add(Symbol.Comma, [REDUCE, ReduceActions.GTE])
1129 .build();
1130table[State.Function_Etc_RightParen] = ObjectBuilder
1131 .add(Symbol.EOF, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1132 .add(Symbol.Ampersand, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1133 .add(Symbol.Equals, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1134 .add(Symbol.Plus, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1135 .add(Symbol.RightParen, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1136 .add(Symbol.LessThan, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1137 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1138 .add(Symbol.Minus, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1139 .add(Symbol.Asterisk, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1140 .add(Symbol.Divide, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1141 .add(Symbol.Carrot, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1142 .add(Symbol.Semicolon, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1143 .add(Symbol.Comma, [REDUCE, ReduceActions.CallFunctionLastTwoInStack])
1144 .build();
1145table[State.Variable_SemiColon] = ObjectBuilder
1146 .add(Symbol.Error, State.Error)
1147 .add(Symbol.Expression, 74)
1148 .add(Symbol.VariableSeq, State.VariableSeq)
1149 .add(Symbol.Number, State.Start_Number)
1150 .add(Symbol.String, [SHIFT, State.Start_String])
1151 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
1152 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
1153 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
1154 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
1155 .add(Symbol.Function, [SHIFT, State.Function])
1156 .add(Symbol.Cell, State.Cell)
1157 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
1158 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
1159 .add(Symbol.Variable, [SHIFT, State.Variable])
1160 .add(Symbol.NumberUpper, [SHIFT, State.Number])
1161 .add(Symbol.FullError, [SHIFT, State.Pound])
1162 .build();
1163table[State.Variable_Comma] = ObjectBuilder
1164 .add(Symbol.Error, State.Error)
1165 .add(Symbol.Expression, 75)
1166 .add(Symbol.VariableSeq, State.VariableSeq)
1167 .add(Symbol.Number, State.Start_Number)
1168 .add(Symbol.String, [SHIFT, State.Start_String])
1169 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
1170 .add(Symbol.Plus, [SHIFT, State.PrefixUnaryPlus])
1171 .add(Symbol.LeftParen, [SHIFT, State.LeftParen])
1172 .add(Symbol.Minus, [SHIFT, State.PrefixUnaryMinus])
1173 .add(Symbol.Function, [SHIFT, State.Function])
1174 .add(Symbol.Cell, State.Cell)
1175 .add(Symbol.FixedCell, [SHIFT, State.FixedCell])
1176 .add(Symbol.CellUpper, [SHIFT, State.CellUpper])
1177 .add(Symbol.Variable, [SHIFT, State.Variable])
1178 .add(Symbol.NumberUpper, [SHIFT, State.Number])
1179 .add(Symbol.Array, [SHIFT, 61])
1180 .add(Symbol.FullError, [SHIFT, State.Pound])
1181 .build();
1182table[State.Variable_FullError_Variable_ExclamationPoint] = ObjectBuilder
1183 .add(Symbol.EOF, [REDUCE, ReduceActions.ReduceLastThreeB])
1184 .add(Symbol.Ampersand, [REDUCE, ReduceActions.ReduceLastThreeB])
1185 .add(Symbol.Equals, [REDUCE, ReduceActions.ReduceLastThreeB])
1186 .add(Symbol.Plus, [REDUCE, ReduceActions.ReduceLastThreeB])
1187 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReduceLastThreeB])
1188 .add(Symbol.LessThan, [REDUCE, ReduceActions.ReduceLastThreeB])
1189 .add(Symbol.GreaterThan, [REDUCE, ReduceActions.ReduceLastThreeB])
1190 .add(Symbol.Minus, [REDUCE, ReduceActions.ReduceLastThreeB])
1191 .add(Symbol.Asterisk, [REDUCE, ReduceActions.ReduceLastThreeB])
1192 .add(Symbol.Divide, [REDUCE, ReduceActions.ReduceLastThreeB])
1193 .add(Symbol.Carrot, [REDUCE, ReduceActions.ReduceLastThreeB])
1194 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReduceLastThreeB])
1195 .add(Symbol.Comma, [REDUCE, ReduceActions.ReduceLastThreeB])
1196 .add(Symbol.Variable, [REDUCE, ReduceActions.ReduceLastThreeB])
1197 .add(Symbol.FullError, [REDUCE, ReduceActions.ReduceLastThreeB])
1198 .build();
1199table[74] = ObjectBuilder
1200 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1201 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
1202 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1203 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReduceInt])
1204 .add(Symbol.LessThan, [SHIFT, State.LessThan])
1205 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
1206 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1207 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1208 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1209 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1210 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReduceInt])
1211 .add(Symbol.Comma, [REDUCE, ReduceActions.ReduceInt]).build();
1212table[75] = ObjectBuilder
1213 .add(Symbol.Ampersand, [SHIFT, State.Expression_Ampersand])
1214 .add(Symbol.Equals, [SHIFT, State.Start_Equals])
1215 .add(Symbol.Plus, [SHIFT, State.Expression_Plus])
1216 .add(Symbol.RightParen, [REDUCE, ReduceActions.ReducePercent])
1217 .add(Symbol.LessThan, [SHIFT, State.LessThan])
1218 .add(Symbol.GreaterThan, [SHIFT, State.GreaterThan])
1219 .add(Symbol.Minus, [SHIFT, State.Expression_Minus])
1220 .add(Symbol.Asterisk, [SHIFT, State.Expression_Asterisk])
1221 .add(Symbol.Divide, [SHIFT, State.Expression_Divide])
1222 .add(Symbol.Carrot, [SHIFT, State.Expression_Carrot])
1223 .add(Symbol.Semicolon, [REDUCE, ReduceActions.ReducePercent])
1224 .add(Symbol.Comma, [REDUCE, ReduceActions.ReducePercent]).build();
1225const ACTION_TABLE = table;
1226
1227
1228export {
1229 ACTION_TABLE,
1230 RULES,
1231 REDUCE,
1232 ACCEPT,
1233 SHIFT,
1234 SYMBOL_INDEX_TO_NAME,
1235 SYMBOL_NAME_TO_INDEX,
1236 PRODUCTIONS
1237}