spreadsheet
typeScript/javascript spreadsheet parser, with formulas.
git clone https://git.vogt.world/spreadsheet.git
Log | Files | README.md
← Commit log
commit
message
[Rules,Parser] renaming INDEX_ to actual rule index for readability
author
Ben Vogt <[email protected]>
date
2017-08-15 00:02:47
stats
2 file(s) changed, 665 insertions(+), 611 deletions(-)
files
src/Parser/Parser.ts
src/Parser/Rules.ts
   1diff --git a/src/Parser/Parser.ts b/src/Parser/Parser.ts
   2index ce7567d..cbb35f1 100644
   3--- a/src/Parser/Parser.ts
   4+++ b/src/Parser/Parser.ts
   5@@ -1,43 +1,43 @@
   6 import {
   7   RULES,
   8 
   9-  INDEX0,
  10-  INDEX1,
  11-  INDEX2,
  12-  INDEX3,
  13-  INDEX4,
  14-  INDEX5,
  15-  INDEX6,
  16-  INDEX7,
  17-  INDEX8,
  18-  INDEX9,
  19-  INDEX10,
  20-  INDEX11,
  21-  INDEX12,
  22-  INDEX13,
  23-  INDEX14,
  24-  INDEX15,
  25-  INDEX16,
  26-  INDEX17,
  27-  INDEX18,
  28-  INDEX19,
  29-  INDEX20,
  30-  INDEX21,
  31-  INDEX22,
  32-  INDEX23,
  33-  INDEX24,
  34-  INDEX25,
  35-  INDEX26,
  36-  INDEX27,
  37-  INDEX28,
  38-  INDEX29,
  39-  INDEX30,
  40-  INDEX31,
  41-  INDEX32,
  42-  INDEX33,
  43-  INDEX34,
  44-  INDEX35,
  45-  INDEX36
  46+  WHITE_SPACE_RULE_INDEX,
  47+  DOUBLE_QUOTES_RULE_INDEX,
  48+  SINGLE_QUOTES_RULE_INDEX,
  49+  FORMULA_NAME_RULE_INDEX,
  50+  DATE_RULE_INDEX,
  51+  TIME_RULE_INDEX,
  52+  $_A1_CELL_RULE_INDEX,
  53+  A1_CELL_RULE_INDEX,
  54+  FORMULA_NAME_SIMPLE_RULE_INDEX,
  55+  VARIABLE_RULE_INDEX,
  56+  SIMPLE_VARIABLE_RILE_INDEX,
  57+  INTEGER_RULE_INDEX,
  58+  OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX,
  59+  DOLLAR_SIGN_RULE_INDEX,
  60+  AMPERSAND_SIGN_RULE_INDEX,
  61+  SINGLE_WHITESPACE_RULE_INDEX,
  62+  PERIOD_RULE_INDEX,
  63+  COLON_RULE_INDEX,
  64+  SEMI_COLON_RULE_INDEX,
  65+  COMMA_RULE_INDEX,
  66+  ASTERISK_RULE_INDEX,
  67+  FORWARD_SLASH_RULE_INDEX,
  68+  MINUS_SIGN_RULE_INDEX,
  69+  PLUS_SIGN_RULE_INDEX,
  70+  CARET_SIGN_RULE_INDEX,
  71+  OPEN_PAREN_RULE_INDEX,
  72+  CLOSE_PAREN_RULE_INDEX,
  73+  GREATER_THAN_SIGN_RULE_INDEX,
  74+  LESS_THAN_SIGN_RULE_INDEX,
  75+  NOT_RULE_INDEX,
  76+  OPEN_DOUBLE_QUOTE_INDEX,
  77+  OPEN_SINGLE_QUITE_INDEX,
  78+  EXCLAMATION_POINT_RULE_INDEX,
  79+  EQUALS_SIGN_RULE_INDEX,
  80+  PERCENT_SIGN_RULE_INDEX,
  81+  HASH_SIGN_RULE_INDEX,
  82+  END_OF_STRING_RULE_INDEX
  83 } from "./Rules";
  84 import {
  85   ObjectFromPairs
  86@@ -123,37 +123,37 @@ var Parser = (function () {
  87     }
  88     return o
  89   };
  90-  var $V0 = [1, 4];
  91-  var $V1 = [1, 5];
  92-  var $V2 = [1, 7];
  93-  var $V3 = [1, 10];
  94-  var $V4 = [1, 8];
  95-  var $V5 = [1, 9];
  96-  var $V6 = [1, 11];
  97-  var $V7 = [1, 16];
  98-  var $V8 = [1, 17];
  99-  var $V9 = [1, 14];
 100-  var $Va = [1, 15];
 101-  var $Vb = [1, 18];
 102-  var $Vc = [1, 20];
 103-  var $Vd = [1, 21];
 104-  var $Ve = [1, 22];
 105-  var $Vf = [1, 23];
 106-  var $Vg = [1, 24];
 107-  var $Vh = [1, 25];
 108-  var $Vi = [1, 26];
 109-  var $Vj = [1, 27];
 110-  var $Vk = [1, 28];
 111-  var $Vl = [1, 29];
 112-  var $Vm = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31];
 113-  var $Vn = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 33];
 114-  var $Vo = [1, 38];
 115-  var $Vp = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 35, 38];
 116-  var $Vq = [5, 12, 13, 15, 16, 17, 18, 19, 30, 31];
 117-  var $Vr = [5, 12, 15, 16, 17, 18, 30, 31];
 118-  var $Vs = [5, 12, 13, 15, 16, 17, 18, 19, 20, 21, 30, 31];
 119-  var $Vt = [15, 30, 31];
 120-  var $Vu = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 32, 36];
 121+  const $V0 = [1, 4];
 122+  const $V1 = [1, 5];
 123+  const $V2 = [1, 7];
 124+  const $V3 = [1, 10];
 125+  const $V4 = [1, 8];
 126+  const $V5 = [1, 9];
 127+  const $V6 = [1, 11];
 128+  const $V7 = [1, 16];
 129+  const $V8 = [1, 17];
 130+  const $V9 = [1, 14];
 131+  const $Va = [1, 15];
 132+  const $Vb = [1, 18];
 133+  const $Vc = [1, 20];
 134+  const $Vd = [1, 21];
 135+  const $Ve = [1, 22];
 136+  const $Vf = [1, 23];
 137+  const $Vg = [1, 24];
 138+  const $Vh = [1, 25];
 139+  const $Vi = [1, 26];
 140+  const $Vj = [1, 27];
 141+  const $Vk = [1, 28];
 142+  const $Vl = [1, 29];
 143+  const $Vm = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31];
 144+  const $Vn = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 33];
 145+  const $Vo = [1, 38];
 146+  const $Vp = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 35, 38];
 147+  const $Vq = [5, 12, 13, 15, 16, 17, 18, 19, 30, 31];
 148+  const $Vr = [5, 12, 15, 16, 17, 18, 30, 31];
 149+  const $Vs = [5, 12, 13, 15, 16, 17, 18, 19, 20, 21, 30, 31];
 150+  const $Vt = [15, 30, 31];
 151+  const $Vu = [5, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31, 32, 36];
 152   var parser = {
 153     lexer: undefined,
 154     Parser: undefined,
 155@@ -418,9 +418,9 @@ var Parser = (function () {
 156     },
 157     table: [
 158       ObjectFromPairs.of([
 159-        INDEX2, 13,
 160-        INDEX3, 1,
 161-        INDEX4, 2,
 162+        SINGLE_QUOTES_RULE_INDEX, 13,
 163+        FORMULA_NAME_RULE_INDEX, 1,
 164+        DATE_RULE_INDEX, 2,
 165         6, 3,
 166         7, $V0,
 167         8, $V1,
 168@@ -439,17 +439,17 @@ var Parser = (function () {
 169       ]),
 170       {1: [3]},
 171       ObjectFromPairs.of([
 172-        INDEX5, [1, 19],
 173-        INDEX11, $Vc,
 174-        INDEX12, $Vd,
 175-        INDEX13, $Ve,
 176-        INDEX16, $Vf,
 177-        INDEX17, $Vg,
 178-        INDEX18, $Vh,
 179-        INDEX19, $Vi,
 180-        INDEX20, $Vj,
 181-        INDEX21, $Vk,
 182-        INDEX22, $Vl
 183+        TIME_RULE_INDEX, [1, 19],
 184+        INTEGER_RULE_INDEX, $Vc,
 185+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, $Vd,
 186+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 187+        PERIOD_RULE_INDEX, $Vf,
 188+        COLON_RULE_INDEX, $Vg,
 189+        SEMI_COLON_RULE_INDEX, $Vh,
 190+        COMMA_RULE_INDEX, $Vi,
 191+        ASTERISK_RULE_INDEX, $Vj,
 192+        FORWARD_SLASH_RULE_INDEX, $Vk,
 193+        MINUS_SIGN_RULE_INDEX, $Vl
 194       ]),
 195       o($Vm, [2, 2], {33: [1, 30]}),
 196       o($Vm, [2, 3]),
 197@@ -457,64 +457,64 @@ var Parser = (function () {
 198       o($Vm, [2, 5], {35: [1, 31]}),
 199       o($Vm, [2, 6]),
 200       ObjectFromPairs.of([
 201-        INDEX2, 13,
 202-        INDEX4, 32,
 203-        INDEX6, 3,
 204-        INDEX7, $V0,
 205-        INDEX8, $V1,
 206-        INDEX9, 6,
 207-        INDEX10, $V2,
 208-        INDEX13, $V3,
 209-        INDEX14, $V4,
 210-        INDEX19, $V5,
 211-        INDEX23, $V6,
 212-        INDEX25, 12,
 213-        INDEX26, $V7,
 214-        INDEX28, $V8,
 215-        INDEX32, $V9,
 216-        INDEX34, $Va,
 217-        INDEX36, $Vb
 218+        SINGLE_QUOTES_RULE_INDEX, 13,
 219+        DATE_RULE_INDEX, 32,
 220+        $_A1_CELL_RULE_INDEX, 3,
 221+        A1_CELL_RULE_INDEX, $V0,
 222+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 223+        VARIABLE_RULE_INDEX, 6,
 224+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 225+        DOLLAR_SIGN_RULE_INDEX, $V3,
 226+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 227+        COMMA_RULE_INDEX, $V5,
 228+        PLUS_SIGN_RULE_INDEX, $V6,
 229+        OPEN_PAREN_RULE_INDEX, 12,
 230+        CLOSE_PAREN_RULE_INDEX, $V7,
 231+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 232+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 233+        PERCENT_SIGN_RULE_INDEX, $Va,
 234+        END_OF_STRING_RULE_INDEX, $Vb
 235       ]),
 236       ObjectFromPairs.of([
 237-        INDEX2, 13,
 238-        INDEX4, 33,
 239-        INDEX6, 3,
 240-        INDEX7, $V0,
 241-        INDEX8, $V1,
 242-        INDEX9, 6,
 243-        INDEX10, $V2,
 244-        INDEX13, $V3,
 245-        INDEX14, $V4,
 246-        INDEX19, $V5,
 247-        INDEX23, $V6,
 248-        INDEX25, 12,
 249-        INDEX26, $V7,
 250-        INDEX28, $V8,
 251-        INDEX32, $V9,
 252-        INDEX34, $Va,
 253-        INDEX36, $Vb
 254+        SINGLE_QUOTES_RULE_INDEX, 13,
 255+        DATE_RULE_INDEX, 33,
 256+        $_A1_CELL_RULE_INDEX, 3,
 257+        A1_CELL_RULE_INDEX, $V0,
 258+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 259+        VARIABLE_RULE_INDEX, 6,
 260+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 261+        DOLLAR_SIGN_RULE_INDEX, $V3,
 262+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 263+        COMMA_RULE_INDEX, $V5,
 264+        PLUS_SIGN_RULE_INDEX, $V6,
 265+        OPEN_PAREN_RULE_INDEX, 12,
 266+        CLOSE_PAREN_RULE_INDEX, $V7,
 267+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 268+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 269+        PERCENT_SIGN_RULE_INDEX, $Va,
 270+        END_OF_STRING_RULE_INDEX, $Vb
 271       ]),
 272       ObjectFromPairs.of([
 273-        INDEX2, 13,
 274-        INDEX4, 34,
 275-        INDEX6, 3,
 276-        INDEX7, $V0,
 277-        INDEX8, $V1,
 278-        INDEX9, 6,
 279-        INDEX10, $V2,
 280-        INDEX13, $V3,
 281-        INDEX14, $V4,
 282-        INDEX19, $V5,
 283-        INDEX23, $V6,
 284-        INDEX25, 12,
 285-        INDEX26, $V7,
 286-        INDEX28, $V8,
 287-        INDEX32, $V9,
 288-        INDEX34, $Va,
 289-        INDEX36, $Vb
 290+        SINGLE_QUOTES_RULE_INDEX, 13,
 291+        DATE_RULE_INDEX, 34,
 292+        $_A1_CELL_RULE_INDEX, 3,
 293+        A1_CELL_RULE_INDEX, $V0,
 294+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 295+        VARIABLE_RULE_INDEX, 6,
 296+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 297+        DOLLAR_SIGN_RULE_INDEX, $V3,
 298+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 299+        COMMA_RULE_INDEX, $V5,
 300+        PLUS_SIGN_RULE_INDEX, $V6,
 301+        OPEN_PAREN_RULE_INDEX, 12,
 302+        CLOSE_PAREN_RULE_INDEX, $V7,
 303+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 304+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 305+        PERCENT_SIGN_RULE_INDEX, $Va,
 306+        END_OF_STRING_RULE_INDEX, $Vb
 307       ]),
 308       ObjectFromPairs.of([
 309-        INDEX14, [1, 35]
 310+        AMPERSAND_SIGN_RULE_INDEX, [1, 35]
 311       ]),
 312       o($Vm, [2, 25]),
 313       o($Vm, [2, 26], ObjectFromPairs.of([2, 36, 32, [1, 37], 36, $Vb])),
 314@@ -523,393 +523,384 @@ var Parser = (function () {
 315       o($Vm, [2, 28], {27: [1, 40]}),
 316       o($Vm, [2, 30], {27: [1, 41]}), {32: [1, 42]}, {1: [2, 1]},
 317       ObjectFromPairs.of([
 318-        INDEX2, 13,
 319-        INDEX4, 43,
 320-        INDEX6, 3,
 321-        INDEX7, $V0,
 322-        INDEX8, $V1,
 323-        INDEX9, 6,
 324-        INDEX10, $V2,
 325-        INDEX13, $V3,
 326-        INDEX14, $V4,
 327-        INDEX19, $V5,
 328-        INDEX23, $V6,
 329-        INDEX25, 12,
 330-        INDEX26, $V7,
 331-        INDEX28, $V8,
 332-        INDEX32, $V9,
 333-        INDEX34, $Va,
 334-        INDEX36, $Vb
 335+        SINGLE_QUOTES_RULE_INDEX, 13,
 336+        DATE_RULE_INDEX, 43,
 337+        $_A1_CELL_RULE_INDEX, 3,
 338+        A1_CELL_RULE_INDEX, $V0,
 339+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 340+        VARIABLE_RULE_INDEX, 6,
 341+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 342+        DOLLAR_SIGN_RULE_INDEX, $V3,
 343+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 344+        COMMA_RULE_INDEX, $V5,
 345+        PLUS_SIGN_RULE_INDEX, $V6,
 346+        OPEN_PAREN_RULE_INDEX, 12,
 347+        CLOSE_PAREN_RULE_INDEX, $V7,
 348+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 349+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 350+        PERCENT_SIGN_RULE_INDEX, $Va,
 351+        END_OF_STRING_RULE_INDEX, $Vb
 352       ]),
 353       ObjectFromPairs.of([
 354-        INDEX2, 13,
 355-        INDEX4, 44,
 356-        INDEX6, 3,
 357-        INDEX7, $V0,
 358-        INDEX8, $V1,
 359-        INDEX9, 6,
 360-        INDEX10, $V2,
 361-        INDEX13, $V3,
 362-        INDEX14, $V4,
 363-        INDEX19, $V5,
 364-        INDEX23, $V6,
 365-        INDEX25, 12,
 366-        INDEX26, $V7,
 367-        INDEX28, $V8,
 368-        INDEX32, $V9,
 369-        INDEX34, $Va,
 370-        INDEX36, $Vb
 371+        SINGLE_QUOTES_RULE_INDEX, 13,
 372+        DATE_RULE_INDEX, 44,
 373+        $_A1_CELL_RULE_INDEX, 3,
 374+        A1_CELL_RULE_INDEX, $V0,
 375+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 376+        VARIABLE_RULE_INDEX, 6,
 377+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 378+        DOLLAR_SIGN_RULE_INDEX, $V3,
 379+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 380+        COMMA_RULE_INDEX, $V5,
 381+        PLUS_SIGN_RULE_INDEX, $V6,
 382+        OPEN_PAREN_RULE_INDEX, 12,
 383+        CLOSE_PAREN_RULE_INDEX, $V7,
 384+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 385+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 386+        PERCENT_SIGN_RULE_INDEX, $Va,
 387+        END_OF_STRING_RULE_INDEX, $Vb
 388       ]),
 389       ObjectFromPairs.of([
 390-        INDEX2, 13,
 391-        INDEX4, 45,
 392-        INDEX6, 3,
 393-        INDEX7, $V0,
 394-        INDEX8, $V1,
 395-        INDEX9, 6,
 396-        INDEX10, $V2,
 397-        INDEX13, $V3,
 398-        INDEX14, $V4,
 399-        INDEX19, $V5,
 400-        INDEX23, $V6,
 401-        INDEX25, 12,
 402-        INDEX26, $V7,
 403-        INDEX28, $V8,
 404-        INDEX32, $V9,
 405-        INDEX34, $Va,
 406-        INDEX36, $Vb
 407+        SINGLE_QUOTES_RULE_INDEX, 13,
 408+        DATE_RULE_INDEX, 45,
 409+        $_A1_CELL_RULE_INDEX, 3,
 410+        A1_CELL_RULE_INDEX, $V0,
 411+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 412+        VARIABLE_RULE_INDEX, 6,
 413+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 414+        DOLLAR_SIGN_RULE_INDEX, $V3,
 415+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 416+        COMMA_RULE_INDEX, $V5,
 417+        PLUS_SIGN_RULE_INDEX, $V6,
 418+        OPEN_PAREN_RULE_INDEX, 12,
 419+        CLOSE_PAREN_RULE_INDEX, $V7,
 420+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 421+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 422+        PERCENT_SIGN_RULE_INDEX, $Va,
 423+        END_OF_STRING_RULE_INDEX, $Vb
 424       ]),
 425       ObjectFromPairs.of([
 426-        INDEX2, 13,
 427-        INDEX4, 48,
 428-        INDEX6, 3,
 429-        INDEX7, $V0,
 430-        INDEX8, $V1,
 431-        INDEX9, 6,
 432-        INDEX10, $V2,
 433-        INDEX12, [1, 46],
 434-        INDEX13, $V3,
 435-        INDEX14, $V4,
 436-        INDEX17, [1, 47],
 437-        INDEX19, $V5,
 438-        INDEX23, $V6,
 439-        INDEX25, 12,
 440-        INDEX26, $V7,
 441-        INDEX28, $V8,
 442-        INDEX32, $V9,
 443-        INDEX34, $Va,
 444-        INDEX36, $Vb
 445+        SINGLE_QUOTES_RULE_INDEX, 13,
 446+        DATE_RULE_INDEX, 48,
 447+        $_A1_CELL_RULE_INDEX, 3,
 448+        A1_CELL_RULE_INDEX, $V0,
 449+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 450+        VARIABLE_RULE_INDEX, 6,
 451+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 452+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, [1, 46],
 453+        DOLLAR_SIGN_RULE_INDEX, $V3,
 454+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 455+        COLON_RULE_INDEX, [1, 47],
 456+        COMMA_RULE_INDEX, $V5,
 457+        PLUS_SIGN_RULE_INDEX, $V6,
 458+        OPEN_PAREN_RULE_INDEX, 12,
 459+        CLOSE_PAREN_RULE_INDEX, $V7,
 460+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 461+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 462+        PERCENT_SIGN_RULE_INDEX, $Va,
 463+        END_OF_STRING_RULE_INDEX, $Vb
 464       ]),
 465       ObjectFromPairs.of([
 466-        INDEX2, 13,
 467-        INDEX4, 50,
 468-        INDEX6, 3,
 469-        INDEX7, $V0,
 470-        INDEX8, $V1,
 471-        INDEX9, 6,
 472-        INDEX10, $V2,
 473-        INDEX12, [1, 49],
 474-        INDEX13, $V3,
 475-        INDEX14, $V4,
 476-        INDEX19, $V5,
 477-        INDEX23, $V6,
 478-        INDEX25, 12,
 479-        INDEX26, $V7,
 480-        INDEX28, $V8,
 481-        INDEX32, $V9,
 482-        INDEX34, $Va,
 483-        INDEX36, $Vb
 484+        SINGLE_QUOTES_RULE_INDEX, 13,
 485+        DATE_RULE_INDEX, 50,
 486+        $_A1_CELL_RULE_INDEX, 3,
 487+        A1_CELL_RULE_INDEX, $V0,
 488+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 489+        VARIABLE_RULE_INDEX, 6,
 490+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 491+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, [1, 49],
 492+        DOLLAR_SIGN_RULE_INDEX, $V3,
 493+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 494+        COMMA_RULE_INDEX, $V5,
 495+        PLUS_SIGN_RULE_INDEX, $V6,
 496+        OPEN_PAREN_RULE_INDEX, 12,
 497+        CLOSE_PAREN_RULE_INDEX, $V7,
 498+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 499+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 500+        PERCENT_SIGN_RULE_INDEX, $Va,
 501+        END_OF_STRING_RULE_INDEX, $Vb
 502       ]),
 503       ObjectFromPairs.of([
 504-        INDEX2, 13,
 505-        INDEX4, 51,
 506-        INDEX6, 3,
 507-        INDEX7, $V0,
 508-        INDEX8, $V1,
 509-        INDEX9, 6,
 510-        INDEX10, $V2,
 511-        INDEX13, $V3,
 512-        INDEX14, $V4,
 513-        INDEX19, $V5,
 514-        INDEX23, $V6,
 515-        INDEX25, 12,
 516-        INDEX26, $V7,
 517-        INDEX28, $V8,
 518-        INDEX32, $V9,
 519-        INDEX34, $Va,
 520-        INDEX36, $Vb
 521+        SINGLE_QUOTES_RULE_INDEX, 13,
 522+        DATE_RULE_INDEX, 51,
 523+        $_A1_CELL_RULE_INDEX, 3,
 524+        A1_CELL_RULE_INDEX, $V0,
 525+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 526+        VARIABLE_RULE_INDEX, 6,
 527+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 528+        DOLLAR_SIGN_RULE_INDEX, $V3,
 529+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 530+        COMMA_RULE_INDEX, $V5,
 531+        PLUS_SIGN_RULE_INDEX, $V6,
 532+        OPEN_PAREN_RULE_INDEX, 12,
 533+        CLOSE_PAREN_RULE_INDEX, $V7,
 534+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 535+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 536+        PERCENT_SIGN_RULE_INDEX, $Va,
 537+        END_OF_STRING_RULE_INDEX, $Vb
 538       ]),
 539       ObjectFromPairs.of([
 540-        INDEX2, 13,
 541-        INDEX4, 52,
 542-        INDEX6, 3,
 543-        INDEX7, $V0,
 544-        INDEX8, $V1,
 545-        INDEX9, 6,
 546-        INDEX10, $V2,
 547-        INDEX13, $V3,
 548-        INDEX14, $V4,
 549-        INDEX19, $V5,
 550-        INDEX23, $V6,
 551-        INDEX25, 12,
 552-        INDEX26, $V7,
 553-        INDEX28, $V8,
 554-        INDEX32, $V9,
 555-        INDEX34, $Va,
 556-        INDEX36, $Vb
 557+        SINGLE_QUOTES_RULE_INDEX, 13,
 558+        DATE_RULE_INDEX, 52,
 559+        $_A1_CELL_RULE_INDEX, 3,
 560+        A1_CELL_RULE_INDEX, $V0,
 561+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 562+        VARIABLE_RULE_INDEX, 6,
 563+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 564+        DOLLAR_SIGN_RULE_INDEX, $V3,
 565+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 566+        COMMA_RULE_INDEX, $V5,
 567+        PLUS_SIGN_RULE_INDEX, $V6,
 568+        OPEN_PAREN_RULE_INDEX, 12,
 569+        CLOSE_PAREN_RULE_INDEX, $V7,
 570+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 571+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 572+        PERCENT_SIGN_RULE_INDEX, $Va,
 573+        END_OF_STRING_RULE_INDEX, $Vb
 574       ]),
 575       ObjectFromPairs.of([
 576-        INDEX2, 13,
 577-        INDEX4, 53,
 578-        INDEX6, 3,
 579-        INDEX7, $V0,
 580-        INDEX8, $V1,
 581-        INDEX9, 6,
 582-        INDEX10, $V2,
 583-        INDEX13, $V3,
 584-        INDEX14, $V4,
 585-        INDEX19, $V5,
 586-        INDEX23, $V6,
 587-        INDEX25, 12,
 588-        INDEX26, $V7,
 589-        INDEX28, $V8,
 590-        INDEX32, $V9,
 591-        INDEX34, $Va,
 592-        INDEX36, $Vb
 593+        SINGLE_QUOTES_RULE_INDEX, 13,
 594+        DATE_RULE_INDEX, 53,
 595+        $_A1_CELL_RULE_INDEX, 3,
 596+        A1_CELL_RULE_INDEX, $V0,
 597+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 598+        VARIABLE_RULE_INDEX, 6,
 599+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 600+        DOLLAR_SIGN_RULE_INDEX, $V3,
 601+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 602+        COMMA_RULE_INDEX, $V5,
 603+        PLUS_SIGN_RULE_INDEX, $V6,
 604+        OPEN_PAREN_RULE_INDEX, 12,
 605+        CLOSE_PAREN_RULE_INDEX, $V7,
 606+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 607+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 608+        PERCENT_SIGN_RULE_INDEX, $Va,
 609+        END_OF_STRING_RULE_INDEX, $Vb
 610       ]),
 611       ObjectFromPairs.of([
 612-        INDEX2, 13,
 613-        INDEX4, 54,
 614-        INDEX6, 3,
 615-        INDEX7, $V0,
 616-        INDEX8, $V1,
 617-        INDEX9, 6,
 618-        INDEX10, $V2,
 619-        INDEX13, $V3,
 620-        INDEX14, $V4,
 621-        INDEX19, $V5,
 622-        INDEX23, $V6,
 623-        INDEX25, 12,
 624-        INDEX26, $V7,
 625-        INDEX28, $V8,
 626-        INDEX32, $V9,
 627-        INDEX34, $Va,
 628-        INDEX36, $Vb
 629+        SINGLE_QUOTES_RULE_INDEX, 13,
 630+        DATE_RULE_INDEX, 54,
 631+        $_A1_CELL_RULE_INDEX, 3,
 632+        A1_CELL_RULE_INDEX, $V0,
 633+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 634+        VARIABLE_RULE_INDEX, 6,
 635+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 636+        DOLLAR_SIGN_RULE_INDEX, $V3,
 637+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 638+        COMMA_RULE_INDEX, $V5,
 639+        PLUS_SIGN_RULE_INDEX, $V6,
 640+        OPEN_PAREN_RULE_INDEX, 12,
 641+        CLOSE_PAREN_RULE_INDEX, $V7,
 642+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 643+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 644+        PERCENT_SIGN_RULE_INDEX, $Va,
 645+        END_OF_STRING_RULE_INDEX, $Vb
 646       ]),
 647       ObjectFromPairs.of([
 648-        INDEX2, 13,
 649-        INDEX4, 55,
 650-        INDEX6, 3,
 651-        INDEX7, $V0,
 652-        INDEX8, $V1,
 653-        INDEX9, 6,
 654-        INDEX10, $V2,
 655-        INDEX13, $V3,
 656-        INDEX14, $V4,
 657-        INDEX19, $V5,
 658-        INDEX23, $V6,
 659-        INDEX25, 12,
 660-        INDEX26, $V7,
 661-        INDEX28, $V8,
 662-        INDEX32, $V9,
 663-        INDEX34, $Va,
 664-        INDEX36, $Vb
 665+        SINGLE_QUOTES_RULE_INDEX, 13,
 666+        DATE_RULE_INDEX, 55,
 667+        $_A1_CELL_RULE_INDEX, 3,
 668+        A1_CELL_RULE_INDEX, $V0,
 669+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 670+        VARIABLE_RULE_INDEX, 6,
 671+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 672+        DOLLAR_SIGN_RULE_INDEX, $V3,
 673+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 674+        COMMA_RULE_INDEX, $V5,
 675+        PLUS_SIGN_RULE_INDEX, $V6,
 676+        OPEN_PAREN_RULE_INDEX, 12,
 677+        CLOSE_PAREN_RULE_INDEX, $V7,
 678+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 679+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 680+        PERCENT_SIGN_RULE_INDEX, $Va,
 681+        END_OF_STRING_RULE_INDEX, $Vb
 682       ]),
 683-      {
 684-        32: [1, 56]
 685-      },
 686+      ObjectFromPairs.of([32, [1, 56]]),
 687       o($Vp, [2, 40]),
 688       ObjectFromPairs.of([
 689-        INDEX11, $Vc,
 690-        INDEX12, $Vd,
 691-        INDEX13, $Ve,
 692-        INDEX15, [1, 57],
 693-        INDEX16, $Vf,
 694-        INDEX17, $Vg,
 695-        INDEX18, $Vh,
 696-        INDEX19, $Vi,
 697-        INDEX20, $Vj,
 698-        INDEX21, $Vk,
 699-        INDEX22, $Vl
 700+        INTEGER_RULE_INDEX, $Vc,
 701+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, $Vd,
 702+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 703+        SINGLE_WHITESPACE_RULE_INDEX, [1, 57],
 704+        PERIOD_RULE_INDEX, $Vf,
 705+        COLON_RULE_INDEX, $Vg,
 706+        SEMI_COLON_RULE_INDEX, $Vh,
 707+        COMMA_RULE_INDEX, $Vi,
 708+        ASTERISK_RULE_INDEX, $Vj,
 709+        FORWARD_SLASH_RULE_INDEX, $Vk,
 710+        MINUS_SIGN_RULE_INDEX, $Vl
 711       ]),
 712-      o($Vq, [2, 21], {11: $Vc, 20: $Vj, 21: $Vk, 22: $Vl}),
 713-      o($Vq, [2, 22], {
 714-        11: $Vc,
 715-        20: $Vj,
 716-        21: $Vk,
 717-        22: $Vl
 718-      }),
 719+      o($Vq, [2, 21], ObjectFromPairs.of([
 720+        11, $Vc,
 721+        20, $Vj,
 722+        21, $Vk,
 723+        22, $Vl
 724+      ])),
 725+      o($Vq, [2, 22], ObjectFromPairs.of([
 726+        11, $Vc,
 727+        20, $Vj,
 728+        21, $Vk,
 729+        22, $Vl])
 730+      ),
 731       ObjectFromPairs.of([
 732-        INDEX2, 13,
 733-        INDEX4, 60,
 734-        INDEX6, 3,
 735-        INDEX7, $V0,
 736-        INDEX8, $V1,
 737-        INDEX9, 6,
 738-        INDEX10, $V2,
 739-        INDEX13, $V3,
 740-        INDEX14, $V4,
 741-        INDEX15, [1, 58],
 742-        INDEX19, $V5,
 743-        INDEX23, $V6,
 744-        INDEX24, 59,
 745-        INDEX25, 12,
 746-        INDEX26, $V7,
 747-        INDEX28, $V8,
 748-        INDEX29, [1, 61],
 749-        INDEX32, $V9,
 750-        INDEX34, $Va,
 751-        INDEX36, $Vb
 752+        SINGLE_QUOTES_RULE_INDEX, 13,
 753+        DATE_RULE_INDEX, 60,
 754+        $_A1_CELL_RULE_INDEX, 3,
 755+        A1_CELL_RULE_INDEX, $V0,
 756+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 757+        VARIABLE_RULE_INDEX, 6,
 758+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 759+        DOLLAR_SIGN_RULE_INDEX, $V3,
 760+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 761+        SINGLE_WHITESPACE_RULE_INDEX, [1, 58],
 762+        COMMA_RULE_INDEX, $V5,
 763+        PLUS_SIGN_RULE_INDEX, $V6,
 764+        CARET_SIGN_RULE_INDEX, 59,
 765+        OPEN_PAREN_RULE_INDEX, 12,
 766+        CLOSE_PAREN_RULE_INDEX, $V7,
 767+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 768+        NOT_RULE_INDEX, [1, 61],
 769+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 770+        PERCENT_SIGN_RULE_INDEX, $Va,
 771+        END_OF_STRING_RULE_INDEX, $Vb
 772       ]),
 773       o($Vm, [2, 27]),
 774-      {
 775-        36: $Vo
 776-      },
 777-      {
 778-        32: [1, 62]
 779-      },
 780-      {
 781-        34: [1, 63]
 782-      },
 783-      {
 784-        26: [1, 64]
 785-      },
 786-      {
 787-        28: [1, 65]
 788-      },
 789-      {
 790-        37: [1, 66]
 791-      },
 792+      ObjectFromPairs.of([36, $Vo]),
 793+      ObjectFromPairs.of([32, [1, 62]]),
 794+      ObjectFromPairs.of([34, [1, 63]]),
 795+      ObjectFromPairs.of([26, [1, 64]]),
 796+      ObjectFromPairs.of([28, [1, 65]]),
 797+      ObjectFromPairs.of([37, [1, 66]]),
 798       o($Vm, [2, 7]),
 799       o([5, 12, 15, 30, 31], [2, 8], ObjectFromPairs.of([
 800-        INDEX11, $Vc,
 801-        INDEX13, $Ve,
 802-        INDEX16, $Vf,
 803-        INDEX17, $Vg,
 804-        INDEX18, $Vh,
 805-        INDEX19, $Vi,
 806-        INDEX20, $Vj,
 807-        INDEX21, $Vk,
 808-        INDEX22, $Vl
 809+        INTEGER_RULE_INDEX, $Vc,
 810+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 811+        PERIOD_RULE_INDEX, $Vf,
 812+        COLON_RULE_INDEX, $Vg,
 813+        SEMI_COLON_RULE_INDEX, $Vh,
 814+        COMMA_RULE_INDEX, $Vi,
 815+        ASTERISK_RULE_INDEX, $Vj,
 816+        FORWARD_SLASH_RULE_INDEX, $Vk,
 817+        MINUS_SIGN_RULE_INDEX, $Vl
 818       ])),
 819       o($Vq, [2, 9], {11: $Vc, 20: $Vj, 21: $Vk, 22: $Vl}),
 820       ObjectFromPairs.of([
 821-        INDEX2, 13,
 822-        INDEX4, 67,
 823-        INDEX6, 3,
 824-        INDEX7, $V0,
 825-        INDEX8, $V1,
 826-        INDEX9, 6,
 827-        INDEX10, $V2,
 828-        INDEX13, $V3,
 829-        INDEX14, $V4,
 830-        INDEX19, $V5,
 831-        INDEX23, $V6,
 832-        INDEX25, 12,
 833-        INDEX26, $V7,
 834-        INDEX28, $V8,
 835-        INDEX32, $V9,
 836-        INDEX34, $Va,
 837-        INDEX36, $Vb
 838+        SINGLE_QUOTES_RULE_INDEX, 13,
 839+        DATE_RULE_INDEX, 67,
 840+        $_A1_CELL_RULE_INDEX, 3,
 841+        A1_CELL_RULE_INDEX, $V0,
 842+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 843+        VARIABLE_RULE_INDEX, 6,
 844+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 845+        DOLLAR_SIGN_RULE_INDEX, $V3,
 846+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 847+        COMMA_RULE_INDEX, $V5,
 848+        PLUS_SIGN_RULE_INDEX, $V6,
 849+        OPEN_PAREN_RULE_INDEX, 12,
 850+        CLOSE_PAREN_RULE_INDEX, $V7,
 851+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 852+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 853+        PERCENT_SIGN_RULE_INDEX, $Va,
 854+        END_OF_STRING_RULE_INDEX, $Vb
 855       ]),
 856       ObjectFromPairs.of([
 857-        INDEX2, 13,
 858-        INDEX4, 68,
 859-        INDEX6, 3,
 860-        INDEX7, $V0,
 861-        INDEX8, $V1,
 862-        INDEX9, 6,
 863-        INDEX10, $V2,
 864-        INDEX13, $V3,
 865-        INDEX14, $V4,
 866-        INDEX19, $V5,
 867-        INDEX23, $V6,
 868-        INDEX25, 12,
 869-        INDEX26, $V7,
 870-        INDEX28, $V8,
 871-        INDEX32, $V9,
 872-        INDEX34, $Va,
 873-        INDEX36, $Vb
 874+        SINGLE_QUOTES_RULE_INDEX, 13,
 875+        DATE_RULE_INDEX, 68,
 876+        $_A1_CELL_RULE_INDEX, 3,
 877+        A1_CELL_RULE_INDEX, $V0,
 878+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 879+        VARIABLE_RULE_INDEX, 6,
 880+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 881+        DOLLAR_SIGN_RULE_INDEX, $V3,
 882+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 883+        COMMA_RULE_INDEX, $V5,
 884+        PLUS_SIGN_RULE_INDEX, $V6,
 885+        OPEN_PAREN_RULE_INDEX, 12,
 886+        CLOSE_PAREN_RULE_INDEX, $V7,
 887+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 888+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 889+        PERCENT_SIGN_RULE_INDEX, $Va,
 890+        END_OF_STRING_RULE_INDEX, $Vb
 891       ]),
 892       o($Vr, [2, 16], ObjectFromPairs.of([
 893-        INDEX11, $Vc,
 894-        INDEX13, $Ve,
 895-        INDEX19, $Vi,
 896-        INDEX20, $Vj,
 897-        INDEX21, $Vk,
 898-        INDEX22, $Vl
 899+        INTEGER_RULE_INDEX, $Vc,
 900+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 901+        COMMA_RULE_INDEX, $Vi,
 902+        ASTERISK_RULE_INDEX, $Vj,
 903+        FORWARD_SLASH_RULE_INDEX, $Vk,
 904+        MINUS_SIGN_RULE_INDEX, $Vl
 905       ])),
 906       ObjectFromPairs.of([
 907-        INDEX2, 13,
 908-        INDEX4, 69,
 909-        INDEX6, 3,
 910-        INDEX7, $V0,
 911-        INDEX8, $V1,
 912-        INDEX9, 6,
 913-        INDEX10, $V2,
 914-        INDEX13, $V3,
 915-        INDEX14, $V4,
 916-        INDEX19, $V5,
 917-        INDEX23, $V6,
 918-        INDEX25, 12,
 919-        INDEX26, $V7,
 920-        INDEX28, $V8,
 921-        INDEX32, $V9,
 922-        INDEX34, $Va,
 923-        INDEX36, $Vb
 924+        SINGLE_QUOTES_RULE_INDEX, 13,
 925+        DATE_RULE_INDEX, 69,
 926+        $_A1_CELL_RULE_INDEX, 3,
 927+        A1_CELL_RULE_INDEX, $V0,
 928+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
 929+        VARIABLE_RULE_INDEX, 6,
 930+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
 931+        DOLLAR_SIGN_RULE_INDEX, $V3,
 932+        AMPERSAND_SIGN_RULE_INDEX, $V4,
 933+        COMMA_RULE_INDEX, $V5,
 934+        PLUS_SIGN_RULE_INDEX, $V6,
 935+        OPEN_PAREN_RULE_INDEX, 12,
 936+        CLOSE_PAREN_RULE_INDEX, $V7,
 937+        LESS_THAN_SIGN_RULE_INDEX, $V8,
 938+        EXCLAMATION_POINT_RULE_INDEX, $V9,
 939+        PERCENT_SIGN_RULE_INDEX, $Va,
 940+        END_OF_STRING_RULE_INDEX, $Vb
 941       ]),
 942       o($Vr, [2, 15], ObjectFromPairs.of([
 943-        INDEX11, $Vc,
 944-        INDEX13, $Ve,
 945-        INDEX19, $Vi,
 946-        INDEX20, $Vj,
 947-        INDEX21, $Vk,
 948-        INDEX22, $Vl
 949+        INTEGER_RULE_INDEX, $Vc,
 950+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 951+        COMMA_RULE_INDEX, $Vi,
 952+        ASTERISK_RULE_INDEX, $Vj,
 953+        FORWARD_SLASH_RULE_INDEX, $Vk,
 954+        MINUS_SIGN_RULE_INDEX, $Vl
 955       ])),
 956       o([5, 12, 15, 18, 30, 31], [2, 14], ObjectFromPairs.of([
 957-        INDEX11, $Vc,
 958-        INDEX13, $Ve,
 959-        INDEX16, $Vf,
 960-        INDEX17, $Vg,
 961-        INDEX19, $Vi,
 962-        INDEX20, $Vj,
 963-        INDEX21, $Vk,
 964-        INDEX22, $Vl
 965+        INTEGER_RULE_INDEX, $Vc,
 966+        DOLLAR_SIGN_RULE_INDEX, $Ve,
 967+        PERIOD_RULE_INDEX, $Vf,
 968+        COLON_RULE_INDEX, $Vg,
 969+        COMMA_RULE_INDEX, $Vi,
 970+        ASTERISK_RULE_INDEX, $Vj,
 971+        FORWARD_SLASH_RULE_INDEX, $Vk,
 972+        MINUS_SIGN_RULE_INDEX, $Vl
 973       ])),
 974       o($Vq, [2, 17], ObjectFromPairs.of([
 975-        INDEX11, $Vc,
 976-        INDEX20, $Vj,
 977-        INDEX21, $Vk,
 978-        INDEX22, $Vl
 979+        INTEGER_RULE_INDEX, $Vc,
 980+        ASTERISK_RULE_INDEX, $Vj,
 981+        FORWARD_SLASH_RULE_INDEX, $Vk,
 982+        MINUS_SIGN_RULE_INDEX, $Vl
 983       ])),
 984       o($Vs, [2, 18], ObjectFromPairs.of([
 985-        INDEX11, $Vc,
 986-        INDEX22, $Vl
 987+        INTEGER_RULE_INDEX, $Vc,
 988+        MINUS_SIGN_RULE_INDEX, $Vl
 989       ])),
 990       o($Vs, [2, 19], ObjectFromPairs.of([
 991-        INDEX11, $Vc,
 992-        INDEX22, $Vl
 993+        INTEGER_RULE_INDEX, $Vc,
 994+        MINUS_SIGN_RULE_INDEX, $Vl
 995       ])),
 996-      o([5, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31], [2, 20], ObjectFromPairs.of([INDEX11, $Vc])),
 997+      o([5, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 30, 31], [2, 20], ObjectFromPairs.of([INTEGER_RULE_INDEX, $Vc])),
 998       o($Vn, [2, 37]),
 999       o($Vm, [2, 10]),
1000       o($Vm, [2, 23]),
1001       ObjectFromPairs.of([
1002-        INDEX15, [1, 70],
1003-        INDEX30, [1, 71],
1004-        INDEX31, [1, 72]
1005+        SINGLE_WHITESPACE_RULE_INDEX, [1, 70],
1006+        OPEN_DOUBLE_QUOTE_INDEX, [1, 71],
1007+        OPEN_SINGLE_QUITE_INDEX, [1, 72]
1008       ]),
1009       o($Vt, [2, 32], ObjectFromPairs.of([
1010-        INDEX11, $Vc,
1011-        INDEX12, $Vd,
1012-        INDEX13, $Ve,
1013-        INDEX16, $Vf,
1014-        INDEX17, $Vg,
1015-        INDEX18, $Vh,
1016-        INDEX19, $Vi,
1017-        INDEX20, $Vj,
1018-        INDEX21, $Vk,
1019-        INDEX22, $Vl
1020+        INTEGER_RULE_INDEX, $Vc,
1021+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, $Vd,
1022+        DOLLAR_SIGN_RULE_INDEX, $Ve,
1023+        PERIOD_RULE_INDEX, $Vf,
1024+        COLON_RULE_INDEX, $Vg,
1025+        SEMI_COLON_RULE_INDEX, $Vh,
1026+        COMMA_RULE_INDEX, $Vi,
1027+        ASTERISK_RULE_INDEX, $Vj,
1028+        FORWARD_SLASH_RULE_INDEX, $Vk,
1029+        MINUS_SIGN_RULE_INDEX, $Vl
1030       ])),
1031       o($Vt, [2, 33]), {37: [1, 73]}, // index 37?
1032       o($Vp, [2, 39]),
1033@@ -917,88 +908,95 @@ var Parser = (function () {
1034       o($Vm, [2, 31]),
1035       o($Vu, [2, 41]),
1036       o($Vr, [2, 11], ObjectFromPairs.of([
1037-        INDEX11, $Vc,
1038-        INDEX13, $Ve,
1039-        INDEX19, $Vi,
1040-        INDEX20, $Vj,
1041-        INDEX21, $Vk,
1042-        INDEX22, $Vl
1043+        INTEGER_RULE_INDEX, $Vc,
1044+        DOLLAR_SIGN_RULE_INDEX, $Ve,
1045+        COMMA_RULE_INDEX, $Vi,
1046+        ASTERISK_RULE_INDEX, $Vj,
1047+        FORWARD_SLASH_RULE_INDEX, $Vk,
1048+        MINUS_SIGN_RULE_INDEX, $Vl
1049+      ])),
1050+      o($Vr, [2, 13], ObjectFromPairs.of([
1051+        11, $Vc,
1052+        13, $Ve,
1053+        19, $Vi,
1054+        20, $Vj,
1055+        21, $Vk,
1056+        22, $Vl
1057       ])),
1058-      o($Vr, [2, 13], {11: $Vc, 13: $Ve, 19: $Vi, 20: $Vj, 21: $Vk, 22: $Vl}),
1059       o($Vr, [2, 12], ObjectFromPairs.of([
1060-        INDEX11, $Vc,
1061-        INDEX13, $Ve,
1062-        INDEX19, $Vi,
1063-        INDEX20, $Vj,
1064-        INDEX21, $Vk,
1065-        INDEX22, $Vl
1066+        INTEGER_RULE_INDEX, $Vc,
1067+        DOLLAR_SIGN_RULE_INDEX, $Ve,
1068+        COMMA_RULE_INDEX, $Vi,
1069+        ASTERISK_RULE_INDEX, $Vj,
1070+        FORWARD_SLASH_RULE_INDEX, $Vk,
1071+        MINUS_SIGN_RULE_INDEX, $Vl
1072       ])),
1073       o($Vm, [2, 24]),
1074       ObjectFromPairs.of([
1075-        INDEX2, 13,
1076-        INDEX4, 74,
1077-        INDEX6, 3,
1078-        INDEX7, $V0,
1079-        INDEX8, $V1,
1080-        INDEX9, 6,
1081-        INDEX10, $V2,
1082-        INDEX13, $V3,
1083-        INDEX14, $V4,
1084-        INDEX19, $V5,
1085-        INDEX23, $V6,
1086-        INDEX25, 12,
1087-        INDEX26, $V7,
1088-        INDEX28, $V8,
1089-        INDEX32, $V9,
1090-        INDEX34, $Va,
1091-        INDEX36, $Vb
1092+        SINGLE_QUOTES_RULE_INDEX, 13,
1093+        DATE_RULE_INDEX, 74,
1094+        $_A1_CELL_RULE_INDEX, 3,
1095+        A1_CELL_RULE_INDEX, $V0,
1096+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
1097+        VARIABLE_RULE_INDEX, 6,
1098+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
1099+        DOLLAR_SIGN_RULE_INDEX, $V3,
1100+        AMPERSAND_SIGN_RULE_INDEX, $V4,
1101+        COMMA_RULE_INDEX, $V5,
1102+        PLUS_SIGN_RULE_INDEX, $V6,
1103+        OPEN_PAREN_RULE_INDEX, 12,
1104+        CLOSE_PAREN_RULE_INDEX, $V7,
1105+        LESS_THAN_SIGN_RULE_INDEX, $V8,
1106+        EXCLAMATION_POINT_RULE_INDEX, $V9,
1107+        PERCENT_SIGN_RULE_INDEX, $Va,
1108+        END_OF_STRING_RULE_INDEX, $Vb
1109       ]),
1110       ObjectFromPairs.of([
1111-        INDEX2, 13,
1112-        INDEX4, 75,
1113-        INDEX6, 3,
1114-        INDEX7, $V0,
1115-        INDEX8, $V1,
1116-        INDEX9, 6,
1117-        INDEX10, $V2,
1118-        INDEX13, $V3,
1119-        INDEX14, $V4,
1120-        INDEX19, $V5,
1121-        INDEX23, $V6,
1122-        INDEX25, 12,
1123-        INDEX26, $V7,
1124-        INDEX28, $V8,
1125-        INDEX32, $V9,
1126-        INDEX34, $Va,
1127-        INDEX36, $Vb
1128+        SINGLE_QUOTES_RULE_INDEX, 13,
1129+        DATE_RULE_INDEX, 75,
1130+        $_A1_CELL_RULE_INDEX, 3,
1131+        A1_CELL_RULE_INDEX, $V0,
1132+        FORMULA_NAME_SIMPLE_RULE_INDEX, $V1,
1133+        VARIABLE_RULE_INDEX, 6,
1134+        SIMPLE_VARIABLE_RILE_INDEX, $V2,
1135+        DOLLAR_SIGN_RULE_INDEX, $V3,
1136+        AMPERSAND_SIGN_RULE_INDEX, $V4,
1137+        COMMA_RULE_INDEX, $V5,
1138+        PLUS_SIGN_RULE_INDEX, $V6,
1139+        OPEN_PAREN_RULE_INDEX, 12,
1140+        CLOSE_PAREN_RULE_INDEX, $V7,
1141+        LESS_THAN_SIGN_RULE_INDEX, $V8,
1142+        EXCLAMATION_POINT_RULE_INDEX, $V9,
1143+        PERCENT_SIGN_RULE_INDEX, $Va,
1144+        END_OF_STRING_RULE_INDEX, $Vb
1145       ]),
1146       o($Vu, [2, 42]),
1147       o($Vt, [2, 34], ObjectFromPairs.of([
1148-        INDEX11, $Vc,
1149-        INDEX12, $Vd,
1150-        INDEX13, $Ve,
1151-        INDEX16, $Vf,
1152-        INDEX17, $Vg,
1153-        INDEX18, $Vh,
1154-        INDEX19, $Vi,
1155-        INDEX20, $Vj,
1156-        INDEX21, $Vk,
1157-        INDEX22, $Vl
1158+        INTEGER_RULE_INDEX, $Vc,
1159+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, $Vd,
1160+        DOLLAR_SIGN_RULE_INDEX, $Ve,
1161+        PERIOD_RULE_INDEX, $Vf,
1162+        COLON_RULE_INDEX, $Vg,
1163+        SEMI_COLON_RULE_INDEX, $Vh,
1164+        COMMA_RULE_INDEX, $Vi,
1165+        ASTERISK_RULE_INDEX, $Vj,
1166+        FORWARD_SLASH_RULE_INDEX, $Vk,
1167+        MINUS_SIGN_RULE_INDEX, $Vl
1168       ])),
1169       o($Vt, [2, 35], ObjectFromPairs.of([
1170-        INDEX11, $Vc,
1171-        INDEX12, $Vd,
1172-        INDEX13, $Ve,
1173-        INDEX16, $Vf,
1174-        INDEX17, $Vg,
1175-        INDEX18, $Vh,
1176-        INDEX19, $Vi,
1177-        INDEX20, $Vj,
1178-        INDEX21, $Vk,
1179-        INDEX22, $Vl
1180+        INTEGER_RULE_INDEX, $Vc,
1181+        OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX, $Vd,
1182+        DOLLAR_SIGN_RULE_INDEX, $Ve,
1183+        PERIOD_RULE_INDEX, $Vf,
1184+        COLON_RULE_INDEX, $Vg,
1185+        SEMI_COLON_RULE_INDEX, $Vh,
1186+        COMMA_RULE_INDEX, $Vi,
1187+        ASTERISK_RULE_INDEX, $Vj,
1188+        FORWARD_SLASH_RULE_INDEX, $Vk,
1189+        MINUS_SIGN_RULE_INDEX, $Vl
1190       ]))
1191     ],
1192-    defaultActions: ObjectFromPairs.of([INDEX19, [2, 1]]),
1193+    defaultActions: ObjectFromPairs.of([COMMA_RULE_INDEX, [2, 1]]),
1194     parseError: function parseError(str, hash) {
1195       if (hash.recoverable) {
1196         this.trace(str);
1197diff --git a/src/Parser/Rules.ts b/src/Parser/Rules.ts
1198index 2d7601e..f0c3d51 100644
1199--- a/src/Parser/Rules.ts
1200+++ b/src/Parser/Rules.ts
1201@@ -82,83 +82,83 @@ const RULES = [
1202 
1203 // While it is unlikely that an index for a given rule will change, initializing them with `indexOf` will allow me to
1204 // change their ordering without having to find and replace indexes manually.
1205-const INDEX0 = RULES.indexOf(WHITE_SPACE_RULE);
1206-const INDEX1 = RULES.indexOf(DOUBLE_QUOTES_RULE);
1207-const INDEX2 = RULES.indexOf(SINGLE_QUOTES_RULE);
1208-const INDEX3 = RULES.indexOf(FORMULA_NAME_RULE);
1209-const INDEX4 = RULES.indexOf(DATE_RULE);
1210-const INDEX5 = RULES.indexOf(TIME_RULE);
1211-const INDEX6 = RULES.indexOf($_A1_CELL_RULE);
1212-const INDEX7 = RULES.indexOf(A1_CELL_RULE);
1213-const INDEX8 = RULES.indexOf(FORMULA_NAME_SIMPLE_RULE);
1214-const INDEX9 = RULES.indexOf(VARIABLE_RULE);
1215-const INDEX10 = RULES.indexOf(SIMPLE_VARIABLE_RILE);
1216-const INDEX11 = RULES.indexOf(INTEGER_RULE);
1217-const INDEX12 = RULES.indexOf(OPEN_AND_CLOSE_OF_ARRAY_RULE);
1218-const INDEX13 = RULES.indexOf(DOLLAR_SIGN_RULE);
1219-const INDEX14 = RULES.indexOf(AMPERSAND_SIGN_RULE);
1220-const INDEX15 = RULES.indexOf(SINGLE_WHITESPACE_RULE);
1221-const INDEX16 = RULES.indexOf(PERIOD_RULE);
1222-const INDEX17 = RULES.indexOf(COLON_RULE);
1223-const INDEX18 = RULES.indexOf(SEMI_COLON_RULE);
1224-const INDEX19 = RULES.indexOf(COMMA_RULE);
1225-const INDEX20 = RULES.indexOf(ASTERISK_RULE);
1226-const INDEX21 = RULES.indexOf(FORWARD_SLASH_RULE);
1227-const INDEX22 = RULES.indexOf(MINUS_SIGN_RULE);
1228-const INDEX23 = RULES.indexOf(PLUS_SIGN_RULE);
1229-const INDEX24 = RULES.indexOf(CARET_SIGN_RULE);
1230-const INDEX25 = RULES.indexOf(OPEN_PAREN_RULE);
1231-const INDEX26 = RULES.indexOf(CLOSE_PAREN_RULE);
1232-const INDEX27 = RULES.indexOf(GREATER_THAN_SIGN_RULE);
1233-const INDEX28 = RULES.indexOf(LESS_THAN_SIGN_RULE);
1234-const INDEX29 = RULES.indexOf(NOT_RULE);
1235-const INDEX30 = RULES.indexOf(OPEN_DOUBLE_QUOTE);
1236-const INDEX31 = RULES.indexOf(OPEN_SINGLE_QUITE);
1237-const INDEX32 = RULES.indexOf(EXCLAMATION_POINT_RULE);
1238-const INDEX33 = RULES.indexOf(EQUALS_SIGN_RULE);
1239-const INDEX34 = RULES.indexOf(PERCENT_SIGN_RULE);
1240-const INDEX35 = RULES.indexOf(HASH_SIGN_RULE);
1241-const INDEX36 = RULES.indexOf(END_OF_STRING_RULE);
1242+const WHITE_SPACE_RULE_INDEX = RULES.indexOf(WHITE_SPACE_RULE);
1243+const DOUBLE_QUOTES_RULE_INDEX = RULES.indexOf(DOUBLE_QUOTES_RULE);
1244+const SINGLE_QUOTES_RULE_INDEX = RULES.indexOf(SINGLE_QUOTES_RULE);
1245+const FORMULA_NAME_RULE_INDEX = RULES.indexOf(FORMULA_NAME_RULE);
1246+const DATE_RULE_INDEX = RULES.indexOf(DATE_RULE);
1247+const TIME_RULE_INDEX = RULES.indexOf(TIME_RULE);
1248+const $_A1_CELL_RULE_INDEX = RULES.indexOf($_A1_CELL_RULE);
1249+const A1_CELL_RULE_INDEX = RULES.indexOf(A1_CELL_RULE);
1250+const FORMULA_NAME_SIMPLE_RULE_INDEX = RULES.indexOf(FORMULA_NAME_SIMPLE_RULE);
1251+const VARIABLE_RULE_INDEX = RULES.indexOf(VARIABLE_RULE);
1252+const SIMPLE_VARIABLE_RILE_INDEX = RULES.indexOf(SIMPLE_VARIABLE_RILE);
1253+const INTEGER_RULE_INDEX = RULES.indexOf(INTEGER_RULE);
1254+const OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX = RULES.indexOf(OPEN_AND_CLOSE_OF_ARRAY_RULE);
1255+const DOLLAR_SIGN_RULE_INDEX = RULES.indexOf(DOLLAR_SIGN_RULE);
1256+const AMPERSAND_SIGN_RULE_INDEX = RULES.indexOf(AMPERSAND_SIGN_RULE);
1257+const SINGLE_WHITESPACE_RULE_INDEX = RULES.indexOf(SINGLE_WHITESPACE_RULE);
1258+const PERIOD_RULE_INDEX = RULES.indexOf(PERIOD_RULE);
1259+const COLON_RULE_INDEX = RULES.indexOf(COLON_RULE);
1260+const SEMI_COLON_RULE_INDEX = RULES.indexOf(SEMI_COLON_RULE);
1261+const COMMA_RULE_INDEX = RULES.indexOf(COMMA_RULE);
1262+const ASTERISK_RULE_INDEX = RULES.indexOf(ASTERISK_RULE);
1263+const FORWARD_SLASH_RULE_INDEX = RULES.indexOf(FORWARD_SLASH_RULE);
1264+const MINUS_SIGN_RULE_INDEX = RULES.indexOf(MINUS_SIGN_RULE);
1265+const PLUS_SIGN_RULE_INDEX = RULES.indexOf(PLUS_SIGN_RULE);
1266+const CARET_SIGN_RULE_INDEX = RULES.indexOf(CARET_SIGN_RULE);
1267+const OPEN_PAREN_RULE_INDEX = RULES.indexOf(OPEN_PAREN_RULE);
1268+const CLOSE_PAREN_RULE_INDEX = RULES.indexOf(CLOSE_PAREN_RULE);
1269+const GREATER_THAN_SIGN_RULE_INDEX = RULES.indexOf(GREATER_THAN_SIGN_RULE);
1270+const LESS_THAN_SIGN_RULE_INDEX = RULES.indexOf(LESS_THAN_SIGN_RULE);
1271+const NOT_RULE_INDEX = RULES.indexOf(NOT_RULE);
1272+const OPEN_DOUBLE_QUOTE_INDEX = RULES.indexOf(OPEN_DOUBLE_QUOTE);
1273+const OPEN_SINGLE_QUITE_INDEX = RULES.indexOf(OPEN_SINGLE_QUITE);
1274+const EXCLAMATION_POINT_RULE_INDEX = RULES.indexOf(EXCLAMATION_POINT_RULE);
1275+const EQUALS_SIGN_RULE_INDEX = RULES.indexOf(EQUALS_SIGN_RULE);
1276+const PERCENT_SIGN_RULE_INDEX = RULES.indexOf(PERCENT_SIGN_RULE);
1277+const HASH_SIGN_RULE_INDEX = RULES.indexOf(HASH_SIGN_RULE);
1278+const END_OF_STRING_RULE_INDEX = RULES.indexOf(END_OF_STRING_RULE);
1279 
1280 
1281 export {
1282   RULES,
1283 
1284-  INDEX0,
1285-  INDEX1,
1286-  INDEX2,
1287-  INDEX3,
1288-  INDEX4,
1289-  INDEX5,
1290-  INDEX6,
1291-  INDEX7,
1292-  INDEX8,
1293-  INDEX9,
1294-  INDEX10,
1295-  INDEX11,
1296-  INDEX12,
1297-  INDEX13,
1298-  INDEX14,
1299-  INDEX15,
1300-  INDEX16,
1301-  INDEX17,
1302-  INDEX18,
1303-  INDEX19,
1304-  INDEX20,
1305-  INDEX21,
1306-  INDEX22,
1307-  INDEX23,
1308-  INDEX24,
1309-  INDEX25,
1310-  INDEX26,
1311-  INDEX27,
1312-  INDEX28,
1313-  INDEX29,
1314-  INDEX30,
1315-  INDEX31,
1316-  INDEX32,
1317-  INDEX33,
1318-  INDEX34,
1319-  INDEX35,
1320-  INDEX36
1321+  WHITE_SPACE_RULE_INDEX,
1322+  DOUBLE_QUOTES_RULE_INDEX,
1323+  SINGLE_QUOTES_RULE_INDEX,
1324+  FORMULA_NAME_RULE_INDEX,
1325+  DATE_RULE_INDEX,
1326+  TIME_RULE_INDEX,
1327+  $_A1_CELL_RULE_INDEX,
1328+  A1_CELL_RULE_INDEX,
1329+  FORMULA_NAME_SIMPLE_RULE_INDEX,
1330+  VARIABLE_RULE_INDEX,
1331+  SIMPLE_VARIABLE_RILE_INDEX,
1332+  INTEGER_RULE_INDEX,
1333+  OPEN_AND_CLOSE_OF_ARRAY_RULE_INDEX,
1334+  DOLLAR_SIGN_RULE_INDEX,
1335+  AMPERSAND_SIGN_RULE_INDEX,
1336+  SINGLE_WHITESPACE_RULE_INDEX,
1337+  PERIOD_RULE_INDEX,
1338+  COLON_RULE_INDEX,
1339+  SEMI_COLON_RULE_INDEX,
1340+  COMMA_RULE_INDEX,
1341+  ASTERISK_RULE_INDEX,
1342+  FORWARD_SLASH_RULE_INDEX,
1343+  MINUS_SIGN_RULE_INDEX,
1344+  PLUS_SIGN_RULE_INDEX,
1345+  CARET_SIGN_RULE_INDEX,
1346+  OPEN_PAREN_RULE_INDEX,
1347+  CLOSE_PAREN_RULE_INDEX,
1348+  GREATER_THAN_SIGN_RULE_INDEX,
1349+  LESS_THAN_SIGN_RULE_INDEX,
1350+  NOT_RULE_INDEX,
1351+  OPEN_DOUBLE_QUOTE_INDEX,
1352+  OPEN_SINGLE_QUITE_INDEX,
1353+  EXCLAMATION_POINT_RULE_INDEX,
1354+  EQUALS_SIGN_RULE_INDEX,
1355+  PERCENT_SIGN_RULE_INDEX,
1356+  HASH_SIGN_RULE_INDEX,
1357+  END_OF_STRING_RULE_INDEX
1358 }
1359\ No newline at end of file