commit
message
[Parser] replacing complex table objects with simple objects
author
Ben Vogt <[email protected]>
date
2017-09-17 21:24:46
stats
3 file(s) changed,
1439 insertions(+),
845 deletions(-)
files
src/Parser/Parser.ts
src/Utilities/ObjectFromPairs.ts
tests/Utilities/ObjectFromPairsTest.ts
1diff --git a/src/Parser/Parser.ts b/src/Parser/Parser.ts
2index 5cab0fd..c856380 100644
3--- a/src/Parser/Parser.ts
4+++ b/src/Parser/Parser.ts
5@@ -1,8 +1,4 @@
6 import {
7- ObjectFromPairs
8-} from "../Utilities/ObjectFromPairs";
9-import {
10- PARSE_ERROR,
11 ParseError
12 } from "../Errors";
13 import {
14@@ -93,56 +89,54 @@ const RULES = [
15 * Actions to take when processing tokens one by one. We're always either taking the next token, reducing our current
16 * tokens, or accepting and returning.
17 */
18-const enum LexActions {
19- SHIFT = 1,
20- REDUCE,
21- ACCEPT
22-}
23+const SHIFT = 1;
24+const REDUCE = 2;
25+const ACCEPT = 3;
26
27 const enum ReduceActions {
28 NO_ACTION = 0,
29- RETURN_LAST,
30- CALL_VARIABLE,
31- TIME_CALL_TRUE,
32- TIME_CALL,
33- AS_NUMBER,
34- AS_STRING,
35- AMPERSAND,
36- EQUALS,
37- PLUS,
38- LAST_NUMBER,
39- LTE,
40- GTE,
41- NOT_EQ,
42- NOT,
43- GT,
44- LT,
45- MINUS,
46- MULTIPLY,
47- DIVIDE,
48- TO_POWER,
49- INVERT_NUM,
50- TO_NUMBER_NAN_AS_ZERO,
51- CALL_FUNCTION_LAST_BLANK,
52- CALL_FUNCTION_LAST_TWO_IN_STACK,
53- I25,
54- I26,
55- I27,
56- FIXED_CELL_VAL,
57- FIXED_CELL_RANGE_VAL,
58- CELL_VALUE,
59- CELL_RANGE_VALUE,
60- ENSURE_IS_ARRAY,
61- ENSURE_YYTEXT_ARRAY,
62- REDUCE_INT,
63- REDUCE_PERCENT,
64- WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY,
65- ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH,
66- REFLEXIVE_REDUCE,
67- REDUCE_FLOAT,
68- REDUCE_PREV_AS_PERCENT,
69- REDUCE_LAST_THREE_A,
70- REDUCE_LAST_THREE_B
71+ RETURN_LAST = 1,
72+ CALL_VARIABLE = 2,
73+ TIME_CALL_TRUE = 3,
74+ TIME_CALL = 4,
75+ AS_NUMBER = 5,
76+ AS_STRING = 6,
77+ AMPERSAND = 7,
78+ EQUALS = 8,
79+ PLUS = 9,
80+ LAST_NUMBER = 10,
81+ LTE = 11,
82+ GTE = 12,
83+ NOT_EQ = 13,
84+ NOT = 14,
85+ GT = 15,
86+ LT = 16,
87+ MINUS = 17,
88+ MULTIPLY = 18,
89+ DIVIDE = 19,
90+ TO_POWER = 20,
91+ INVERT_NUM = 21,
92+ TO_NUMBER_NAN_AS_ZERO = 22,
93+ CALL_FUNCTION_LAST_BLANK = 23,
94+ CALL_FUNCTION_LAST_TWO_IN_STACK = 24,
95+ I25 = 25,
96+ I26 = 26,
97+ I27 = 27,
98+ FIXED_CELL_VAL = 28,
99+ FIXED_CELL_RANGE_VAL = 29,
100+ CELL_VALUE = 30,
101+ CELL_RANGE_VALUE = 31,
102+ ENSURE_IS_ARRAY = 32,
103+ ENSURE_YYTEXT_ARRAY = 33,
104+ REDUCE_INT = 34,
105+ REDUCE_PERCENT = 35,
106+ WRAP_CURRENT_INDEX_TOKEN_AS_ARRAY = 36,
107+ ENSURE_LAST_TWO_IN_ARRAY_AND_PUSH = 37,
108+ REFLEXIVE_REDUCE = 38,
109+ REDUCE_FLOAT = 39,
110+ REDUCE_PREV_AS_PERCENT = 40,
111+ REDUCE_LAST_THREE_A = 41,
112+ REDUCE_LAST_THREE_B = 42
113 }
114
115 /**
116@@ -224,833 +218,1191 @@ productions[ReduceActions.REDUCE_LAST_THREE_A] = new ReductionPair(2, 3);
117 productions[ReduceActions.REDUCE_LAST_THREE_B] = new ReductionPair(2, 4);
118 const PRODUCTIONS = productions;
119
120-/**
121- * Extend object obj by keys k, and values v for each k.
122- * @param k - keys to extend object by.
123- * @param v - value set for each key k.
124- * @param obj - object to extend.
125- * @param l
126- * @returns {Object}
127- */
128-const extendRules = function (k, v, obj?, l?) {
129- for (obj = obj || {}, l = k.length; l--; obj[k[l]] = v) {}
130- return obj;
131-};
132-const $V0 = [LexActions.SHIFT, 4];
133-const $V1 = [LexActions.SHIFT, 5];
134-const $V2 = [LexActions.SHIFT, 7];
135-const $V3 = [LexActions.SHIFT, 10];
136-const $V4 = [LexActions.SHIFT, 8];
137-const $V5 = [LexActions.SHIFT, 9];
138-const $V6 = [LexActions.SHIFT, 11];
139-const $V7 = [LexActions.SHIFT, 16];
140-const $V8 = [LexActions.SHIFT, 17];
141-const $V9 = [LexActions.SHIFT, 14];
142-const $Va = [LexActions.SHIFT, 15];
143-const $Vb = [LexActions.SHIFT, 18];
144-const $Vc = [LexActions.SHIFT, 20];
145-const $Vd = [LexActions.SHIFT, 21];
146-const $Ve = [LexActions.SHIFT, 22];
147-const $Vf = [LexActions.SHIFT, 23];
148-const $Vg = [LexActions.SHIFT, 24];
149-const $Vh = [LexActions.SHIFT, 25];
150-const $Vi = [LexActions.SHIFT, 26];
151-const $Vj = [LexActions.SHIFT, 27];
152-const $Vk = [LexActions.SHIFT, 28];
153-const $Vl = [LexActions.SHIFT, 29];
154-const $Vm = [
155- 5,
156- 11,
157- 12,
158- 13,
159- 15,
160- 16,
161- 17,
162- 18,
163- 19,
164- 20,
165- 21,
166- 22,
167- 30,
168- 31
169-];
170-const $Vn = [
171- 5,
172- 11,
173- 12,
174- 13,
175- 15,
176- 16,
177- 17,
178- 18,
179- 19,
180- 20,
181- 21,
182- 22,
183- 30,
184- 31,
185- 33
186-];
187-const $Vo = [LexActions.SHIFT, 38];
188-const $Vp = [
189- 5,
190- 11,
191- 12,
192- 13,
193- 15,
194- 16,
195- 17,
196- 18,
197- 19,
198- 20,
199- 21,
200- 22,
201- 30,
202- 31,
203- 35,
204- 38
205-];
206-const $Vq = [
207- 5,
208- 12,
209- 13,
210- 15,
211- 16,
212- 17,
213- 18,
214- 19,
215- 30,
216- 31
217-];
218-const $Vr = [
219- 5,
220- 12,
221- 15,
222- 16,
223- 17,
224- 18,
225- 30,
226- 31
227-];
228-const $Vs = [
229- 5,
230- 12,
231- 13,
232- 15,
233- 16,
234- 17,
235- 18,
236- 19,
237- 20,
238- 21,
239- 30,
240- 31
241-];
242-const $Vt = [
243- 15,
244- 30,
245- 31
246-];
247-const $Vu = [
248- 5,
249- 11,
250- 12,
251- 13,
252- 15,
253- 16,
254- 17,
255- 18,
256- 19,
257- 20,
258- 21,
259- 22,
260- 30,
261- 31,
262- 32,
263- 36
264-];
265+const SYMBOL_NAME_TO_INDEX = {
266+ "error": 2,
267+ "expressions": 3,
268+ "expression": 4,
269+ "EOF": 5,
270+ "variableSequence": 6,
271+ "TIME_AMPM": 7,
272+ "TIME_24": 8,
273+ "number": 9,
274+ "STRING": 10,
275+ "&": 11,
276+ "=": 12,
277+ "+": 13,
278+ "(": 14,
279+ ")": 15,
280+ "<": 16,
281+ ">": 17,
282+ "NOT": 18,
283+ "-": 19,
284+ "*": 20,
285+ "/": 21,
286+ "^": 22,
287+ "FUNCTION": 23,
288+ "expseq": 24,
289+ "cell": 25,
290+ "FIXEDCELL": 26,
291+ ":": 27,
292+ "CELL": 28,
293+ "ARRAY": 29,
294+ ";": 30,
295+ ",": 31,
296+ "VARIABLE": 32,
297+ "DECIMAL": 33,
298+ "NUMBER": 34,
299+ "%": 35,
300+ "#": 36,
301+ "!": 37,
302+ "$accept": 0,
303+ "$end": 1
304+};
305+const SYMBOL_INDEX_TO_NAME = {
306+ 5: "EOF",
307+ 7: "TIME_AMPM",
308+ 8: "TIME_24",
309+ 10: "STRING",
310+ 11: "&",
311+ 12: "=",
312+ 13: "+",
313+ 14: "(",
314+ 15: ")",
315+ 16: "<",
316+ 17: ">",
317+ 18: "NOT",
318+ 19: "-",
319+ 20: "*",
320+ 21: "/",
321+ 22: "^",
322+ 23: "FUNCTION",
323+ 26: "FIXEDCELL",
324+ 27: ":",
325+ 28: "CELL",
326+ 29: "ARRAY",
327+ 30: ";",
328+ 31: ",",
329+ 32: "VARIABLE",
330+ 33: "DECIMAL",
331+ 34: "NUMBER",
332+ 35: "%",
333+ 36: "#",
334+ 37: "!"
335+};
336
337
338 /**
339- * Array of to map rules to to LexActions and other rules.
340+ * Array of to map rules to to LexActions and other rules. A single index in the object (e.g. `{2: 13}`) indicates the
341+ * rule object to follow for the next token, while an array (e.g. `{23: [1, 11]}`) indicates the action to be taken,
342+ * and the rule object to follow after the action.
343 */
344 let table = [];
345-table[0] = ObjectFromPairs.of([
346- 2, 13,
347- 3, 1,
348- 4, 2,
349- 6, 3,
350- 7, $V0,
351- 8, $V1,
352- 9, 6,
353- 10, $V2,
354- 13, $V3,
355- 14, $V4,
356- 19, $V5,
357- 23, $V6,
358- 25, 12,
359- 26, $V7,
360- 28, $V8,
361- 32, $V9,
362- 34, $Va,
363- 36, $Vb
364-]);
365-table[1] = ObjectFromPairs.of([
366- 1, [3]
367-]);
368-table[2] = ObjectFromPairs.of([
369- 5, [LexActions.SHIFT, 19],
370- 11, $Vc,
371- 12, $Vd,
372- 13, $Ve,
373- 16, $Vf,
374- 17, $Vg,
375- 18, $Vh,
376- 19, $Vi,
377- 20, $Vj,
378- 21, $Vk,
379- 22, $Vl
380-]);
381-table[3] = extendRules($Vm, [LexActions.REDUCE, 2], ObjectFromPairs.of([33, [LexActions.SHIFT, 30]]));
382-table[4] = extendRules($Vm, [LexActions.REDUCE, 3]);
383-table[5] = extendRules($Vm, [LexActions.REDUCE, 4]);
384-table[6] = extendRules($Vm, [LexActions.REDUCE, 5], ObjectFromPairs.of([35, [LexActions.SHIFT, 31]]));
385-table[7] = extendRules($Vm, [LexActions.REDUCE, 6]);
386-table[8] = ObjectFromPairs.of([
387- 2, 13,
388- 4, 32,
389- 6, 3,
390- 7, $V0,
391- 8, $V1,
392- 9, 6,
393- 10, $V2,
394- 13, $V3,
395- 14, $V4,
396- 19, $V5,
397- 23, $V6,
398- 25, 12,
399- 26, $V7,
400- 28, $V8,
401- 32, $V9,
402- 34, $Va,
403- 36, $Vb
404-]);
405-table[9] = ObjectFromPairs.of([
406- 2, 13,
407- 4, 33,
408- 6, 3,
409- 7, $V0,
410- 8, $V1,
411- 9, 6,
412- 10, $V2,
413- 13, $V3,
414- 14, $V4,
415- 19, $V5,
416- 23, $V6,
417- 25, 12,
418- 26, $V7,
419- 28, $V8,
420- 32, $V9,
421- 34, $Va,
422- 36, $Vb
423-]);
424-table[10] = ObjectFromPairs.of([
425- 2, 13,
426- 4, 34,
427- 6, 3,
428- 7, $V0,
429- 8, $V1,
430- 9, 6,
431- 10, $V2,
432- 13, $V3,
433- 14, $V4,
434- 19, $V5,
435- 23, $V6,
436- 25, 12,
437- 26, $V7,
438- 28, $V8,
439- 32, $V9,
440- 34, $Va,
441- 36, $Vb
442-]);
443-table[11] = ObjectFromPairs.of([
444- 14, [LexActions.SHIFT, 35]
445-]);
446-table[12] = extendRules($Vm, [LexActions.REDUCE, 25]);
447-table[13] = extendRules($Vm, [LexActions.REDUCE, 26], ObjectFromPairs.of([LexActions.REDUCE, 36, 32, [LexActions.SHIFT, 37], 36, $Vb]));
448-table[14] = extendRules($Vn, [LexActions.REDUCE, 36], ObjectFromPairs.of([36, $Vo]));
449-table[15] = extendRules($Vp, [LexActions.REDUCE, 38], ObjectFromPairs.of([33, [LexActions.SHIFT, 39]]));
450-table[16] = extendRules($Vm, [LexActions.REDUCE, 28], ObjectFromPairs.of([27, [LexActions.SHIFT, 40]]));
451-table[17] = extendRules($Vm, [LexActions.REDUCE, 30], ObjectFromPairs.of([27, [LexActions.SHIFT, 41]]));
452-table[18] = ObjectFromPairs.of([32, [LexActions.SHIFT, 42]]);
453-table[19] = ObjectFromPairs.of([1, [LexActions.ACCEPT, 1]]);
454-table[20] = ObjectFromPairs.of([
455- 2, 13,
456- 4, 43,
457- 6, 3,
458- 7, $V0,
459- 8, $V1,
460- 9, 6,
461- 10, $V2,
462- 13, $V3,
463- 14, $V4,
464- 19, $V5,
465- 23, $V6,
466- 25, 12,
467- 26, $V7,
468- 28, $V8,
469- 32, $V9,
470- 34, $Va,
471- 36, $Vb
472-]);
473-table[21] = ObjectFromPairs.of([
474- 2, 13,
475- 4, 44,
476- 6, 3,
477- 7, $V0,
478- 8, $V1,
479- 9, 6,
480- 10, $V2,
481- 13, $V3,
482- 14, $V4,
483- 19, $V5,
484- 23, $V6,
485- 25, 12,
486- 26, $V7,
487- 28, $V8,
488- 32, $V9,
489- 34, $Va,
490- 36, $Vb
491-]);
492-table[22] = ObjectFromPairs.of([
493- 2, 13,
494- 4, 45,
495- 6, 3,
496- 7, $V0,
497- 8, $V1,
498- 9, 6,
499- 10, $V2,
500- 13, $V3,
501- 14, $V4,
502- 19, $V5,
503- 23, $V6,
504- 25, 12,
505- 26, $V7,
506- 28, $V8,
507- 32, $V9,
508- 34, $Va,
509- 36, $Vb
510-]);
511-table[23] = ObjectFromPairs.of([
512- 2, 13,
513- 4, 48,
514- 6, 3,
515- 7, $V0,
516- 8, $V1,
517- 9, 6,
518- 10, $V2,
519- 12, [1, 46],
520- 13, $V3,
521- 14, $V4,
522- 17, [1, 47],
523- 19, $V5,
524- 23, $V6,
525- 25, 12,
526- 26, $V7,
527- 28, $V8,
528- 32, $V9,
529- 34, $Va,
530- 36, $Vb
531-]);
532-table[24] = ObjectFromPairs.of([
533- 2, 13,
534- 4, 50,
535- 6, 3,
536- 7, $V0,
537- 8, $V1,
538- 9, 6,
539- 10, $V2,
540- 12, [1, 49],
541- 13, $V3,
542- 14, $V4,
543- 19, $V5,
544- 23, $V6,
545- 25, 12,
546- 26, $V7,
547- 28, $V8,
548- 32, $V9,
549- 34, $Va,
550- 36, $Vb
551-]);
552-table[25] = ObjectFromPairs.of([
553- 2, 13,
554- 4, 51,
555- 6, 3,
556- 7, $V0,
557- 8, $V1,
558- 9, 6,
559- 10, $V2,
560- 13, $V3,
561- 14, $V4,
562- 19, $V5,
563- 23, $V6,
564- 25, 12,
565- 26, $V7,
566- 28, $V8,
567- 32, $V9,
568- 34, $Va,
569- 36, $Vb
570-]);
571-table[26] = ObjectFromPairs.of([
572- 2, 13,
573- 4, 52,
574- 6, 3,
575- 7, $V0,
576- 8, $V1,
577- 9, 6,
578- 10, $V2,
579- 13, $V3,
580- 14, $V4,
581- 19, $V5,
582- 23, $V6,
583- 25, 12,
584- 26, $V7,
585- 28, $V8,
586- 32, $V9,
587- 34, $Va,
588- 36, $Vb
589-]);
590-table[27] = ObjectFromPairs.of([
591- 2, 13,
592- 4, 53,
593- 6, 3,
594- 7, $V0,
595- 8, $V1,
596- 9, 6,
597- 10, $V2,
598- 13, $V3,
599- 14, $V4,
600- 19, $V5,
601- 23, $V6,
602- 25, 12,
603- 26, $V7,
604- 28, $V8,
605- 32, $V9,
606- 34, $Va,
607- 36, $Vb
608-]);
609-table[28] = ObjectFromPairs.of([
610- 2, 13,
611- 4, 54,
612- 6, 3,
613- 7, $V0,
614- 8, $V1,
615- 9, 6,
616- 10, $V2,
617- 13, $V3,
618- 14, $V4,
619- 19, $V5,
620- 23, $V6,
621- 25, 12,
622- 26, $V7,
623- 28, $V8,
624- 32, $V9,
625- 34, $Va,
626- 36, $Vb
627-]);
628-table[29] = ObjectFromPairs.of([
629- 2, 13,
630- 4, 55,
631- 6, 3,
632- 7, $V0,
633- 8, $V1,
634- 9, 6,
635- 10, $V2,
636- 13, $V3,
637- 14, $V4,
638- 19, $V5,
639- 23, $V6,
640- 25, 12,
641- 26, $V7,
642- 28, $V8,
643- 32, $V9,
644- 34, $Va,
645- 36, $Vb
646-]);
647-table[30] = ObjectFromPairs.of([ [LexActions.SHIFT, 56]]);
648-table[31] = extendRules($Vp, [LexActions.REDUCE, 40]);
649-table[32] = ObjectFromPairs.of([
650- 11, $Vc,
651- 12, $Vd,
652- 13, $Ve,
653- 15, [LexActions.SHIFT, 57],
654- 16, $Vf,
655- 17, $Vg,
656- 18, $Vh,
657- 19, $Vi,
658- 20, $Vj,
659- 21, $Vk,
660- 22, $Vl
661-]);
662-table[33] = extendRules($Vq, [LexActions.REDUCE, 21], ObjectFromPairs.of([
663- 11, $Vc,
664- 20, $Vj,
665- 21, $Vk,
666- 22, $Vl
667-]));
668-table[34] = extendRules($Vq, [LexActions.REDUCE, 22], ObjectFromPairs.of([
669- 11, $Vc,
670- 20, $Vj,
671- 21, $Vk,
672- 22, $Vl])
673-);
674-table[35] = ObjectFromPairs.of([
675- 2, 13,
676- 4, 60,
677- 6, 3,
678- 7, $V0,
679- 8, $V1,
680- 9, 6,
681- 10, $V2,
682- 13, $V3,
683- 14, $V4,
684- 15, [LexActions.SHIFT, 58],
685- 19, $V5,
686- 23, $V6,
687- 24, 59,
688- 25, 12,
689- 26, $V7,
690- 28, $V8,
691- 29, [LexActions.SHIFT, 61],
692- 32, $V9,
693- 34, $Va,
694- 36, $Vb
695-]);
696-table[36] = extendRules($Vm, [LexActions.REDUCE, 27]);
697-table[37] = ObjectFromPairs.of([36, $Vo]);
698-table[38] = ObjectFromPairs.of([32, [LexActions.SHIFT, 62]]);
699-table[39] = ObjectFromPairs.of([34, [LexActions.SHIFT, 63]]);
700-table[40] = ObjectFromPairs.of([26, [LexActions.SHIFT, 64]]);
701-table[41] = ObjectFromPairs.of([28, [LexActions.SHIFT, 65]]);
702-table[42] = ObjectFromPairs.of([37, [LexActions.SHIFT, 66]]);
703-table[43] = extendRules($Vm, [LexActions.REDUCE, 7]);
704-table[44] = extendRules([5, 12, 15, 30, 31], [LexActions.REDUCE, 8], ObjectFromPairs.of([
705- 11, $Vc,
706- 13, $Ve,
707- 16, $Vf,
708- 17, $Vg,
709- 18, $Vh,
710- 19, $Vi,
711- 20, $Vj,
712- 21, $Vk,
713- 22, $Vl
714-]));
715-table[45] = extendRules($Vq, [LexActions.REDUCE, 9], ObjectFromPairs.of([
716- 11, $Vc,
717- 20, $Vj,
718- 21, $Vk,
719- 22, $Vl
720-]));
721-table[46] = ObjectFromPairs.of([
722- 2, 13,
723- 4, 67,
724- 6, 3,
725- 7, $V0,
726- 8, $V1,
727- 9, 6,
728- 10, $V2,
729- 13, $V3,
730- 14, $V4,
731- 19, $V5,
732- 23, $V6,
733- 25, 12,
734- 26, $V7,
735- 28, $V8,
736- 32, $V9,
737- 34, $Va,
738- 36, $Vb
739-]);
740-table[47] = ObjectFromPairs.of([
741- 2, 13,
742- 4, 68,
743- 6, 3,
744- 7, $V0,
745- 8, $V1,
746- 9, 6,
747- 10, $V2,
748- 13, $V3,
749- 14, $V4,
750- 19, $V5,
751- 23, $V6,
752- 25, 12,
753- 26, $V7,
754- 28, $V8,
755- 32, $V9,
756- 34, $Va,
757- 36, $Vb
758-]);
759-table[48] = extendRules($Vr, [LexActions.REDUCE, 16], ObjectFromPairs.of([
760- 11, $Vc,
761- 13, $Ve,
762- 19, $Vi,
763- 20, $Vj,
764- 21, $Vk,
765- 22, $Vl
766-]));
767-table[49] = ObjectFromPairs.of([
768- 2, 13,
769- 4, 69,
770- 6, 3,
771- 7, $V0,
772- 8, $V1,
773- 9, 6,
774- 10, $V2,
775- 13, $V3,
776- 14, $V4,
777- 19, $V5,
778- 23, $V6,
779- 25, 12,
780- 26, $V7,
781- 28, $V8,
782- 32, $V9,
783- 34, $Va,
784- 36, $Vb
785-]);
786-table[50] = extendRules($Vr, [LexActions.REDUCE, 15], ObjectFromPairs.of([
787- 11, $Vc,
788- 13, $Ve,
789- 19, $Vi,
790- 20, $Vj,
791- 21, $Vk,
792- 22, $Vl
793-]));
794-table[51] = extendRules([5, 12, 15, 18, 30, 31], [LexActions.REDUCE, 14], ObjectFromPairs.of([
795- 11, $Vc,
796- 13, $Ve,
797- 16, $Vf,
798- 17, $Vg,
799- 19, $Vi,
800- 20, $Vj,
801- 21, $Vk,
802- 22, $Vl
803-]));
804-table[52] = extendRules($Vq, [LexActions.REDUCE, 17], ObjectFromPairs.of([
805- 11, $Vc,
806- 20, $Vj,
807- 21, $Vk,
808- 22, $Vl
809-]));
810-table[53] = extendRules($Vs, [LexActions.REDUCE, 18], ObjectFromPairs.of([
811- 11, $Vc,
812- 22, $Vl
813-]));
814-table[54] = extendRules($Vs, [LexActions.REDUCE, 19], ObjectFromPairs.of([
815- 11, $Vc,
816- 22, $Vl
817-]));
818-table[55] = extendRules([5, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31], [LexActions.REDUCE, 20], ObjectFromPairs.of([11, $Vc]));
819-table[56] = extendRules($Vn, [LexActions.REDUCE, 37]);
820-table[57] = extendRules($Vm, [LexActions.REDUCE, 10]);
821-table[58] = extendRules($Vm, [LexActions.REDUCE, 23]);
822-table[59] = ObjectFromPairs.of([
823- 15, [LexActions.SHIFT, 70],
824- 30, [LexActions.SHIFT, 71],
825- 31, [LexActions.SHIFT, 72]
826-]);
827-table[60] = extendRules($Vt, [LexActions.REDUCE, 32], ObjectFromPairs.of([
828- 11, $Vc,
829- 12, $Vd,
830- 13, $Ve,
831- 16, $Vf,
832- 17, $Vg,
833- 18, $Vh,
834- 19, $Vi,
835- 20, $Vj,
836- 21, $Vk,
837- 22, $Vl
838-]));
839-table[61] = extendRules($Vt, [LexActions.REDUCE, 33]);
840-table[62] = ObjectFromPairs.of([
841- 37, [LexActions.SHIFT, 73]
842-]);
843-table[63] = extendRules($Vp, [LexActions.REDUCE, 39]);
844-table[64] = extendRules($Vm, [LexActions.REDUCE, 29]);
845-table[65] = extendRules($Vm, [LexActions.REDUCE, 31]);
846-table[66] = extendRules($Vu, [LexActions.REDUCE, 41]);
847-table[67] = extendRules($Vr, [LexActions.REDUCE, 11], ObjectFromPairs.of([
848- 11, $Vc,
849- 13, $Ve,
850- 19, $Vi,
851- 20, $Vj,
852- 21, $Vk,
853- 22, $Vl
854-]));
855-table[68] = extendRules($Vr, [LexActions.REDUCE, 13], ObjectFromPairs.of([
856- 11, $Vc,
857- 13, $Ve,
858- 19, $Vi,
859- 20, $Vj,
860- 21, $Vk,
861- 22, $Vl
862-]));
863-table[69] = extendRules($Vr, [LexActions.REDUCE, 12], ObjectFromPairs.of([
864- 11, $Vc,
865- 13, $Ve,
866- 19, $Vi,
867- 20, $Vj,
868- 21, $Vk,
869- 22, $Vl
870-]));
871-table[70] = extendRules($Vm, [LexActions.REDUCE, 24]);
872-table[71] = ObjectFromPairs.of([
873- 2, 13,
874- 4, 74,
875- 6, 3,
876- 7, $V0,
877- 8, $V1,
878- 9, 6,
879- 10, $V2,
880- 13, $V3,
881- 14, $V4,
882- 19, $V5,
883- 23, $V6,
884- 25, 12,
885- 26, $V7,
886- 28, $V8,
887- 32, $V9,
888- 34, $Va,
889- 36, $Vb,
890- 12, $Vd
891-]);
892-table[72] = ObjectFromPairs.of([
893- 2, 13,
894- 4, 75,
895- 6, 3,
896- 7, $V0,
897- 8, $V1,
898- 9, 6,
899- 10, $V2,
900- 13, $V3,
901- 14, $V4,
902- 19, $V5,
903- 23, $V6,
904- 25, 12,
905- 26, $V7,
906- 28, $V8,
907- 32, $V9,
908- 34, $Va,
909- 36, $Vb,
910- 12, $Vd
911- // // NOTE: Ben this is where you are. When the parser captures an entire array, it should be able to reduce the
912- // // array, and continue on parsing normally. So we should have [LexActions.REDUCE, X]
913- // 29, [LexActions.REDUCE, 1]
914-]);
915-table[73] = extendRules($Vu, [LexActions.REDUCE, 42]);
916-table[74] = extendRules($Vt, [LexActions.REDUCE, 34], ObjectFromPairs.of([
917- 11, $Vc,
918- 12, $Vd,
919- 13, $Ve,
920- 16, $Vf,
921- 17, $Vg,
922- 18, $Vh,
923- 19, $Vi,
924- 20, $Vj,
925- 21, $Vk,
926- 22, $Vl
927-]));
928-table[75] = extendRules($Vt, [LexActions.REDUCE, 35], ObjectFromPairs.of([
929- 11, $Vc,
930- 12, $Vd,
931- 13, $Ve,
932- 16, $Vf,
933- 17, $Vg,
934- 18, $Vh,
935- 19, $Vi,
936- 20, $Vj,
937- 21, $Vk,
938- 22, $Vl
939-]));
940+table[0] = {
941+ 2: 13,
942+ 3: 1,
943+ 4: 2,
944+ 6: 3,
945+ 7: [SHIFT, 4],
946+ 8: [SHIFT, 5],
947+ 9: 6,
948+ 10: [SHIFT, 7],
949+ 13: [SHIFT, 10],
950+ 14: [SHIFT, 8],
951+ 19: [SHIFT, 9],
952+ 23: [SHIFT, 11],
953+ 25: 12,
954+ 26: [SHIFT, 16],
955+ 28: [SHIFT, 17],
956+ 32: [SHIFT, 14],
957+ 34: [SHIFT, 15],
958+ 36: [SHIFT, 18]
959+};
960+table[1] = {
961+ 1: [3]
962+};
963+table[2] = {
964+ 5: [SHIFT, 19],
965+ 11: [SHIFT, 20],
966+ 12: [SHIFT, 21],
967+ 13: [SHIFT, 22],
968+ 16: [SHIFT, 23],
969+ 17: [SHIFT, 24],
970+ 18: [SHIFT, 25],
971+ 19: [SHIFT, 26],
972+ 20: [SHIFT, 27],
973+ 21: [SHIFT, 28],
974+ 22: [SHIFT, 29]
975+};
976+table[3] = {
977+ 5: [REDUCE, 2],
978+ 11: [REDUCE, 2],
979+ 12: [REDUCE, 2],
980+ 13: [REDUCE, 2],
981+ 15: [REDUCE, 2],
982+ 16: [REDUCE, 2],
983+ 17: [REDUCE, 2],
984+ 18: [REDUCE, 2],
985+ 19: [REDUCE, 2],
986+ 20: [REDUCE, 2],
987+ 21: [REDUCE, 2],
988+ 22: [REDUCE, 2],
989+ 30: [REDUCE, 2],
990+ 31: [REDUCE, 2],
991+ 33: [SHIFT, 30]
992+};
993+table[4] = {
994+ 5: [REDUCE, 3],
995+ 11: [REDUCE, 3],
996+ 12: [REDUCE, 3],
997+ 13: [REDUCE, 3],
998+ 15: [REDUCE, 3],
999+ 16: [REDUCE, 3],
1000+ 17: [REDUCE, 3],
1001+ 18: [REDUCE, 3],
1002+ 19: [REDUCE, 3],
1003+ 20: [REDUCE, 3],
1004+ 21: [REDUCE, 3],
1005+ 22: [REDUCE, 3],
1006+ 30: [REDUCE, 3],
1007+ 31: [REDUCE, 3]
1008+};
1009+table[5] = {
1010+ 5: [REDUCE, 4],
1011+ 11: [REDUCE, 4],
1012+ 12: [REDUCE, 4],
1013+ 13: [REDUCE, 4],
1014+ 15: [REDUCE, 4],
1015+ 16: [REDUCE, 4],
1016+ 17: [REDUCE, 4],
1017+ 18: [REDUCE, 4],
1018+ 19: [REDUCE, 4],
1019+ 20: [REDUCE, 4],
1020+ 21: [REDUCE, 4],
1021+ 22: [REDUCE, 4],
1022+ 30: [REDUCE, 4],
1023+ 31: [REDUCE, 4]
1024+};
1025+table[6] = {
1026+ 5: [REDUCE, 5],
1027+ 11: [REDUCE, 5],
1028+ 12: [REDUCE, 5],
1029+ 13: [REDUCE, 5],
1030+ 15: [REDUCE, 5],
1031+ 16: [REDUCE, 5],
1032+ 17: [REDUCE, 5],
1033+ 18: [REDUCE, 5],
1034+ 19: [REDUCE, 5],
1035+ 20: [REDUCE, 5],
1036+ 21: [REDUCE, 5],
1037+ 22: [REDUCE, 5],
1038+ 30: [REDUCE, 5],
1039+ 31: [REDUCE, 5],
1040+ 35: [SHIFT, 31]
1041+};
1042+table[7] = {
1043+ 5: [REDUCE, 6],
1044+ 11: [REDUCE, 6],
1045+ 12: [REDUCE, 6],
1046+ 13: [REDUCE, 6],
1047+ 15: [REDUCE, 6],
1048+ 16: [REDUCE, 6],
1049+ 17: [REDUCE, 6],
1050+ 18: [REDUCE, 6],
1051+ 19: [REDUCE, 6],
1052+ 20: [REDUCE, 6],
1053+ 21: [REDUCE, 6],
1054+ 22: [REDUCE, 6],
1055+ 30: [REDUCE, 6],
1056+ 31: [REDUCE, 6]
1057+};
1058+table[8] = {
1059+ 2: 13,
1060+ 4: 32,
1061+ 6: 3,
1062+ 7: [SHIFT, 4],
1063+ 8: [SHIFT, 5],
1064+ 9: 6,
1065+ 10: [SHIFT, 7],
1066+ 13: [SHIFT, 10],
1067+ 14: [SHIFT, 8],
1068+ 19: [SHIFT, 9],
1069+ 23: [SHIFT, 11],
1070+ 25: 12,
1071+ 26: [SHIFT, 16],
1072+ 28: [SHIFT, 17],
1073+ 32: [SHIFT, 14],
1074+ 34: [SHIFT, 15],
1075+ 36: [SHIFT, 18]
1076+};
1077+table[9] = {
1078+ 2: 13,
1079+ 4: 33,
1080+ 6: 3,
1081+ 7: [SHIFT, 4],
1082+ 8: [SHIFT, 5],
1083+ 9: 6,
1084+ 10: [SHIFT, 7],
1085+ 13: [SHIFT, 10],
1086+ 14: [SHIFT, 8],
1087+ 19: [SHIFT, 9],
1088+ 23: [SHIFT, 11],
1089+ 25: 12,
1090+ 26: [SHIFT, 16],
1091+ 28: [SHIFT, 17],
1092+ 32: [SHIFT, 14],
1093+ 34: [SHIFT, 15],
1094+ 36: [SHIFT, 18]
1095+};
1096+table[10] = {
1097+ 2: 13,
1098+ 4: 34,
1099+ 6: 3,
1100+ 7: [SHIFT, 4],
1101+ 8: [SHIFT, 5],
1102+ 9: 6,
1103+ 10: [SHIFT, 7],
1104+ 13: [SHIFT, 10],
1105+ 14: [SHIFT, 8],
1106+ 19: [SHIFT, 9],
1107+ 23: [SHIFT, 11],
1108+ 25: 12,
1109+ 26: [SHIFT, 16],
1110+ 28: [SHIFT, 17],
1111+ 32: [SHIFT, 14],
1112+ 34: [SHIFT, 15],
1113+ 36: [SHIFT, 18]
1114+};
1115+table[11] = {
1116+ 14: [SHIFT, 35]
1117+};
1118+table[12] = {
1119+ 5: [REDUCE, 25],
1120+ 11: [REDUCE, 25],
1121+ 12: [REDUCE, 25],
1122+ 13: [REDUCE, 25],
1123+ 15: [REDUCE, 25],
1124+ 16: [REDUCE, 25],
1125+ 17: [REDUCE, 25],
1126+ 18: [REDUCE, 25],
1127+ 19: [REDUCE, 25],
1128+ 20: [REDUCE, 25],
1129+ 21: [REDUCE, 25],
1130+ 22: [REDUCE, 25],
1131+ 30: [REDUCE, 25],
1132+ 31: [REDUCE, 25]
1133+};
1134+table[13] = {
1135+ 2: 36,
1136+ 5: [REDUCE, 26],
1137+ 11: [REDUCE, 26],
1138+ 12: [REDUCE, 26],
1139+ 13: [REDUCE, 26],
1140+ 15: [REDUCE, 26],
1141+ 16: [REDUCE, 26],
1142+ 17: [REDUCE, 26],
1143+ 18: [REDUCE, 26],
1144+ 19: [REDUCE, 26],
1145+ 20: [REDUCE, 26],
1146+ 21: [REDUCE, 26],
1147+ 22: [REDUCE, 26],
1148+ 30: [REDUCE, 26],
1149+ 31: [REDUCE, 26],
1150+ 32: [SHIFT, 37],
1151+ 36: [SHIFT, 18]
1152+};
1153+table[14] = {
1154+ 5: [REDUCE, 36],
1155+ 11: [REDUCE, 36],
1156+ 12: [REDUCE, 36],
1157+ 13: [REDUCE, 36],
1158+ 15: [REDUCE, 36],
1159+ 16: [REDUCE, 36],
1160+ 17: [REDUCE, 36],
1161+ 18: [REDUCE, 36],
1162+ 19: [REDUCE, 36],
1163+ 20: [REDUCE, 36],
1164+ 21: [REDUCE, 36],
1165+ 22: [REDUCE, 36],
1166+ 30: [REDUCE, 36],
1167+ 31: [REDUCE, 36],
1168+ 33: [REDUCE, 36],
1169+ 36: [SHIFT, 38]
1170+};
1171+table[15] = {
1172+ 5: [REDUCE, 38],
1173+ 11: [REDUCE, 38],
1174+ 12: [REDUCE, 38],
1175+ 13: [REDUCE, 38],
1176+ 15: [REDUCE, 38],
1177+ 16: [REDUCE, 38],
1178+ 17: [REDUCE, 38],
1179+ 18: [REDUCE, 38],
1180+ 19: [REDUCE, 38],
1181+ 20: [REDUCE, 38],
1182+ 21: [REDUCE, 38],
1183+ 22: [REDUCE, 38],
1184+ 30: [REDUCE, 38],
1185+ 31: [REDUCE, 38],
1186+ 33: [SHIFT, 39],
1187+ 35: [REDUCE, 38],
1188+ 38: [REDUCE, 38]
1189+};
1190+table[16] = {
1191+ 5: [REDUCE, 28],
1192+ 11: [REDUCE, 28],
1193+ 12: [REDUCE, 28],
1194+ 13: [REDUCE, 28],
1195+ 15: [REDUCE, 28],
1196+ 16: [REDUCE, 28],
1197+ 17: [REDUCE, 28],
1198+ 18: [REDUCE, 28],
1199+ 19: [REDUCE, 28],
1200+ 20: [REDUCE, 28],
1201+ 21: [REDUCE, 28],
1202+ 22: [REDUCE, 28],
1203+ 27: [SHIFT, 40],
1204+ 30: [REDUCE, 28],
1205+ 31: [REDUCE, 28]
1206+};
1207+table[17] = {
1208+ 5: [REDUCE, 30],
1209+ 11: [REDUCE, 30],
1210+ 12: [REDUCE, 30],
1211+ 13: [REDUCE, 30],
1212+ 15: [REDUCE, 30],
1213+ 16: [REDUCE, 30],
1214+ 17: [REDUCE, 30],
1215+ 18: [REDUCE, 30],
1216+ 19: [REDUCE, 30],
1217+ 20: [REDUCE, 30],
1218+ 21: [REDUCE, 30],
1219+ 22: [REDUCE, 30],
1220+ 27: [SHIFT, 41],
1221+ 30: [REDUCE, 30],
1222+ 31: [REDUCE, 30]
1223+};
1224+table[18] = {
1225+ 32: [SHIFT, 42]
1226+};
1227+table[19] = {
1228+ 1: [ACCEPT, 1]
1229+};
1230+table[20] = {
1231+ 2: 13,
1232+ 4: 43,
1233+ 6: 3,
1234+ 7: [SHIFT, 4],
1235+ 8: [SHIFT, 5],
1236+ 9: 6,
1237+ 10: [SHIFT, 7],
1238+ 13: [SHIFT, 10],
1239+ 14: [SHIFT, 8],
1240+ 19: [SHIFT, 9],
1241+ 23: [SHIFT, 11],
1242+ 25: 12,
1243+ 26: [SHIFT, 16],
1244+ 28: [SHIFT, 17],
1245+ 32: [SHIFT, 14],
1246+ 34: [SHIFT, 15],
1247+ 36: [SHIFT, 18]
1248+};
1249+table[21] = {
1250+ 2: 13,
1251+ 4: 44,
1252+ 6: 3,
1253+ 7: [SHIFT, 4],
1254+ 8: [SHIFT, 5],
1255+ 9: 6,
1256+ 10: [SHIFT, 7],
1257+ 13: [SHIFT, 10],
1258+ 14: [SHIFT, 8],
1259+ 19: [SHIFT, 9],
1260+ 23: [SHIFT, 11],
1261+ 25: 12,
1262+ 26: [SHIFT, 16],
1263+ 28: [SHIFT, 17],
1264+ 32: [SHIFT, 14],
1265+ 34: [SHIFT, 15],
1266+ 36: [SHIFT, 18]
1267+};
1268+table[22] = {
1269+ 2: 13,
1270+ 4: 45,
1271+ 6: 3,
1272+ 7: [SHIFT, 4],
1273+ 8: [SHIFT, 5],
1274+ 9: 6,
1275+ 10: [SHIFT, 7],
1276+ 13: [SHIFT, 10],
1277+ 14: [SHIFT, 8],
1278+ 19: [SHIFT, 9],
1279+ 23: [SHIFT, 11],
1280+ 25: 12,
1281+ 26: [SHIFT, 16],
1282+ 28: [SHIFT, 17],
1283+ 32: [SHIFT, 14],
1284+ 34: [SHIFT, 15],
1285+ 36: [SHIFT, 18]
1286+};
1287+table[23] = {
1288+ 2: 13,
1289+ 4: 48,
1290+ 6: 3,
1291+ 7: [SHIFT, 4],
1292+ 8: [SHIFT, 5],
1293+ 9: 6,
1294+ 10: [SHIFT, 7],
1295+ 12: [SHIFT, 46],
1296+ 13: [SHIFT, 10],
1297+ 14: [SHIFT, 8],
1298+ 17: [SHIFT, 47],
1299+ 19: [SHIFT, 9],
1300+ 23: [SHIFT, 11],
1301+ 25: 12,
1302+ 26: [SHIFT, 16],
1303+ 28: [SHIFT, 17],
1304+ 32: [SHIFT, 14],
1305+ 34: [SHIFT, 15],
1306+ 36: [SHIFT, 18]
1307+};
1308+table[24] = {
1309+ 2: 13,
1310+ 4: 50,
1311+ 6: 3,
1312+ 7: [SHIFT, 4],
1313+ 8: [SHIFT, 5],
1314+ 9: 6,
1315+ 10: [SHIFT, 7],
1316+ 12: [SHIFT, 49],
1317+ 13: [SHIFT, 10],
1318+ 14: [SHIFT, 8],
1319+ 19: [SHIFT, 9],
1320+ 23: [SHIFT, 11],
1321+ 25: 12,
1322+ 26: [SHIFT, 16],
1323+ 28: [SHIFT, 17],
1324+ 32: [SHIFT, 14],
1325+ 34: [SHIFT, 15],
1326+ 36: [SHIFT, 18]
1327+};
1328+table[25] = {
1329+ 2: 13,
1330+ 4: 51,
1331+ 6: 3,
1332+ 7: [SHIFT, 4],
1333+ 8: [SHIFT, 5],
1334+ 9: 6,
1335+ 10: [SHIFT, 7],
1336+ 13: [SHIFT, 10],
1337+ 14: [SHIFT, 8],
1338+ 19: [SHIFT, 9],
1339+ 23: [SHIFT, 11],
1340+ 25: 12,
1341+ 26: [SHIFT, 16],
1342+ 28: [SHIFT, 17],
1343+ 32: [SHIFT, 14],
1344+ 34: [SHIFT, 15],
1345+ 36: [SHIFT, 18]
1346+};
1347+table[26] = {
1348+ 2: 13,
1349+ 4: 52,
1350+ 6: 3,
1351+ 7: [SHIFT, 4],
1352+ 8: [SHIFT, 5],
1353+ 9: 6,
1354+ 10: [SHIFT, 7],
1355+ 13: [SHIFT, 10],
1356+ 14: [SHIFT, 8],
1357+ 19: [SHIFT, 9],
1358+ 23: [SHIFT, 11],
1359+ 25: 12,
1360+ 26: [SHIFT, 16],
1361+ 28: [SHIFT, 17],
1362+ 32: [SHIFT, 14],
1363+ 34: [SHIFT, 15],
1364+ 36: [SHIFT, 18]
1365+};
1366+table[27] = {
1367+ 2: 13,
1368+ 4: 53,
1369+ 6: 3,
1370+ 7: [SHIFT, 4],
1371+ 8: [SHIFT, 5],
1372+ 9: 6,
1373+ 10: [SHIFT, 7],
1374+ 13: [SHIFT, 10],
1375+ 14: [SHIFT, 8],
1376+ 19: [SHIFT, 9],
1377+ 23: [SHIFT, 11],
1378+ 25: 12,
1379+ 26: [SHIFT, 16],
1380+ 28: [SHIFT, 17],
1381+ 32: [SHIFT, 14],
1382+ 34: [SHIFT, 15],
1383+ 36: [SHIFT, 18]
1384+};
1385+table[28] = {
1386+ 2: 13,
1387+ 4: 54,
1388+ 6: 3,
1389+ 7: [SHIFT, 4],
1390+ 8: [SHIFT, 5],
1391+ 9: 6,
1392+ 10: [SHIFT, 7],
1393+ 13: [SHIFT, 10],
1394+ 14: [SHIFT, 8],
1395+ 19: [SHIFT, 9],
1396+ 23: [SHIFT, 11],
1397+ 25: 12,
1398+ 26: [SHIFT, 16],
1399+ 28: [SHIFT, 17],
1400+ 32: [SHIFT, 14],
1401+ 34: [SHIFT, 15],
1402+ 36: [SHIFT, 18]
1403+};
1404+table[29] = {
1405+ 2: 13,
1406+ 4: 55,
1407+ 6: 3,
1408+ 7: [SHIFT, 4],
1409+ 8: [SHIFT, 5],
1410+ 9: 6,
1411+ 10: [SHIFT, 7],
1412+ 13: [SHIFT, 10],
1413+ 14: [SHIFT, 8],
1414+ 19: [SHIFT, 9],
1415+ 23: [SHIFT, 11],
1416+ 25: 12,
1417+ 26: [SHIFT, 16],
1418+ 28: [SHIFT, 17],
1419+ 32: [SHIFT, 14],
1420+ 34: [SHIFT, 15],
1421+ 36: [SHIFT, 18]
1422+};
1423+table[30] = {
1424+ 32: [SHIFT, 56]
1425+};
1426+table[31] = {
1427+ 5: [REDUCE, 40],
1428+ 11: [REDUCE, 40],
1429+ 12: [REDUCE, 40],
1430+ 13: [REDUCE, 40],
1431+ 15: [REDUCE, 40],
1432+ 16: [REDUCE, 40],
1433+ 17: [REDUCE, 40],
1434+ 18: [REDUCE, 40],
1435+ 19: [REDUCE, 40],
1436+ 20: [REDUCE, 40],
1437+ 21: [REDUCE, 40],
1438+ 22: [REDUCE, 40],
1439+ 30: [REDUCE, 40],
1440+ 31: [REDUCE, 40],
1441+ 35: [REDUCE, 40],
1442+ 38: [REDUCE, 40]
1443+};
1444+table[32] = {
1445+ 11: [SHIFT, 20],
1446+ 12: [SHIFT, 21],
1447+ 13: [SHIFT, 22],
1448+ 15: [SHIFT, 57],
1449+ 16: [SHIFT, 23],
1450+ 17: [SHIFT, 24],
1451+ 18: [SHIFT, 25],
1452+ 19: [SHIFT, 26],
1453+ 20: [SHIFT, 27],
1454+ 21: [SHIFT, 28],
1455+ 22: [SHIFT, 29]
1456+};
1457+table[33] = {
1458+ 5: [REDUCE, 21],
1459+ 11: [SHIFT, 20],
1460+ 12: [REDUCE, 21],
1461+ 13: [REDUCE, 21],
1462+ 15: [REDUCE, 21],
1463+ 16: [REDUCE, 21],
1464+ 17: [REDUCE, 21],
1465+ 18: [REDUCE, 21],
1466+ 19: [REDUCE, 21],
1467+ 20: [SHIFT, 27],
1468+ 21: [SHIFT, 28],
1469+ 22: [SHIFT, 29],
1470+ 30: [REDUCE, 21],
1471+ 31: [REDUCE, 21]
1472+};
1473+table[34] = {
1474+ 5: [REDUCE, 22],
1475+ 11: [SHIFT, 20],
1476+ 12: [REDUCE, 22],
1477+ 13: [REDUCE, 22],
1478+ 15: [REDUCE, 22],
1479+ 16: [REDUCE, 22],
1480+ 17: [REDUCE, 22],
1481+ 18: [REDUCE, 22],
1482+ 19: [REDUCE, 22],
1483+ 20: [SHIFT, 27],
1484+ 21: [SHIFT, 28],
1485+ 22: [SHIFT, 29],
1486+ 30: [REDUCE, 22],
1487+ 31: [REDUCE, 22]
1488+};
1489+table[35] = {
1490+ 2: 13,
1491+ 4: 60,
1492+ 6: 3,
1493+ 7: [SHIFT, 4],
1494+ 8: [SHIFT, 5],
1495+ 9: 6,
1496+ 10: [SHIFT, 7],
1497+ 13: [SHIFT, 10],
1498+ 14: [SHIFT, 8],
1499+ 15: [SHIFT, 58],
1500+ 19: [SHIFT, 9],
1501+ 23: [SHIFT, 11],
1502+ 24: 59,
1503+ 25: 12,
1504+ 26: [SHIFT, 16],
1505+ 28: [SHIFT, 17],
1506+ 29: [SHIFT, 61],
1507+ 32: [SHIFT, 14],
1508+ 34: [SHIFT, 15],
1509+ 36: [SHIFT, 18]
1510+};
1511+table[36] = {
1512+ 5: [REDUCE, 27],
1513+ 11: [REDUCE, 27],
1514+ 12: [REDUCE, 27],
1515+ 13: [REDUCE, 27],
1516+ 15: [REDUCE, 27],
1517+ 16: [REDUCE, 27],
1518+ 17: [REDUCE, 27],
1519+ 18: [REDUCE, 27],
1520+ 19: [REDUCE, 27],
1521+ 20: [REDUCE, 27],
1522+ 21: [REDUCE, 27],
1523+ 22: [REDUCE, 27],
1524+ 30: [REDUCE, 27],
1525+ 31: [REDUCE, 27]
1526+};
1527+table[37] = {36: [SHIFT, 38]};
1528+table[38] = {32: [SHIFT, 62]};
1529+table[39] = {34: [SHIFT, 63]};
1530+table[40] = {26: [SHIFT, 64]};
1531+table[41] = {28: [SHIFT, 65]};
1532+table[42] = {37: [SHIFT, 66]};
1533+table[43] = {
1534+ 5: [REDUCE, 7],
1535+ 11: [REDUCE, 7],
1536+ 12: [REDUCE, 7],
1537+ 13: [REDUCE, 7],
1538+ 15: [REDUCE, 7],
1539+ 16: [REDUCE, 7],
1540+ 17: [REDUCE, 7],
1541+ 18: [REDUCE, 7],
1542+ 19: [REDUCE, 7],
1543+ 20: [REDUCE, 7],
1544+ 21: [REDUCE, 7],
1545+ 22: [REDUCE, 7],
1546+ 30: [REDUCE, 7],
1547+ 31: [REDUCE, 7]
1548+};
1549+table[44] = {
1550+ 5: [REDUCE, 8],
1551+ 11: [SHIFT, 20],
1552+ 12: [REDUCE, 8],
1553+ 13: [SHIFT, 22],
1554+ 15: [REDUCE, 8],
1555+ 16: [SHIFT, 23],
1556+ 17: [SHIFT, 24],
1557+ 18: [SHIFT, 25],
1558+ 19: [SHIFT, 26],
1559+ 20: [SHIFT, 27],
1560+ 21: [SHIFT, 28],
1561+ 22: [SHIFT, 29],
1562+ 30: [REDUCE, 8],
1563+ 31: [REDUCE, 8]
1564+};
1565+table[45] = {
1566+ 5: [REDUCE, 9],
1567+ 11: [SHIFT, 20],
1568+ 12: [REDUCE, 9],
1569+ 13: [REDUCE, 9],
1570+ 15: [REDUCE, 9],
1571+ 16: [REDUCE, 9],
1572+ 17: [REDUCE, 9],
1573+ 18: [REDUCE, 9],
1574+ 19: [REDUCE, 9],
1575+ 20: [SHIFT, 27],
1576+ 21: [SHIFT, 28],
1577+ 22: [SHIFT, 29],
1578+ 30: [REDUCE, 9],
1579+ 31: [REDUCE, 9]
1580+};
1581+table[46] = {
1582+ 2: 13,
1583+ 4: 67,
1584+ 6: 3,
1585+ 7: [SHIFT, 4],
1586+ 8: [SHIFT, 5],
1587+ 9: 6,
1588+ 10: [SHIFT, 7],
1589+ 13: [SHIFT, 10],
1590+ 14: [SHIFT, 8],
1591+ 19: [SHIFT, 9],
1592+ 23: [SHIFT, 11],
1593+ 25: 12,
1594+ 26: [SHIFT, 16],
1595+ 28: [SHIFT, 17],
1596+ 32: [SHIFT, 14],
1597+ 34: [SHIFT, 15],
1598+ 36: [SHIFT, 18]
1599+};
1600+table[47] = {
1601+ 2: 13,
1602+ 4: 68,
1603+ 6: 3,
1604+ 7: [SHIFT, 4],
1605+ 8: [SHIFT, 5],
1606+ 9: 6,
1607+ 10: [SHIFT, 7],
1608+ 13: [SHIFT, 10],
1609+ 14: [SHIFT, 8],
1610+ 19: [SHIFT, 9],
1611+ 23: [SHIFT, 11],
1612+ 25: 12,
1613+ 26: [SHIFT, 16],
1614+ 28: [SHIFT, 17],
1615+ 32: [SHIFT, 14],
1616+ 34: [SHIFT, 15],
1617+ 36: [SHIFT, 18]
1618+};
1619+table[48] = {
1620+ 5: [REDUCE, 16],
1621+ 11: [SHIFT, 20],
1622+ 12: [REDUCE, 16],
1623+ 13: [SHIFT, 22],
1624+ 15: [REDUCE, 16],
1625+ 16: [REDUCE, 16],
1626+ 17: [REDUCE, 16],
1627+ 18: [REDUCE, 16],
1628+ 19: [SHIFT, 26],
1629+ 20: [SHIFT, 27],
1630+ 21: [SHIFT, 28],
1631+ 22: [SHIFT, 29],
1632+ 30: [REDUCE, 16],
1633+ 31: [REDUCE, 16]
1634+};
1635+table[49] = {
1636+ 2: 13,
1637+ 4: 69,
1638+ 6: 3,
1639+ 7: [SHIFT, 4],
1640+ 8: [SHIFT, 5],
1641+ 9: 6,
1642+ 10: [SHIFT, 7],
1643+ 13: [SHIFT, 10],
1644+ 14: [SHIFT, 8],
1645+ 19: [SHIFT, 9],
1646+ 23: [SHIFT, 11],
1647+ 25: 12,
1648+ 26: [SHIFT, 16],
1649+ 28: [SHIFT, 17],
1650+ 32: [SHIFT, 14],
1651+ 34: [SHIFT, 15],
1652+ 36: [SHIFT, 18]
1653+};
1654+table[50] = {
1655+ 5: [REDUCE, 15],
1656+ 11: [SHIFT, 20],
1657+ 12: [REDUCE, 15],
1658+ 13: [SHIFT, 22],
1659+ 15: [REDUCE, 15],
1660+ 16: [REDUCE, 15],
1661+ 17: [REDUCE, 15],
1662+ 18: [REDUCE, 15],
1663+ 19: [SHIFT, 26],
1664+ 20: [SHIFT, 27],
1665+ 21: [SHIFT, 28],
1666+ 22: [SHIFT, 29],
1667+ 30: [REDUCE, 15],
1668+ 31: [REDUCE, 15]
1669+};
1670+table[51] = {
1671+ 5: [REDUCE, 14],
1672+ 11: [SHIFT, 20],
1673+ 12: [REDUCE, 14],
1674+ 13: [SHIFT, 22],
1675+ 15: [REDUCE, 14],
1676+ 16: [SHIFT, 23],
1677+ 17: [SHIFT, 24],
1678+ 18: [REDUCE, 14],
1679+ 19: [SHIFT, 26],
1680+ 20: [SHIFT, 27],
1681+ 21: [SHIFT, 28],
1682+ 22: [SHIFT, 29],
1683+ 30: [REDUCE, 14],
1684+ 31: [REDUCE, 14]
1685+};
1686+table[52] = {
1687+ 5: [REDUCE, 17],
1688+ 11: [SHIFT, 20],
1689+ 12: [REDUCE, 17],
1690+ 13: [REDUCE, 17],
1691+ 15: [REDUCE, 17],
1692+ 16: [REDUCE, 17],
1693+ 17: [REDUCE, 17],
1694+ 18: [REDUCE, 17],
1695+ 19: [REDUCE, 17],
1696+ 20: [SHIFT, 27],
1697+ 21: [SHIFT, 28],
1698+ 22: [SHIFT, 29],
1699+ 30: [REDUCE, 17],
1700+ 31: [REDUCE, 17]
1701+};
1702+table[53] = {
1703+ 5: [REDUCE, 18],
1704+ 11: [SHIFT, 20],
1705+ 12: [REDUCE, 18],
1706+ 13: [REDUCE, 18],
1707+ 15: [REDUCE, 18],
1708+ 16: [REDUCE, 18],
1709+ 17: [REDUCE, 18],
1710+ 18: [REDUCE, 18],
1711+ 19: [REDUCE, 18],
1712+ 20: [REDUCE, 18],
1713+ 21: [REDUCE, 18],
1714+ 22: [SHIFT, 29],
1715+ 30: [REDUCE, 18],
1716+ 31: [REDUCE, 18]
1717+};
1718+table[54] = {
1719+ 5: [REDUCE, 19],
1720+ 11: [SHIFT, 20],
1721+ 12: [REDUCE, 19],
1722+ 13: [REDUCE, 19],
1723+ 15: [REDUCE, 19],
1724+ 16: [REDUCE, 19],
1725+ 17: [REDUCE, 19],
1726+ 18: [REDUCE, 19],
1727+ 19: [REDUCE, 19],
1728+ 20: [REDUCE, 19],
1729+ 21: [REDUCE, 19],
1730+ 22: [SHIFT, 29],
1731+ 30: [REDUCE, 19],
1732+ 31: [REDUCE, 19]
1733+};
1734+table[55] = {
1735+ 5: [REDUCE, 20],
1736+ 11: [SHIFT, 20],
1737+ 12: [REDUCE, 20],
1738+ 13: [REDUCE, 20],
1739+ 15: [REDUCE, 20],
1740+ 16: [REDUCE, 20],
1741+ 17: [REDUCE, 20],
1742+ 18: [REDUCE, 20],
1743+ 19: [REDUCE, 20],
1744+ 20: [REDUCE, 20],
1745+ 21: [REDUCE, 20],
1746+ 22: [REDUCE, 20],
1747+ 30: [REDUCE, 20],
1748+ 31: [REDUCE, 20]
1749+};
1750+table[56] = {
1751+ 5: [REDUCE, 37],
1752+ 11: [REDUCE, 37],
1753+ 12: [REDUCE, 37],
1754+ 13: [REDUCE, 37],
1755+ 15: [REDUCE, 37],
1756+ 16: [REDUCE, 37],
1757+ 17: [REDUCE, 37],
1758+ 18: [REDUCE, 37],
1759+ 19: [REDUCE, 37],
1760+ 20: [REDUCE, 37],
1761+ 21: [REDUCE, 37],
1762+ 22: [REDUCE, 37],
1763+ 30: [REDUCE, 37],
1764+ 31: [REDUCE, 37],
1765+ 33: [REDUCE, 37]
1766+};
1767+table[57] = {
1768+ 5: [REDUCE, 10],
1769+ 11: [REDUCE, 10],
1770+ 12: [REDUCE, 10],
1771+ 13: [REDUCE, 10],
1772+ 15: [REDUCE, 10],
1773+ 16: [REDUCE, 10],
1774+ 17: [REDUCE, 10],
1775+ 18: [REDUCE, 10],
1776+ 19: [REDUCE, 10],
1777+ 20: [REDUCE, 10],
1778+ 21: [REDUCE, 10],
1779+ 22: [REDUCE, 10],
1780+ 30: [REDUCE, 10],
1781+ 31: [REDUCE, 10]
1782+};
1783+table[58] = {
1784+ 5: [REDUCE, 23],
1785+ 11: [REDUCE, 23],
1786+ 12: [REDUCE, 23],
1787+ 13: [REDUCE, 23],
1788+ 15: [REDUCE, 23],
1789+ 16: [REDUCE, 23],
1790+ 17: [REDUCE, 23],
1791+ 18: [REDUCE, 23],
1792+ 19: [REDUCE, 23],
1793+ 20: [REDUCE, 23],
1794+ 21: [REDUCE, 23],
1795+ 22: [REDUCE, 23],
1796+ 30: [REDUCE, 23],
1797+ 31: [REDUCE, 23]
1798+};
1799+table[59] = {15: [SHIFT, 70], 30: [SHIFT, 71], 31: [SHIFT, 72]};
1800+table[60] = {
1801+ 11: [SHIFT, 20],
1802+ 12: [SHIFT, 21],
1803+ 13: [SHIFT, 22],
1804+ 15: [REDUCE, 32],
1805+ 16: [SHIFT, 23],
1806+ 17: [SHIFT, 24],
1807+ 18: [SHIFT, 25],
1808+ 19: [SHIFT, 26],
1809+ 20: [SHIFT, 27],
1810+ 21: [SHIFT, 28],
1811+ 22: [SHIFT, 29],
1812+ 30: [REDUCE, 32],
1813+ 31: [REDUCE, 32]
1814+};
1815+table[61] = {15: [REDUCE, 33], 30: [REDUCE, 33], 31: [REDUCE, 33]};
1816+table[62] = {37: [SHIFT, 73]};
1817+table[63] = {
1818+ 5: [REDUCE, 39],
1819+ 11: [REDUCE, 39],
1820+ 12: [REDUCE, 39],
1821+ 13: [REDUCE, 39],
1822+ 15: [REDUCE, 39],
1823+ 16: [REDUCE, 39],
1824+ 17: [REDUCE, 39],
1825+ 18: [REDUCE, 39],
1826+ 19: [REDUCE, 39],
1827+ 20: [REDUCE, 39],
1828+ 21: [REDUCE, 39],
1829+ 22: [REDUCE, 39],
1830+ 30: [REDUCE, 39],
1831+ 31: [REDUCE, 39],
1832+ 35: [REDUCE, 39],
1833+ 38: [REDUCE, 39]
1834+};
1835+table[64] = {
1836+ 5: [REDUCE, 29],
1837+ 11: [REDUCE, 29],
1838+ 12: [REDUCE, 29],
1839+ 13: [REDUCE, 29],
1840+ 15: [REDUCE, 29],
1841+ 16: [REDUCE, 29],
1842+ 17: [REDUCE, 29],
1843+ 18: [REDUCE, 29],
1844+ 19: [REDUCE, 29],
1845+ 20: [REDUCE, 29],
1846+ 21: [REDUCE, 29],
1847+ 22: [REDUCE, 29],
1848+ 30: [REDUCE, 29],
1849+ 31: [REDUCE, 29]
1850+};
1851+table[65] = {
1852+ 5: [REDUCE, 31],
1853+ 11: [REDUCE, 31],
1854+ 12: [REDUCE, 31],
1855+ 13: [REDUCE, 31],
1856+ 15: [REDUCE, 31],
1857+ 16: [REDUCE, 31],
1858+ 17: [REDUCE, 31],
1859+ 18: [REDUCE, 31],
1860+ 19: [REDUCE, 31],
1861+ 20: [REDUCE, 31],
1862+ 21: [REDUCE, 31],
1863+ 22: [REDUCE, 31],
1864+ 30: [REDUCE, 31],
1865+ 31: [REDUCE, 31]
1866+};
1867+table[66] = {
1868+ 5: [REDUCE, 41],
1869+ 11: [REDUCE, 41],
1870+ 12: [REDUCE, 41],
1871+ 13: [REDUCE, 41],
1872+ 15: [REDUCE, 41],
1873+ 16: [REDUCE, 41],
1874+ 17: [REDUCE, 41],
1875+ 18: [REDUCE, 41],
1876+ 19: [REDUCE, 41],
1877+ 20: [REDUCE, 41],
1878+ 21: [REDUCE, 41],
1879+ 22: [REDUCE, 41],
1880+ 30: [REDUCE, 41],
1881+ 31: [REDUCE, 41],
1882+ 32: [REDUCE, 41],
1883+ 36: [REDUCE, 41]
1884+};
1885+table[67] = {
1886+ 5: [REDUCE, 11],
1887+ 11: [SHIFT, 20],
1888+ 12: [REDUCE, 11],
1889+ 13: [SHIFT, 22],
1890+ 15: [REDUCE, 11],
1891+ 16: [REDUCE, 11],
1892+ 17: [REDUCE, 11],
1893+ 18: [REDUCE, 11],
1894+ 19: [SHIFT, 26],
1895+ 20: [SHIFT, 27],
1896+ 21: [SHIFT, 28],
1897+ 22: [SHIFT, 29],
1898+ 30: [REDUCE, 11],
1899+ 31: [REDUCE, 11]
1900+};
1901+table[68] = {
1902+ 5: [REDUCE, 13],
1903+ 11: [SHIFT, 20],
1904+ 12: [REDUCE, 13],
1905+ 13: [SHIFT, 22],
1906+ 15: [REDUCE, 13],
1907+ 16: [REDUCE, 13],
1908+ 17: [REDUCE, 13],
1909+ 18: [REDUCE, 13],
1910+ 19: [SHIFT, 26],
1911+ 20: [SHIFT, 27],
1912+ 21: [SHIFT, 28],
1913+ 22: [SHIFT, 29],
1914+ 30: [REDUCE, 13],
1915+ 31: [REDUCE, 13]
1916+};
1917+table[69] = {
1918+ 5: [REDUCE, 12],
1919+ 11: [SHIFT, 20],
1920+ 12: [REDUCE, 12],
1921+ 13: [SHIFT, 22],
1922+ 15: [REDUCE, 12],
1923+ 16: [REDUCE, 12],
1924+ 17: [REDUCE, 12],
1925+ 18: [REDUCE, 12],
1926+ 19: [SHIFT, 26],
1927+ 20: [SHIFT, 27],
1928+ 21: [SHIFT, 28],
1929+ 22: [SHIFT, 29],
1930+ 30: [REDUCE, 12],
1931+ 31: [REDUCE, 12]
1932+};
1933+table[70] = {
1934+ 5: [REDUCE, 24],
1935+ 11: [REDUCE, 24],
1936+ 12: [REDUCE, 24],
1937+ 13: [REDUCE, 24],
1938+ 15: [REDUCE, 24],
1939+ 16: [REDUCE, 24],
1940+ 17: [REDUCE, 24],
1941+ 18: [REDUCE, 24],
1942+ 19: [REDUCE, 24],
1943+ 20: [REDUCE, 24],
1944+ 21: [REDUCE, 24],
1945+ 22: [REDUCE, 24],
1946+ 30: [REDUCE, 24],
1947+ 31: [REDUCE, 24]
1948+};
1949+table[71] = {
1950+ 2: 13,
1951+ 4: 74,
1952+ 6: 3,
1953+ 7: [SHIFT, 4],
1954+ 8: [SHIFT, 5],
1955+ 9: 6,
1956+ 10: [SHIFT, 7],
1957+ 12: [SHIFT, 21],
1958+ 13: [SHIFT, 10],
1959+ 14: [SHIFT, 8],
1960+ 19: [SHIFT, 9],
1961+ 23: [SHIFT, 11],
1962+ 25: 12,
1963+ 26: [SHIFT, 16],
1964+ 28: [SHIFT, 17],
1965+ 32: [SHIFT, 14],
1966+ 34: [SHIFT, 15],
1967+ 36: [SHIFT, 18]
1968+};
1969+table[72] = {
1970+ 2: 13,
1971+ 4: 75,
1972+ 6: 3,
1973+ 7: [SHIFT, 4],
1974+ 8: [SHIFT, 5],
1975+ 9: 6,
1976+ 10: [SHIFT, 7],
1977+ 12: [SHIFT, 21],
1978+ 13: [SHIFT, 10],
1979+ 14: [SHIFT, 8],
1980+ 19: [SHIFT, 9],
1981+ 23: [SHIFT, 11],
1982+ 25: 12,
1983+ 26: [SHIFT, 16],
1984+ 28: [SHIFT, 17],
1985+ 32: [SHIFT, 14],
1986+ 34: [SHIFT, 15],
1987+ 36: [SHIFT, 18]
1988+};
1989+table[73] = {
1990+ 5: [REDUCE, 42],
1991+ 11: [REDUCE, 42],
1992+ 12: [REDUCE, 42],
1993+ 13: [REDUCE, 42],
1994+ 15: [REDUCE, 42],
1995+ 16: [REDUCE, 42],
1996+ 17: [REDUCE, 42],
1997+ 18: [REDUCE, 42],
1998+ 19: [REDUCE, 42],
1999+ 20: [REDUCE, 42],
2000+ 21: [REDUCE, 42],
2001+ 22: [REDUCE, 42],
2002+ 30: [REDUCE, 42],
2003+ 31: [REDUCE, 42],
2004+ 32: [REDUCE, 42],
2005+ 36: [REDUCE, 42]
2006+};
2007+table[74] = {
2008+ 11: [SHIFT, 20],
2009+ 12: [SHIFT, 21],
2010+ 13: [SHIFT, 22],
2011+ 15: [REDUCE, 34],
2012+ 16: [SHIFT, 23],
2013+ 17: [SHIFT, 24],
2014+ 18: [SHIFT, 25],
2015+ 19: [SHIFT, 26],
2016+ 20: [SHIFT, 27],
2017+ 21: [SHIFT, 28],
2018+ 22: [SHIFT, 29],
2019+ 30: [REDUCE, 34],
2020+ 31: [REDUCE, 34]
2021+};
2022+table[75] = {
2023+ 11: [SHIFT, 20],
2024+ 12: [SHIFT, 21],
2025+ 13: [SHIFT, 22],
2026+ 15: [REDUCE, 35],
2027+ 16: [SHIFT, 23],
2028+ 17: [SHIFT, 24],
2029+ 18: [SHIFT, 25],
2030+ 19: [SHIFT, 26],
2031+ 20: [SHIFT, 27],
2032+ 21: [SHIFT, 28],
2033+ 22: [SHIFT, 29],
2034+ 30: [REDUCE, 35],
2035+ 31: [REDUCE, 35]
2036+};
2037 const ACTION_TABLE = table;
2038
2039
2040-
2041 let Parser = (function () {
2042 let parser = {
2043 lexer: undefined,
2044 Parser: undefined,
2045 trace: function trace() {},
2046 yy: {},
2047- symbols: {
2048- "error": 2,
2049- "expressions": 3,
2050- "expression": 4,
2051- "EOF": 5,
2052- "variableSequence": 6,
2053- "TIME_AMPM": 7,
2054- "TIME_24": 8,
2055- "number": 9,
2056- "STRING": 10,
2057- "&": 11,
2058- "=": 12,
2059- "+": 13,
2060- "(": 14,
2061- ")": 15,
2062- "<": 16,
2063- ">": 17,
2064- "NOT": 18,
2065- "-": 19,
2066- "*": 20,
2067- "/": 21,
2068- "^": 22,
2069- "FUNCTION": 23,
2070- "expseq": 24,
2071- "cell": 25,
2072- "FIXEDCELL": 26,
2073- ":": 27,
2074- "CELL": 28,
2075- "ARRAY": 29,
2076- ";": 30,
2077- ",": 31,
2078- "VARIABLE": 32,
2079- "DECIMAL": 33,
2080- "NUMBER": 34,
2081- "%": 35,
2082- "#": 36,
2083- "!": 37,
2084- "$accept": 0,
2085- "$end": 1
2086- },
2087- terminals: {
2088- 5: "EOF",
2089- 7: "TIME_AMPM",
2090- 8: "TIME_24",
2091- 10: "STRING",
2092- 11: "&",
2093- 12: "=",
2094- 13: "+",
2095- 14: "(",
2096- 15: ")",
2097- 16: "<",
2098- 17: ">",
2099- 18: "NOT",
2100- 19: "-",
2101- 20: "*",
2102- 21: "/",
2103- 22: "^",
2104- 23: "FUNCTION",
2105- 26: "FIXEDCELL",
2106- 27: ":",
2107- 28: "CELL",
2108- 29: "ARRAY",
2109- 30: ";",
2110- 31: ",",
2111- 32: "VARIABLE",
2112- 33: "DECIMAL",
2113- 34: "NUMBER",
2114- 35: "%",
2115- 36: "#",
2116- 37: "!"
2117- },
2118 /**
2119 * Maps a ProductionRule to the appropriate number of previous tokens to use in a reduction action.
2120 */
2121@@ -1295,7 +1647,7 @@ let Parser = (function () {
2122 }
2123 },
2124 table: ACTION_TABLE,
2125- defaultActions: ObjectFromPairs.of([19, [LexActions.REDUCE, 1]]),
2126+ defaultActions: {19: [REDUCE, 1]},
2127 parseError: function parseError(str, hash) {
2128 if (hash.recoverable) {
2129 this.trace(str);
2130@@ -1363,7 +1715,7 @@ let Parser = (function () {
2131 let token = lexer.lex() || EOF;
2132 // if token isn't its numeric value, convert
2133 if (typeof token !== 'number') {
2134- token = self.symbols[token] || token;
2135+ token = SYMBOL_NAME_TO_INDEX[token] || token;
2136 }
2137 return token;
2138 }
2139@@ -1431,21 +1783,21 @@ let Parser = (function () {
2140 let expectedIndexes = [];
2141 let tableState = table[state];
2142 for (p in table[state]) {
2143- if (this.terminals[p] && p > TERROR) {
2144- expected.push(this.terminals[p]);
2145+ if (SYMBOL_INDEX_TO_NAME[p] && p > TERROR) {
2146+ expected.push(SYMBOL_INDEX_TO_NAME[p]);
2147 expectedIndexes.push(p);
2148 }
2149 }
2150 if (lexer.showPosition) {
2151- errStr = 'Parse error on line ' + (yylineno + 1) + ":\n" + lexer.showPosition() + "\nExpecting " + expected.join(', ') + ", got '" + (this.terminals[symbol] || symbol) + "'";
2152+ errStr = 'Parse error on line ' + (yylineno + 1) + ":\n" + lexer.showPosition() + "\nExpecting " + expected.join(', ') + ", got '" + (SYMBOL_INDEX_TO_NAME[symbol] || symbol) + "'";
2153 } else {
2154 errStr = 'Parse error on line ' + (yylineno + 1) + ": Unexpected " +
2155 (symbol == EOF ? "end of input" :
2156- ("'" + (this.terminals[symbol] || symbol) + "'"));
2157+ ("'" + (SYMBOL_INDEX_TO_NAME[symbol] || symbol) + "'"));
2158 }
2159 this.parseError(errStr, {
2160 text: lexer.match,
2161- token: this.terminals[symbol] || symbol,
2162+ token: SYMBOL_INDEX_TO_NAME[symbol] || symbol,
2163 line: lexer.yylineno,
2164 loc: yyloc,
2165 expected: expected,
2166@@ -1495,7 +1847,7 @@ let Parser = (function () {
2167 // Reduce: enough tokens have been gathered to reduce input through evaluation.
2168 // Accept: return.
2169 switch (action[0]) {
2170- case LexActions.SHIFT: // Shift
2171+ case SHIFT: // Shift
2172 stack.push(symbol);
2173 semanticValueStack.push(lexer.yytext);
2174 locationStack.push(lexer.yylloc);
2175@@ -1521,7 +1873,7 @@ let Parser = (function () {
2176 }
2177 break;
2178
2179- case LexActions.REDUCE: // Reduce
2180+ case REDUCE: // Reduce
2181 let currentProduction : ReductionPair = this.productions[action[1]];
2182
2183 let lengthToReduceStackBy = currentProduction.getLengthToReduceStackBy();
2184@@ -1560,7 +1912,7 @@ let Parser = (function () {
2185 stack.push(newState);
2186 break;
2187
2188- case LexActions.ACCEPT:
2189+ case ACCEPT:
2190 // Accept
2191 return true;
2192 }
2193diff --git a/src/Utilities/ObjectFromPairs.ts b/src/Utilities/ObjectFromPairs.ts
2194deleted file mode 100644
2195index 1377913..0000000
2196--- a/src/Utilities/ObjectFromPairs.ts
2197+++ /dev/null
2198@@ -1,38 +0,0 @@
2199-/**
2200- * Static class for building objects using variables as keys. Mostly used in situations where we want to build objects
2201- * with similar key structures inside of arrays.
2202- * ```
2203- * let m = "key";
2204- * let n = "another"
2205- * let x = [
2206- * ObjectFromPairs.of([
2207- * m, 1,
2208- * n, 2
2209- * ]);
2210- * ]
2211- * ```
2212- * The example above would result in: `{"key": 1, "another": 2}`.
2213- * NOTE: This code does not perform well, and should be used sparingly.
2214- */
2215-class ObjectFromPairs {
2216- /**
2217- * Creates an object from pairs.
2218- * @param values - Even number of values, where odd-indexed values will be used as keys, and even-indexed values will
2219- * be used as values in the object. If function is given odd number of values the last value will still be used as a
2220- * key for which the value will be undefined. Use at your own risk.
2221- * @returns {{}}
2222- */
2223- static of(values : Array<any>) {
2224- let o = {};
2225- for (let i = 0; i < values.length - 1; i = i + 2) {
2226- if (i % 2 === 0) {
2227- o[values[i]] = values[i+1];
2228- }
2229- }
2230- return o;
2231- }
2232-}
2233-
2234-export {
2235- ObjectFromPairs
2236-}
2237\ No newline at end of file
2238diff --git a/tests/Utilities/ObjectFromPairsTest.ts b/tests/Utilities/ObjectFromPairsTest.ts
2239deleted file mode 100644
2240index f1cc8d2..0000000
2241--- a/tests/Utilities/ObjectFromPairsTest.ts
2242+++ /dev/null
2243@@ -1,13 +0,0 @@
2244-import {
2245- assertEquals,
2246- test
2247-} from "../Utils/Asserts";
2248-import {
2249- ObjectFromPairs
2250-} from "../../src/Utilities/ObjectFromPairs";
2251-
2252-test("ObjectFromPairs.of", function () {
2253- assertEquals(ObjectFromPairs.of(["a", 1]), {a:1});
2254- var key = "key";
2255- assertEquals(ObjectFromPairs.of([key, 1]), {"key":1});
2256-});