{
  "type": "File",
  "start": 0,
  "end": 3259,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 136,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 3259,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 136,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 20,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 20
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 7,
            "end": 9,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 9
              }
            },
            "local": {
              "type": "Identifier",
              "start": 7,
              "end": 9,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 7
                },
                "end": {
                  "line": 1,
                  "column": 9
                },
                "identifierName": "fs"
              },
              "name": "fs"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 15,
          "end": 19,
          "loc": {
            "start": {
              "line": 1,
              "column": 15
            },
            "end": {
              "line": 1,
              "column": 19
            }
          },
          "extra": {
            "rawValue": "fs",
            "raw": "\"fs\""
          },
          "value": "fs"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 22,
        "end": 57,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 35
          }
        },
        "specifiers": [
          {
            "type": "ImportSpecifier",
            "start": 31,
            "end": 36,
            "loc": {
              "start": {
                "line": 3,
                "column": 9
              },
              "end": {
                "line": 3,
                "column": 14
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 31,
              "end": 36,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 9
                },
                "end": {
                  "line": 3,
                  "column": 14
                },
                "identifierName": "Lexer"
              },
              "name": "Lexer"
            },
            "local": {
              "type": "Identifier",
              "start": 31,
              "end": 36,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 9
                },
                "end": {
                  "line": 3,
                  "column": 14
                },
                "identifierName": "Lexer"
              },
              "name": "Lexer"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 44,
          "end": 56,
          "loc": {
            "start": {
              "line": 3,
              "column": 22
            },
            "end": {
              "line": 3,
              "column": 34
            }
          },
          "extra": {
            "rawValue": "./lexer.js",
            "raw": "\"./lexer.js\""
          },
          "value": "./lexer.js"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 58,
        "end": 119,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 61
          }
        },
        "specifiers": [
          {
            "type": "ImportSpecifier",
            "start": 67,
            "end": 72,
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 14
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 67,
              "end": 72,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 9
                },
                "end": {
                  "line": 4,
                  "column": 14
                },
                "identifierName": "Value"
              },
              "name": "Value"
            },
            "local": {
              "type": "Identifier",
              "start": 67,
              "end": 72,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 9
                },
                "end": {
                  "line": 4,
                  "column": 14
                },
                "identifierName": "Value"
              },
              "name": "Value"
            }
          },
          {
            "type": "ImportSpecifier",
            "start": 74,
            "end": 78,
            "loc": {
              "start": {
                "line": 4,
                "column": 16
              },
              "end": {
                "line": 4,
                "column": 20
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 74,
              "end": 78,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 16
                },
                "end": {
                  "line": 4,
                  "column": 20
                },
                "identifierName": "Word"
              },
              "name": "Word"
            },
            "local": {
              "type": "Identifier",
              "start": 74,
              "end": 78,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 16
                },
                "end": {
                  "line": 4,
                  "column": 20
                },
                "identifierName": "Word"
              },
              "name": "Word"
            }
          },
          {
            "type": "ImportSpecifier",
            "start": 80,
            "end": 85,
            "loc": {
              "start": {
                "line": 4,
                "column": 22
              },
              "end": {
                "line": 4,
                "column": 27
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 80,
              "end": 85,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 22
                },
                "end": {
                  "line": 4,
                  "column": 27
                },
                "identifierName": "Apply"
              },
              "name": "Apply"
            },
            "local": {
              "type": "Identifier",
              "start": 80,
              "end": 85,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 22
                },
                "end": {
                  "line": 4,
                  "column": 27
                },
                "identifierName": "Apply"
              },
              "name": "Apply"
            }
          },
          {
            "type": "ImportSpecifier",
            "start": 87,
            "end": 92,
            "loc": {
              "start": {
                "line": 4,
                "column": 29
              },
              "end": {
                "line": 4,
                "column": 34
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 87,
              "end": 92,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 29
                },
                "end": {
                  "line": 4,
                  "column": 34
                },
                "identifierName": "Regex"
              },
              "name": "Regex"
            },
            "local": {
              "type": "Identifier",
              "start": 87,
              "end": 92,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 29
                },
                "end": {
                  "line": 4,
                  "column": 34
                },
                "identifierName": "Regex"
              },
              "name": "Regex"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 100,
          "end": 118,
          "loc": {
            "start": {
              "line": 4,
              "column": 42
            },
            "end": {
              "line": 4,
              "column": 60
            }
          },
          "extra": {
            "rawValue": "../interp/ast.js",
            "raw": "\"../interp/ast.js\""
          },
          "value": "../interp/ast.js"
        },
        "trailingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * Parser class. Iterates through the given string, tokenizes it and returns a AST tree.\n * @access public\n ",
            "start": 121,
            "end": 235,
            "loc": {
              "start": {
                "line": 6,
                "column": 0
              },
              "end": {
                "line": 9,
                "column": 3
              }
            }
          }
        ]
      },
      {
        "type": "Identifier",
        "start": 236,
        "end": 3238,
        "loc": {
          "start": {
            "line": 10,
            "column": 0
          },
          "end": {
            "line": 133,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 242,
          "end": 248,
          "loc": {
            "start": {
              "line": 10,
              "column": 6
            },
            "end": {
              "line": 10,
              "column": 12
            },
            "identifierName": "Parser"
          },
          "name": "Parser",
          "leadingComments": null
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 249,
          "end": 3238,
          "loc": {
            "start": {
              "line": 10,
              "column": 13
            },
            "end": {
              "line": 133,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 323,
              "end": 411,
              "loc": {
                "start": {
                  "line": 14,
                  "column": 2
                },
                "end": {
                  "line": 18,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 323,
                "end": 334,
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 2
                  },
                  "end": {
                    "line": 14,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor",
                "leadingComments": null
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 337,
                "end": 411,
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 16
                  },
                  "end": {
                    "line": 18,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 343,
                    "end": 358,
                    "loc": {
                      "start": {
                        "line": 15,
                        "column": 4
                      },
                      "end": {
                        "line": 15,
                        "column": 19
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 343,
                      "end": 357,
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 18
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 343,
                        "end": 353,
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 4
                          },
                          "end": {
                            "line": 15,
                            "column": 14
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 343,
                          "end": 347,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 4
                            },
                            "end": {
                              "line": 15,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 348,
                          "end": 353,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 9
                            },
                            "end": {
                              "line": 15,
                              "column": 14
                            },
                            "identifierName": "index"
                          },
                          "name": "index"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "NumericLiteral",
                        "start": 356,
                        "end": 357,
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 17
                          },
                          "end": {
                            "line": 15,
                            "column": 18
                          }
                        },
                        "extra": {
                          "rawValue": 0,
                          "raw": "0"
                        },
                        "value": 0
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 363,
                    "end": 380,
                    "loc": {
                      "start": {
                        "line": 16,
                        "column": 4
                      },
                      "end": {
                        "line": 16,
                        "column": 21
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 363,
                      "end": 379,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 16,
                          "column": 20
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 363,
                        "end": 374,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 4
                          },
                          "end": {
                            "line": 16,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 363,
                          "end": 367,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 16,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 368,
                          "end": 374,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 9
                            },
                            "end": {
                              "line": 16,
                              "column": 15
                            },
                            "identifierName": "tokens"
                          },
                          "name": "tokens"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "ArrayExpression",
                        "start": 377,
                        "end": 379,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 18
                          },
                          "end": {
                            "line": 16,
                            "column": 20
                          }
                        },
                        "elements": []
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 385,
                    "end": 407,
                    "loc": {
                      "start": {
                        "line": 17,
                        "column": 4
                      },
                      "end": {
                        "line": 17,
                        "column": 26
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 385,
                      "end": 406,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 4
                        },
                        "end": {
                          "line": 17,
                          "column": 25
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 385,
                        "end": 399,
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 4
                          },
                          "end": {
                            "line": 17,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 385,
                          "end": 389,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 4
                            },
                            "end": {
                              "line": 17,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 390,
                          "end": 399,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 9
                            },
                            "end": {
                              "line": 17,
                              "column": 18
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "NullLiteral",
                        "start": 402,
                        "end": 406,
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 21
                          },
                          "end": {
                            "line": 17,
                            "column": 25
                          }
                        }
                      }
                    }
                  }
                ],
                "directives": []
              },
              "leadingComments": [
                {
                  "type": "CommentBlock",
                  "value": "*\n   * Attributes used by the parser, set to default values\n   ",
                  "start": 253,
                  "end": 320,
                  "loc": {
                    "start": {
                      "line": 11,
                      "column": 2
                    },
                    "end": {
                      "line": 13,
                      "column": 5
                    }
                  }
                }
              ]
            },
            {
              "type": "ClassMethod",
              "start": 415,
              "end": 556,
              "loc": {
                "start": {
                  "line": 20,
                  "column": 2
                },
                "end": {
                  "line": 28,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 415,
                "end": 425,
                "loc": {
                  "start": {
                    "line": 20,
                    "column": 2
                  },
                  "end": {
                    "line": 20,
                    "column": 12
                  },
                  "identifierName": "setProgram"
                },
                "name": "setProgram"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 426,
                  "end": 433,
                  "loc": {
                    "start": {
                      "line": 20,
                      "column": 13
                    },
                    "end": {
                      "line": 20,
                      "column": 20
                    },
                    "identifierName": "program"
                  },
                  "name": "program"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 435,
                "end": 556,
                "loc": {
                  "start": {
                    "line": 20,
                    "column": 22
                  },
                  "end": {
                    "line": 28,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 441,
                    "end": 464,
                    "loc": {
                      "start": {
                        "line": 21,
                        "column": 4
                      },
                      "end": {
                        "line": 21,
                        "column": 27
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 441,
                      "end": 463,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 26
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 441,
                        "end": 453,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 16
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 441,
                          "end": 445,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 4
                            },
                            "end": {
                              "line": 21,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 446,
                          "end": 453,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 9
                            },
                            "end": {
                              "line": 21,
                              "column": 16
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 456,
                        "end": 463,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 19
                          },
                          "end": {
                            "line": 21,
                            "column": 26
                          },
                          "identifierName": "program"
                        },
                        "name": "program"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 470,
                    "end": 485,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 4
                      },
                      "end": {
                        "line": 23,
                        "column": 19
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 470,
                      "end": 484,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 4
                        },
                        "end": {
                          "line": 23,
                          "column": 18
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 470,
                        "end": 480,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 4
                          },
                          "end": {
                            "line": 23,
                            "column": 14
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 470,
                          "end": 474,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 4
                            },
                            "end": {
                              "line": 23,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 475,
                          "end": 480,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 9
                            },
                            "end": {
                              "line": 23,
                              "column": 14
                            },
                            "identifierName": "index"
                          },
                          "name": "index"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "NumericLiteral",
                        "start": 483,
                        "end": 484,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 17
                          },
                          "end": {
                            "line": 23,
                            "column": 18
                          }
                        },
                        "extra": {
                          "rawValue": 0,
                          "raw": "0"
                        },
                        "value": 0
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 490,
                    "end": 507,
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 4
                      },
                      "end": {
                        "line": 24,
                        "column": 21
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 490,
                      "end": 506,
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 4
                        },
                        "end": {
                          "line": 24,
                          "column": 20
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 490,
                        "end": 501,
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 4
                          },
                          "end": {
                            "line": 24,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 490,
                          "end": 494,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 4
                            },
                            "end": {
                              "line": 24,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 495,
                          "end": 501,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 9
                            },
                            "end": {
                              "line": 24,
                              "column": 15
                            },
                            "identifierName": "tokens"
                          },
                          "name": "tokens"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "ArrayExpression",
                        "start": 504,
                        "end": 506,
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 18
                          },
                          "end": {
                            "line": 24,
                            "column": 20
                          }
                        },
                        "elements": []
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 512,
                    "end": 534,
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 4
                      },
                      "end": {
                        "line": 25,
                        "column": 26
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 512,
                      "end": 533,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 4
                        },
                        "end": {
                          "line": 25,
                          "column": 25
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 512,
                        "end": 526,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 4
                          },
                          "end": {
                            "line": 25,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 512,
                          "end": 516,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 4
                            },
                            "end": {
                              "line": 25,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 517,
                          "end": 526,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 9
                            },
                            "end": {
                              "line": 25,
                              "column": 18
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "NullLiteral",
                        "start": 529,
                        "end": 533,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 21
                          },
                          "end": {
                            "line": 25,
                            "column": 25
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 540,
                    "end": 552,
                    "loc": {
                      "start": {
                        "line": 27,
                        "column": 4
                      },
                      "end": {
                        "line": 27,
                        "column": 16
                      }
                    },
                    "argument": {
                      "type": "ThisExpression",
                      "start": 547,
                      "end": 551,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 11
                        },
                        "end": {
                          "line": 27,
                          "column": 15
                        }
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 560,
              "end": 1004,
              "loc": {
                "start": {
                  "line": 30,
                  "column": 2
                },
                "end": {
                  "line": 49,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 560,
                "end": 565,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 2
                  },
                  "end": {
                    "line": 30,
                    "column": 7
                  },
                  "identifierName": "parse"
                },
                "name": "parse"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 566,
                  "end": 573,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 8
                    },
                    "end": {
                      "line": 30,
                      "column": 15
                    },
                    "identifierName": "program"
                  },
                  "name": "program"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 575,
                "end": 1004,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 17
                  },
                  "end": {
                    "line": 49,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 581,
                    "end": 606,
                    "loc": {
                      "start": {
                        "line": 31,
                        "column": 4
                      },
                      "end": {
                        "line": 31,
                        "column": 29
                      }
                    },
                    "expression": {
                      "type": "CallExpression",
                      "start": 581,
                      "end": 605,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 4
                        },
                        "end": {
                          "line": 31,
                          "column": 28
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 581,
                        "end": 596,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 4
                          },
                          "end": {
                            "line": 31,
                            "column": 19
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 581,
                          "end": 585,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 4
                            },
                            "end": {
                              "line": 31,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 586,
                          "end": 596,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 9
                            },
                            "end": {
                              "line": 31,
                              "column": 19
                            },
                            "identifierName": "setProgram"
                          },
                          "name": "setProgram"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 597,
                          "end": 604,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 20
                            },
                            "end": {
                              "line": 31,
                              "column": 27
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        }
                      ]
                    },
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Get array of tokens",
                        "start": 612,
                        "end": 634,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 4
                          },
                          "end": {
                            "line": 33,
                            "column": 26
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 639,
                    "end": 677,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 4
                      },
                      "end": {
                        "line": 34,
                        "column": 42
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 639,
                      "end": 676,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 4
                        },
                        "end": {
                          "line": 34,
                          "column": 41
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 639,
                        "end": 650,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 4
                          },
                          "end": {
                            "line": 34,
                            "column": 15
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 639,
                          "end": 643,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 4
                            },
                            "end": {
                              "line": 34,
                              "column": 8
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 644,
                          "end": 650,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 9
                            },
                            "end": {
                              "line": 34,
                              "column": 15
                            },
                            "identifierName": "tokens"
                          },
                          "name": "tokens"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 653,
                        "end": 676,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 18
                          },
                          "end": {
                            "line": 34,
                            "column": 41
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 653,
                          "end": 667,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 18
                            },
                            "end": {
                              "line": 34,
                              "column": 32
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 653,
                            "end": 658,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 18
                              },
                              "end": {
                                "line": 34,
                                "column": 23
                              },
                              "identifierName": "Lexer"
                            },
                            "name": "Lexer"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 659,
                            "end": 667,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 24
                              },
                              "end": {
                                "line": 34,
                                "column": 32
                              },
                              "identifierName": "tokenize"
                            },
                            "name": "tokenize"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 668,
                            "end": 675,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 33
                              },
                              "end": {
                                "line": 34,
                                "column": 40
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Get array of tokens",
                        "start": 612,
                        "end": 634,
                        "loc": {
                          "start": {
                            "line": 33,
                            "column": 4
                          },
                          "end": {
                            "line": 33,
                            "column": 26
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 683,
                    "end": 699,
                    "loc": {
                      "start": {
                        "line": 36,
                        "column": 4
                      },
                      "end": {
                        "line": 36,
                        "column": 20
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 687,
                        "end": 698,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 8
                          },
                          "end": {
                            "line": 36,
                            "column": 19
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 687,
                          "end": 691,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 12
                            },
                            "identifierName": "tree"
                          },
                          "name": "tree"
                        },
                        "init": {
                          "type": "NullLiteral",
                          "start": 694,
                          "end": 698,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 15
                            },
                            "end": {
                              "line": 36,
                              "column": 19
                            }
                          }
                        }
                      }
                    ],
                    "kind": "let",
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Parse if the array is not empty",
                        "start": 705,
                        "end": 739,
                        "loc": {
                          "start": {
                            "line": 38,
                            "column": 4
                          },
                          "end": {
                            "line": 38,
                            "column": 38
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "start": 744,
                    "end": 859,
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 4
                      },
                      "end": {
                        "line": 42,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 748,
                      "end": 770,
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 8
                        },
                        "end": {
                          "line": 39,
                          "column": 30
                        }
                      },
                      "left": {
                        "type": "MemberExpression",
                        "start": 748,
                        "end": 766,
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 8
                          },
                          "end": {
                            "line": 39,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 748,
                          "end": 759,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 8
                            },
                            "end": {
                              "line": 39,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 748,
                            "end": 752,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 8
                              },
                              "end": {
                                "line": 39,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 753,
                            "end": 759,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 13
                              },
                              "end": {
                                "line": 39,
                                "column": 19
                              },
                              "identifierName": "tokens"
                            },
                            "name": "tokens"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 760,
                          "end": 766,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 20
                            },
                            "end": {
                              "line": 39,
                              "column": 26
                            },
                            "identifierName": "length"
                          },
                          "name": "length"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "operator": ">",
                      "right": {
                        "type": "NumericLiteral",
                        "start": 769,
                        "end": 770,
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 29
                          },
                          "end": {
                            "line": 39,
                            "column": 30
                          }
                        },
                        "extra": {
                          "rawValue": 0,
                          "raw": "0"
                        },
                        "value": 0
                      },
                      "leadingComments": null
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 772,
                      "end": 859,
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 32
                        },
                        "end": {
                          "line": 42,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 780,
                          "end": 816,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 6
                            },
                            "end": {
                              "line": 40,
                              "column": 42
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 780,
                            "end": 815,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 6
                              },
                              "end": {
                                "line": 40,
                                "column": 41
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "MemberExpression",
                              "start": 780,
                              "end": 794,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 6
                                },
                                "end": {
                                  "line": 40,
                                  "column": 20
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 780,
                                "end": 784,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 10
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 785,
                                "end": 794,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 11
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 20
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "right": {
                              "type": "CallExpression",
                              "start": 797,
                              "end": 815,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 23
                                },
                                "end": {
                                  "line": 40,
                                  "column": 41
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 797,
                                "end": 813,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 39
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 797,
                                  "end": 801,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 27
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 802,
                                  "end": 813,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 39
                                    },
                                    "identifierName": "__nextToken"
                                  },
                                  "name": "__nextToken"
                                },
                                "computed": false
                              },
                              "arguments": []
                            }
                          }
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 823,
                          "end": 853,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 6
                            },
                            "end": {
                              "line": 41,
                              "column": 36
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 823,
                            "end": 852,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 6
                              },
                              "end": {
                                "line": 41,
                                "column": 35
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 823,
                              "end": 827,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 6
                                },
                                "end": {
                                  "line": 41,
                                  "column": 10
                                },
                                "identifierName": "tree"
                              },
                              "name": "tree"
                            },
                            "right": {
                              "type": "CallExpression",
                              "start": 830,
                              "end": 852,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 13
                                },
                                "end": {
                                  "line": 41,
                                  "column": 35
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 830,
                                "end": 850,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 830,
                                  "end": 834,
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 17
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 835,
                                  "end": 850,
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 33
                                    },
                                    "identifierName": "parseExpression"
                                  },
                                  "name": "parseExpression"
                                },
                                "computed": false
                              },
                              "arguments": []
                            }
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null,
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Parse if the array is not empty",
                        "start": 705,
                        "end": 739,
                        "loc": {
                          "start": {
                            "line": 38,
                            "column": 4
                          },
                          "end": {
                            "line": 38,
                            "column": 38
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "start": 865,
                    "end": 982,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 4
                      },
                      "end": {
                        "line": 46,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 869,
                      "end": 892,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 8
                        },
                        "end": {
                          "line": 44,
                          "column": 31
                        }
                      },
                      "left": {
                        "type": "MemberExpression",
                        "start": 869,
                        "end": 883,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 8
                          },
                          "end": {
                            "line": 44,
                            "column": 22
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 869,
                          "end": 873,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 8
                            },
                            "end": {
                              "line": 44,
                              "column": 12
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 874,
                          "end": 883,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 13
                            },
                            "end": {
                              "line": 44,
                              "column": 22
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false
                      },
                      "operator": "!==",
                      "right": {
                        "type": "NullLiteral",
                        "start": 888,
                        "end": 892,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 27
                          },
                          "end": {
                            "line": 44,
                            "column": 31
                          }
                        }
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 894,
                      "end": 982,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 33
                        },
                        "end": {
                          "line": 46,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ThrowStatement",
                          "start": 902,
                          "end": 976,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 6
                            },
                            "end": {
                              "line": 45,
                              "column": 80
                            }
                          },
                          "argument": {
                            "type": "CallExpression",
                            "start": 908,
                            "end": 975,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 12
                              },
                              "end": {
                                "line": 45,
                                "column": 79
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 908,
                              "end": 932,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 12
                                },
                                "end": {
                                  "line": 45,
                                  "column": 36
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 908,
                                "end": 912,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 16
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 913,
                                "end": 932,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 36
                                  },
                                  "identifierName": "__parserSyntaxError"
                                },
                                "name": "__parserSyntaxError"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "StringLiteral",
                                "start": 933,
                                "end": 974,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 78
                                  }
                                },
                                "extra": {
                                  "rawValue": "Unexpected input after the end of file.",
                                  "raw": "\"Unexpected input after the end of file.\""
                                },
                                "value": "Unexpected input after the end of file."
                              }
                            ]
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 988,
                    "end": 1000,
                    "loc": {
                      "start": {
                        "line": 48,
                        "column": 4
                      },
                      "end": {
                        "line": 48,
                        "column": 16
                      }
                    },
                    "argument": {
                      "type": "Identifier",
                      "start": 995,
                      "end": 999,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 11
                        },
                        "end": {
                          "line": 48,
                          "column": 15
                        },
                        "identifierName": "tree"
                      },
                      "name": "tree"
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 1008,
              "end": 1075,
              "loc": {
                "start": {
                  "line": 51,
                  "column": 2
                },
                "end": {
                  "line": 53,
                  "column": 3
                }
              },
              "static": true,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 1015,
                "end": 1020,
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 9
                  },
                  "end": {
                    "line": 51,
                    "column": 14
                  },
                  "identifierName": "parse"
                },
                "name": "parse"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 1021,
                  "end": 1028,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 15
                    },
                    "end": {
                      "line": 51,
                      "column": 22
                    },
                    "identifierName": "program"
                  },
                  "name": "program"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 1030,
                "end": 1075,
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 24
                  },
                  "end": {
                    "line": 53,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 1036,
                    "end": 1071,
                    "loc": {
                      "start": {
                        "line": 52,
                        "column": 4
                      },
                      "end": {
                        "line": 52,
                        "column": 39
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 1043,
                      "end": 1070,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 11
                        },
                        "end": {
                          "line": 52,
                          "column": 38
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 1043,
                        "end": 1061,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 11
                          },
                          "end": {
                            "line": 52,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "NewExpression",
                          "start": 1043,
                          "end": 1055,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 11
                            },
                            "end": {
                              "line": 52,
                              "column": 23
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 1047,
                            "end": 1053,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 15
                              },
                              "end": {
                                "line": 52,
                                "column": 21
                              },
                              "identifierName": "Parser"
                            },
                            "name": "Parser"
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1056,
                          "end": 1061,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 24
                            },
                            "end": {
                              "line": 52,
                              "column": 29
                            },
                            "identifierName": "parse"
                          },
                          "name": "parse"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 1062,
                          "end": 1069,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 30
                            },
                            "end": {
                              "line": 52,
                              "column": 37
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 1079,
              "end": 1188,
              "loc": {
                "start": {
                  "line": 55,
                  "column": 2
                },
                "end": {
                  "line": 59,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 1079,
                "end": 1092,
                "loc": {
                  "start": {
                    "line": 55,
                    "column": 2
                  },
                  "end": {
                    "line": 55,
                    "column": 15
                  },
                  "identifierName": "parseFromFile"
                },
                "name": "parseFromFile"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 1093,
                  "end": 1097,
                  "loc": {
                    "start": {
                      "line": 55,
                      "column": 16
                    },
                    "end": {
                      "line": 55,
                      "column": 20
                    },
                    "identifierName": "file"
                  },
                  "name": "file"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 1099,
                "end": 1188,
                "loc": {
                  "start": {
                    "line": 55,
                    "column": 22
                  },
                  "end": {
                    "line": 59,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 1105,
                    "end": 1151,
                    "loc": {
                      "start": {
                        "line": 56,
                        "column": 4
                      },
                      "end": {
                        "line": 56,
                        "column": 50
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 1111,
                        "end": 1150,
                        "loc": {
                          "start": {
                            "line": 56,
                            "column": 10
                          },
                          "end": {
                            "line": 56,
                            "column": 49
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 1111,
                          "end": 1118,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 10
                            },
                            "end": {
                              "line": 56,
                              "column": 17
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 1121,
                          "end": 1150,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 20
                            },
                            "end": {
                              "line": 56,
                              "column": 49
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1121,
                            "end": 1136,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 20
                              },
                              "end": {
                                "line": 56,
                                "column": 35
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1121,
                              "end": 1123,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 20
                                },
                                "end": {
                                  "line": 56,
                                  "column": 22
                                },
                                "identifierName": "fs"
                              },
                              "name": "fs"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1124,
                              "end": 1136,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 23
                                },
                                "end": {
                                  "line": 56,
                                  "column": 35
                                },
                                "identifierName": "readFileSync"
                              },
                              "name": "readFileSync"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1137,
                              "end": 1141,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 36
                                },
                                "end": {
                                  "line": 56,
                                  "column": 40
                                },
                                "identifierName": "file"
                              },
                              "name": "file"
                            },
                            {
                              "type": "StringLiteral",
                              "start": 1143,
                              "end": 1149,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 42
                                },
                                "end": {
                                  "line": 56,
                                  "column": 48
                                }
                              },
                              "extra": {
                                "rawValue": "utf8",
                                "raw": "\"utf8\""
                              },
                              "value": "utf8"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "const"
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1157,
                    "end": 1184,
                    "loc": {
                      "start": {
                        "line": 58,
                        "column": 4
                      },
                      "end": {
                        "line": 58,
                        "column": 31
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 1164,
                      "end": 1183,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 11
                        },
                        "end": {
                          "line": 58,
                          "column": 30
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 1164,
                        "end": 1174,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 11
                          },
                          "end": {
                            "line": 58,
                            "column": 21
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 1164,
                          "end": 1168,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 11
                            },
                            "end": {
                              "line": 58,
                              "column": 15
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1169,
                          "end": 1174,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 16
                            },
                            "end": {
                              "line": 58,
                              "column": 21
                            },
                            "identifierName": "parse"
                          },
                          "name": "parse"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 1175,
                          "end": 1182,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 22
                            },
                            "end": {
                              "line": 58,
                              "column": 29
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 1192,
              "end": 1269,
              "loc": {
                "start": {
                  "line": 61,
                  "column": 2
                },
                "end": {
                  "line": 63,
                  "column": 3
                }
              },
              "static": true,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 1199,
                "end": 1212,
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 9
                  },
                  "end": {
                    "line": 61,
                    "column": 22
                  },
                  "identifierName": "parseFromFile"
                },
                "name": "parseFromFile"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 1213,
                  "end": 1217,
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 23
                    },
                    "end": {
                      "line": 61,
                      "column": 27
                    },
                    "identifierName": "file"
                  },
                  "name": "file"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 1219,
                "end": 1269,
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 29
                  },
                  "end": {
                    "line": 63,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 1225,
                    "end": 1265,
                    "loc": {
                      "start": {
                        "line": 62,
                        "column": 4
                      },
                      "end": {
                        "line": 62,
                        "column": 44
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 1232,
                      "end": 1264,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 11
                        },
                        "end": {
                          "line": 62,
                          "column": 43
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 1232,
                        "end": 1258,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 11
                          },
                          "end": {
                            "line": 62,
                            "column": 37
                          }
                        },
                        "object": {
                          "type": "NewExpression",
                          "start": 1232,
                          "end": 1244,
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 11
                            },
                            "end": {
                              "line": 62,
                              "column": 23
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 1236,
                            "end": 1242,
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 15
                              },
                              "end": {
                                "line": 62,
                                "column": 21
                              },
                              "identifierName": "Parser"
                            },
                            "name": "Parser"
                          },
                          "arguments": []
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1245,
                          "end": 1258,
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 24
                            },
                            "end": {
                              "line": 62,
                              "column": 37
                            },
                            "identifierName": "parseFromFile"
                          },
                          "name": "parseFromFile"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 1259,
                          "end": 1263,
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 38
                            },
                            "end": {
                              "line": 62,
                              "column": 42
                            },
                            "identifierName": "file"
                          },
                          "name": "file"
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 1273,
              "end": 1943,
              "loc": {
                "start": {
                  "line": 65,
                  "column": 2
                },
                "end": {
                  "line": 82,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 1273,
                "end": 1288,
                "loc": {
                  "start": {
                    "line": 65,
                    "column": 2
                  },
                  "end": {
                    "line": 65,
                    "column": 17
                  },
                  "identifierName": "parseExpression"
                },
                "name": "parseExpression"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 1291,
                "end": 1943,
                "loc": {
                  "start": {
                    "line": 65,
                    "column": 20
                  },
                  "end": {
                    "line": 82,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 1297,
                    "end": 1306,
                    "loc": {
                      "start": {
                        "line": 66,
                        "column": 4
                      },
                      "end": {
                        "line": 66,
                        "column": 13
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 1301,
                        "end": 1305,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 8
                          },
                          "end": {
                            "line": 66,
                            "column": 12
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 1301,
                          "end": 1305,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 12
                            },
                            "identifierName": "expr"
                          },
                          "name": "expr"
                        },
                        "init": null
                      }
                    ],
                    "kind": "let"
                  },
                  {
                    "type": "IfStatement",
                    "start": 1311,
                    "end": 1904,
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 4
                      },
                      "end": {
                        "line": 79,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 1315,
                      "end": 1347,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 8
                        },
                        "end": {
                          "line": 67,
                          "column": 40
                        }
                      },
                      "left": {
                        "type": "MemberExpression",
                        "start": 1315,
                        "end": 1334,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 8
                          },
                          "end": {
                            "line": 67,
                            "column": 27
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 1315,
                          "end": 1329,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1315,
                            "end": 1319,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 8
                              },
                              "end": {
                                "line": 67,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1320,
                            "end": 1329,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 13
                              },
                              "end": {
                                "line": 67,
                                "column": 22
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1330,
                          "end": 1334,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 23
                            },
                            "end": {
                              "line": 67,
                              "column": 27
                            },
                            "identifierName": "type"
                          },
                          "name": "type"
                        },
                        "computed": false
                      },
                      "operator": "===",
                      "right": {
                        "type": "StringLiteral",
                        "start": 1339,
                        "end": 1347,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 32
                          },
                          "end": {
                            "line": 67,
                            "column": 40
                          }
                        },
                        "extra": {
                          "rawValue": "STRING",
                          "raw": "\"STRING\""
                        },
                        "value": "STRING"
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 1349,
                      "end": 1396,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 42
                        },
                        "end": {
                          "line": 69,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ExpressionStatement",
                          "start": 1357,
                          "end": 1390,
                          "loc": {
                            "start": {
                              "line": 68,
                              "column": 6
                            },
                            "end": {
                              "line": 68,
                              "column": 39
                            }
                          },
                          "expression": {
                            "type": "AssignmentExpression",
                            "start": 1357,
                            "end": 1389,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 6
                              },
                              "end": {
                                "line": 68,
                                "column": 38
                              }
                            },
                            "operator": "=",
                            "left": {
                              "type": "Identifier",
                              "start": 1357,
                              "end": 1361,
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 6
                                },
                                "end": {
                                  "line": 68,
                                  "column": 10
                                },
                                "identifierName": "expr"
                              },
                              "name": "expr"
                            },
                            "right": {
                              "type": "NewExpression",
                              "start": 1364,
                              "end": 1389,
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 13
                                },
                                "end": {
                                  "line": 68,
                                  "column": 38
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1368,
                                "end": 1373,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 22
                                  },
                                  "identifierName": "Value"
                                },
                                "name": "Value"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1374,
                                  "end": 1388,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 37
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1374,
                                    "end": 1378,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 27
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1379,
                                    "end": 1388,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 37
                                      },
                                      "identifierName": "lookahead"
                                    },
                                    "name": "lookahead"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": {
                      "type": "IfStatement",
                      "start": 1402,
                      "end": 1904,
                      "loc": {
                        "start": {
                          "line": 69,
                          "column": 11
                        },
                        "end": {
                          "line": 79,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1406,
                        "end": 1438,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 15
                          },
                          "end": {
                            "line": 69,
                            "column": 47
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 1406,
                          "end": 1425,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 15
                            },
                            "end": {
                              "line": 69,
                              "column": 34
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1406,
                            "end": 1420,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 15
                              },
                              "end": {
                                "line": 69,
                                "column": 29
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1406,
                              "end": 1410,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 15
                                },
                                "end": {
                                  "line": 69,
                                  "column": 19
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1411,
                              "end": 1420,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 20
                                },
                                "end": {
                                  "line": 69,
                                  "column": 29
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1421,
                            "end": 1425,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 30
                              },
                              "end": {
                                "line": 69,
                                "column": 34
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 1430,
                          "end": 1438,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 39
                            },
                            "end": {
                              "line": 69,
                              "column": 47
                            }
                          },
                          "extra": {
                            "rawValue": "NUMBER",
                            "raw": "\"NUMBER\""
                          },
                          "value": "NUMBER"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1440,
                        "end": 1546,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 49
                          },
                          "end": {
                            "line": 72,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 1448,
                            "end": 1500,
                            "loc": {
                              "start": {
                                "line": 70,
                                "column": 6
                              },
                              "end": {
                                "line": 70,
                                "column": 58
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 1448,
                              "end": 1499,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 6
                                },
                                "end": {
                                  "line": 70,
                                  "column": 57
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 1448,
                                "end": 1468,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 26
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 1448,
                                  "end": 1462,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 20
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1448,
                                    "end": 1452,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 10
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1453,
                                    "end": 1462,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 20
                                      },
                                      "identifierName": "lookahead"
                                    },
                                    "name": "lookahead"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1463,
                                  "end": 1468,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 26
                                    },
                                    "identifierName": "value"
                                  },
                                  "name": "value"
                                },
                                "computed": false
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 1471,
                                "end": 1499,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 57
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 1471,
                                  "end": 1477,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 35
                                    },
                                    "identifierName": "Number"
                                  },
                                  "name": "Number"
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1478,
                                    "end": 1498,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 56
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 1478,
                                      "end": 1492,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 50
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1478,
                                        "end": 1482,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 40
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1483,
                                        "end": 1492,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 50
                                          },
                                          "identifierName": "lookahead"
                                        },
                                        "name": "lookahead"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1493,
                                      "end": 1498,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 56
                                        },
                                        "identifierName": "value"
                                      },
                                      "name": "value"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 1507,
                            "end": 1540,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 6
                              },
                              "end": {
                                "line": 71,
                                "column": 39
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 1507,
                              "end": 1539,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 6
                                },
                                "end": {
                                  "line": 71,
                                  "column": 38
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1507,
                                "end": 1511,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 10
                                  },
                                  "identifierName": "expr"
                                },
                                "name": "expr"
                              },
                              "right": {
                                "type": "NewExpression",
                                "start": 1514,
                                "end": 1539,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 1518,
                                  "end": 1523,
                                  "loc": {
                                    "start": {
                                      "line": 71,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 71,
                                      "column": 22
                                    },
                                    "identifierName": "Value"
                                  },
                                  "name": "Value"
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1524,
                                    "end": 1538,
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 37
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1524,
                                      "end": 1528,
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1529,
                                      "end": 1538,
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 37
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": {
                        "type": "IfStatement",
                        "start": 1552,
                        "end": 1904,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 11
                          },
                          "end": {
                            "line": 79,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 1556,
                          "end": 1587,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 15
                            },
                            "end": {
                              "line": 72,
                              "column": 46
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 1556,
                            "end": 1575,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 15
                              },
                              "end": {
                                "line": 72,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1556,
                              "end": 1570,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 15
                                },
                                "end": {
                                  "line": 72,
                                  "column": 29
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1556,
                                "end": 1560,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 19
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1561,
                                "end": 1570,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 29
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1571,
                              "end": 1575,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 30
                                },
                                "end": {
                                  "line": 72,
                                  "column": 34
                                },
                                "identifierName": "type"
                              },
                              "name": "type"
                            },
                            "computed": false
                          },
                          "operator": "===",
                          "right": {
                            "type": "StringLiteral",
                            "start": 1580,
                            "end": 1587,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 39
                              },
                              "end": {
                                "line": 72,
                                "column": 46
                              }
                            },
                            "extra": {
                              "rawValue": "REGEX",
                              "raw": "\"REGEX\""
                            },
                            "value": "REGEX"
                          }
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 1589,
                          "end": 1713,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 48
                            },
                            "end": {
                              "line": 75,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "VariableDeclaration",
                              "start": 1597,
                              "end": 1644,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 6
                                },
                                "end": {
                                  "line": 73,
                                  "column": 53
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 1603,
                                  "end": 1643,
                                  "loc": {
                                    "start": {
                                      "line": 73,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 73,
                                      "column": 52
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 1603,
                                    "end": 1609,
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 18
                                      },
                                      "identifierName": "fields"
                                    },
                                    "name": "fields"
                                  },
                                  "init": {
                                    "type": "CallExpression",
                                    "start": 1612,
                                    "end": 1643,
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 52
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 1612,
                                      "end": 1638,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 47
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 1612,
                                        "end": 1632,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 41
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 1612,
                                          "end": 1626,
                                          "loc": {
                                            "start": {
                                              "line": 73,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 73,
                                              "column": 35
                                            }
                                          },
                                          "object": {
                                            "type": "ThisExpression",
                                            "start": 1612,
                                            "end": 1616,
                                            "loc": {
                                              "start": {
                                                "line": 73,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 73,
                                                "column": 25
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 1617,
                                            "end": 1626,
                                            "loc": {
                                              "start": {
                                                "line": 73,
                                                "column": 26
                                              },
                                              "end": {
                                                "line": 73,
                                                "column": 35
                                              },
                                              "identifierName": "lookahead"
                                            },
                                            "name": "lookahead"
                                          },
                                          "computed": false
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1627,
                                          "end": 1632,
                                          "loc": {
                                            "start": {
                                              "line": 73,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 73,
                                              "column": 41
                                            },
                                            "identifierName": "value"
                                          },
                                          "name": "value"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1633,
                                        "end": 1638,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 42
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 47
                                          },
                                          "identifierName": "split"
                                        },
                                        "name": "split"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "StringLiteral",
                                        "start": 1639,
                                        "end": 1642,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 48
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 51
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "/",
                                          "raw": "\"/\""
                                        },
                                        "value": "/"
                                      }
                                    ]
                                  }
                                }
                              ],
                              "kind": "const"
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 1651,
                              "end": 1707,
                              "loc": {
                                "start": {
                                  "line": 74,
                                  "column": 6
                                },
                                "end": {
                                  "line": 74,
                                  "column": 62
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 1651,
                                "end": 1706,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 61
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 1651,
                                  "end": 1655,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 10
                                    },
                                    "identifierName": "expr"
                                  },
                                  "name": "expr"
                                },
                                "right": {
                                  "type": "NewExpression",
                                  "start": 1658,
                                  "end": 1706,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 61
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 1662,
                                    "end": 1667,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 22
                                      },
                                      "identifierName": "Regex"
                                    },
                                    "name": "Regex"
                                  },
                                  "arguments": [
                                    {
                                      "type": "ObjectExpression",
                                      "start": 1668,
                                      "end": 1705,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 60
                                        }
                                      },
                                      "properties": [
                                        {
                                          "type": "ObjectProperty",
                                          "start": 1670,
                                          "end": 1685,
                                          "loc": {
                                            "start": {
                                              "line": 74,
                                              "column": 25
                                            },
                                            "end": {
                                              "line": 74,
                                              "column": 40
                                            }
                                          },
                                          "method": false,
                                          "shorthand": false,
                                          "computed": false,
                                          "key": {
                                            "type": "Identifier",
                                            "start": 1670,
                                            "end": 1674,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 29
                                              },
                                              "identifierName": "body"
                                            },
                                            "name": "body"
                                          },
                                          "value": {
                                            "type": "MemberExpression",
                                            "start": 1676,
                                            "end": 1685,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 31
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 40
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 1676,
                                              "end": 1682,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 31
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 37
                                                },
                                                "identifierName": "fields"
                                              },
                                              "name": "fields"
                                            },
                                            "property": {
                                              "type": "NumericLiteral",
                                              "start": 1683,
                                              "end": 1684,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 39
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 1,
                                                "raw": "1"
                                              },
                                              "value": 1
                                            },
                                            "computed": true
                                          }
                                        },
                                        {
                                          "type": "ObjectProperty",
                                          "start": 1687,
                                          "end": 1703,
                                          "loc": {
                                            "start": {
                                              "line": 74,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 74,
                                              "column": 58
                                            }
                                          },
                                          "method": false,
                                          "shorthand": false,
                                          "computed": false,
                                          "key": {
                                            "type": "Identifier",
                                            "start": 1687,
                                            "end": 1692,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 42
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 47
                                              },
                                              "identifierName": "flags"
                                            },
                                            "name": "flags"
                                          },
                                          "value": {
                                            "type": "MemberExpression",
                                            "start": 1694,
                                            "end": 1703,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 49
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 58
                                              }
                                            },
                                            "object": {
                                              "type": "Identifier",
                                              "start": 1694,
                                              "end": 1700,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 49
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 55
                                                },
                                                "identifierName": "fields"
                                              },
                                              "name": "fields"
                                            },
                                            "property": {
                                              "type": "NumericLiteral",
                                              "start": 1701,
                                              "end": 1702,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 56
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 57
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 2,
                                                "raw": "2"
                                              },
                                              "value": 2
                                            },
                                            "computed": true
                                          }
                                        }
                                      ]
                                    }
                                  ]
                                }
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": {
                          "type": "IfStatement",
                          "start": 1719,
                          "end": 1904,
                          "loc": {
                            "start": {
                              "line": 75,
                              "column": 11
                            },
                            "end": {
                              "line": 79,
                              "column": 5
                            }
                          },
                          "test": {
                            "type": "BinaryExpression",
                            "start": 1723,
                            "end": 1753,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 15
                              },
                              "end": {
                                "line": 75,
                                "column": 45
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 1723,
                              "end": 1742,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 15
                                },
                                "end": {
                                  "line": 75,
                                  "column": 34
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1723,
                                "end": 1737,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 29
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1723,
                                  "end": 1727,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 19
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1728,
                                  "end": 1737,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 29
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1738,
                                "end": 1742,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 34
                                  },
                                  "identifierName": "type"
                                },
                                "name": "type"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "StringLiteral",
                              "start": 1747,
                              "end": 1753,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 39
                                },
                                "end": {
                                  "line": 75,
                                  "column": 45
                                }
                              },
                              "extra": {
                                "rawValue": "WORD",
                                "raw": "\"WORD\""
                              },
                              "value": "WORD"
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 1755,
                            "end": 1801,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 47
                              },
                              "end": {
                                "line": 77,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 1763,
                                "end": 1795,
                                "loc": {
                                  "start": {
                                    "line": 76,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 76,
                                    "column": 38
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 1763,
                                  "end": 1794,
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 37
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 1763,
                                    "end": 1767,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 10
                                      },
                                      "identifierName": "expr"
                                    },
                                    "name": "expr"
                                  },
                                  "right": {
                                    "type": "NewExpression",
                                    "start": 1770,
                                    "end": 1794,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 37
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 1774,
                                      "end": 1778,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 21
                                        },
                                        "identifierName": "Word"
                                      },
                                      "name": "Word"
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "start": 1779,
                                        "end": 1793,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 36
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 1779,
                                          "end": 1783,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 26
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1784,
                                          "end": 1793,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 36
                                            },
                                            "identifierName": "lookahead"
                                          },
                                          "name": "lookahead"
                                        },
                                        "computed": false
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "directives": []
                          },
                          "alternate": {
                            "type": "BlockStatement",
                            "start": 1807,
                            "end": 1904,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 11
                              },
                              "end": {
                                "line": 79,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "ThrowStatement",
                                "start": 1815,
                                "end": 1898,
                                "loc": {
                                  "start": {
                                    "line": 78,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 78,
                                    "column": 89
                                  }
                                },
                                "argument": {
                                  "type": "CallExpression",
                                  "start": 1821,
                                  "end": 1897,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 88
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1821,
                                    "end": 1845,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 36
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1821,
                                      "end": 1825,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 16
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1826,
                                      "end": 1845,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 36
                                        },
                                        "identifierName": "__parserSyntaxError"
                                      },
                                      "name": "__parserSyntaxError"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "StringLiteral",
                                      "start": 1846,
                                      "end": 1896,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 87
                                        }
                                      },
                                      "extra": {
                                        "rawValue": "Unrecognized token while parsing the expression.",
                                        "raw": "\"Unrecognized token while parsing the expression.\""
                                      },
                                      "value": "Unrecognized token while parsing the expression."
                                    }
                                  ]
                                }
                              }
                            ],
                            "directives": []
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 1910,
                    "end": 1939,
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 4
                      },
                      "end": {
                        "line": 81,
                        "column": 33
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 1917,
                      "end": 1938,
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 11
                        },
                        "end": {
                          "line": 81,
                          "column": 32
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 1917,
                        "end": 1932,
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 11
                          },
                          "end": {
                            "line": 81,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 1917,
                          "end": 1921,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 11
                            },
                            "end": {
                              "line": 81,
                              "column": 15
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1922,
                          "end": 1932,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 16
                            },
                            "end": {
                              "line": 81,
                              "column": 26
                            },
                            "identifierName": "parseApply"
                          },
                          "name": "parseApply"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 1933,
                          "end": 1937,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 27
                            },
                            "end": {
                              "line": 81,
                              "column": 31
                            },
                            "identifierName": "expr"
                          },
                          "name": "expr"
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 1947,
              "end": 2844,
              "loc": {
                "start": {
                  "line": 84,
                  "column": 2
                },
                "end": {
                  "line": 115,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 1947,
                "end": 1957,
                "loc": {
                  "start": {
                    "line": 84,
                    "column": 2
                  },
                  "end": {
                    "line": 84,
                    "column": 12
                  },
                  "identifierName": "parseApply"
                },
                "name": "parseApply"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 1958,
                  "end": 1962,
                  "loc": {
                    "start": {
                      "line": 84,
                      "column": 13
                    },
                    "end": {
                      "line": 84,
                      "column": 17
                    },
                    "identifierName": "expr"
                  },
                  "name": "expr"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 1964,
                "end": 2844,
                "loc": {
                  "start": {
                    "line": 84,
                    "column": 19
                  },
                  "end": {
                    "line": 115,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 1992,
                    "end": 2028,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 4
                      },
                      "end": {
                        "line": 86,
                        "column": 40
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 1992,
                      "end": 2027,
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 4
                        },
                        "end": {
                          "line": 86,
                          "column": 39
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 1992,
                        "end": 2006,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 4
                          },
                          "end": {
                            "line": 86,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 1992,
                          "end": 1996,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 8
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1997,
                          "end": 2006,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 9
                            },
                            "end": {
                              "line": 86,
                              "column": 18
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 2009,
                        "end": 2027,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 21
                          },
                          "end": {
                            "line": 86,
                            "column": 39
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2009,
                          "end": 2025,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 21
                            },
                            "end": {
                              "line": 86,
                              "column": 37
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2009,
                            "end": 2013,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 21
                              },
                              "end": {
                                "line": 86,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2014,
                            "end": 2025,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 26
                              },
                              "end": {
                                "line": 86,
                                "column": 37
                              },
                              "identifierName": "__nextToken"
                            },
                            "name": "__nextToken"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "leadingComments": null
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Get next token",
                        "start": 1970,
                        "end": 1987,
                        "loc": {
                          "start": {
                            "line": 85,
                            "column": 4
                          },
                          "end": {
                            "line": 85,
                            "column": 21
                          }
                        }
                      }
                    ],
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Return if apply is empty (not left parenthesis or null)",
                        "start": 2034,
                        "end": 2092,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 4
                          },
                          "end": {
                            "line": 88,
                            "column": 62
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "IfStatement",
                    "start": 2097,
                    "end": 2176,
                    "loc": {
                      "start": {
                        "line": 89,
                        "column": 4
                      },
                      "end": {
                        "line": 91,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "LogicalExpression",
                      "start": 2101,
                      "end": 2148,
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 8
                        },
                        "end": {
                          "line": 89,
                          "column": 55
                        }
                      },
                      "left": {
                        "type": "UnaryExpression",
                        "start": 2101,
                        "end": 2116,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 8
                          },
                          "end": {
                            "line": 89,
                            "column": 23
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "MemberExpression",
                          "start": 2102,
                          "end": 2116,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 9
                            },
                            "end": {
                              "line": 89,
                              "column": 23
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2102,
                            "end": 2106,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 9
                              },
                              "end": {
                                "line": 89,
                                "column": 13
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2107,
                            "end": 2116,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 14
                              },
                              "end": {
                                "line": 89,
                                "column": 23
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        },
                        "leadingComments": null
                      },
                      "operator": "||",
                      "right": {
                        "type": "BinaryExpression",
                        "start": 2120,
                        "end": 2148,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 27
                          },
                          "end": {
                            "line": 89,
                            "column": 55
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2120,
                          "end": 2139,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 27
                            },
                            "end": {
                              "line": 89,
                              "column": 46
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2120,
                            "end": 2134,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 27
                              },
                              "end": {
                                "line": 89,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2120,
                              "end": 2124,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 27
                                },
                                "end": {
                                  "line": 89,
                                  "column": 31
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2125,
                              "end": 2134,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 32
                                },
                                "end": {
                                  "line": 89,
                                  "column": 41
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2135,
                            "end": 2139,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 42
                              },
                              "end": {
                                "line": 89,
                                "column": 46
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "StringLiteral",
                          "start": 2144,
                          "end": 2148,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 51
                            },
                            "end": {
                              "line": 89,
                              "column": 55
                            }
                          },
                          "extra": {
                            "rawValue": "LP",
                            "raw": "\"LP\""
                          },
                          "value": "LP"
                        }
                      },
                      "leadingComments": null
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 2150,
                      "end": 2176,
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 57
                        },
                        "end": {
                          "line": 91,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ReturnStatement",
                          "start": 2158,
                          "end": 2170,
                          "loc": {
                            "start": {
                              "line": 90,
                              "column": 6
                            },
                            "end": {
                              "line": 90,
                              "column": 18
                            }
                          },
                          "argument": {
                            "type": "Identifier",
                            "start": 2165,
                            "end": 2169,
                            "loc": {
                              "start": {
                                "line": 90,
                                "column": 13
                              },
                              "end": {
                                "line": 90,
                                "column": 17
                              },
                              "identifierName": "expr"
                            },
                            "name": "expr"
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null,
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Return if apply is empty (not left parenthesis or null)",
                        "start": 2034,
                        "end": 2092,
                        "loc": {
                          "start": {
                            "line": 88,
                            "column": 4
                          },
                          "end": {
                            "line": 88,
                            "column": 62
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 2182,
                    "end": 2209,
                    "loc": {
                      "start": {
                        "line": 93,
                        "column": 4
                      },
                      "end": {
                        "line": 93,
                        "column": 31
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 2186,
                        "end": 2208,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 8
                          },
                          "end": {
                            "line": 93,
                            "column": 30
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 2186,
                          "end": 2190,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 8
                            },
                            "end": {
                              "line": 93,
                              "column": 12
                            },
                            "identifierName": "tree"
                          },
                          "name": "tree"
                        },
                        "init": {
                          "type": "NewExpression",
                          "start": 2193,
                          "end": 2208,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 15
                            },
                            "end": {
                              "line": 93,
                              "column": 30
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 2197,
                            "end": 2202,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 19
                              },
                              "end": {
                                "line": 93,
                                "column": 24
                              },
                              "identifierName": "Apply"
                            },
                            "name": "Apply"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 2203,
                              "end": 2207,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 25
                                },
                                "end": {
                                  "line": 93,
                                  "column": 29
                                },
                                "identifierName": "expr"
                              },
                              "name": "expr"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "let"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 2215,
                    "end": 2251,
                    "loc": {
                      "start": {
                        "line": 95,
                        "column": 4
                      },
                      "end": {
                        "line": 95,
                        "column": 40
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 2215,
                      "end": 2250,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 4
                        },
                        "end": {
                          "line": 95,
                          "column": 39
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 2215,
                        "end": 2229,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 4
                          },
                          "end": {
                            "line": 95,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2215,
                          "end": 2219,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 4
                            },
                            "end": {
                              "line": 95,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2220,
                          "end": 2229,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 9
                            },
                            "end": {
                              "line": 95,
                              "column": 18
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 2232,
                        "end": 2250,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 21
                          },
                          "end": {
                            "line": 95,
                            "column": 39
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2232,
                          "end": 2248,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 21
                            },
                            "end": {
                              "line": 95,
                              "column": 37
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2232,
                            "end": 2236,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 21
                              },
                              "end": {
                                "line": 95,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2237,
                            "end": 2248,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 26
                              },
                              "end": {
                                "line": 95,
                                "column": 37
                              },
                              "identifierName": "__nextToken"
                            },
                            "name": "__nextToken"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    "trailingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Parse all arguments inside the parenthesis",
                        "start": 2256,
                        "end": 2301,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 4
                          },
                          "end": {
                            "line": 96,
                            "column": 49
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "WhileStatement",
                    "start": 2306,
                    "end": 2805,
                    "loc": {
                      "start": {
                        "line": 97,
                        "column": 4
                      },
                      "end": {
                        "line": 112,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "LogicalExpression",
                      "start": 2313,
                      "end": 2359,
                      "loc": {
                        "start": {
                          "line": 97,
                          "column": 11
                        },
                        "end": {
                          "line": 97,
                          "column": 57
                        }
                      },
                      "left": {
                        "type": "MemberExpression",
                        "start": 2313,
                        "end": 2327,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 11
                          },
                          "end": {
                            "line": 97,
                            "column": 25
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2313,
                          "end": 2317,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 11
                            },
                            "end": {
                              "line": 97,
                              "column": 15
                            }
                          },
                          "leadingComments": null
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2318,
                          "end": 2327,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 16
                            },
                            "end": {
                              "line": 97,
                              "column": 25
                            },
                            "identifierName": "lookahead"
                          },
                          "name": "lookahead"
                        },
                        "computed": false,
                        "leadingComments": null
                      },
                      "operator": "&&",
                      "right": {
                        "type": "BinaryExpression",
                        "start": 2331,
                        "end": 2359,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 29
                          },
                          "end": {
                            "line": 97,
                            "column": 57
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2331,
                          "end": 2350,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 29
                            },
                            "end": {
                              "line": 97,
                              "column": 48
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2331,
                            "end": 2345,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 29
                              },
                              "end": {
                                "line": 97,
                                "column": 43
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2331,
                              "end": 2335,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 29
                                },
                                "end": {
                                  "line": 97,
                                  "column": 33
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2336,
                              "end": 2345,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 34
                                },
                                "end": {
                                  "line": 97,
                                  "column": 43
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2346,
                            "end": 2350,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 44
                              },
                              "end": {
                                "line": 97,
                                "column": 48
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "StringLiteral",
                          "start": 2355,
                          "end": 2359,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 53
                            },
                            "end": {
                              "line": 97,
                              "column": 57
                            }
                          },
                          "extra": {
                            "rawValue": "RP",
                            "raw": "\"RP\""
                          },
                          "value": "RP"
                        }
                      },
                      "leadingComments": null
                    },
                    "body": {
                      "type": "BlockStatement",
                      "start": 2361,
                      "end": 2805,
                      "loc": {
                        "start": {
                          "line": 97,
                          "column": 59
                        },
                        "end": {
                          "line": 112,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "VariableDeclaration",
                          "start": 2369,
                          "end": 2402,
                          "loc": {
                            "start": {
                              "line": 98,
                              "column": 6
                            },
                            "end": {
                              "line": 98,
                              "column": 39
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 2373,
                              "end": 2401,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 10
                                },
                                "end": {
                                  "line": 98,
                                  "column": 38
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 2373,
                                "end": 2376,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 13
                                  },
                                  "identifierName": "arg"
                                },
                                "name": "arg"
                              },
                              "init": {
                                "type": "CallExpression",
                                "start": 2379,
                                "end": 2401,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2379,
                                  "end": 2399,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 36
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2379,
                                    "end": 2383,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 20
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2384,
                                    "end": 2399,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 36
                                      },
                                      "identifierName": "parseExpression"
                                    },
                                    "name": "parseExpression"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        {
                          "type": "ExpressionStatement",
                          "start": 2409,
                          "end": 2429,
                          "loc": {
                            "start": {
                              "line": 99,
                              "column": 6
                            },
                            "end": {
                              "line": 99,
                              "column": 26
                            }
                          },
                          "expression": {
                            "type": "CallExpression",
                            "start": 2409,
                            "end": 2428,
                            "loc": {
                              "start": {
                                "line": 99,
                                "column": 6
                              },
                              "end": {
                                "line": 99,
                                "column": 25
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2409,
                              "end": 2423,
                              "loc": {
                                "start": {
                                  "line": 99,
                                  "column": 6
                                },
                                "end": {
                                  "line": 99,
                                  "column": 20
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 2409,
                                "end": 2418,
                                "loc": {
                                  "start": {
                                    "line": 99,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 15
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 2409,
                                  "end": 2413,
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 10
                                    },
                                    "identifierName": "tree"
                                  },
                                  "name": "tree"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2414,
                                  "end": 2418,
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 11
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 15
                                    },
                                    "identifierName": "args"
                                  },
                                  "name": "args"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2419,
                                "end": 2423,
                                "loc": {
                                  "start": {
                                    "line": 99,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 20
                                  },
                                  "identifierName": "push"
                                },
                                "name": "push"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2424,
                                "end": 2427,
                                "loc": {
                                  "start": {
                                    "line": 99,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 24
                                  },
                                  "identifierName": "arg"
                                },
                                "name": "arg"
                              }
                            ]
                          }
                        },
                        {
                          "type": "IfStatement",
                          "start": 2437,
                          "end": 2639,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 6
                            },
                            "end": {
                              "line": 106,
                              "column": 7
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 2450,
                            "end": 2542,
                            "loc": {
                              "start": {
                                "line": 102,
                                "column": 8
                              },
                              "end": {
                                "line": 103,
                                "column": 73
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 2450,
                              "end": 2465,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 8
                                },
                                "end": {
                                  "line": 102,
                                  "column": 23
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 2451,
                                "end": 2465,
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 23
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2451,
                                  "end": 2455,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 13
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2456,
                                  "end": 2465,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 23
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "operator": "||",
                            "right": {
                              "type": "LogicalExpression",
                              "start": 2478,
                              "end": 2541,
                              "loc": {
                                "start": {
                                  "line": 103,
                                  "column": 9
                                },
                                "end": {
                                  "line": 103,
                                  "column": 72
                                }
                              },
                              "left": {
                                "type": "BinaryExpression",
                                "start": 2478,
                                "end": 2509,
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 40
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2478,
                                  "end": 2497,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 28
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2478,
                                    "end": 2492,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 9
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2478,
                                      "end": 2482,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 9
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 13
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2483,
                                      "end": 2492,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 23
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2493,
                                    "end": 2497,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 24
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 28
                                      },
                                      "identifierName": "type"
                                    },
                                    "name": "type"
                                  },
                                  "computed": false
                                },
                                "operator": "!==",
                                "right": {
                                  "type": "StringLiteral",
                                  "start": 2502,
                                  "end": 2509,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 40
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "COMMA",
                                    "raw": "\"COMMA\""
                                  },
                                  "value": "COMMA"
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "BinaryExpression",
                                "start": 2513,
                                "end": 2541,
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 72
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2513,
                                  "end": 2532,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 63
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2513,
                                    "end": 2527,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 58
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2513,
                                      "end": 2517,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 48
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2518,
                                      "end": 2527,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 49
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 58
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2528,
                                    "end": 2532,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 59
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 63
                                      },
                                      "identifierName": "type"
                                    },
                                    "name": "type"
                                  },
                                  "computed": false
                                },
                                "operator": "!==",
                                "right": {
                                  "type": "StringLiteral",
                                  "start": 2537,
                                  "end": 2541,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 68
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 72
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "RP",
                                    "raw": "\"RP\""
                                  },
                                  "value": "RP"
                                }
                              },
                              "extra": {
                                "parenthesized": true,
                                "parenStart": 2477
                              }
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 2551,
                            "end": 2639,
                            "loc": {
                              "start": {
                                "line": 104,
                                "column": 8
                              },
                              "end": {
                                "line": 106,
                                "column": 7
                              }
                            },
                            "body": [
                              {
                                "type": "ThrowStatement",
                                "start": 2561,
                                "end": 2631,
                                "loc": {
                                  "start": {
                                    "line": 105,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 105,
                                    "column": 78
                                  }
                                },
                                "argument": {
                                  "type": "CallExpression",
                                  "start": 2567,
                                  "end": 2630,
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 77
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2567,
                                    "end": 2591,
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 38
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2567,
                                      "end": 2571,
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2572,
                                      "end": 2591,
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 38
                                        },
                                        "identifierName": "__parserSyntaxError"
                                      },
                                      "name": "__parserSyntaxError"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "TemplateLiteral",
                                      "start": 2592,
                                      "end": 2629,
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 39
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 76
                                        }
                                      },
                                      "expressions": [],
                                      "quasis": [
                                        {
                                          "type": "TemplateElement",
                                          "start": 2593,
                                          "end": 2628,
                                          "loc": {
                                            "start": {
                                              "line": 105,
                                              "column": 40
                                            },
                                            "end": {
                                              "line": 105,
                                              "column": 75
                                            }
                                          },
                                          "value": {
                                            "raw": "Missing , or ) after the expression",
                                            "cooked": "Missing , or ) after the expression"
                                          },
                                          "tail": true
                                        }
                                      ]
                                    }
                                  ]
                                }
                              }
                            ],
                            "directives": [],
                            "trailingComments": null
                          },
                          "alternate": null,
                          "trailingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Don't consume RPs as argument tokens",
                              "start": 2647,
                              "end": 2686,
                              "loc": {
                                "start": {
                                  "line": 108,
                                  "column": 6
                                },
                                "end": {
                                  "line": 108,
                                  "column": 45
                                }
                              }
                            }
                          ]
                        },
                        {
                          "type": "IfStatement",
                          "start": 2693,
                          "end": 2799,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 6
                            },
                            "end": {
                              "line": 111,
                              "column": 7
                            }
                          },
                          "test": {
                            "type": "LogicalExpression",
                            "start": 2697,
                            "end": 2743,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 10
                              },
                              "end": {
                                "line": 109,
                                "column": 56
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 2697,
                              "end": 2711,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 10
                                },
                                "end": {
                                  "line": 109,
                                  "column": 24
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2697,
                                "end": 2701,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 14
                                  }
                                },
                                "leadingComments": null
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2702,
                                "end": 2711,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 24
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false,
                              "leadingComments": null
                            },
                            "operator": "&&",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 2715,
                              "end": 2743,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 28
                                },
                                "end": {
                                  "line": 109,
                                  "column": 56
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 2715,
                                "end": 2734,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 2715,
                                  "end": 2729,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 42
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2715,
                                    "end": 2719,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 32
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2720,
                                    "end": 2729,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 42
                                      },
                                      "identifierName": "lookahead"
                                    },
                                    "name": "lookahead"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2730,
                                  "end": 2734,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 47
                                    },
                                    "identifierName": "type"
                                  },
                                  "name": "type"
                                },
                                "computed": false
                              },
                              "operator": "!==",
                              "right": {
                                "type": "StringLiteral",
                                "start": 2739,
                                "end": 2743,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 52
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 56
                                  }
                                },
                                "extra": {
                                  "rawValue": "RP",
                                  "raw": "\"RP\""
                                },
                                "value": "RP"
                              }
                            },
                            "leadingComments": null
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 2745,
                            "end": 2799,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 58
                              },
                              "end": {
                                "line": 111,
                                "column": 7
                              }
                            },
                            "body": [
                              {
                                "type": "ExpressionStatement",
                                "start": 2755,
                                "end": 2791,
                                "loc": {
                                  "start": {
                                    "line": 110,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 110,
                                    "column": 44
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 2755,
                                  "end": 2790,
                                  "loc": {
                                    "start": {
                                      "line": 110,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 110,
                                      "column": 43
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2755,
                                    "end": 2769,
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 22
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2755,
                                      "end": 2759,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 12
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2760,
                                      "end": 2769,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 22
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  },
                                  "right": {
                                    "type": "CallExpression",
                                    "start": 2772,
                                    "end": 2790,
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 43
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 2772,
                                      "end": 2788,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 41
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2772,
                                        "end": 2776,
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 29
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2777,
                                        "end": 2788,
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 41
                                          },
                                          "identifierName": "__nextToken"
                                        },
                                        "name": "__nextToken"
                                      },
                                      "computed": false
                                    },
                                    "arguments": []
                                  }
                                }
                              }
                            ],
                            "directives": []
                          },
                          "alternate": null,
                          "leadingComments": [
                            {
                              "type": "CommentLine",
                              "value": " Don't consume RPs as argument tokens",
                              "start": 2647,
                              "end": 2686,
                              "loc": {
                                "start": {
                                  "line": 108,
                                  "column": 6
                                },
                                "end": {
                                  "line": 108,
                                  "column": 45
                                }
                              }
                            }
                          ]
                        }
                      ],
                      "directives": []
                    },
                    "leadingComments": [
                      {
                        "type": "CommentLine",
                        "value": " Parse all arguments inside the parenthesis",
                        "start": 2256,
                        "end": 2301,
                        "loc": {
                          "start": {
                            "line": 96,
                            "column": 4
                          },
                          "end": {
                            "line": 96,
                            "column": 49
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 2811,
                    "end": 2840,
                    "loc": {
                      "start": {
                        "line": 114,
                        "column": 4
                      },
                      "end": {
                        "line": 114,
                        "column": 33
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 2818,
                      "end": 2839,
                      "loc": {
                        "start": {
                          "line": 114,
                          "column": 11
                        },
                        "end": {
                          "line": 114,
                          "column": 32
                        }
                      },
                      "callee": {
                        "type": "MemberExpression",
                        "start": 2818,
                        "end": 2833,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 11
                          },
                          "end": {
                            "line": 114,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 2818,
                          "end": 2822,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 11
                            },
                            "end": {
                              "line": 114,
                              "column": 15
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2823,
                          "end": 2833,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 16
                            },
                            "end": {
                              "line": 114,
                              "column": 26
                            },
                            "identifierName": "parseApply"
                          },
                          "name": "parseApply"
                        },
                        "computed": false
                      },
                      "arguments": [
                        {
                          "type": "Identifier",
                          "start": 2834,
                          "end": 2838,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 27
                            },
                            "end": {
                              "line": 114,
                              "column": 31
                            },
                            "identifierName": "tree"
                          },
                          "name": "tree"
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 2848,
              "end": 2960,
              "loc": {
                "start": {
                  "line": 117,
                  "column": 2
                },
                "end": {
                  "line": 121,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 2848,
                "end": 2859,
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 2
                  },
                  "end": {
                    "line": 117,
                    "column": 13
                  },
                  "identifierName": "__nextToken"
                },
                "name": "__nextToken"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 2862,
                "end": 2960,
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 16
                  },
                  "end": {
                    "line": 121,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 2868,
                    "end": 2908,
                    "loc": {
                      "start": {
                        "line": 118,
                        "column": 4
                      },
                      "end": {
                        "line": 118,
                        "column": 44
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 2874,
                        "end": 2907,
                        "loc": {
                          "start": {
                            "line": 118,
                            "column": 10
                          },
                          "end": {
                            "line": 118,
                            "column": 43
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 2874,
                          "end": 2879,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 10
                            },
                            "end": {
                              "line": 118,
                              "column": 15
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "init": {
                          "type": "MemberExpression",
                          "start": 2882,
                          "end": 2907,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 18
                            },
                            "end": {
                              "line": 118,
                              "column": 43
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2882,
                            "end": 2893,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 18
                              },
                              "end": {
                                "line": 118,
                                "column": 29
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2882,
                              "end": 2886,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 18
                                },
                                "end": {
                                  "line": 118,
                                  "column": 22
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2887,
                              "end": 2893,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 23
                                },
                                "end": {
                                  "line": 118,
                                  "column": 29
                                },
                                "identifierName": "tokens"
                              },
                              "name": "tokens"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "UpdateExpression",
                            "start": 2894,
                            "end": 2906,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 30
                              },
                              "end": {
                                "line": 118,
                                "column": 42
                              }
                            },
                            "operator": "++",
                            "prefix": false,
                            "argument": {
                              "type": "MemberExpression",
                              "start": 2894,
                              "end": 2904,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 30
                                },
                                "end": {
                                  "line": 118,
                                  "column": 40
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2894,
                                "end": 2898,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 34
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2899,
                                "end": 2904,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 35
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 40
                                  },
                                  "identifierName": "index"
                                },
                                "name": "index"
                              },
                              "computed": false
                            }
                          },
                          "computed": true
                        }
                      }
                    ],
                    "kind": "const"
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 2914,
                    "end": 2956,
                    "loc": {
                      "start": {
                        "line": 120,
                        "column": 4
                      },
                      "end": {
                        "line": 120,
                        "column": 46
                      }
                    },
                    "argument": {
                      "type": "ConditionalExpression",
                      "start": 2921,
                      "end": 2955,
                      "loc": {
                        "start": {
                          "line": 120,
                          "column": 11
                        },
                        "end": {
                          "line": 120,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2921,
                        "end": 2940,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 11
                          },
                          "end": {
                            "line": 120,
                            "column": 30
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 2921,
                          "end": 2926,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 11
                            },
                            "end": {
                              "line": 120,
                              "column": 16
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "operator": "!==",
                        "right": {
                          "type": "Identifier",
                          "start": 2931,
                          "end": 2940,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 21
                            },
                            "end": {
                              "line": 120,
                              "column": 30
                            },
                            "identifierName": "undefined"
                          },
                          "name": "undefined"
                        }
                      },
                      "consequent": {
                        "type": "Identifier",
                        "start": 2943,
                        "end": 2948,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 33
                          },
                          "end": {
                            "line": 120,
                            "column": 38
                          },
                          "identifierName": "token"
                        },
                        "name": "token"
                      },
                      "alternate": {
                        "type": "NullLiteral",
                        "start": 2951,
                        "end": 2955,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 41
                          },
                          "end": {
                            "line": 120,
                            "column": 45
                          }
                        }
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 2964,
              "end": 3236,
              "loc": {
                "start": {
                  "line": 123,
                  "column": 2
                },
                "end": {
                  "line": 132,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 2964,
                "end": 2983,
                "loc": {
                  "start": {
                    "line": 123,
                    "column": 2
                  },
                  "end": {
                    "line": 123,
                    "column": 21
                  },
                  "identifierName": "__parserSyntaxError"
                },
                "name": "__parserSyntaxError"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 2984,
                  "end": 2991,
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 22
                    },
                    "end": {
                      "line": 123,
                      "column": 29
                    },
                    "identifierName": "message"
                  },
                  "name": "message"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 2993,
                "end": 3236,
                "loc": {
                  "start": {
                    "line": 123,
                    "column": 31
                  },
                  "end": {
                    "line": 132,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 2999,
                    "end": 3066,
                    "loc": {
                      "start": {
                        "line": 124,
                        "column": 4
                      },
                      "end": {
                        "line": 124,
                        "column": 71
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 3003,
                        "end": 3065,
                        "loc": {
                          "start": {
                            "line": 124,
                            "column": 8
                          },
                          "end": {
                            "line": 124,
                            "column": 70
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 3003,
                          "end": 3008,
                          "loc": {
                            "start": {
                              "line": 124,
                              "column": 8
                            },
                            "end": {
                              "line": 124,
                              "column": 13
                            },
                            "identifierName": "start"
                          },
                          "name": "start"
                        },
                        "init": {
                          "type": "ConditionalExpression",
                          "start": 3011,
                          "end": 3065,
                          "loc": {
                            "start": {
                              "line": 124,
                              "column": 16
                            },
                            "end": {
                              "line": 124,
                              "column": 70
                            }
                          },
                          "test": {
                            "type": "MemberExpression",
                            "start": 3011,
                            "end": 3025,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 16
                              },
                              "end": {
                                "line": 124,
                                "column": 30
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3011,
                              "end": 3015,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 16
                                },
                                "end": {
                                  "line": 124,
                                  "column": 20
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3016,
                              "end": 3025,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 21
                                },
                                "end": {
                                  "line": 124,
                                  "column": 30
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false
                          },
                          "consequent": {
                            "type": "MemberExpression",
                            "start": 3028,
                            "end": 3048,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 33
                              },
                              "end": {
                                "line": 124,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 3028,
                              "end": 3042,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 33
                                },
                                "end": {
                                  "line": 124,
                                  "column": 47
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3028,
                                "end": 3032,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 37
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3033,
                                "end": 3042,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 47
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3043,
                              "end": 3048,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 48
                                },
                                "end": {
                                  "line": 124,
                                  "column": 53
                                },
                                "identifierName": "start"
                              },
                              "name": "start"
                            },
                            "computed": false
                          },
                          "alternate": {
                            "type": "MemberExpression",
                            "start": 3051,
                            "end": 3065,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 56
                              },
                              "end": {
                                "line": 124,
                                "column": 70
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3051,
                              "end": 3055,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 56
                                },
                                "end": {
                                  "line": 124,
                                  "column": 60
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3056,
                              "end": 3065,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 61
                                },
                                "end": {
                                  "line": 124,
                                  "column": 70
                                },
                                "identifierName": "lastIndex"
                              },
                              "name": "lastIndex"
                            },
                            "computed": false
                          }
                        }
                      }
                    ],
                    "kind": "let"
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 3072,
                    "end": 3232,
                    "loc": {
                      "start": {
                        "line": 126,
                        "column": 4
                      },
                      "end": {
                        "line": 131,
                        "column": 6
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 3079,
                      "end": 3231,
                      "loc": {
                        "start": {
                          "line": 126,
                          "column": 11
                        },
                        "end": {
                          "line": 131,
                          "column": 5
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 3083,
                        "end": 3094,
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 15
                          },
                          "end": {
                            "line": 126,
                            "column": 26
                          },
                          "identifierName": "SyntaxError"
                        },
                        "name": "SyntaxError"
                      },
                      "arguments": [
                        {
                          "type": "TemplateLiteral",
                          "start": 3102,
                          "end": 3225,
                          "loc": {
                            "start": {
                              "line": 127,
                              "column": 6
                            },
                            "end": {
                              "line": 130,
                              "column": 9
                            }
                          },
                          "expressions": [
                            {
                              "type": "MemberExpression",
                              "start": 3118,
                              "end": 3127,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 22
                                },
                                "end": {
                                  "line": 127,
                                  "column": 31
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3118,
                                "end": 3122,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 26
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3123,
                                "end": 3127,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 31
                                  },
                                  "identifierName": "line"
                                },
                                "name": "line"
                              },
                              "computed": false
                            },
                            {
                              "type": "Identifier",
                              "start": 3136,
                              "end": 3141,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 40
                                },
                                "end": {
                                  "line": 127,
                                  "column": 45
                                },
                                "identifierName": "start"
                              },
                              "name": "start"
                            },
                            {
                              "type": "Identifier",
                              "start": 3146,
                              "end": 3153,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 50
                                },
                                "end": {
                                  "line": 127,
                                  "column": 57
                                },
                                "identifierName": "message"
                              },
                              "name": "message"
                            },
                            {
                              "type": "CallExpression",
                              "start": 3158,
                              "end": 3223,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 62
                                },
                                "end": {
                                  "line": 130,
                                  "column": 7
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 3158,
                                "end": 3176,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 62
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 80
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 3158,
                                  "end": 3170,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 62
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 74
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 3158,
                                    "end": 3162,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 62
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 66
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3163,
                                    "end": 3170,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 67
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 74
                                      },
                                      "identifierName": "program"
                                    },
                                    "name": "program"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3171,
                                  "end": 3176,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 75
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 80
                                    },
                                    "identifierName": "slice"
                                  },
                                  "name": "slice"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "BinaryExpression",
                                  "start": 3186,
                                  "end": 3195,
                                  "loc": {
                                    "start": {
                                      "line": 128,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 128,
                                      "column": 17
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3186,
                                    "end": 3191,
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 13
                                      },
                                      "identifierName": "start"
                                    },
                                    "name": "start"
                                  },
                                  "operator": "-",
                                  "right": {
                                    "type": "NumericLiteral",
                                    "start": 3194,
                                    "end": 3195,
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 17
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "value": 1
                                  }
                                },
                                {
                                  "type": "BinaryExpression",
                                  "start": 3205,
                                  "end": 3215,
                                  "loc": {
                                    "start": {
                                      "line": 129,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 129,
                                      "column": 18
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 3205,
                                    "end": 3210,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 13
                                      },
                                      "identifierName": "start"
                                    },
                                    "name": "start"
                                  },
                                  "operator": "+",
                                  "right": {
                                    "type": "NumericLiteral",
                                    "start": 3213,
                                    "end": 3215,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 18
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 10,
                                      "raw": "10"
                                    },
                                    "value": 10
                                  }
                                }
                              ]
                            }
                          ],
                          "quasis": [
                            {
                              "type": "TemplateElement",
                              "start": 3103,
                              "end": 3116,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 7
                                },
                                "end": {
                                  "line": 127,
                                  "column": 20
                                }
                              },
                              "value": {
                                "raw": "Parser::Line ",
                                "cooked": "Parser::Line "
                              },
                              "tail": false
                            },
                            {
                              "type": "TemplateElement",
                              "start": 3128,
                              "end": 3134,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 32
                                },
                                "end": {
                                  "line": 127,
                                  "column": 38
                                }
                              },
                              "value": {
                                "raw": "::Col ",
                                "cooked": "::Col "
                              },
                              "tail": false
                            },
                            {
                              "type": "TemplateElement",
                              "start": 3142,
                              "end": 3144,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 46
                                },
                                "end": {
                                  "line": 127,
                                  "column": 48
                                }
                              },
                              "value": {
                                "raw": "\\n",
                                "cooked": "\n"
                              },
                              "tail": false
                            },
                            {
                              "type": "TemplateElement",
                              "start": 3154,
                              "end": 3156,
                              "loc": {
                                "start": {
                                  "line": 127,
                                  "column": 58
                                },
                                "end": {
                                  "line": 127,
                                  "column": 60
                                }
                              },
                              "value": {
                                "raw": "\\n",
                                "cooked": "\n"
                              },
                              "tail": false
                            },
                            {
                              "type": "TemplateElement",
                              "start": 3224,
                              "end": 3224,
                              "loc": {
                                "start": {
                                  "line": 130,
                                  "column": 8
                                },
                                "end": {
                                  "line": 130,
                                  "column": 8
                                }
                              },
                              "value": {
                                "raw": "",
                                "cooked": ""
                              },
                              "tail": true
                            }
                          ]
                        }
                      ]
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "leadingComments": [],
        "name": "_",
        "trailingComments": []
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 3240,
        "end": 3258,
        "loc": {
          "start": {
            "line": 135,
            "column": 0
          },
          "end": {
            "line": 135,
            "column": 18
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 3249,
            "end": 3255,
            "loc": {
              "start": {
                "line": 135,
                "column": 9
              },
              "end": {
                "line": 135,
                "column": 15
              }
            },
            "local": {
              "type": "Identifier",
              "start": 3249,
              "end": 3255,
              "loc": {
                "start": {
                  "line": 135,
                  "column": 9
                },
                "end": {
                  "line": 135,
                  "column": 15
                },
                "identifierName": "Parser"
              },
              "name": "Parser"
            },
            "exported": {
              "type": "Identifier",
              "start": 3249,
              "end": 3255,
              "loc": {
                "start": {
                  "line": 135,
                  "column": 9
                },
                "end": {
                  "line": 135,
                  "column": 15
                },
                "identifierName": "Parser"
              },
              "name": "Parser"
            }
          }
        ],
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 3240,
        "end": 3258,
        "loc": {
          "start": {
            "line": 135,
            "column": 0
          },
          "end": {
            "line": 135,
            "column": 18
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 236,
          "end": 3238,
          "loc": {
            "start": {
              "line": 10,
              "column": 0
            },
            "end": {
              "line": 133,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 242,
            "end": 248,
            "loc": {
              "start": {
                "line": 10,
                "column": 6
              },
              "end": {
                "line": 10,
                "column": 12
              },
              "identifierName": "Parser"
            },
            "name": "Parser",
            "leadingComments": null
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 249,
            "end": 3238,
            "loc": {
              "start": {
                "line": 10,
                "column": 13
              },
              "end": {
                "line": 133,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 323,
                "end": 411,
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 2
                  },
                  "end": {
                    "line": 18,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 323,
                  "end": 334,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 2
                    },
                    "end": {
                      "line": 14,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor",
                  "leadingComments": null
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 337,
                  "end": 411,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 16
                    },
                    "end": {
                      "line": 18,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 343,
                      "end": 358,
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 4
                        },
                        "end": {
                          "line": 15,
                          "column": 19
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 343,
                        "end": 357,
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 4
                          },
                          "end": {
                            "line": 15,
                            "column": 18
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 343,
                          "end": 353,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 4
                            },
                            "end": {
                              "line": 15,
                              "column": 14
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 343,
                            "end": 347,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 4
                              },
                              "end": {
                                "line": 15,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 348,
                            "end": 353,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 9
                              },
                              "end": {
                                "line": 15,
                                "column": 14
                              },
                              "identifierName": "index"
                            },
                            "name": "index"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NumericLiteral",
                          "start": 356,
                          "end": 357,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 17
                            },
                            "end": {
                              "line": 15,
                              "column": 18
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 363,
                      "end": 380,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 4
                        },
                        "end": {
                          "line": 16,
                          "column": 21
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 363,
                        "end": 379,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 4
                          },
                          "end": {
                            "line": 16,
                            "column": 20
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 363,
                          "end": 374,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 4
                            },
                            "end": {
                              "line": 16,
                              "column": 15
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 363,
                            "end": 367,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 4
                              },
                              "end": {
                                "line": 16,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 368,
                            "end": 374,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 9
                              },
                              "end": {
                                "line": 16,
                                "column": 15
                              },
                              "identifierName": "tokens"
                            },
                            "name": "tokens"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "start": 377,
                          "end": 379,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 18
                            },
                            "end": {
                              "line": 16,
                              "column": 20
                            }
                          },
                          "elements": []
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 385,
                      "end": 407,
                      "loc": {
                        "start": {
                          "line": 17,
                          "column": 4
                        },
                        "end": {
                          "line": 17,
                          "column": 26
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 385,
                        "end": 406,
                        "loc": {
                          "start": {
                            "line": 17,
                            "column": 4
                          },
                          "end": {
                            "line": 17,
                            "column": 25
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 385,
                          "end": 399,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 4
                            },
                            "end": {
                              "line": 17,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 385,
                            "end": 389,
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 4
                              },
                              "end": {
                                "line": 17,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 390,
                            "end": 399,
                            "loc": {
                              "start": {
                                "line": 17,
                                "column": 9
                              },
                              "end": {
                                "line": 17,
                                "column": 18
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NullLiteral",
                          "start": 402,
                          "end": 406,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 21
                            },
                            "end": {
                              "line": 17,
                              "column": 25
                            }
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                },
                "leadingComments": [
                  {
                    "type": "CommentBlock",
                    "value": "*\n   * Attributes used by the parser, set to default values\n   ",
                    "start": 253,
                    "end": 320,
                    "loc": {
                      "start": {
                        "line": 11,
                        "column": 2
                      },
                      "end": {
                        "line": 13,
                        "column": 5
                      }
                    }
                  }
                ]
              },
              {
                "type": "ClassMethod",
                "start": 415,
                "end": 556,
                "loc": {
                  "start": {
                    "line": 20,
                    "column": 2
                  },
                  "end": {
                    "line": 28,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 415,
                  "end": 425,
                  "loc": {
                    "start": {
                      "line": 20,
                      "column": 2
                    },
                    "end": {
                      "line": 20,
                      "column": 12
                    },
                    "identifierName": "setProgram"
                  },
                  "name": "setProgram"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 426,
                    "end": 433,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 13
                      },
                      "end": {
                        "line": 20,
                        "column": 20
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 435,
                  "end": 556,
                  "loc": {
                    "start": {
                      "line": 20,
                      "column": 22
                    },
                    "end": {
                      "line": 28,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 441,
                      "end": 464,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 4
                        },
                        "end": {
                          "line": 21,
                          "column": 27
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 441,
                        "end": 463,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 4
                          },
                          "end": {
                            "line": 21,
                            "column": 26
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 441,
                          "end": 453,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 4
                            },
                            "end": {
                              "line": 21,
                              "column": 16
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 441,
                            "end": 445,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 4
                              },
                              "end": {
                                "line": 21,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 446,
                            "end": 453,
                            "loc": {
                              "start": {
                                "line": 21,
                                "column": 9
                              },
                              "end": {
                                "line": 21,
                                "column": 16
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 456,
                          "end": 463,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 19
                            },
                            "end": {
                              "line": 21,
                              "column": 26
                            },
                            "identifierName": "program"
                          },
                          "name": "program"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 470,
                      "end": 485,
                      "loc": {
                        "start": {
                          "line": 23,
                          "column": 4
                        },
                        "end": {
                          "line": 23,
                          "column": 19
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 470,
                        "end": 484,
                        "loc": {
                          "start": {
                            "line": 23,
                            "column": 4
                          },
                          "end": {
                            "line": 23,
                            "column": 18
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 470,
                          "end": 480,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 4
                            },
                            "end": {
                              "line": 23,
                              "column": 14
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 470,
                            "end": 474,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 4
                              },
                              "end": {
                                "line": 23,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 475,
                            "end": 480,
                            "loc": {
                              "start": {
                                "line": 23,
                                "column": 9
                              },
                              "end": {
                                "line": 23,
                                "column": 14
                              },
                              "identifierName": "index"
                            },
                            "name": "index"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NumericLiteral",
                          "start": 483,
                          "end": 484,
                          "loc": {
                            "start": {
                              "line": 23,
                              "column": 17
                            },
                            "end": {
                              "line": 23,
                              "column": 18
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 490,
                      "end": 507,
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 4
                        },
                        "end": {
                          "line": 24,
                          "column": 21
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 490,
                        "end": 506,
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 4
                          },
                          "end": {
                            "line": 24,
                            "column": 20
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 490,
                          "end": 501,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 4
                            },
                            "end": {
                              "line": 24,
                              "column": 15
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 490,
                            "end": 494,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 4
                              },
                              "end": {
                                "line": 24,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 495,
                            "end": 501,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 9
                              },
                              "end": {
                                "line": 24,
                                "column": 15
                              },
                              "identifierName": "tokens"
                            },
                            "name": "tokens"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "ArrayExpression",
                          "start": 504,
                          "end": 506,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 18
                            },
                            "end": {
                              "line": 24,
                              "column": 20
                            }
                          },
                          "elements": []
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 512,
                      "end": 534,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 4
                        },
                        "end": {
                          "line": 25,
                          "column": 26
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 512,
                        "end": 533,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 4
                          },
                          "end": {
                            "line": 25,
                            "column": 25
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 512,
                          "end": 526,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 4
                            },
                            "end": {
                              "line": 25,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 512,
                            "end": 516,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 4
                              },
                              "end": {
                                "line": 25,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 517,
                            "end": 526,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 9
                              },
                              "end": {
                                "line": 25,
                                "column": 18
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NullLiteral",
                          "start": 529,
                          "end": 533,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 21
                            },
                            "end": {
                              "line": 25,
                              "column": 25
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 540,
                      "end": 552,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 4
                        },
                        "end": {
                          "line": 27,
                          "column": 16
                        }
                      },
                      "argument": {
                        "type": "ThisExpression",
                        "start": 547,
                        "end": 551,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 11
                          },
                          "end": {
                            "line": 27,
                            "column": 15
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 560,
                "end": 1004,
                "loc": {
                  "start": {
                    "line": 30,
                    "column": 2
                  },
                  "end": {
                    "line": 49,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 560,
                  "end": 565,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 2
                    },
                    "end": {
                      "line": 30,
                      "column": 7
                    },
                    "identifierName": "parse"
                  },
                  "name": "parse"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 566,
                    "end": 573,
                    "loc": {
                      "start": {
                        "line": 30,
                        "column": 8
                      },
                      "end": {
                        "line": 30,
                        "column": 15
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 575,
                  "end": 1004,
                  "loc": {
                    "start": {
                      "line": 30,
                      "column": 17
                    },
                    "end": {
                      "line": 49,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 581,
                      "end": 606,
                      "loc": {
                        "start": {
                          "line": 31,
                          "column": 4
                        },
                        "end": {
                          "line": 31,
                          "column": 29
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 581,
                        "end": 605,
                        "loc": {
                          "start": {
                            "line": 31,
                            "column": 4
                          },
                          "end": {
                            "line": 31,
                            "column": 28
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 581,
                          "end": 596,
                          "loc": {
                            "start": {
                              "line": 31,
                              "column": 4
                            },
                            "end": {
                              "line": 31,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 581,
                            "end": 585,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 4
                              },
                              "end": {
                                "line": 31,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 586,
                            "end": 596,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 9
                              },
                              "end": {
                                "line": 31,
                                "column": 19
                              },
                              "identifierName": "setProgram"
                            },
                            "name": "setProgram"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 597,
                            "end": 604,
                            "loc": {
                              "start": {
                                "line": 31,
                                "column": 20
                              },
                              "end": {
                                "line": 31,
                                "column": 27
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Get array of tokens",
                          "start": 612,
                          "end": 634,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 4
                            },
                            "end": {
                              "line": 33,
                              "column": 26
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 639,
                      "end": 677,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 4
                        },
                        "end": {
                          "line": 34,
                          "column": 42
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 639,
                        "end": 676,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 4
                          },
                          "end": {
                            "line": 34,
                            "column": 41
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 639,
                          "end": 650,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 4
                            },
                            "end": {
                              "line": 34,
                              "column": 15
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 639,
                            "end": 643,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 4
                              },
                              "end": {
                                "line": 34,
                                "column": 8
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 644,
                            "end": 650,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 9
                              },
                              "end": {
                                "line": 34,
                                "column": 15
                              },
                              "identifierName": "tokens"
                            },
                            "name": "tokens"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "CallExpression",
                          "start": 653,
                          "end": 676,
                          "loc": {
                            "start": {
                              "line": 34,
                              "column": 18
                            },
                            "end": {
                              "line": 34,
                              "column": 41
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 653,
                            "end": 667,
                            "loc": {
                              "start": {
                                "line": 34,
                                "column": 18
                              },
                              "end": {
                                "line": 34,
                                "column": 32
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 653,
                              "end": 658,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 18
                                },
                                "end": {
                                  "line": 34,
                                  "column": 23
                                },
                                "identifierName": "Lexer"
                              },
                              "name": "Lexer"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 659,
                              "end": 667,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 24
                                },
                                "end": {
                                  "line": 34,
                                  "column": 32
                                },
                                "identifierName": "tokenize"
                              },
                              "name": "tokenize"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 668,
                              "end": 675,
                              "loc": {
                                "start": {
                                  "line": 34,
                                  "column": 33
                                },
                                "end": {
                                  "line": 34,
                                  "column": 40
                                },
                                "identifierName": "program"
                              },
                              "name": "program"
                            }
                          ]
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Get array of tokens",
                          "start": 612,
                          "end": 634,
                          "loc": {
                            "start": {
                              "line": 33,
                              "column": 4
                            },
                            "end": {
                              "line": 33,
                              "column": 26
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 683,
                      "end": 699,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 4
                        },
                        "end": {
                          "line": 36,
                          "column": 20
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 687,
                          "end": 698,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 8
                            },
                            "end": {
                              "line": 36,
                              "column": 19
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 687,
                            "end": 691,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 8
                              },
                              "end": {
                                "line": 36,
                                "column": 12
                              },
                              "identifierName": "tree"
                            },
                            "name": "tree"
                          },
                          "init": {
                            "type": "NullLiteral",
                            "start": 694,
                            "end": 698,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 15
                              },
                              "end": {
                                "line": 36,
                                "column": 19
                              }
                            }
                          }
                        }
                      ],
                      "kind": "let",
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Parse if the array is not empty",
                          "start": 705,
                          "end": 739,
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 4
                            },
                            "end": {
                              "line": 38,
                              "column": 38
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 744,
                      "end": 859,
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 4
                        },
                        "end": {
                          "line": 42,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 748,
                        "end": 770,
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 8
                          },
                          "end": {
                            "line": 39,
                            "column": 30
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 748,
                          "end": 766,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 8
                            },
                            "end": {
                              "line": 39,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 748,
                            "end": 759,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 8
                              },
                              "end": {
                                "line": 39,
                                "column": 19
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 748,
                              "end": 752,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 8
                                },
                                "end": {
                                  "line": 39,
                                  "column": 12
                                }
                              },
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 753,
                              "end": 759,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 13
                                },
                                "end": {
                                  "line": 39,
                                  "column": 19
                                },
                                "identifierName": "tokens"
                              },
                              "name": "tokens"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 760,
                            "end": 766,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 20
                              },
                              "end": {
                                "line": 39,
                                "column": 26
                              },
                              "identifierName": "length"
                            },
                            "name": "length"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "operator": ">",
                        "right": {
                          "type": "NumericLiteral",
                          "start": 769,
                          "end": 770,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 29
                            },
                            "end": {
                              "line": 39,
                              "column": 30
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 772,
                        "end": 859,
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 32
                          },
                          "end": {
                            "line": 42,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 780,
                            "end": 816,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 6
                              },
                              "end": {
                                "line": 40,
                                "column": 42
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 780,
                              "end": 815,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 6
                                },
                                "end": {
                                  "line": 40,
                                  "column": 41
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "MemberExpression",
                                "start": 780,
                                "end": 794,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 20
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 780,
                                  "end": 784,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 10
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 785,
                                  "end": 794,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 11
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 20
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 797,
                                "end": 815,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 41
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 797,
                                  "end": 813,
                                  "loc": {
                                    "start": {
                                      "line": 40,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 40,
                                      "column": 39
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 797,
                                    "end": 801,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 27
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 802,
                                    "end": 813,
                                    "loc": {
                                      "start": {
                                        "line": 40,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 40,
                                        "column": 39
                                      },
                                      "identifierName": "__nextToken"
                                    },
                                    "name": "__nextToken"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              }
                            }
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 823,
                            "end": 853,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 6
                              },
                              "end": {
                                "line": 41,
                                "column": 36
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 823,
                              "end": 852,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 6
                                },
                                "end": {
                                  "line": 41,
                                  "column": 35
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 823,
                                "end": 827,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 10
                                  },
                                  "identifierName": "tree"
                                },
                                "name": "tree"
                              },
                              "right": {
                                "type": "CallExpression",
                                "start": 830,
                                "end": 852,
                                "loc": {
                                  "start": {
                                    "line": 41,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 41,
                                    "column": 35
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 830,
                                  "end": 850,
                                  "loc": {
                                    "start": {
                                      "line": 41,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 41,
                                      "column": 33
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 830,
                                    "end": 834,
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 835,
                                    "end": 850,
                                    "loc": {
                                      "start": {
                                        "line": 41,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 41,
                                        "column": 33
                                      },
                                      "identifierName": "parseExpression"
                                    },
                                    "name": "parseExpression"
                                  },
                                  "computed": false
                                },
                                "arguments": []
                              }
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Parse if the array is not empty",
                          "start": 705,
                          "end": 739,
                          "loc": {
                            "start": {
                              "line": 38,
                              "column": 4
                            },
                            "end": {
                              "line": 38,
                              "column": 38
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 865,
                      "end": 982,
                      "loc": {
                        "start": {
                          "line": 44,
                          "column": 4
                        },
                        "end": {
                          "line": 46,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 869,
                        "end": 892,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 8
                          },
                          "end": {
                            "line": 44,
                            "column": 31
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 869,
                          "end": 883,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 8
                            },
                            "end": {
                              "line": 44,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 869,
                            "end": 873,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 8
                              },
                              "end": {
                                "line": 44,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 874,
                            "end": 883,
                            "loc": {
                              "start": {
                                "line": 44,
                                "column": 13
                              },
                              "end": {
                                "line": 44,
                                "column": 22
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "NullLiteral",
                          "start": 888,
                          "end": 892,
                          "loc": {
                            "start": {
                              "line": 44,
                              "column": 27
                            },
                            "end": {
                              "line": 44,
                              "column": 31
                            }
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 894,
                        "end": 982,
                        "loc": {
                          "start": {
                            "line": 44,
                            "column": 33
                          },
                          "end": {
                            "line": 46,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ThrowStatement",
                            "start": 902,
                            "end": 976,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 6
                              },
                              "end": {
                                "line": 45,
                                "column": 80
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 908,
                              "end": 975,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 12
                                },
                                "end": {
                                  "line": 45,
                                  "column": 79
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 908,
                                "end": 932,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 908,
                                  "end": 912,
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 16
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 913,
                                  "end": 932,
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 36
                                    },
                                    "identifierName": "__parserSyntaxError"
                                  },
                                  "name": "__parserSyntaxError"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "StringLiteral",
                                  "start": 933,
                                  "end": 974,
                                  "loc": {
                                    "start": {
                                      "line": 45,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 45,
                                      "column": 78
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "Unexpected input after the end of file.",
                                    "raw": "\"Unexpected input after the end of file.\""
                                  },
                                  "value": "Unexpected input after the end of file."
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 988,
                      "end": 1000,
                      "loc": {
                        "start": {
                          "line": 48,
                          "column": 4
                        },
                        "end": {
                          "line": 48,
                          "column": 16
                        }
                      },
                      "argument": {
                        "type": "Identifier",
                        "start": 995,
                        "end": 999,
                        "loc": {
                          "start": {
                            "line": 48,
                            "column": 11
                          },
                          "end": {
                            "line": 48,
                            "column": 15
                          },
                          "identifierName": "tree"
                        },
                        "name": "tree"
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1008,
                "end": 1075,
                "loc": {
                  "start": {
                    "line": 51,
                    "column": 2
                  },
                  "end": {
                    "line": 53,
                    "column": 3
                  }
                },
                "static": true,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1015,
                  "end": 1020,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 9
                    },
                    "end": {
                      "line": 51,
                      "column": 14
                    },
                    "identifierName": "parse"
                  },
                  "name": "parse"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1021,
                    "end": 1028,
                    "loc": {
                      "start": {
                        "line": 51,
                        "column": 15
                      },
                      "end": {
                        "line": 51,
                        "column": 22
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1030,
                  "end": 1075,
                  "loc": {
                    "start": {
                      "line": 51,
                      "column": 24
                    },
                    "end": {
                      "line": 53,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 1036,
                      "end": 1071,
                      "loc": {
                        "start": {
                          "line": 52,
                          "column": 4
                        },
                        "end": {
                          "line": 52,
                          "column": 39
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 1043,
                        "end": 1070,
                        "loc": {
                          "start": {
                            "line": 52,
                            "column": 11
                          },
                          "end": {
                            "line": 52,
                            "column": 38
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1043,
                          "end": 1061,
                          "loc": {
                            "start": {
                              "line": 52,
                              "column": 11
                            },
                            "end": {
                              "line": 52,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "NewExpression",
                            "start": 1043,
                            "end": 1055,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 11
                              },
                              "end": {
                                "line": 52,
                                "column": 23
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 1047,
                              "end": 1053,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 15
                                },
                                "end": {
                                  "line": 52,
                                  "column": 21
                                },
                                "identifierName": "Parser"
                              },
                              "name": "Parser"
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1056,
                            "end": 1061,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 24
                              },
                              "end": {
                                "line": 52,
                                "column": 29
                              },
                              "identifierName": "parse"
                            },
                            "name": "parse"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1062,
                            "end": 1069,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 30
                              },
                              "end": {
                                "line": 52,
                                "column": 37
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1079,
                "end": 1188,
                "loc": {
                  "start": {
                    "line": 55,
                    "column": 2
                  },
                  "end": {
                    "line": 59,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1079,
                  "end": 1092,
                  "loc": {
                    "start": {
                      "line": 55,
                      "column": 2
                    },
                    "end": {
                      "line": 55,
                      "column": 15
                    },
                    "identifierName": "parseFromFile"
                  },
                  "name": "parseFromFile"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1093,
                    "end": 1097,
                    "loc": {
                      "start": {
                        "line": 55,
                        "column": 16
                      },
                      "end": {
                        "line": 55,
                        "column": 20
                      },
                      "identifierName": "file"
                    },
                    "name": "file"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1099,
                  "end": 1188,
                  "loc": {
                    "start": {
                      "line": 55,
                      "column": 22
                    },
                    "end": {
                      "line": 59,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 1105,
                      "end": 1151,
                      "loc": {
                        "start": {
                          "line": 56,
                          "column": 4
                        },
                        "end": {
                          "line": 56,
                          "column": 50
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 1111,
                          "end": 1150,
                          "loc": {
                            "start": {
                              "line": 56,
                              "column": 10
                            },
                            "end": {
                              "line": 56,
                              "column": 49
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 1111,
                            "end": 1118,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 10
                              },
                              "end": {
                                "line": 56,
                                "column": 17
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 1121,
                            "end": 1150,
                            "loc": {
                              "start": {
                                "line": 56,
                                "column": 20
                              },
                              "end": {
                                "line": 56,
                                "column": 49
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1121,
                              "end": 1136,
                              "loc": {
                                "start": {
                                  "line": 56,
                                  "column": 20
                                },
                                "end": {
                                  "line": 56,
                                  "column": 35
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1121,
                                "end": 1123,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 22
                                  },
                                  "identifierName": "fs"
                                },
                                "name": "fs"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1124,
                                "end": 1136,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 35
                                  },
                                  "identifierName": "readFileSync"
                                },
                                "name": "readFileSync"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 1137,
                                "end": 1141,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 40
                                  },
                                  "identifierName": "file"
                                },
                                "name": "file"
                              },
                              {
                                "type": "StringLiteral",
                                "start": 1143,
                                "end": 1149,
                                "loc": {
                                  "start": {
                                    "line": 56,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 56,
                                    "column": 48
                                  }
                                },
                                "extra": {
                                  "rawValue": "utf8",
                                  "raw": "\"utf8\""
                                },
                                "value": "utf8"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 1157,
                      "end": 1184,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 4
                        },
                        "end": {
                          "line": 58,
                          "column": 31
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 1164,
                        "end": 1183,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 11
                          },
                          "end": {
                            "line": 58,
                            "column": 30
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1164,
                          "end": 1174,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 11
                            },
                            "end": {
                              "line": 58,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1164,
                            "end": 1168,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 11
                              },
                              "end": {
                                "line": 58,
                                "column": 15
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1169,
                            "end": 1174,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 16
                              },
                              "end": {
                                "line": 58,
                                "column": 21
                              },
                              "identifierName": "parse"
                            },
                            "name": "parse"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1175,
                            "end": 1182,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 22
                              },
                              "end": {
                                "line": 58,
                                "column": 29
                              },
                              "identifierName": "program"
                            },
                            "name": "program"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1192,
                "end": 1269,
                "loc": {
                  "start": {
                    "line": 61,
                    "column": 2
                  },
                  "end": {
                    "line": 63,
                    "column": 3
                  }
                },
                "static": true,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1199,
                  "end": 1212,
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 9
                    },
                    "end": {
                      "line": 61,
                      "column": 22
                    },
                    "identifierName": "parseFromFile"
                  },
                  "name": "parseFromFile"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1213,
                    "end": 1217,
                    "loc": {
                      "start": {
                        "line": 61,
                        "column": 23
                      },
                      "end": {
                        "line": 61,
                        "column": 27
                      },
                      "identifierName": "file"
                    },
                    "name": "file"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1219,
                  "end": 1269,
                  "loc": {
                    "start": {
                      "line": 61,
                      "column": 29
                    },
                    "end": {
                      "line": 63,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 1225,
                      "end": 1265,
                      "loc": {
                        "start": {
                          "line": 62,
                          "column": 4
                        },
                        "end": {
                          "line": 62,
                          "column": 44
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 1232,
                        "end": 1264,
                        "loc": {
                          "start": {
                            "line": 62,
                            "column": 11
                          },
                          "end": {
                            "line": 62,
                            "column": 43
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1232,
                          "end": 1258,
                          "loc": {
                            "start": {
                              "line": 62,
                              "column": 11
                            },
                            "end": {
                              "line": 62,
                              "column": 37
                            }
                          },
                          "object": {
                            "type": "NewExpression",
                            "start": 1232,
                            "end": 1244,
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 11
                              },
                              "end": {
                                "line": 62,
                                "column": 23
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 1236,
                              "end": 1242,
                              "loc": {
                                "start": {
                                  "line": 62,
                                  "column": 15
                                },
                                "end": {
                                  "line": 62,
                                  "column": 21
                                },
                                "identifierName": "Parser"
                              },
                              "name": "Parser"
                            },
                            "arguments": []
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1245,
                            "end": 1258,
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 24
                              },
                              "end": {
                                "line": 62,
                                "column": 37
                              },
                              "identifierName": "parseFromFile"
                            },
                            "name": "parseFromFile"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1259,
                            "end": 1263,
                            "loc": {
                              "start": {
                                "line": 62,
                                "column": 38
                              },
                              "end": {
                                "line": 62,
                                "column": 42
                              },
                              "identifierName": "file"
                            },
                            "name": "file"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1273,
                "end": 1943,
                "loc": {
                  "start": {
                    "line": 65,
                    "column": 2
                  },
                  "end": {
                    "line": 82,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1273,
                  "end": 1288,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 2
                    },
                    "end": {
                      "line": 65,
                      "column": 17
                    },
                    "identifierName": "parseExpression"
                  },
                  "name": "parseExpression"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 1291,
                  "end": 1943,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 20
                    },
                    "end": {
                      "line": 82,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 1297,
                      "end": 1306,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 4
                        },
                        "end": {
                          "line": 66,
                          "column": 13
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 1301,
                          "end": 1305,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 8
                            },
                            "end": {
                              "line": 66,
                              "column": 12
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 1301,
                            "end": 1305,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 8
                              },
                              "end": {
                                "line": 66,
                                "column": 12
                              },
                              "identifierName": "expr"
                            },
                            "name": "expr"
                          },
                          "init": null
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 1311,
                      "end": 1904,
                      "loc": {
                        "start": {
                          "line": 67,
                          "column": 4
                        },
                        "end": {
                          "line": 79,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 1315,
                        "end": 1347,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 8
                          },
                          "end": {
                            "line": 67,
                            "column": 40
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 1315,
                          "end": 1334,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 27
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1315,
                            "end": 1329,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 8
                              },
                              "end": {
                                "line": 67,
                                "column": 22
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1315,
                              "end": 1319,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 8
                                },
                                "end": {
                                  "line": 67,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1320,
                              "end": 1329,
                              "loc": {
                                "start": {
                                  "line": 67,
                                  "column": 13
                                },
                                "end": {
                                  "line": 67,
                                  "column": 22
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1330,
                            "end": 1334,
                            "loc": {
                              "start": {
                                "line": 67,
                                "column": 23
                              },
                              "end": {
                                "line": 67,
                                "column": 27
                              },
                              "identifierName": "type"
                            },
                            "name": "type"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "StringLiteral",
                          "start": 1339,
                          "end": 1347,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 32
                            },
                            "end": {
                              "line": 67,
                              "column": 40
                            }
                          },
                          "extra": {
                            "rawValue": "STRING",
                            "raw": "\"STRING\""
                          },
                          "value": "STRING"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1349,
                        "end": 1396,
                        "loc": {
                          "start": {
                            "line": 67,
                            "column": 42
                          },
                          "end": {
                            "line": 69,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ExpressionStatement",
                            "start": 1357,
                            "end": 1390,
                            "loc": {
                              "start": {
                                "line": 68,
                                "column": 6
                              },
                              "end": {
                                "line": 68,
                                "column": 39
                              }
                            },
                            "expression": {
                              "type": "AssignmentExpression",
                              "start": 1357,
                              "end": 1389,
                              "loc": {
                                "start": {
                                  "line": 68,
                                  "column": 6
                                },
                                "end": {
                                  "line": 68,
                                  "column": 38
                                }
                              },
                              "operator": "=",
                              "left": {
                                "type": "Identifier",
                                "start": 1357,
                                "end": 1361,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 10
                                  },
                                  "identifierName": "expr"
                                },
                                "name": "expr"
                              },
                              "right": {
                                "type": "NewExpression",
                                "start": 1364,
                                "end": 1389,
                                "loc": {
                                  "start": {
                                    "line": 68,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 68,
                                    "column": 38
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 1368,
                                  "end": 1373,
                                  "loc": {
                                    "start": {
                                      "line": 68,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 68,
                                      "column": 22
                                    },
                                    "identifierName": "Value"
                                  },
                                  "name": "Value"
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1374,
                                    "end": 1388,
                                    "loc": {
                                      "start": {
                                        "line": 68,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 68,
                                        "column": 37
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1374,
                                      "end": 1378,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 27
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1379,
                                      "end": 1388,
                                      "loc": {
                                        "start": {
                                          "line": 68,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 68,
                                          "column": 37
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": {
                        "type": "IfStatement",
                        "start": 1402,
                        "end": 1904,
                        "loc": {
                          "start": {
                            "line": 69,
                            "column": 11
                          },
                          "end": {
                            "line": 79,
                            "column": 5
                          }
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 1406,
                          "end": 1438,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 15
                            },
                            "end": {
                              "line": 69,
                              "column": 47
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 1406,
                            "end": 1425,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 15
                              },
                              "end": {
                                "line": 69,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1406,
                              "end": 1420,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 15
                                },
                                "end": {
                                  "line": 69,
                                  "column": 29
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1406,
                                "end": 1410,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 19
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1411,
                                "end": 1420,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 20
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 29
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1421,
                              "end": 1425,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 30
                                },
                                "end": {
                                  "line": 69,
                                  "column": 34
                                },
                                "identifierName": "type"
                              },
                              "name": "type"
                            },
                            "computed": false
                          },
                          "operator": "===",
                          "right": {
                            "type": "StringLiteral",
                            "start": 1430,
                            "end": 1438,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 39
                              },
                              "end": {
                                "line": 69,
                                "column": 47
                              }
                            },
                            "extra": {
                              "rawValue": "NUMBER",
                              "raw": "\"NUMBER\""
                            },
                            "value": "NUMBER"
                          }
                        },
                        "consequent": {
                          "type": "BlockStatement",
                          "start": 1440,
                          "end": 1546,
                          "loc": {
                            "start": {
                              "line": 69,
                              "column": 49
                            },
                            "end": {
                              "line": 72,
                              "column": 5
                            }
                          },
                          "body": [
                            {
                              "type": "ExpressionStatement",
                              "start": 1448,
                              "end": 1500,
                              "loc": {
                                "start": {
                                  "line": 70,
                                  "column": 6
                                },
                                "end": {
                                  "line": 70,
                                  "column": 58
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 1448,
                                "end": 1499,
                                "loc": {
                                  "start": {
                                    "line": 70,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 70,
                                    "column": 57
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 1448,
                                  "end": 1468,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 26
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 1448,
                                    "end": 1462,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 20
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1448,
                                      "end": 1452,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 6
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 10
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1453,
                                      "end": 1462,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 11
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 20
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1463,
                                    "end": 1468,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 26
                                      },
                                      "identifierName": "value"
                                    },
                                    "name": "value"
                                  },
                                  "computed": false
                                },
                                "right": {
                                  "type": "CallExpression",
                                  "start": 1471,
                                  "end": 1499,
                                  "loc": {
                                    "start": {
                                      "line": 70,
                                      "column": 29
                                    },
                                    "end": {
                                      "line": 70,
                                      "column": 57
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 1471,
                                    "end": 1477,
                                    "loc": {
                                      "start": {
                                        "line": 70,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 70,
                                        "column": 35
                                      },
                                      "identifierName": "Number"
                                    },
                                    "name": "Number"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1478,
                                      "end": 1498,
                                      "loc": {
                                        "start": {
                                          "line": 70,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 70,
                                          "column": 56
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 1478,
                                        "end": 1492,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 36
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 50
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 1478,
                                          "end": 1482,
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 36
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 40
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1483,
                                          "end": 1492,
                                          "loc": {
                                            "start": {
                                              "line": 70,
                                              "column": 41
                                            },
                                            "end": {
                                              "line": 70,
                                              "column": 50
                                            },
                                            "identifierName": "lookahead"
                                          },
                                          "name": "lookahead"
                                        },
                                        "computed": false
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1493,
                                        "end": 1498,
                                        "loc": {
                                          "start": {
                                            "line": 70,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 70,
                                            "column": 56
                                          },
                                          "identifierName": "value"
                                        },
                                        "name": "value"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "type": "ExpressionStatement",
                              "start": 1507,
                              "end": 1540,
                              "loc": {
                                "start": {
                                  "line": 71,
                                  "column": 6
                                },
                                "end": {
                                  "line": 71,
                                  "column": 39
                                }
                              },
                              "expression": {
                                "type": "AssignmentExpression",
                                "start": 1507,
                                "end": 1539,
                                "loc": {
                                  "start": {
                                    "line": 71,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 71,
                                    "column": 38
                                  }
                                },
                                "operator": "=",
                                "left": {
                                  "type": "Identifier",
                                  "start": 1507,
                                  "end": 1511,
                                  "loc": {
                                    "start": {
                                      "line": 71,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 71,
                                      "column": 10
                                    },
                                    "identifierName": "expr"
                                  },
                                  "name": "expr"
                                },
                                "right": {
                                  "type": "NewExpression",
                                  "start": 1514,
                                  "end": 1539,
                                  "loc": {
                                    "start": {
                                      "line": 71,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 71,
                                      "column": 38
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 1518,
                                    "end": 1523,
                                    "loc": {
                                      "start": {
                                        "line": 71,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 71,
                                        "column": 22
                                      },
                                      "identifierName": "Value"
                                    },
                                    "name": "Value"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1524,
                                      "end": 1538,
                                      "loc": {
                                        "start": {
                                          "line": 71,
                                          "column": 23
                                        },
                                        "end": {
                                          "line": 71,
                                          "column": 37
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1524,
                                        "end": 1528,
                                        "loc": {
                                          "start": {
                                            "line": 71,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 71,
                                            "column": 27
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1529,
                                        "end": 1538,
                                        "loc": {
                                          "start": {
                                            "line": 71,
                                            "column": 28
                                          },
                                          "end": {
                                            "line": 71,
                                            "column": 37
                                          },
                                          "identifierName": "lookahead"
                                        },
                                        "name": "lookahead"
                                      },
                                      "computed": false
                                    }
                                  ]
                                }
                              }
                            }
                          ],
                          "directives": []
                        },
                        "alternate": {
                          "type": "IfStatement",
                          "start": 1552,
                          "end": 1904,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 11
                            },
                            "end": {
                              "line": 79,
                              "column": 5
                            }
                          },
                          "test": {
                            "type": "BinaryExpression",
                            "start": 1556,
                            "end": 1587,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 15
                              },
                              "end": {
                                "line": 72,
                                "column": 46
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 1556,
                              "end": 1575,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 15
                                },
                                "end": {
                                  "line": 72,
                                  "column": 34
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 1556,
                                "end": 1570,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 29
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1556,
                                  "end": 1560,
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 19
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1561,
                                  "end": 1570,
                                  "loc": {
                                    "start": {
                                      "line": 72,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 72,
                                      "column": 29
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1571,
                                "end": 1575,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 34
                                  },
                                  "identifierName": "type"
                                },
                                "name": "type"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "StringLiteral",
                              "start": 1580,
                              "end": 1587,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 39
                                },
                                "end": {
                                  "line": 72,
                                  "column": 46
                                }
                              },
                              "extra": {
                                "rawValue": "REGEX",
                                "raw": "\"REGEX\""
                              },
                              "value": "REGEX"
                            }
                          },
                          "consequent": {
                            "type": "BlockStatement",
                            "start": 1589,
                            "end": 1713,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 48
                              },
                              "end": {
                                "line": 75,
                                "column": 5
                              }
                            },
                            "body": [
                              {
                                "type": "VariableDeclaration",
                                "start": 1597,
                                "end": 1644,
                                "loc": {
                                  "start": {
                                    "line": 73,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 73,
                                    "column": 53
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 1603,
                                    "end": 1643,
                                    "loc": {
                                      "start": {
                                        "line": 73,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 73,
                                        "column": 52
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 1603,
                                      "end": 1609,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 18
                                        },
                                        "identifierName": "fields"
                                      },
                                      "name": "fields"
                                    },
                                    "init": {
                                      "type": "CallExpression",
                                      "start": 1612,
                                      "end": 1643,
                                      "loc": {
                                        "start": {
                                          "line": 73,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 73,
                                          "column": 52
                                        }
                                      },
                                      "callee": {
                                        "type": "MemberExpression",
                                        "start": 1612,
                                        "end": 1638,
                                        "loc": {
                                          "start": {
                                            "line": 73,
                                            "column": 21
                                          },
                                          "end": {
                                            "line": 73,
                                            "column": 47
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 1612,
                                          "end": 1632,
                                          "loc": {
                                            "start": {
                                              "line": 73,
                                              "column": 21
                                            },
                                            "end": {
                                              "line": 73,
                                              "column": 41
                                            }
                                          },
                                          "object": {
                                            "type": "MemberExpression",
                                            "start": 1612,
                                            "end": 1626,
                                            "loc": {
                                              "start": {
                                                "line": 73,
                                                "column": 21
                                              },
                                              "end": {
                                                "line": 73,
                                                "column": 35
                                              }
                                            },
                                            "object": {
                                              "type": "ThisExpression",
                                              "start": 1612,
                                              "end": 1616,
                                              "loc": {
                                                "start": {
                                                  "line": 73,
                                                  "column": 21
                                                },
                                                "end": {
                                                  "line": 73,
                                                  "column": 25
                                                }
                                              }
                                            },
                                            "property": {
                                              "type": "Identifier",
                                              "start": 1617,
                                              "end": 1626,
                                              "loc": {
                                                "start": {
                                                  "line": 73,
                                                  "column": 26
                                                },
                                                "end": {
                                                  "line": 73,
                                                  "column": 35
                                                },
                                                "identifierName": "lookahead"
                                              },
                                              "name": "lookahead"
                                            },
                                            "computed": false
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 1627,
                                            "end": 1632,
                                            "loc": {
                                              "start": {
                                                "line": 73,
                                                "column": 36
                                              },
                                              "end": {
                                                "line": 73,
                                                "column": 41
                                              },
                                              "identifierName": "value"
                                            },
                                            "name": "value"
                                          },
                                          "computed": false
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 1633,
                                          "end": 1638,
                                          "loc": {
                                            "start": {
                                              "line": 73,
                                              "column": 42
                                            },
                                            "end": {
                                              "line": 73,
                                              "column": 47
                                            },
                                            "identifierName": "split"
                                          },
                                          "name": "split"
                                        },
                                        "computed": false
                                      },
                                      "arguments": [
                                        {
                                          "type": "StringLiteral",
                                          "start": 1639,
                                          "end": 1642,
                                          "loc": {
                                            "start": {
                                              "line": 73,
                                              "column": 48
                                            },
                                            "end": {
                                              "line": 73,
                                              "column": 51
                                            }
                                          },
                                          "extra": {
                                            "rawValue": "/",
                                            "raw": "\"/\""
                                          },
                                          "value": "/"
                                        }
                                      ]
                                    }
                                  }
                                ],
                                "kind": "const"
                              },
                              {
                                "type": "ExpressionStatement",
                                "start": 1651,
                                "end": 1707,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 62
                                  }
                                },
                                "expression": {
                                  "type": "AssignmentExpression",
                                  "start": 1651,
                                  "end": 1706,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 61
                                    }
                                  },
                                  "operator": "=",
                                  "left": {
                                    "type": "Identifier",
                                    "start": 1651,
                                    "end": 1655,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 10
                                      },
                                      "identifierName": "expr"
                                    },
                                    "name": "expr"
                                  },
                                  "right": {
                                    "type": "NewExpression",
                                    "start": 1658,
                                    "end": 1706,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 61
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 1662,
                                      "end": 1667,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 22
                                        },
                                        "identifierName": "Regex"
                                      },
                                      "name": "Regex"
                                    },
                                    "arguments": [
                                      {
                                        "type": "ObjectExpression",
                                        "start": 1668,
                                        "end": 1705,
                                        "loc": {
                                          "start": {
                                            "line": 74,
                                            "column": 23
                                          },
                                          "end": {
                                            "line": 74,
                                            "column": 60
                                          }
                                        },
                                        "properties": [
                                          {
                                            "type": "ObjectProperty",
                                            "start": 1670,
                                            "end": 1685,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 25
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 40
                                              }
                                            },
                                            "method": false,
                                            "shorthand": false,
                                            "computed": false,
                                            "key": {
                                              "type": "Identifier",
                                              "start": 1670,
                                              "end": 1674,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 25
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 29
                                                },
                                                "identifierName": "body"
                                              },
                                              "name": "body"
                                            },
                                            "value": {
                                              "type": "MemberExpression",
                                              "start": 1676,
                                              "end": 1685,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 31
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 40
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 1676,
                                                "end": 1682,
                                                "loc": {
                                                  "start": {
                                                    "line": 74,
                                                    "column": 31
                                                  },
                                                  "end": {
                                                    "line": 74,
                                                    "column": 37
                                                  },
                                                  "identifierName": "fields"
                                                },
                                                "name": "fields"
                                              },
                                              "property": {
                                                "type": "NumericLiteral",
                                                "start": 1683,
                                                "end": 1684,
                                                "loc": {
                                                  "start": {
                                                    "line": 74,
                                                    "column": 38
                                                  },
                                                  "end": {
                                                    "line": 74,
                                                    "column": 39
                                                  }
                                                },
                                                "extra": {
                                                  "rawValue": 1,
                                                  "raw": "1"
                                                },
                                                "value": 1
                                              },
                                              "computed": true
                                            }
                                          },
                                          {
                                            "type": "ObjectProperty",
                                            "start": 1687,
                                            "end": 1703,
                                            "loc": {
                                              "start": {
                                                "line": 74,
                                                "column": 42
                                              },
                                              "end": {
                                                "line": 74,
                                                "column": 58
                                              }
                                            },
                                            "method": false,
                                            "shorthand": false,
                                            "computed": false,
                                            "key": {
                                              "type": "Identifier",
                                              "start": 1687,
                                              "end": 1692,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 42
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 47
                                                },
                                                "identifierName": "flags"
                                              },
                                              "name": "flags"
                                            },
                                            "value": {
                                              "type": "MemberExpression",
                                              "start": 1694,
                                              "end": 1703,
                                              "loc": {
                                                "start": {
                                                  "line": 74,
                                                  "column": 49
                                                },
                                                "end": {
                                                  "line": 74,
                                                  "column": 58
                                                }
                                              },
                                              "object": {
                                                "type": "Identifier",
                                                "start": 1694,
                                                "end": 1700,
                                                "loc": {
                                                  "start": {
                                                    "line": 74,
                                                    "column": 49
                                                  },
                                                  "end": {
                                                    "line": 74,
                                                    "column": 55
                                                  },
                                                  "identifierName": "fields"
                                                },
                                                "name": "fields"
                                              },
                                              "property": {
                                                "type": "NumericLiteral",
                                                "start": 1701,
                                                "end": 1702,
                                                "loc": {
                                                  "start": {
                                                    "line": 74,
                                                    "column": 56
                                                  },
                                                  "end": {
                                                    "line": 74,
                                                    "column": 57
                                                  }
                                                },
                                                "extra": {
                                                  "rawValue": 2,
                                                  "raw": "2"
                                                },
                                                "value": 2
                                              },
                                              "computed": true
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              }
                            ],
                            "directives": []
                          },
                          "alternate": {
                            "type": "IfStatement",
                            "start": 1719,
                            "end": 1904,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 11
                              },
                              "end": {
                                "line": 79,
                                "column": 5
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 1723,
                              "end": 1753,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 15
                                },
                                "end": {
                                  "line": 75,
                                  "column": 45
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 1723,
                                "end": 1742,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 34
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 1723,
                                  "end": 1737,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 1723,
                                    "end": 1727,
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 19
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1728,
                                    "end": 1737,
                                    "loc": {
                                      "start": {
                                        "line": 75,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 75,
                                        "column": 29
                                      },
                                      "identifierName": "lookahead"
                                    },
                                    "name": "lookahead"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1738,
                                  "end": 1742,
                                  "loc": {
                                    "start": {
                                      "line": 75,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 75,
                                      "column": 34
                                    },
                                    "identifierName": "type"
                                  },
                                  "name": "type"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "StringLiteral",
                                "start": 1747,
                                "end": 1753,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 45
                                  }
                                },
                                "extra": {
                                  "rawValue": "WORD",
                                  "raw": "\"WORD\""
                                },
                                "value": "WORD"
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 1755,
                              "end": 1801,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 47
                                },
                                "end": {
                                  "line": 77,
                                  "column": 5
                                }
                              },
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "start": 1763,
                                  "end": 1795,
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 38
                                    }
                                  },
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "start": 1763,
                                    "end": 1794,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 37
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "Identifier",
                                      "start": 1763,
                                      "end": 1767,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 6
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 10
                                        },
                                        "identifierName": "expr"
                                      },
                                      "name": "expr"
                                    },
                                    "right": {
                                      "type": "NewExpression",
                                      "start": 1770,
                                      "end": 1794,
                                      "loc": {
                                        "start": {
                                          "line": 76,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 76,
                                          "column": 37
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 1774,
                                        "end": 1778,
                                        "loc": {
                                          "start": {
                                            "line": 76,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 76,
                                            "column": 21
                                          },
                                          "identifierName": "Word"
                                        },
                                        "name": "Word"
                                      },
                                      "arguments": [
                                        {
                                          "type": "MemberExpression",
                                          "start": 1779,
                                          "end": 1793,
                                          "loc": {
                                            "start": {
                                              "line": 76,
                                              "column": 22
                                            },
                                            "end": {
                                              "line": 76,
                                              "column": 36
                                            }
                                          },
                                          "object": {
                                            "type": "ThisExpression",
                                            "start": 1779,
                                            "end": 1783,
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 22
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 26
                                              }
                                            }
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 1784,
                                            "end": 1793,
                                            "loc": {
                                              "start": {
                                                "line": 76,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 76,
                                                "column": 36
                                              },
                                              "identifierName": "lookahead"
                                            },
                                            "name": "lookahead"
                                          },
                                          "computed": false
                                        }
                                      ]
                                    }
                                  }
                                }
                              ],
                              "directives": []
                            },
                            "alternate": {
                              "type": "BlockStatement",
                              "start": 1807,
                              "end": 1904,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 11
                                },
                                "end": {
                                  "line": 79,
                                  "column": 5
                                }
                              },
                              "body": [
                                {
                                  "type": "ThrowStatement",
                                  "start": 1815,
                                  "end": 1898,
                                  "loc": {
                                    "start": {
                                      "line": 78,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 78,
                                      "column": 89
                                    }
                                  },
                                  "argument": {
                                    "type": "CallExpression",
                                    "start": 1821,
                                    "end": 1897,
                                    "loc": {
                                      "start": {
                                        "line": 78,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 78,
                                        "column": 88
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 1821,
                                      "end": 1845,
                                      "loc": {
                                        "start": {
                                          "line": 78,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 78,
                                          "column": 36
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1821,
                                        "end": 1825,
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1826,
                                        "end": 1845,
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 36
                                          },
                                          "identifierName": "__parserSyntaxError"
                                        },
                                        "name": "__parserSyntaxError"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "StringLiteral",
                                        "start": 1846,
                                        "end": 1896,
                                        "loc": {
                                          "start": {
                                            "line": 78,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 78,
                                            "column": 87
                                          }
                                        },
                                        "extra": {
                                          "rawValue": "Unrecognized token while parsing the expression.",
                                          "raw": "\"Unrecognized token while parsing the expression.\""
                                        },
                                        "value": "Unrecognized token while parsing the expression."
                                      }
                                    ]
                                  }
                                }
                              ],
                              "directives": []
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 1910,
                      "end": 1939,
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 4
                        },
                        "end": {
                          "line": 81,
                          "column": 33
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 1917,
                        "end": 1938,
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 11
                          },
                          "end": {
                            "line": 81,
                            "column": 32
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1917,
                          "end": 1932,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 11
                            },
                            "end": {
                              "line": 81,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1917,
                            "end": 1921,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 11
                              },
                              "end": {
                                "line": 81,
                                "column": 15
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1922,
                            "end": 1932,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 16
                              },
                              "end": {
                                "line": 81,
                                "column": 26
                              },
                              "identifierName": "parseApply"
                            },
                            "name": "parseApply"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1933,
                            "end": 1937,
                            "loc": {
                              "start": {
                                "line": 81,
                                "column": 27
                              },
                              "end": {
                                "line": 81,
                                "column": 31
                              },
                              "identifierName": "expr"
                            },
                            "name": "expr"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1947,
                "end": 2844,
                "loc": {
                  "start": {
                    "line": 84,
                    "column": 2
                  },
                  "end": {
                    "line": 115,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1947,
                  "end": 1957,
                  "loc": {
                    "start": {
                      "line": 84,
                      "column": 2
                    },
                    "end": {
                      "line": 84,
                      "column": 12
                    },
                    "identifierName": "parseApply"
                  },
                  "name": "parseApply"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1958,
                    "end": 1962,
                    "loc": {
                      "start": {
                        "line": 84,
                        "column": 13
                      },
                      "end": {
                        "line": 84,
                        "column": 17
                      },
                      "identifierName": "expr"
                    },
                    "name": "expr"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1964,
                  "end": 2844,
                  "loc": {
                    "start": {
                      "line": 84,
                      "column": 19
                    },
                    "end": {
                      "line": 115,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 1992,
                      "end": 2028,
                      "loc": {
                        "start": {
                          "line": 86,
                          "column": 4
                        },
                        "end": {
                          "line": 86,
                          "column": 40
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 1992,
                        "end": 2027,
                        "loc": {
                          "start": {
                            "line": 86,
                            "column": 4
                          },
                          "end": {
                            "line": 86,
                            "column": 39
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 1992,
                          "end": 2006,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 4
                            },
                            "end": {
                              "line": 86,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1992,
                            "end": 1996,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 4
                              },
                              "end": {
                                "line": 86,
                                "column": 8
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1997,
                            "end": 2006,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 9
                              },
                              "end": {
                                "line": 86,
                                "column": 18
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "CallExpression",
                          "start": 2009,
                          "end": 2027,
                          "loc": {
                            "start": {
                              "line": 86,
                              "column": 21
                            },
                            "end": {
                              "line": 86,
                              "column": 39
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2009,
                            "end": 2025,
                            "loc": {
                              "start": {
                                "line": 86,
                                "column": 21
                              },
                              "end": {
                                "line": 86,
                                "column": 37
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2009,
                              "end": 2013,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 21
                                },
                                "end": {
                                  "line": 86,
                                  "column": 25
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2014,
                              "end": 2025,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 26
                                },
                                "end": {
                                  "line": 86,
                                  "column": 37
                                },
                                "identifierName": "__nextToken"
                              },
                              "name": "__nextToken"
                            },
                            "computed": false
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Get next token",
                          "start": 1970,
                          "end": 1987,
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 4
                            },
                            "end": {
                              "line": 85,
                              "column": 21
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Return if apply is empty (not left parenthesis or null)",
                          "start": 2034,
                          "end": 2092,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 4
                            },
                            "end": {
                              "line": 88,
                              "column": 62
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "IfStatement",
                      "start": 2097,
                      "end": 2176,
                      "loc": {
                        "start": {
                          "line": 89,
                          "column": 4
                        },
                        "end": {
                          "line": 91,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 2101,
                        "end": 2148,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 8
                          },
                          "end": {
                            "line": 89,
                            "column": 55
                          }
                        },
                        "left": {
                          "type": "UnaryExpression",
                          "start": 2101,
                          "end": 2116,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 8
                            },
                            "end": {
                              "line": 89,
                              "column": 23
                            }
                          },
                          "operator": "!",
                          "prefix": true,
                          "argument": {
                            "type": "MemberExpression",
                            "start": 2102,
                            "end": 2116,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 9
                              },
                              "end": {
                                "line": 89,
                                "column": 23
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2102,
                              "end": 2106,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 9
                                },
                                "end": {
                                  "line": 89,
                                  "column": 13
                                }
                              },
                              "leadingComments": null
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2107,
                              "end": 2116,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 14
                                },
                                "end": {
                                  "line": 89,
                                  "column": 23
                                },
                                "identifierName": "lookahead"
                              },
                              "name": "lookahead"
                            },
                            "computed": false,
                            "leadingComments": null
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          },
                          "leadingComments": null
                        },
                        "operator": "||",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 2120,
                          "end": 2148,
                          "loc": {
                            "start": {
                              "line": 89,
                              "column": 27
                            },
                            "end": {
                              "line": 89,
                              "column": 55
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 2120,
                            "end": 2139,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 27
                              },
                              "end": {
                                "line": 89,
                                "column": 46
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2120,
                              "end": 2134,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 27
                                },
                                "end": {
                                  "line": 89,
                                  "column": 41
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2120,
                                "end": 2124,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 31
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2125,
                                "end": 2134,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 41
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2135,
                              "end": 2139,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 42
                                },
                                "end": {
                                  "line": 89,
                                  "column": 46
                                },
                                "identifierName": "type"
                              },
                              "name": "type"
                            },
                            "computed": false
                          },
                          "operator": "!==",
                          "right": {
                            "type": "StringLiteral",
                            "start": 2144,
                            "end": 2148,
                            "loc": {
                              "start": {
                                "line": 89,
                                "column": 51
                              },
                              "end": {
                                "line": 89,
                                "column": 55
                              }
                            },
                            "extra": {
                              "rawValue": "LP",
                              "raw": "\"LP\""
                            },
                            "value": "LP"
                          }
                        },
                        "leadingComments": null
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 2150,
                        "end": 2176,
                        "loc": {
                          "start": {
                            "line": 89,
                            "column": 57
                          },
                          "end": {
                            "line": 91,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 2158,
                            "end": 2170,
                            "loc": {
                              "start": {
                                "line": 90,
                                "column": 6
                              },
                              "end": {
                                "line": 90,
                                "column": 18
                              }
                            },
                            "argument": {
                              "type": "Identifier",
                              "start": 2165,
                              "end": 2169,
                              "loc": {
                                "start": {
                                  "line": 90,
                                  "column": 13
                                },
                                "end": {
                                  "line": 90,
                                  "column": 17
                                },
                                "identifierName": "expr"
                              },
                              "name": "expr"
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null,
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Return if apply is empty (not left parenthesis or null)",
                          "start": 2034,
                          "end": 2092,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 4
                            },
                            "end": {
                              "line": 88,
                              "column": 62
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 2182,
                      "end": 2209,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 4
                        },
                        "end": {
                          "line": 93,
                          "column": 31
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2186,
                          "end": 2208,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 8
                            },
                            "end": {
                              "line": 93,
                              "column": 30
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2186,
                            "end": 2190,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 8
                              },
                              "end": {
                                "line": 93,
                                "column": 12
                              },
                              "identifierName": "tree"
                            },
                            "name": "tree"
                          },
                          "init": {
                            "type": "NewExpression",
                            "start": 2193,
                            "end": 2208,
                            "loc": {
                              "start": {
                                "line": 93,
                                "column": 15
                              },
                              "end": {
                                "line": 93,
                                "column": 30
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 2197,
                              "end": 2202,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 19
                                },
                                "end": {
                                  "line": 93,
                                  "column": 24
                                },
                                "identifierName": "Apply"
                              },
                              "name": "Apply"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2203,
                                "end": 2207,
                                "loc": {
                                  "start": {
                                    "line": 93,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 93,
                                    "column": 29
                                  },
                                  "identifierName": "expr"
                                },
                                "name": "expr"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2215,
                      "end": 2251,
                      "loc": {
                        "start": {
                          "line": 95,
                          "column": 4
                        },
                        "end": {
                          "line": 95,
                          "column": 40
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2215,
                        "end": 2250,
                        "loc": {
                          "start": {
                            "line": 95,
                            "column": 4
                          },
                          "end": {
                            "line": 95,
                            "column": 39
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2215,
                          "end": 2229,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 4
                            },
                            "end": {
                              "line": 95,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2215,
                            "end": 2219,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 4
                              },
                              "end": {
                                "line": 95,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2220,
                            "end": 2229,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 9
                              },
                              "end": {
                                "line": 95,
                                "column": 18
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "CallExpression",
                          "start": 2232,
                          "end": 2250,
                          "loc": {
                            "start": {
                              "line": 95,
                              "column": 21
                            },
                            "end": {
                              "line": 95,
                              "column": 39
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2232,
                            "end": 2248,
                            "loc": {
                              "start": {
                                "line": 95,
                                "column": 21
                              },
                              "end": {
                                "line": 95,
                                "column": 37
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2232,
                              "end": 2236,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 21
                                },
                                "end": {
                                  "line": 95,
                                  "column": 25
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2237,
                              "end": 2248,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 26
                                },
                                "end": {
                                  "line": 95,
                                  "column": 37
                                },
                                "identifierName": "__nextToken"
                              },
                              "name": "__nextToken"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Parse all arguments inside the parenthesis",
                          "start": 2256,
                          "end": 2301,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 4
                            },
                            "end": {
                              "line": 96,
                              "column": 49
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "WhileStatement",
                      "start": 2306,
                      "end": 2805,
                      "loc": {
                        "start": {
                          "line": 97,
                          "column": 4
                        },
                        "end": {
                          "line": 112,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 2313,
                        "end": 2359,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 11
                          },
                          "end": {
                            "line": 97,
                            "column": 57
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2313,
                          "end": 2327,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 11
                            },
                            "end": {
                              "line": 97,
                              "column": 25
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2313,
                            "end": 2317,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 11
                              },
                              "end": {
                                "line": 97,
                                "column": 15
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2318,
                            "end": 2327,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 16
                              },
                              "end": {
                                "line": 97,
                                "column": 25
                              },
                              "identifierName": "lookahead"
                            },
                            "name": "lookahead"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "operator": "&&",
                        "right": {
                          "type": "BinaryExpression",
                          "start": 2331,
                          "end": 2359,
                          "loc": {
                            "start": {
                              "line": 97,
                              "column": 29
                            },
                            "end": {
                              "line": 97,
                              "column": 57
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 2331,
                            "end": 2350,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 29
                              },
                              "end": {
                                "line": 97,
                                "column": 48
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2331,
                              "end": 2345,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 29
                                },
                                "end": {
                                  "line": 97,
                                  "column": 43
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2331,
                                "end": 2335,
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 33
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2336,
                                "end": 2345,
                                "loc": {
                                  "start": {
                                    "line": 97,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 97,
                                    "column": 43
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2346,
                              "end": 2350,
                              "loc": {
                                "start": {
                                  "line": 97,
                                  "column": 44
                                },
                                "end": {
                                  "line": 97,
                                  "column": 48
                                },
                                "identifierName": "type"
                              },
                              "name": "type"
                            },
                            "computed": false
                          },
                          "operator": "!==",
                          "right": {
                            "type": "StringLiteral",
                            "start": 2355,
                            "end": 2359,
                            "loc": {
                              "start": {
                                "line": 97,
                                "column": 53
                              },
                              "end": {
                                "line": 97,
                                "column": 57
                              }
                            },
                            "extra": {
                              "rawValue": "RP",
                              "raw": "\"RP\""
                            },
                            "value": "RP"
                          }
                        },
                        "leadingComments": null
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 2361,
                        "end": 2805,
                        "loc": {
                          "start": {
                            "line": 97,
                            "column": 59
                          },
                          "end": {
                            "line": 112,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 2369,
                            "end": 2402,
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 6
                              },
                              "end": {
                                "line": 98,
                                "column": 39
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 2373,
                                "end": 2401,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 38
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 2373,
                                  "end": 2376,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 13
                                    },
                                    "identifierName": "arg"
                                  },
                                  "name": "arg"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 2379,
                                  "end": 2401,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 38
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 2379,
                                    "end": 2399,
                                    "loc": {
                                      "start": {
                                        "line": 98,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 98,
                                        "column": 36
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2379,
                                      "end": 2383,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 20
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2384,
                                      "end": 2399,
                                      "loc": {
                                        "start": {
                                          "line": 98,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 98,
                                          "column": 36
                                        },
                                        "identifierName": "parseExpression"
                                      },
                                      "name": "parseExpression"
                                    },
                                    "computed": false
                                  },
                                  "arguments": []
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 2409,
                            "end": 2429,
                            "loc": {
                              "start": {
                                "line": 99,
                                "column": 6
                              },
                              "end": {
                                "line": 99,
                                "column": 26
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 2409,
                              "end": 2428,
                              "loc": {
                                "start": {
                                  "line": 99,
                                  "column": 6
                                },
                                "end": {
                                  "line": 99,
                                  "column": 25
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 2409,
                                "end": 2423,
                                "loc": {
                                  "start": {
                                    "line": 99,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 99,
                                    "column": 20
                                  }
                                },
                                "object": {
                                  "type": "MemberExpression",
                                  "start": 2409,
                                  "end": 2418,
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 6
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 15
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2409,
                                    "end": 2413,
                                    "loc": {
                                      "start": {
                                        "line": 99,
                                        "column": 6
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 10
                                      },
                                      "identifierName": "tree"
                                    },
                                    "name": "tree"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2414,
                                    "end": 2418,
                                    "loc": {
                                      "start": {
                                        "line": 99,
                                        "column": 11
                                      },
                                      "end": {
                                        "line": 99,
                                        "column": 15
                                      },
                                      "identifierName": "args"
                                    },
                                    "name": "args"
                                  },
                                  "computed": false
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2419,
                                  "end": 2423,
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 20
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 2424,
                                  "end": 2427,
                                  "loc": {
                                    "start": {
                                      "line": 99,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 99,
                                      "column": 24
                                    },
                                    "identifierName": "arg"
                                  },
                                  "name": "arg"
                                }
                              ]
                            }
                          },
                          {
                            "type": "IfStatement",
                            "start": 2437,
                            "end": 2639,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 6
                              },
                              "end": {
                                "line": 106,
                                "column": 7
                              }
                            },
                            "test": {
                              "type": "LogicalExpression",
                              "start": 2450,
                              "end": 2542,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 8
                                },
                                "end": {
                                  "line": 103,
                                  "column": 73
                                }
                              },
                              "left": {
                                "type": "UnaryExpression",
                                "start": 2450,
                                "end": 2465,
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 23
                                  }
                                },
                                "operator": "!",
                                "prefix": true,
                                "argument": {
                                  "type": "MemberExpression",
                                  "start": 2451,
                                  "end": 2465,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 23
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2451,
                                    "end": 2455,
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 9
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 13
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2456,
                                    "end": 2465,
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 23
                                      },
                                      "identifierName": "lookahead"
                                    },
                                    "name": "lookahead"
                                  },
                                  "computed": false
                                },
                                "extra": {
                                  "parenthesizedArgument": false
                                }
                              },
                              "operator": "||",
                              "right": {
                                "type": "LogicalExpression",
                                "start": 2478,
                                "end": 2541,
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 9
                                  },
                                  "end": {
                                    "line": 103,
                                    "column": 72
                                  }
                                },
                                "left": {
                                  "type": "BinaryExpression",
                                  "start": 2478,
                                  "end": 2509,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 9
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 40
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2478,
                                    "end": 2497,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 9
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 28
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 2478,
                                      "end": 2492,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 9
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 23
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2478,
                                        "end": 2482,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 9
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 13
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2483,
                                        "end": 2492,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 14
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 23
                                          },
                                          "identifierName": "lookahead"
                                        },
                                        "name": "lookahead"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2493,
                                      "end": 2497,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 24
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 28
                                        },
                                        "identifierName": "type"
                                      },
                                      "name": "type"
                                    },
                                    "computed": false
                                  },
                                  "operator": "!==",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 2502,
                                    "end": 2509,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 40
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "COMMA",
                                      "raw": "\"COMMA\""
                                    },
                                    "value": "COMMA"
                                  }
                                },
                                "operator": "&&",
                                "right": {
                                  "type": "BinaryExpression",
                                  "start": 2513,
                                  "end": 2541,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 72
                                    }
                                  },
                                  "left": {
                                    "type": "MemberExpression",
                                    "start": 2513,
                                    "end": 2532,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 63
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 2513,
                                      "end": 2527,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 44
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 58
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2513,
                                        "end": 2517,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 44
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 48
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2518,
                                        "end": 2527,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 49
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 58
                                          },
                                          "identifierName": "lookahead"
                                        },
                                        "name": "lookahead"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2528,
                                      "end": 2532,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 59
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 63
                                        },
                                        "identifierName": "type"
                                      },
                                      "name": "type"
                                    },
                                    "computed": false
                                  },
                                  "operator": "!==",
                                  "right": {
                                    "type": "StringLiteral",
                                    "start": 2537,
                                    "end": 2541,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 68
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 72
                                      }
                                    },
                                    "extra": {
                                      "rawValue": "RP",
                                      "raw": "\"RP\""
                                    },
                                    "value": "RP"
                                  }
                                },
                                "extra": {
                                  "parenthesized": true,
                                  "parenStart": 2477
                                }
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 2551,
                              "end": 2639,
                              "loc": {
                                "start": {
                                  "line": 104,
                                  "column": 8
                                },
                                "end": {
                                  "line": 106,
                                  "column": 7
                                }
                              },
                              "body": [
                                {
                                  "type": "ThrowStatement",
                                  "start": 2561,
                                  "end": 2631,
                                  "loc": {
                                    "start": {
                                      "line": 105,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 105,
                                      "column": 78
                                    }
                                  },
                                  "argument": {
                                    "type": "CallExpression",
                                    "start": 2567,
                                    "end": 2630,
                                    "loc": {
                                      "start": {
                                        "line": 105,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 105,
                                        "column": 77
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 2567,
                                      "end": 2591,
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 38
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2567,
                                        "end": 2571,
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 14
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 18
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2572,
                                        "end": 2591,
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 19
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 38
                                          },
                                          "identifierName": "__parserSyntaxError"
                                        },
                                        "name": "__parserSyntaxError"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "TemplateLiteral",
                                        "start": 2592,
                                        "end": 2629,
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 39
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 76
                                          }
                                        },
                                        "expressions": [],
                                        "quasis": [
                                          {
                                            "type": "TemplateElement",
                                            "start": 2593,
                                            "end": 2628,
                                            "loc": {
                                              "start": {
                                                "line": 105,
                                                "column": 40
                                              },
                                              "end": {
                                                "line": 105,
                                                "column": 75
                                              }
                                            },
                                            "value": {
                                              "raw": "Missing , or ) after the expression",
                                              "cooked": "Missing , or ) after the expression"
                                            },
                                            "tail": true
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              ],
                              "directives": [],
                              "trailingComments": null
                            },
                            "alternate": null,
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Don't consume RPs as argument tokens",
                                "start": 2647,
                                "end": 2686,
                                "loc": {
                                  "start": {
                                    "line": 108,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 108,
                                    "column": 45
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "IfStatement",
                            "start": 2693,
                            "end": 2799,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 6
                              },
                              "end": {
                                "line": 111,
                                "column": 7
                              }
                            },
                            "test": {
                              "type": "LogicalExpression",
                              "start": 2697,
                              "end": 2743,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 10
                                },
                                "end": {
                                  "line": 109,
                                  "column": 56
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 2697,
                                "end": 2711,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 10
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 24
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2697,
                                  "end": 2701,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 10
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 14
                                    }
                                  },
                                  "leadingComments": null
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2702,
                                  "end": 2711,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 24
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false,
                                "leadingComments": null
                              },
                              "operator": "&&",
                              "right": {
                                "type": "BinaryExpression",
                                "start": 2715,
                                "end": 2743,
                                "loc": {
                                  "start": {
                                    "line": 109,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 109,
                                    "column": 56
                                  }
                                },
                                "left": {
                                  "type": "MemberExpression",
                                  "start": 2715,
                                  "end": 2734,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 47
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 2715,
                                    "end": 2729,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 28
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 42
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 2715,
                                      "end": 2719,
                                      "loc": {
                                        "start": {
                                          "line": 109,
                                          "column": 28
                                        },
                                        "end": {
                                          "line": 109,
                                          "column": 32
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2720,
                                      "end": 2729,
                                      "loc": {
                                        "start": {
                                          "line": 109,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 109,
                                          "column": 42
                                        },
                                        "identifierName": "lookahead"
                                      },
                                      "name": "lookahead"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2730,
                                    "end": 2734,
                                    "loc": {
                                      "start": {
                                        "line": 109,
                                        "column": 43
                                      },
                                      "end": {
                                        "line": 109,
                                        "column": 47
                                      },
                                      "identifierName": "type"
                                    },
                                    "name": "type"
                                  },
                                  "computed": false
                                },
                                "operator": "!==",
                                "right": {
                                  "type": "StringLiteral",
                                  "start": 2739,
                                  "end": 2743,
                                  "loc": {
                                    "start": {
                                      "line": 109,
                                      "column": 52
                                    },
                                    "end": {
                                      "line": 109,
                                      "column": 56
                                    }
                                  },
                                  "extra": {
                                    "rawValue": "RP",
                                    "raw": "\"RP\""
                                  },
                                  "value": "RP"
                                }
                              },
                              "leadingComments": null
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 2745,
                              "end": 2799,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 58
                                },
                                "end": {
                                  "line": 111,
                                  "column": 7
                                }
                              },
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "start": 2755,
                                  "end": 2791,
                                  "loc": {
                                    "start": {
                                      "line": 110,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 110,
                                      "column": 44
                                    }
                                  },
                                  "expression": {
                                    "type": "AssignmentExpression",
                                    "start": 2755,
                                    "end": 2790,
                                    "loc": {
                                      "start": {
                                        "line": 110,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 110,
                                        "column": 43
                                      }
                                    },
                                    "operator": "=",
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 2755,
                                      "end": 2769,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 22
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 2755,
                                        "end": 2759,
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 8
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 12
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 2760,
                                        "end": 2769,
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 13
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 22
                                          },
                                          "identifierName": "lookahead"
                                        },
                                        "name": "lookahead"
                                      },
                                      "computed": false
                                    },
                                    "right": {
                                      "type": "CallExpression",
                                      "start": 2772,
                                      "end": 2790,
                                      "loc": {
                                        "start": {
                                          "line": 110,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 110,
                                          "column": 43
                                        }
                                      },
                                      "callee": {
                                        "type": "MemberExpression",
                                        "start": 2772,
                                        "end": 2788,
                                        "loc": {
                                          "start": {
                                            "line": 110,
                                            "column": 25
                                          },
                                          "end": {
                                            "line": 110,
                                            "column": 41
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 2772,
                                          "end": 2776,
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 25
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 29
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 2777,
                                          "end": 2788,
                                          "loc": {
                                            "start": {
                                              "line": 110,
                                              "column": 30
                                            },
                                            "end": {
                                              "line": 110,
                                              "column": 41
                                            },
                                            "identifierName": "__nextToken"
                                          },
                                          "name": "__nextToken"
                                        },
                                        "computed": false
                                      },
                                      "arguments": []
                                    }
                                  }
                                }
                              ],
                              "directives": []
                            },
                            "alternate": null,
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " Don't consume RPs as argument tokens",
                                "start": 2647,
                                "end": 2686,
                                "loc": {
                                  "start": {
                                    "line": 108,
                                    "column": 6
                                  },
                                  "end": {
                                    "line": 108,
                                    "column": 45
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": []
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Parse all arguments inside the parenthesis",
                          "start": 2256,
                          "end": 2301,
                          "loc": {
                            "start": {
                              "line": 96,
                              "column": 4
                            },
                            "end": {
                              "line": 96,
                              "column": 49
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 2811,
                      "end": 2840,
                      "loc": {
                        "start": {
                          "line": 114,
                          "column": 4
                        },
                        "end": {
                          "line": 114,
                          "column": 33
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 2818,
                        "end": 2839,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 11
                          },
                          "end": {
                            "line": 114,
                            "column": 32
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2818,
                          "end": 2833,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 11
                            },
                            "end": {
                              "line": 114,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2818,
                            "end": 2822,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 11
                              },
                              "end": {
                                "line": 114,
                                "column": 15
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2823,
                            "end": 2833,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 16
                              },
                              "end": {
                                "line": 114,
                                "column": 26
                              },
                              "identifierName": "parseApply"
                            },
                            "name": "parseApply"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 2834,
                            "end": 2838,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 27
                              },
                              "end": {
                                "line": 114,
                                "column": 31
                              },
                              "identifierName": "tree"
                            },
                            "name": "tree"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2848,
                "end": 2960,
                "loc": {
                  "start": {
                    "line": 117,
                    "column": 2
                  },
                  "end": {
                    "line": 121,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2848,
                  "end": 2859,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 2
                    },
                    "end": {
                      "line": 117,
                      "column": 13
                    },
                    "identifierName": "__nextToken"
                  },
                  "name": "__nextToken"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 2862,
                  "end": 2960,
                  "loc": {
                    "start": {
                      "line": 117,
                      "column": 16
                    },
                    "end": {
                      "line": 121,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 2868,
                      "end": 2908,
                      "loc": {
                        "start": {
                          "line": 118,
                          "column": 4
                        },
                        "end": {
                          "line": 118,
                          "column": 44
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2874,
                          "end": 2907,
                          "loc": {
                            "start": {
                              "line": 118,
                              "column": 10
                            },
                            "end": {
                              "line": 118,
                              "column": 43
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2874,
                            "end": 2879,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 10
                              },
                              "end": {
                                "line": 118,
                                "column": 15
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 2882,
                            "end": 2907,
                            "loc": {
                              "start": {
                                "line": 118,
                                "column": 18
                              },
                              "end": {
                                "line": 118,
                                "column": 43
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2882,
                              "end": 2893,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 18
                                },
                                "end": {
                                  "line": 118,
                                  "column": 29
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2882,
                                "end": 2886,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 22
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2887,
                                "end": 2893,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 29
                                  },
                                  "identifierName": "tokens"
                                },
                                "name": "tokens"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "UpdateExpression",
                              "start": 2894,
                              "end": 2906,
                              "loc": {
                                "start": {
                                  "line": 118,
                                  "column": 30
                                },
                                "end": {
                                  "line": 118,
                                  "column": 42
                                }
                              },
                              "operator": "++",
                              "prefix": false,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 2894,
                                "end": 2904,
                                "loc": {
                                  "start": {
                                    "line": 118,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 118,
                                    "column": 40
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 2894,
                                  "end": 2898,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 34
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 2899,
                                  "end": 2904,
                                  "loc": {
                                    "start": {
                                      "line": 118,
                                      "column": 35
                                    },
                                    "end": {
                                      "line": 118,
                                      "column": 40
                                    },
                                    "identifierName": "index"
                                  },
                                  "name": "index"
                                },
                                "computed": false
                              }
                            },
                            "computed": true
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 2914,
                      "end": 2956,
                      "loc": {
                        "start": {
                          "line": 120,
                          "column": 4
                        },
                        "end": {
                          "line": 120,
                          "column": 46
                        }
                      },
                      "argument": {
                        "type": "ConditionalExpression",
                        "start": 2921,
                        "end": 2955,
                        "loc": {
                          "start": {
                            "line": 120,
                            "column": 11
                          },
                          "end": {
                            "line": 120,
                            "column": 45
                          }
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 2921,
                          "end": 2940,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 11
                            },
                            "end": {
                              "line": 120,
                              "column": 30
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 2921,
                            "end": 2926,
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 11
                              },
                              "end": {
                                "line": 120,
                                "column": 16
                              },
                              "identifierName": "token"
                            },
                            "name": "token"
                          },
                          "operator": "!==",
                          "right": {
                            "type": "Identifier",
                            "start": 2931,
                            "end": 2940,
                            "loc": {
                              "start": {
                                "line": 120,
                                "column": 21
                              },
                              "end": {
                                "line": 120,
                                "column": 30
                              },
                              "identifierName": "undefined"
                            },
                            "name": "undefined"
                          }
                        },
                        "consequent": {
                          "type": "Identifier",
                          "start": 2943,
                          "end": 2948,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 33
                            },
                            "end": {
                              "line": 120,
                              "column": 38
                            },
                            "identifierName": "token"
                          },
                          "name": "token"
                        },
                        "alternate": {
                          "type": "NullLiteral",
                          "start": 2951,
                          "end": 2955,
                          "loc": {
                            "start": {
                              "line": 120,
                              "column": 41
                            },
                            "end": {
                              "line": 120,
                              "column": 45
                            }
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2964,
                "end": 3236,
                "loc": {
                  "start": {
                    "line": 123,
                    "column": 2
                  },
                  "end": {
                    "line": 132,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2964,
                  "end": 2983,
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 2
                    },
                    "end": {
                      "line": 123,
                      "column": 21
                    },
                    "identifierName": "__parserSyntaxError"
                  },
                  "name": "__parserSyntaxError"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2984,
                    "end": 2991,
                    "loc": {
                      "start": {
                        "line": 123,
                        "column": 22
                      },
                      "end": {
                        "line": 123,
                        "column": 29
                      },
                      "identifierName": "message"
                    },
                    "name": "message"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2993,
                  "end": 3236,
                  "loc": {
                    "start": {
                      "line": 123,
                      "column": 31
                    },
                    "end": {
                      "line": 132,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 2999,
                      "end": 3066,
                      "loc": {
                        "start": {
                          "line": 124,
                          "column": 4
                        },
                        "end": {
                          "line": 124,
                          "column": 71
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3003,
                          "end": 3065,
                          "loc": {
                            "start": {
                              "line": 124,
                              "column": 8
                            },
                            "end": {
                              "line": 124,
                              "column": 70
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3003,
                            "end": 3008,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 8
                              },
                              "end": {
                                "line": 124,
                                "column": 13
                              },
                              "identifierName": "start"
                            },
                            "name": "start"
                          },
                          "init": {
                            "type": "ConditionalExpression",
                            "start": 3011,
                            "end": 3065,
                            "loc": {
                              "start": {
                                "line": 124,
                                "column": 16
                              },
                              "end": {
                                "line": 124,
                                "column": 70
                              }
                            },
                            "test": {
                              "type": "MemberExpression",
                              "start": 3011,
                              "end": 3025,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 16
                                },
                                "end": {
                                  "line": 124,
                                  "column": 30
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3011,
                                "end": 3015,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 20
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3016,
                                "end": 3025,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 30
                                  },
                                  "identifierName": "lookahead"
                                },
                                "name": "lookahead"
                              },
                              "computed": false
                            },
                            "consequent": {
                              "type": "MemberExpression",
                              "start": 3028,
                              "end": 3048,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 33
                                },
                                "end": {
                                  "line": 124,
                                  "column": 53
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3028,
                                "end": 3042,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 33
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 47
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3028,
                                  "end": 3032,
                                  "loc": {
                                    "start": {
                                      "line": 124,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 124,
                                      "column": 37
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3033,
                                  "end": 3042,
                                  "loc": {
                                    "start": {
                                      "line": 124,
                                      "column": 38
                                    },
                                    "end": {
                                      "line": 124,
                                      "column": 47
                                    },
                                    "identifierName": "lookahead"
                                  },
                                  "name": "lookahead"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3043,
                                "end": 3048,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 53
                                  },
                                  "identifierName": "start"
                                },
                                "name": "start"
                              },
                              "computed": false
                            },
                            "alternate": {
                              "type": "MemberExpression",
                              "start": 3051,
                              "end": 3065,
                              "loc": {
                                "start": {
                                  "line": 124,
                                  "column": 56
                                },
                                "end": {
                                  "line": 124,
                                  "column": 70
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 3051,
                                "end": 3055,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 56
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 60
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3056,
                                "end": 3065,
                                "loc": {
                                  "start": {
                                    "line": 124,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 124,
                                    "column": 70
                                  },
                                  "identifierName": "lastIndex"
                                },
                                "name": "lastIndex"
                              },
                              "computed": false
                            }
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 3072,
                      "end": 3232,
                      "loc": {
                        "start": {
                          "line": 126,
                          "column": 4
                        },
                        "end": {
                          "line": 131,
                          "column": 6
                        }
                      },
                      "argument": {
                        "type": "NewExpression",
                        "start": 3079,
                        "end": 3231,
                        "loc": {
                          "start": {
                            "line": 126,
                            "column": 11
                          },
                          "end": {
                            "line": 131,
                            "column": 5
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 3083,
                          "end": 3094,
                          "loc": {
                            "start": {
                              "line": 126,
                              "column": 15
                            },
                            "end": {
                              "line": 126,
                              "column": 26
                            },
                            "identifierName": "SyntaxError"
                          },
                          "name": "SyntaxError"
                        },
                        "arguments": [
                          {
                            "type": "TemplateLiteral",
                            "start": 3102,
                            "end": 3225,
                            "loc": {
                              "start": {
                                "line": 127,
                                "column": 6
                              },
                              "end": {
                                "line": 130,
                                "column": 9
                              }
                            },
                            "expressions": [
                              {
                                "type": "MemberExpression",
                                "start": 3118,
                                "end": 3127,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 31
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3118,
                                  "end": 3122,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 22
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 26
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3123,
                                  "end": 3127,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 31
                                    },
                                    "identifierName": "line"
                                  },
                                  "name": "line"
                                },
                                "computed": false
                              },
                              {
                                "type": "Identifier",
                                "start": 3136,
                                "end": 3141,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 45
                                  },
                                  "identifierName": "start"
                                },
                                "name": "start"
                              },
                              {
                                "type": "Identifier",
                                "start": 3146,
                                "end": 3153,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 50
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 57
                                  },
                                  "identifierName": "message"
                                },
                                "name": "message"
                              },
                              {
                                "type": "CallExpression",
                                "start": 3158,
                                "end": 3223,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 62
                                  },
                                  "end": {
                                    "line": 130,
                                    "column": 7
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3158,
                                  "end": 3176,
                                  "loc": {
                                    "start": {
                                      "line": 127,
                                      "column": 62
                                    },
                                    "end": {
                                      "line": 127,
                                      "column": 80
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 3158,
                                    "end": 3170,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 62
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 74
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 3158,
                                      "end": 3162,
                                      "loc": {
                                        "start": {
                                          "line": 127,
                                          "column": 62
                                        },
                                        "end": {
                                          "line": 127,
                                          "column": 66
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3163,
                                      "end": 3170,
                                      "loc": {
                                        "start": {
                                          "line": 127,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 127,
                                          "column": 74
                                        },
                                        "identifierName": "program"
                                      },
                                      "name": "program"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3171,
                                    "end": 3176,
                                    "loc": {
                                      "start": {
                                        "line": 127,
                                        "column": 75
                                      },
                                      "end": {
                                        "line": 127,
                                        "column": 80
                                      },
                                      "identifierName": "slice"
                                    },
                                    "name": "slice"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "BinaryExpression",
                                    "start": 3186,
                                    "end": 3195,
                                    "loc": {
                                      "start": {
                                        "line": 128,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 128,
                                        "column": 17
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 3186,
                                      "end": 3191,
                                      "loc": {
                                        "start": {
                                          "line": 128,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 128,
                                          "column": 13
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "operator": "-",
                                    "right": {
                                      "type": "NumericLiteral",
                                      "start": 3194,
                                      "end": 3195,
                                      "loc": {
                                        "start": {
                                          "line": 128,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 128,
                                          "column": 17
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 1,
                                        "raw": "1"
                                      },
                                      "value": 1
                                    }
                                  },
                                  {
                                    "type": "BinaryExpression",
                                    "start": 3205,
                                    "end": 3215,
                                    "loc": {
                                      "start": {
                                        "line": 129,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 129,
                                        "column": 18
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 3205,
                                      "end": 3210,
                                      "loc": {
                                        "start": {
                                          "line": 129,
                                          "column": 8
                                        },
                                        "end": {
                                          "line": 129,
                                          "column": 13
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "operator": "+",
                                    "right": {
                                      "type": "NumericLiteral",
                                      "start": 3213,
                                      "end": 3215,
                                      "loc": {
                                        "start": {
                                          "line": 129,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 129,
                                          "column": 18
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 10,
                                        "raw": "10"
                                      },
                                      "value": 10
                                    }
                                  }
                                ]
                              }
                            ],
                            "quasis": [
                              {
                                "type": "TemplateElement",
                                "start": 3103,
                                "end": 3116,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 7
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 20
                                  }
                                },
                                "value": {
                                  "raw": "Parser::Line ",
                                  "cooked": "Parser::Line "
                                },
                                "tail": false
                              },
                              {
                                "type": "TemplateElement",
                                "start": 3128,
                                "end": 3134,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 38
                                  }
                                },
                                "value": {
                                  "raw": "::Col ",
                                  "cooked": "::Col "
                                },
                                "tail": false
                              },
                              {
                                "type": "TemplateElement",
                                "start": 3142,
                                "end": 3144,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 46
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 48
                                  }
                                },
                                "value": {
                                  "raw": "\\n",
                                  "cooked": "\n"
                                },
                                "tail": false
                              },
                              {
                                "type": "TemplateElement",
                                "start": 3154,
                                "end": 3156,
                                "loc": {
                                  "start": {
                                    "line": 127,
                                    "column": 58
                                  },
                                  "end": {
                                    "line": 127,
                                    "column": 60
                                  }
                                },
                                "value": {
                                  "raw": "\\n",
                                  "cooked": "\n"
                                },
                                "tail": false
                              },
                              {
                                "type": "TemplateElement",
                                "start": 3224,
                                "end": 3224,
                                "loc": {
                                  "start": {
                                    "line": 130,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 130,
                                    "column": 8
                                  }
                                },
                                "value": {
                                  "raw": "",
                                  "cooked": ""
                                },
                                "tail": true
                              }
                            ]
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "leadingComments": [
            {
              "type": "CommentBlock",
              "value": "*\n * Parser class. Iterates through the given string, tokenizes it and returns a AST tree.\n * @access public\n ",
              "start": 121,
              "end": 235,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 0
                },
                "end": {
                  "line": 9,
                  "column": 3
                }
              }
            }
          ],
          "__PseudoExport__": false,
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentBlock",
      "value": "*\n * Parser class. Iterates through the given string, tokenizes it and returns a AST tree.\n * @access public\n ",
      "start": 121,
      "end": 235,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 3
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Attributes used by the parser, set to default values\n   ",
      "start": 253,
      "end": 320,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 13,
          "column": 5
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Get array of tokens",
      "start": 612,
      "end": 634,
      "loc": {
        "start": {
          "line": 33,
          "column": 4
        },
        "end": {
          "line": 33,
          "column": 26
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Parse if the array is not empty",
      "start": 705,
      "end": 739,
      "loc": {
        "start": {
          "line": 38,
          "column": 4
        },
        "end": {
          "line": 38,
          "column": 38
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Get next token",
      "start": 1970,
      "end": 1987,
      "loc": {
        "start": {
          "line": 85,
          "column": 4
        },
        "end": {
          "line": 85,
          "column": 21
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Return if apply is empty (not left parenthesis or null)",
      "start": 2034,
      "end": 2092,
      "loc": {
        "start": {
          "line": 88,
          "column": 4
        },
        "end": {
          "line": 88,
          "column": 62
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Parse all arguments inside the parenthesis",
      "start": 2256,
      "end": 2301,
      "loc": {
        "start": {
          "line": 96,
          "column": 4
        },
        "end": {
          "line": 96,
          "column": 49
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Don't consume RPs as argument tokens",
      "start": 2647,
      "end": 2686,
      "loc": {
        "start": {
          "line": 108,
          "column": 6
        },
        "end": {
          "line": 108,
          "column": 45
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fs",
      "start": 7,
      "end": 9,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 10,
      "end": 14,
      "loc": {
        "start": {
          "line": 1,
          "column": 10
        },
        "end": {
          "line": 1,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "fs",
      "start": 15,
      "end": 19,
      "loc": {
        "start": {
          "line": 1,
          "column": 15
        },
        "end": {
          "line": 1,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 19,
      "end": 20,
      "loc": {
        "start": {
          "line": 1,
          "column": 19
        },
        "end": {
          "line": 1,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 22,
      "end": 28,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 29,
      "end": 30,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Lexer",
      "start": 31,
      "end": 36,
      "loc": {
        "start": {
          "line": 3,
          "column": 9
        },
        "end": {
          "line": 3,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 37,
      "end": 38,
      "loc": {
        "start": {
          "line": 3,
          "column": 15
        },
        "end": {
          "line": 3,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 39,
      "end": 43,
      "loc": {
        "start": {
          "line": 3,
          "column": 17
        },
        "end": {
          "line": 3,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./lexer.js",
      "start": 44,
      "end": 56,
      "loc": {
        "start": {
          "line": 3,
          "column": 22
        },
        "end": {
          "line": 3,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 56,
      "end": 57,
      "loc": {
        "start": {
          "line": 3,
          "column": 34
        },
        "end": {
          "line": 3,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 58,
      "end": 64,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 65,
      "end": 66,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Value",
      "start": 67,
      "end": 72,
      "loc": {
        "start": {
          "line": 4,
          "column": 9
        },
        "end": {
          "line": 4,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 72,
      "end": 73,
      "loc": {
        "start": {
          "line": 4,
          "column": 14
        },
        "end": {
          "line": 4,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Word",
      "start": 74,
      "end": 78,
      "loc": {
        "start": {
          "line": 4,
          "column": 16
        },
        "end": {
          "line": 4,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 78,
      "end": 79,
      "loc": {
        "start": {
          "line": 4,
          "column": 20
        },
        "end": {
          "line": 4,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Apply",
      "start": 80,
      "end": 85,
      "loc": {
        "start": {
          "line": 4,
          "column": 22
        },
        "end": {
          "line": 4,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 85,
      "end": 86,
      "loc": {
        "start": {
          "line": 4,
          "column": 27
        },
        "end": {
          "line": 4,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Regex",
      "start": 87,
      "end": 92,
      "loc": {
        "start": {
          "line": 4,
          "column": 29
        },
        "end": {
          "line": 4,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 93,
      "end": 94,
      "loc": {
        "start": {
          "line": 4,
          "column": 35
        },
        "end": {
          "line": 4,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 95,
      "end": 99,
      "loc": {
        "start": {
          "line": 4,
          "column": 37
        },
        "end": {
          "line": 4,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../interp/ast.js",
      "start": 100,
      "end": 118,
      "loc": {
        "start": {
          "line": 4,
          "column": 42
        },
        "end": {
          "line": 4,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 118,
      "end": 119,
      "loc": {
        "start": {
          "line": 4,
          "column": 60
        },
        "end": {
          "line": 4,
          "column": 61
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n * Parser class. Iterates through the given string, tokenizes it and returns a AST tree.\n * @access public\n ",
      "start": 121,
      "end": 235,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 236,
      "end": 241,
      "loc": {
        "start": {
          "line": 10,
          "column": 0
        },
        "end": {
          "line": 10,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Parser",
      "start": 242,
      "end": 248,
      "loc": {
        "start": {
          "line": 10,
          "column": 6
        },
        "end": {
          "line": 10,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 249,
      "end": 250,
      "loc": {
        "start": {
          "line": 10,
          "column": 13
        },
        "end": {
          "line": 10,
          "column": 14
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "*\n   * Attributes used by the parser, set to default values\n   ",
      "start": 253,
      "end": 320,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 13,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 323,
      "end": 334,
      "loc": {
        "start": {
          "line": 14,
          "column": 2
        },
        "end": {
          "line": 14,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 334,
      "end": 335,
      "loc": {
        "start": {
          "line": 14,
          "column": 13
        },
        "end": {
          "line": 14,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 335,
      "end": 336,
      "loc": {
        "start": {
          "line": 14,
          "column": 14
        },
        "end": {
          "line": 14,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 337,
      "end": 338,
      "loc": {
        "start": {
          "line": 14,
          "column": 16
        },
        "end": {
          "line": 14,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 343,
      "end": 347,
      "loc": {
        "start": {
          "line": 15,
          "column": 4
        },
        "end": {
          "line": 15,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 347,
      "end": 348,
      "loc": {
        "start": {
          "line": 15,
          "column": 8
        },
        "end": {
          "line": 15,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "index",
      "start": 348,
      "end": 353,
      "loc": {
        "start": {
          "line": 15,
          "column": 9
        },
        "end": {
          "line": 15,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 354,
      "end": 355,
      "loc": {
        "start": {
          "line": 15,
          "column": 15
        },
        "end": {
          "line": 15,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 356,
      "end": 357,
      "loc": {
        "start": {
          "line": 15,
          "column": 17
        },
        "end": {
          "line": 15,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 357,
      "end": 358,
      "loc": {
        "start": {
          "line": 15,
          "column": 18
        },
        "end": {
          "line": 15,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 363,
      "end": 367,
      "loc": {
        "start": {
          "line": 16,
          "column": 4
        },
        "end": {
          "line": 16,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 367,
      "end": 368,
      "loc": {
        "start": {
          "line": 16,
          "column": 8
        },
        "end": {
          "line": 16,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokens",
      "start": 368,
      "end": 374,
      "loc": {
        "start": {
          "line": 16,
          "column": 9
        },
        "end": {
          "line": 16,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 375,
      "end": 376,
      "loc": {
        "start": {
          "line": 16,
          "column": 16
        },
        "end": {
          "line": 16,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 377,
      "end": 378,
      "loc": {
        "start": {
          "line": 16,
          "column": 18
        },
        "end": {
          "line": 16,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 378,
      "end": 379,
      "loc": {
        "start": {
          "line": 16,
          "column": 19
        },
        "end": {
          "line": 16,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 379,
      "end": 380,
      "loc": {
        "start": {
          "line": 16,
          "column": 20
        },
        "end": {
          "line": 16,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 385,
      "end": 389,
      "loc": {
        "start": {
          "line": 17,
          "column": 4
        },
        "end": {
          "line": 17,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 389,
      "end": 390,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 390,
      "end": 399,
      "loc": {
        "start": {
          "line": 17,
          "column": 9
        },
        "end": {
          "line": 17,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 400,
      "end": 401,
      "loc": {
        "start": {
          "line": 17,
          "column": 19
        },
        "end": {
          "line": 17,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 402,
      "end": 406,
      "loc": {
        "start": {
          "line": 17,
          "column": 21
        },
        "end": {
          "line": 17,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 406,
      "end": 407,
      "loc": {
        "start": {
          "line": 17,
          "column": 25
        },
        "end": {
          "line": 17,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 410,
      "end": 411,
      "loc": {
        "start": {
          "line": 18,
          "column": 2
        },
        "end": {
          "line": 18,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setProgram",
      "start": 415,
      "end": 425,
      "loc": {
        "start": {
          "line": 20,
          "column": 2
        },
        "end": {
          "line": 20,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 425,
      "end": 426,
      "loc": {
        "start": {
          "line": 20,
          "column": 12
        },
        "end": {
          "line": 20,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 426,
      "end": 433,
      "loc": {
        "start": {
          "line": 20,
          "column": 13
        },
        "end": {
          "line": 20,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 433,
      "end": 434,
      "loc": {
        "start": {
          "line": 20,
          "column": 20
        },
        "end": {
          "line": 20,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 435,
      "end": 436,
      "loc": {
        "start": {
          "line": 20,
          "column": 22
        },
        "end": {
          "line": 20,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 441,
      "end": 445,
      "loc": {
        "start": {
          "line": 21,
          "column": 4
        },
        "end": {
          "line": 21,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 445,
      "end": 446,
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 446,
      "end": 453,
      "loc": {
        "start": {
          "line": 21,
          "column": 9
        },
        "end": {
          "line": 21,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 454,
      "end": 455,
      "loc": {
        "start": {
          "line": 21,
          "column": 17
        },
        "end": {
          "line": 21,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 456,
      "end": 463,
      "loc": {
        "start": {
          "line": 21,
          "column": 19
        },
        "end": {
          "line": 21,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 463,
      "end": 464,
      "loc": {
        "start": {
          "line": 21,
          "column": 26
        },
        "end": {
          "line": 21,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 470,
      "end": 474,
      "loc": {
        "start": {
          "line": 23,
          "column": 4
        },
        "end": {
          "line": 23,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 474,
      "end": 475,
      "loc": {
        "start": {
          "line": 23,
          "column": 8
        },
        "end": {
          "line": 23,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "index",
      "start": 475,
      "end": 480,
      "loc": {
        "start": {
          "line": 23,
          "column": 9
        },
        "end": {
          "line": 23,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 481,
      "end": 482,
      "loc": {
        "start": {
          "line": 23,
          "column": 15
        },
        "end": {
          "line": 23,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 483,
      "end": 484,
      "loc": {
        "start": {
          "line": 23,
          "column": 17
        },
        "end": {
          "line": 23,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 484,
      "end": 485,
      "loc": {
        "start": {
          "line": 23,
          "column": 18
        },
        "end": {
          "line": 23,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 490,
      "end": 494,
      "loc": {
        "start": {
          "line": 24,
          "column": 4
        },
        "end": {
          "line": 24,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 494,
      "end": 495,
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokens",
      "start": 495,
      "end": 501,
      "loc": {
        "start": {
          "line": 24,
          "column": 9
        },
        "end": {
          "line": 24,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 502,
      "end": 503,
      "loc": {
        "start": {
          "line": 24,
          "column": 16
        },
        "end": {
          "line": 24,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 504,
      "end": 505,
      "loc": {
        "start": {
          "line": 24,
          "column": 18
        },
        "end": {
          "line": 24,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 505,
      "end": 506,
      "loc": {
        "start": {
          "line": 24,
          "column": 19
        },
        "end": {
          "line": 24,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 506,
      "end": 507,
      "loc": {
        "start": {
          "line": 24,
          "column": 20
        },
        "end": {
          "line": 24,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 512,
      "end": 516,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 516,
      "end": 517,
      "loc": {
        "start": {
          "line": 25,
          "column": 8
        },
        "end": {
          "line": 25,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 517,
      "end": 526,
      "loc": {
        "start": {
          "line": 25,
          "column": 9
        },
        "end": {
          "line": 25,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 527,
      "end": 528,
      "loc": {
        "start": {
          "line": 25,
          "column": 19
        },
        "end": {
          "line": 25,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 529,
      "end": 533,
      "loc": {
        "start": {
          "line": 25,
          "column": 21
        },
        "end": {
          "line": 25,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 533,
      "end": 534,
      "loc": {
        "start": {
          "line": 25,
          "column": 25
        },
        "end": {
          "line": 25,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 540,
      "end": 546,
      "loc": {
        "start": {
          "line": 27,
          "column": 4
        },
        "end": {
          "line": 27,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 547,
      "end": 551,
      "loc": {
        "start": {
          "line": 27,
          "column": 11
        },
        "end": {
          "line": 27,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 551,
      "end": 552,
      "loc": {
        "start": {
          "line": 27,
          "column": 15
        },
        "end": {
          "line": 27,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 555,
      "end": 556,
      "loc": {
        "start": {
          "line": 28,
          "column": 2
        },
        "end": {
          "line": 28,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parse",
      "start": 560,
      "end": 565,
      "loc": {
        "start": {
          "line": 30,
          "column": 2
        },
        "end": {
          "line": 30,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 565,
      "end": 566,
      "loc": {
        "start": {
          "line": 30,
          "column": 7
        },
        "end": {
          "line": 30,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 566,
      "end": 573,
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 573,
      "end": 574,
      "loc": {
        "start": {
          "line": 30,
          "column": 15
        },
        "end": {
          "line": 30,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 575,
      "end": 576,
      "loc": {
        "start": {
          "line": 30,
          "column": 17
        },
        "end": {
          "line": 30,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 581,
      "end": 585,
      "loc": {
        "start": {
          "line": 31,
          "column": 4
        },
        "end": {
          "line": 31,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 585,
      "end": 586,
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "setProgram",
      "start": 586,
      "end": 596,
      "loc": {
        "start": {
          "line": 31,
          "column": 9
        },
        "end": {
          "line": 31,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 596,
      "end": 597,
      "loc": {
        "start": {
          "line": 31,
          "column": 19
        },
        "end": {
          "line": 31,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 597,
      "end": 604,
      "loc": {
        "start": {
          "line": 31,
          "column": 20
        },
        "end": {
          "line": 31,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 604,
      "end": 605,
      "loc": {
        "start": {
          "line": 31,
          "column": 27
        },
        "end": {
          "line": 31,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 605,
      "end": 606,
      "loc": {
        "start": {
          "line": 31,
          "column": 28
        },
        "end": {
          "line": 31,
          "column": 29
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Get array of tokens",
      "start": 612,
      "end": 634,
      "loc": {
        "start": {
          "line": 33,
          "column": 4
        },
        "end": {
          "line": 33,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 639,
      "end": 643,
      "loc": {
        "start": {
          "line": 34,
          "column": 4
        },
        "end": {
          "line": 34,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 643,
      "end": 644,
      "loc": {
        "start": {
          "line": 34,
          "column": 8
        },
        "end": {
          "line": 34,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokens",
      "start": 644,
      "end": 650,
      "loc": {
        "start": {
          "line": 34,
          "column": 9
        },
        "end": {
          "line": 34,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 651,
      "end": 652,
      "loc": {
        "start": {
          "line": 34,
          "column": 16
        },
        "end": {
          "line": 34,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Lexer",
      "start": 653,
      "end": 658,
      "loc": {
        "start": {
          "line": 34,
          "column": 18
        },
        "end": {
          "line": 34,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 658,
      "end": 659,
      "loc": {
        "start": {
          "line": 34,
          "column": 23
        },
        "end": {
          "line": 34,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokenize",
      "start": 659,
      "end": 667,
      "loc": {
        "start": {
          "line": 34,
          "column": 24
        },
        "end": {
          "line": 34,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 667,
      "end": 668,
      "loc": {
        "start": {
          "line": 34,
          "column": 32
        },
        "end": {
          "line": 34,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 668,
      "end": 675,
      "loc": {
        "start": {
          "line": 34,
          "column": 33
        },
        "end": {
          "line": 34,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 675,
      "end": 676,
      "loc": {
        "start": {
          "line": 34,
          "column": 40
        },
        "end": {
          "line": 34,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 676,
      "end": 677,
      "loc": {
        "start": {
          "line": 34,
          "column": 41
        },
        "end": {
          "line": 34,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 683,
      "end": 686,
      "loc": {
        "start": {
          "line": 36,
          "column": 4
        },
        "end": {
          "line": 36,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 687,
      "end": 691,
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 692,
      "end": 693,
      "loc": {
        "start": {
          "line": 36,
          "column": 13
        },
        "end": {
          "line": 36,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 694,
      "end": 698,
      "loc": {
        "start": {
          "line": 36,
          "column": 15
        },
        "end": {
          "line": 36,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 698,
      "end": 699,
      "loc": {
        "start": {
          "line": 36,
          "column": 19
        },
        "end": {
          "line": 36,
          "column": 20
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Parse if the array is not empty",
      "start": 705,
      "end": 739,
      "loc": {
        "start": {
          "line": 38,
          "column": 4
        },
        "end": {
          "line": 38,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 744,
      "end": 746,
      "loc": {
        "start": {
          "line": 39,
          "column": 4
        },
        "end": {
          "line": 39,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 747,
      "end": 748,
      "loc": {
        "start": {
          "line": 39,
          "column": 7
        },
        "end": {
          "line": 39,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 748,
      "end": 752,
      "loc": {
        "start": {
          "line": 39,
          "column": 8
        },
        "end": {
          "line": 39,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 752,
      "end": 753,
      "loc": {
        "start": {
          "line": 39,
          "column": 12
        },
        "end": {
          "line": 39,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokens",
      "start": 753,
      "end": 759,
      "loc": {
        "start": {
          "line": 39,
          "column": 13
        },
        "end": {
          "line": 39,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 759,
      "end": 760,
      "loc": {
        "start": {
          "line": 39,
          "column": 19
        },
        "end": {
          "line": 39,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 760,
      "end": 766,
      "loc": {
        "start": {
          "line": 39,
          "column": 20
        },
        "end": {
          "line": 39,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": ">",
      "start": 767,
      "end": 768,
      "loc": {
        "start": {
          "line": 39,
          "column": 27
        },
        "end": {
          "line": 39,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 769,
      "end": 770,
      "loc": {
        "start": {
          "line": 39,
          "column": 29
        },
        "end": {
          "line": 39,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 770,
      "end": 771,
      "loc": {
        "start": {
          "line": 39,
          "column": 30
        },
        "end": {
          "line": 39,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 772,
      "end": 773,
      "loc": {
        "start": {
          "line": 39,
          "column": 32
        },
        "end": {
          "line": 39,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 780,
      "end": 784,
      "loc": {
        "start": {
          "line": 40,
          "column": 6
        },
        "end": {
          "line": 40,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 784,
      "end": 785,
      "loc": {
        "start": {
          "line": 40,
          "column": 10
        },
        "end": {
          "line": 40,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 785,
      "end": 794,
      "loc": {
        "start": {
          "line": 40,
          "column": 11
        },
        "end": {
          "line": 40,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 795,
      "end": 796,
      "loc": {
        "start": {
          "line": 40,
          "column": 21
        },
        "end": {
          "line": 40,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 797,
      "end": 801,
      "loc": {
        "start": {
          "line": 40,
          "column": 23
        },
        "end": {
          "line": 40,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 801,
      "end": 802,
      "loc": {
        "start": {
          "line": 40,
          "column": 27
        },
        "end": {
          "line": 40,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__nextToken",
      "start": 802,
      "end": 813,
      "loc": {
        "start": {
          "line": 40,
          "column": 28
        },
        "end": {
          "line": 40,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 813,
      "end": 814,
      "loc": {
        "start": {
          "line": 40,
          "column": 39
        },
        "end": {
          "line": 40,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 814,
      "end": 815,
      "loc": {
        "start": {
          "line": 40,
          "column": 40
        },
        "end": {
          "line": 40,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 815,
      "end": 816,
      "loc": {
        "start": {
          "line": 40,
          "column": 41
        },
        "end": {
          "line": 40,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 823,
      "end": 827,
      "loc": {
        "start": {
          "line": 41,
          "column": 6
        },
        "end": {
          "line": 41,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 828,
      "end": 829,
      "loc": {
        "start": {
          "line": 41,
          "column": 11
        },
        "end": {
          "line": 41,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 830,
      "end": 834,
      "loc": {
        "start": {
          "line": 41,
          "column": 13
        },
        "end": {
          "line": 41,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 834,
      "end": 835,
      "loc": {
        "start": {
          "line": 41,
          "column": 17
        },
        "end": {
          "line": 41,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseExpression",
      "start": 835,
      "end": 850,
      "loc": {
        "start": {
          "line": 41,
          "column": 18
        },
        "end": {
          "line": 41,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 850,
      "end": 851,
      "loc": {
        "start": {
          "line": 41,
          "column": 33
        },
        "end": {
          "line": 41,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 851,
      "end": 852,
      "loc": {
        "start": {
          "line": 41,
          "column": 34
        },
        "end": {
          "line": 41,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 852,
      "end": 853,
      "loc": {
        "start": {
          "line": 41,
          "column": 35
        },
        "end": {
          "line": 41,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 858,
      "end": 859,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 865,
      "end": 867,
      "loc": {
        "start": {
          "line": 44,
          "column": 4
        },
        "end": {
          "line": 44,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 868,
      "end": 869,
      "loc": {
        "start": {
          "line": 44,
          "column": 7
        },
        "end": {
          "line": 44,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 869,
      "end": 873,
      "loc": {
        "start": {
          "line": 44,
          "column": 8
        },
        "end": {
          "line": 44,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 873,
      "end": 874,
      "loc": {
        "start": {
          "line": 44,
          "column": 12
        },
        "end": {
          "line": 44,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 874,
      "end": 883,
      "loc": {
        "start": {
          "line": 44,
          "column": 13
        },
        "end": {
          "line": 44,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 884,
      "end": 887,
      "loc": {
        "start": {
          "line": 44,
          "column": 23
        },
        "end": {
          "line": 44,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 888,
      "end": 892,
      "loc": {
        "start": {
          "line": 44,
          "column": 27
        },
        "end": {
          "line": 44,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 892,
      "end": 893,
      "loc": {
        "start": {
          "line": 44,
          "column": 31
        },
        "end": {
          "line": 44,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 894,
      "end": 895,
      "loc": {
        "start": {
          "line": 44,
          "column": 33
        },
        "end": {
          "line": 44,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 902,
      "end": 907,
      "loc": {
        "start": {
          "line": 45,
          "column": 6
        },
        "end": {
          "line": 45,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 908,
      "end": 912,
      "loc": {
        "start": {
          "line": 45,
          "column": 12
        },
        "end": {
          "line": 45,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 912,
      "end": 913,
      "loc": {
        "start": {
          "line": 45,
          "column": 16
        },
        "end": {
          "line": 45,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__parserSyntaxError",
      "start": 913,
      "end": 932,
      "loc": {
        "start": {
          "line": 45,
          "column": 17
        },
        "end": {
          "line": 45,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 932,
      "end": 933,
      "loc": {
        "start": {
          "line": 45,
          "column": 36
        },
        "end": {
          "line": 45,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Unexpected input after the end of file.",
      "start": 933,
      "end": 974,
      "loc": {
        "start": {
          "line": 45,
          "column": 37
        },
        "end": {
          "line": 45,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 974,
      "end": 975,
      "loc": {
        "start": {
          "line": 45,
          "column": 78
        },
        "end": {
          "line": 45,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 975,
      "end": 976,
      "loc": {
        "start": {
          "line": 45,
          "column": 79
        },
        "end": {
          "line": 45,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 981,
      "end": 982,
      "loc": {
        "start": {
          "line": 46,
          "column": 4
        },
        "end": {
          "line": 46,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 988,
      "end": 994,
      "loc": {
        "start": {
          "line": 48,
          "column": 4
        },
        "end": {
          "line": 48,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 995,
      "end": 999,
      "loc": {
        "start": {
          "line": 48,
          "column": 11
        },
        "end": {
          "line": 48,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 999,
      "end": 1000,
      "loc": {
        "start": {
          "line": 48,
          "column": 15
        },
        "end": {
          "line": 48,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1003,
      "end": 1004,
      "loc": {
        "start": {
          "line": 49,
          "column": 2
        },
        "end": {
          "line": 49,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "static",
      "start": 1008,
      "end": 1014,
      "loc": {
        "start": {
          "line": 51,
          "column": 2
        },
        "end": {
          "line": 51,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parse",
      "start": 1015,
      "end": 1020,
      "loc": {
        "start": {
          "line": 51,
          "column": 9
        },
        "end": {
          "line": 51,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1020,
      "end": 1021,
      "loc": {
        "start": {
          "line": 51,
          "column": 14
        },
        "end": {
          "line": 51,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 1021,
      "end": 1028,
      "loc": {
        "start": {
          "line": 51,
          "column": 15
        },
        "end": {
          "line": 51,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1028,
      "end": 1029,
      "loc": {
        "start": {
          "line": 51,
          "column": 22
        },
        "end": {
          "line": 51,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1030,
      "end": 1031,
      "loc": {
        "start": {
          "line": 51,
          "column": 24
        },
        "end": {
          "line": 51,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1036,
      "end": 1042,
      "loc": {
        "start": {
          "line": 52,
          "column": 4
        },
        "end": {
          "line": 52,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1043,
      "end": 1046,
      "loc": {
        "start": {
          "line": 52,
          "column": 11
        },
        "end": {
          "line": 52,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Parser",
      "start": 1047,
      "end": 1053,
      "loc": {
        "start": {
          "line": 52,
          "column": 15
        },
        "end": {
          "line": 52,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1053,
      "end": 1054,
      "loc": {
        "start": {
          "line": 52,
          "column": 21
        },
        "end": {
          "line": 52,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1054,
      "end": 1055,
      "loc": {
        "start": {
          "line": 52,
          "column": 22
        },
        "end": {
          "line": 52,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1055,
      "end": 1056,
      "loc": {
        "start": {
          "line": 52,
          "column": 23
        },
        "end": {
          "line": 52,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parse",
      "start": 1056,
      "end": 1061,
      "loc": {
        "start": {
          "line": 52,
          "column": 24
        },
        "end": {
          "line": 52,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1061,
      "end": 1062,
      "loc": {
        "start": {
          "line": 52,
          "column": 29
        },
        "end": {
          "line": 52,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 1062,
      "end": 1069,
      "loc": {
        "start": {
          "line": 52,
          "column": 30
        },
        "end": {
          "line": 52,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1069,
      "end": 1070,
      "loc": {
        "start": {
          "line": 52,
          "column": 37
        },
        "end": {
          "line": 52,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1070,
      "end": 1071,
      "loc": {
        "start": {
          "line": 52,
          "column": 38
        },
        "end": {
          "line": 52,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1074,
      "end": 1075,
      "loc": {
        "start": {
          "line": 53,
          "column": 2
        },
        "end": {
          "line": 53,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseFromFile",
      "start": 1079,
      "end": 1092,
      "loc": {
        "start": {
          "line": 55,
          "column": 2
        },
        "end": {
          "line": 55,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1092,
      "end": 1093,
      "loc": {
        "start": {
          "line": 55,
          "column": 15
        },
        "end": {
          "line": 55,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "file",
      "start": 1093,
      "end": 1097,
      "loc": {
        "start": {
          "line": 55,
          "column": 16
        },
        "end": {
          "line": 55,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1097,
      "end": 1098,
      "loc": {
        "start": {
          "line": 55,
          "column": 20
        },
        "end": {
          "line": 55,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1099,
      "end": 1100,
      "loc": {
        "start": {
          "line": 55,
          "column": 22
        },
        "end": {
          "line": 55,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1105,
      "end": 1110,
      "loc": {
        "start": {
          "line": 56,
          "column": 4
        },
        "end": {
          "line": 56,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 1111,
      "end": 1118,
      "loc": {
        "start": {
          "line": 56,
          "column": 10
        },
        "end": {
          "line": 56,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1119,
      "end": 1120,
      "loc": {
        "start": {
          "line": 56,
          "column": 18
        },
        "end": {
          "line": 56,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fs",
      "start": 1121,
      "end": 1123,
      "loc": {
        "start": {
          "line": 56,
          "column": 20
        },
        "end": {
          "line": 56,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1123,
      "end": 1124,
      "loc": {
        "start": {
          "line": 56,
          "column": 22
        },
        "end": {
          "line": 56,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "readFileSync",
      "start": 1124,
      "end": 1136,
      "loc": {
        "start": {
          "line": 56,
          "column": 23
        },
        "end": {
          "line": 56,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1136,
      "end": 1137,
      "loc": {
        "start": {
          "line": 56,
          "column": 35
        },
        "end": {
          "line": 56,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "file",
      "start": 1137,
      "end": 1141,
      "loc": {
        "start": {
          "line": 56,
          "column": 36
        },
        "end": {
          "line": 56,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1141,
      "end": 1142,
      "loc": {
        "start": {
          "line": 56,
          "column": 40
        },
        "end": {
          "line": 56,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "utf8",
      "start": 1143,
      "end": 1149,
      "loc": {
        "start": {
          "line": 56,
          "column": 42
        },
        "end": {
          "line": 56,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1149,
      "end": 1150,
      "loc": {
        "start": {
          "line": 56,
          "column": 48
        },
        "end": {
          "line": 56,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1150,
      "end": 1151,
      "loc": {
        "start": {
          "line": 56,
          "column": 49
        },
        "end": {
          "line": 56,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1157,
      "end": 1163,
      "loc": {
        "start": {
          "line": 58,
          "column": 4
        },
        "end": {
          "line": 58,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1164,
      "end": 1168,
      "loc": {
        "start": {
          "line": 58,
          "column": 11
        },
        "end": {
          "line": 58,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1168,
      "end": 1169,
      "loc": {
        "start": {
          "line": 58,
          "column": 15
        },
        "end": {
          "line": 58,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parse",
      "start": 1169,
      "end": 1174,
      "loc": {
        "start": {
          "line": 58,
          "column": 16
        },
        "end": {
          "line": 58,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1174,
      "end": 1175,
      "loc": {
        "start": {
          "line": 58,
          "column": 21
        },
        "end": {
          "line": 58,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 1175,
      "end": 1182,
      "loc": {
        "start": {
          "line": 58,
          "column": 22
        },
        "end": {
          "line": 58,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1182,
      "end": 1183,
      "loc": {
        "start": {
          "line": 58,
          "column": 29
        },
        "end": {
          "line": 58,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1183,
      "end": 1184,
      "loc": {
        "start": {
          "line": 58,
          "column": 30
        },
        "end": {
          "line": 58,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1187,
      "end": 1188,
      "loc": {
        "start": {
          "line": 59,
          "column": 2
        },
        "end": {
          "line": 59,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "static",
      "start": 1192,
      "end": 1198,
      "loc": {
        "start": {
          "line": 61,
          "column": 2
        },
        "end": {
          "line": 61,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseFromFile",
      "start": 1199,
      "end": 1212,
      "loc": {
        "start": {
          "line": 61,
          "column": 9
        },
        "end": {
          "line": 61,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1212,
      "end": 1213,
      "loc": {
        "start": {
          "line": 61,
          "column": 22
        },
        "end": {
          "line": 61,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "file",
      "start": 1213,
      "end": 1217,
      "loc": {
        "start": {
          "line": 61,
          "column": 23
        },
        "end": {
          "line": 61,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1217,
      "end": 1218,
      "loc": {
        "start": {
          "line": 61,
          "column": 27
        },
        "end": {
          "line": 61,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1219,
      "end": 1220,
      "loc": {
        "start": {
          "line": 61,
          "column": 29
        },
        "end": {
          "line": 61,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1225,
      "end": 1231,
      "loc": {
        "start": {
          "line": 62,
          "column": 4
        },
        "end": {
          "line": 62,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1232,
      "end": 1235,
      "loc": {
        "start": {
          "line": 62,
          "column": 11
        },
        "end": {
          "line": 62,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Parser",
      "start": 1236,
      "end": 1242,
      "loc": {
        "start": {
          "line": 62,
          "column": 15
        },
        "end": {
          "line": 62,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1242,
      "end": 1243,
      "loc": {
        "start": {
          "line": 62,
          "column": 21
        },
        "end": {
          "line": 62,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1243,
      "end": 1244,
      "loc": {
        "start": {
          "line": 62,
          "column": 22
        },
        "end": {
          "line": 62,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1244,
      "end": 1245,
      "loc": {
        "start": {
          "line": 62,
          "column": 23
        },
        "end": {
          "line": 62,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseFromFile",
      "start": 1245,
      "end": 1258,
      "loc": {
        "start": {
          "line": 62,
          "column": 24
        },
        "end": {
          "line": 62,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1258,
      "end": 1259,
      "loc": {
        "start": {
          "line": 62,
          "column": 37
        },
        "end": {
          "line": 62,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "file",
      "start": 1259,
      "end": 1263,
      "loc": {
        "start": {
          "line": 62,
          "column": 38
        },
        "end": {
          "line": 62,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1263,
      "end": 1264,
      "loc": {
        "start": {
          "line": 62,
          "column": 42
        },
        "end": {
          "line": 62,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1264,
      "end": 1265,
      "loc": {
        "start": {
          "line": 62,
          "column": 43
        },
        "end": {
          "line": 62,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1268,
      "end": 1269,
      "loc": {
        "start": {
          "line": 63,
          "column": 2
        },
        "end": {
          "line": 63,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseExpression",
      "start": 1273,
      "end": 1288,
      "loc": {
        "start": {
          "line": 65,
          "column": 2
        },
        "end": {
          "line": 65,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1288,
      "end": 1289,
      "loc": {
        "start": {
          "line": 65,
          "column": 17
        },
        "end": {
          "line": 65,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1289,
      "end": 1290,
      "loc": {
        "start": {
          "line": 65,
          "column": 18
        },
        "end": {
          "line": 65,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1291,
      "end": 1292,
      "loc": {
        "start": {
          "line": 65,
          "column": 20
        },
        "end": {
          "line": 65,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1297,
      "end": 1300,
      "loc": {
        "start": {
          "line": 66,
          "column": 4
        },
        "end": {
          "line": 66,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1301,
      "end": 1305,
      "loc": {
        "start": {
          "line": 66,
          "column": 8
        },
        "end": {
          "line": 66,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1305,
      "end": 1306,
      "loc": {
        "start": {
          "line": 66,
          "column": 12
        },
        "end": {
          "line": 66,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1311,
      "end": 1313,
      "loc": {
        "start": {
          "line": 67,
          "column": 4
        },
        "end": {
          "line": 67,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1314,
      "end": 1315,
      "loc": {
        "start": {
          "line": 67,
          "column": 7
        },
        "end": {
          "line": 67,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1315,
      "end": 1319,
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1319,
      "end": 1320,
      "loc": {
        "start": {
          "line": 67,
          "column": 12
        },
        "end": {
          "line": 67,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1320,
      "end": 1329,
      "loc": {
        "start": {
          "line": 67,
          "column": 13
        },
        "end": {
          "line": 67,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1329,
      "end": 1330,
      "loc": {
        "start": {
          "line": 67,
          "column": 22
        },
        "end": {
          "line": 67,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 1330,
      "end": 1334,
      "loc": {
        "start": {
          "line": 67,
          "column": 23
        },
        "end": {
          "line": 67,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1335,
      "end": 1338,
      "loc": {
        "start": {
          "line": 67,
          "column": 28
        },
        "end": {
          "line": 67,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "STRING",
      "start": 1339,
      "end": 1347,
      "loc": {
        "start": {
          "line": 67,
          "column": 32
        },
        "end": {
          "line": 67,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1347,
      "end": 1348,
      "loc": {
        "start": {
          "line": 67,
          "column": 40
        },
        "end": {
          "line": 67,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1349,
      "end": 1350,
      "loc": {
        "start": {
          "line": 67,
          "column": 42
        },
        "end": {
          "line": 67,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1357,
      "end": 1361,
      "loc": {
        "start": {
          "line": 68,
          "column": 6
        },
        "end": {
          "line": 68,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1362,
      "end": 1363,
      "loc": {
        "start": {
          "line": 68,
          "column": 11
        },
        "end": {
          "line": 68,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1364,
      "end": 1367,
      "loc": {
        "start": {
          "line": 68,
          "column": 13
        },
        "end": {
          "line": 68,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Value",
      "start": 1368,
      "end": 1373,
      "loc": {
        "start": {
          "line": 68,
          "column": 17
        },
        "end": {
          "line": 68,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1373,
      "end": 1374,
      "loc": {
        "start": {
          "line": 68,
          "column": 22
        },
        "end": {
          "line": 68,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1374,
      "end": 1378,
      "loc": {
        "start": {
          "line": 68,
          "column": 23
        },
        "end": {
          "line": 68,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1378,
      "end": 1379,
      "loc": {
        "start": {
          "line": 68,
          "column": 27
        },
        "end": {
          "line": 68,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1379,
      "end": 1388,
      "loc": {
        "start": {
          "line": 68,
          "column": 28
        },
        "end": {
          "line": 68,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1388,
      "end": 1389,
      "loc": {
        "start": {
          "line": 68,
          "column": 37
        },
        "end": {
          "line": 68,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1389,
      "end": 1390,
      "loc": {
        "start": {
          "line": 68,
          "column": 38
        },
        "end": {
          "line": 68,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1395,
      "end": 1396,
      "loc": {
        "start": {
          "line": 69,
          "column": 4
        },
        "end": {
          "line": 69,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1397,
      "end": 1401,
      "loc": {
        "start": {
          "line": 69,
          "column": 6
        },
        "end": {
          "line": 69,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1402,
      "end": 1404,
      "loc": {
        "start": {
          "line": 69,
          "column": 11
        },
        "end": {
          "line": 69,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1405,
      "end": 1406,
      "loc": {
        "start": {
          "line": 69,
          "column": 14
        },
        "end": {
          "line": 69,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1406,
      "end": 1410,
      "loc": {
        "start": {
          "line": 69,
          "column": 15
        },
        "end": {
          "line": 69,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1410,
      "end": 1411,
      "loc": {
        "start": {
          "line": 69,
          "column": 19
        },
        "end": {
          "line": 69,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1411,
      "end": 1420,
      "loc": {
        "start": {
          "line": 69,
          "column": 20
        },
        "end": {
          "line": 69,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1420,
      "end": 1421,
      "loc": {
        "start": {
          "line": 69,
          "column": 29
        },
        "end": {
          "line": 69,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 1421,
      "end": 1425,
      "loc": {
        "start": {
          "line": 69,
          "column": 30
        },
        "end": {
          "line": 69,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1426,
      "end": 1429,
      "loc": {
        "start": {
          "line": 69,
          "column": 35
        },
        "end": {
          "line": 69,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "NUMBER",
      "start": 1430,
      "end": 1438,
      "loc": {
        "start": {
          "line": 69,
          "column": 39
        },
        "end": {
          "line": 69,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1438,
      "end": 1439,
      "loc": {
        "start": {
          "line": 69,
          "column": 47
        },
        "end": {
          "line": 69,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1440,
      "end": 1441,
      "loc": {
        "start": {
          "line": 69,
          "column": 49
        },
        "end": {
          "line": 69,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1448,
      "end": 1452,
      "loc": {
        "start": {
          "line": 70,
          "column": 6
        },
        "end": {
          "line": 70,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1452,
      "end": 1453,
      "loc": {
        "start": {
          "line": 70,
          "column": 10
        },
        "end": {
          "line": 70,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1453,
      "end": 1462,
      "loc": {
        "start": {
          "line": 70,
          "column": 11
        },
        "end": {
          "line": 70,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1462,
      "end": 1463,
      "loc": {
        "start": {
          "line": 70,
          "column": 20
        },
        "end": {
          "line": 70,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 1463,
      "end": 1468,
      "loc": {
        "start": {
          "line": 70,
          "column": 21
        },
        "end": {
          "line": 70,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1469,
      "end": 1470,
      "loc": {
        "start": {
          "line": 70,
          "column": 27
        },
        "end": {
          "line": 70,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Number",
      "start": 1471,
      "end": 1477,
      "loc": {
        "start": {
          "line": 70,
          "column": 29
        },
        "end": {
          "line": 70,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1477,
      "end": 1478,
      "loc": {
        "start": {
          "line": 70,
          "column": 35
        },
        "end": {
          "line": 70,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1478,
      "end": 1482,
      "loc": {
        "start": {
          "line": 70,
          "column": 36
        },
        "end": {
          "line": 70,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1482,
      "end": 1483,
      "loc": {
        "start": {
          "line": 70,
          "column": 40
        },
        "end": {
          "line": 70,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1483,
      "end": 1492,
      "loc": {
        "start": {
          "line": 70,
          "column": 41
        },
        "end": {
          "line": 70,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1492,
      "end": 1493,
      "loc": {
        "start": {
          "line": 70,
          "column": 50
        },
        "end": {
          "line": 70,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 1493,
      "end": 1498,
      "loc": {
        "start": {
          "line": 70,
          "column": 51
        },
        "end": {
          "line": 70,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1498,
      "end": 1499,
      "loc": {
        "start": {
          "line": 70,
          "column": 56
        },
        "end": {
          "line": 70,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1499,
      "end": 1500,
      "loc": {
        "start": {
          "line": 70,
          "column": 57
        },
        "end": {
          "line": 70,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1507,
      "end": 1511,
      "loc": {
        "start": {
          "line": 71,
          "column": 6
        },
        "end": {
          "line": 71,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1512,
      "end": 1513,
      "loc": {
        "start": {
          "line": 71,
          "column": 11
        },
        "end": {
          "line": 71,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1514,
      "end": 1517,
      "loc": {
        "start": {
          "line": 71,
          "column": 13
        },
        "end": {
          "line": 71,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Value",
      "start": 1518,
      "end": 1523,
      "loc": {
        "start": {
          "line": 71,
          "column": 17
        },
        "end": {
          "line": 71,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1523,
      "end": 1524,
      "loc": {
        "start": {
          "line": 71,
          "column": 22
        },
        "end": {
          "line": 71,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1524,
      "end": 1528,
      "loc": {
        "start": {
          "line": 71,
          "column": 23
        },
        "end": {
          "line": 71,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1528,
      "end": 1529,
      "loc": {
        "start": {
          "line": 71,
          "column": 27
        },
        "end": {
          "line": 71,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1529,
      "end": 1538,
      "loc": {
        "start": {
          "line": 71,
          "column": 28
        },
        "end": {
          "line": 71,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1538,
      "end": 1539,
      "loc": {
        "start": {
          "line": 71,
          "column": 37
        },
        "end": {
          "line": 71,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1539,
      "end": 1540,
      "loc": {
        "start": {
          "line": 71,
          "column": 38
        },
        "end": {
          "line": 71,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1545,
      "end": 1546,
      "loc": {
        "start": {
          "line": 72,
          "column": 4
        },
        "end": {
          "line": 72,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1547,
      "end": 1551,
      "loc": {
        "start": {
          "line": 72,
          "column": 6
        },
        "end": {
          "line": 72,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1552,
      "end": 1554,
      "loc": {
        "start": {
          "line": 72,
          "column": 11
        },
        "end": {
          "line": 72,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1555,
      "end": 1556,
      "loc": {
        "start": {
          "line": 72,
          "column": 14
        },
        "end": {
          "line": 72,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1556,
      "end": 1560,
      "loc": {
        "start": {
          "line": 72,
          "column": 15
        },
        "end": {
          "line": 72,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1560,
      "end": 1561,
      "loc": {
        "start": {
          "line": 72,
          "column": 19
        },
        "end": {
          "line": 72,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1561,
      "end": 1570,
      "loc": {
        "start": {
          "line": 72,
          "column": 20
        },
        "end": {
          "line": 72,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1570,
      "end": 1571,
      "loc": {
        "start": {
          "line": 72,
          "column": 29
        },
        "end": {
          "line": 72,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 1571,
      "end": 1575,
      "loc": {
        "start": {
          "line": 72,
          "column": 30
        },
        "end": {
          "line": 72,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1576,
      "end": 1579,
      "loc": {
        "start": {
          "line": 72,
          "column": 35
        },
        "end": {
          "line": 72,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "REGEX",
      "start": 1580,
      "end": 1587,
      "loc": {
        "start": {
          "line": 72,
          "column": 39
        },
        "end": {
          "line": 72,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1587,
      "end": 1588,
      "loc": {
        "start": {
          "line": 72,
          "column": 46
        },
        "end": {
          "line": 72,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1589,
      "end": 1590,
      "loc": {
        "start": {
          "line": 72,
          "column": 48
        },
        "end": {
          "line": 72,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1597,
      "end": 1602,
      "loc": {
        "start": {
          "line": 73,
          "column": 6
        },
        "end": {
          "line": 73,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fields",
      "start": 1603,
      "end": 1609,
      "loc": {
        "start": {
          "line": 73,
          "column": 12
        },
        "end": {
          "line": 73,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1610,
      "end": 1611,
      "loc": {
        "start": {
          "line": 73,
          "column": 19
        },
        "end": {
          "line": 73,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1612,
      "end": 1616,
      "loc": {
        "start": {
          "line": 73,
          "column": 21
        },
        "end": {
          "line": 73,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1616,
      "end": 1617,
      "loc": {
        "start": {
          "line": 73,
          "column": 25
        },
        "end": {
          "line": 73,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1617,
      "end": 1626,
      "loc": {
        "start": {
          "line": 73,
          "column": 26
        },
        "end": {
          "line": 73,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1626,
      "end": 1627,
      "loc": {
        "start": {
          "line": 73,
          "column": 35
        },
        "end": {
          "line": 73,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 1627,
      "end": 1632,
      "loc": {
        "start": {
          "line": 73,
          "column": 36
        },
        "end": {
          "line": 73,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1632,
      "end": 1633,
      "loc": {
        "start": {
          "line": 73,
          "column": 41
        },
        "end": {
          "line": 73,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "split",
      "start": 1633,
      "end": 1638,
      "loc": {
        "start": {
          "line": 73,
          "column": 42
        },
        "end": {
          "line": 73,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1638,
      "end": 1639,
      "loc": {
        "start": {
          "line": 73,
          "column": 47
        },
        "end": {
          "line": 73,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "/",
      "start": 1639,
      "end": 1642,
      "loc": {
        "start": {
          "line": 73,
          "column": 48
        },
        "end": {
          "line": 73,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1642,
      "end": 1643,
      "loc": {
        "start": {
          "line": 73,
          "column": 51
        },
        "end": {
          "line": 73,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1643,
      "end": 1644,
      "loc": {
        "start": {
          "line": 73,
          "column": 52
        },
        "end": {
          "line": 73,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1651,
      "end": 1655,
      "loc": {
        "start": {
          "line": 74,
          "column": 6
        },
        "end": {
          "line": 74,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1656,
      "end": 1657,
      "loc": {
        "start": {
          "line": 74,
          "column": 11
        },
        "end": {
          "line": 74,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1658,
      "end": 1661,
      "loc": {
        "start": {
          "line": 74,
          "column": 13
        },
        "end": {
          "line": 74,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Regex",
      "start": 1662,
      "end": 1667,
      "loc": {
        "start": {
          "line": 74,
          "column": 17
        },
        "end": {
          "line": 74,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1667,
      "end": 1668,
      "loc": {
        "start": {
          "line": 74,
          "column": 22
        },
        "end": {
          "line": 74,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1668,
      "end": 1669,
      "loc": {
        "start": {
          "line": 74,
          "column": 23
        },
        "end": {
          "line": 74,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "body",
      "start": 1670,
      "end": 1674,
      "loc": {
        "start": {
          "line": 74,
          "column": 25
        },
        "end": {
          "line": 74,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1674,
      "end": 1675,
      "loc": {
        "start": {
          "line": 74,
          "column": 29
        },
        "end": {
          "line": 74,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fields",
      "start": 1676,
      "end": 1682,
      "loc": {
        "start": {
          "line": 74,
          "column": 31
        },
        "end": {
          "line": 74,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1682,
      "end": 1683,
      "loc": {
        "start": {
          "line": 74,
          "column": 37
        },
        "end": {
          "line": 74,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 1683,
      "end": 1684,
      "loc": {
        "start": {
          "line": 74,
          "column": 38
        },
        "end": {
          "line": 74,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1684,
      "end": 1685,
      "loc": {
        "start": {
          "line": 74,
          "column": 39
        },
        "end": {
          "line": 74,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1685,
      "end": 1686,
      "loc": {
        "start": {
          "line": 74,
          "column": 40
        },
        "end": {
          "line": 74,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 1687,
      "end": 1692,
      "loc": {
        "start": {
          "line": 74,
          "column": 42
        },
        "end": {
          "line": 74,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1692,
      "end": 1693,
      "loc": {
        "start": {
          "line": 74,
          "column": 47
        },
        "end": {
          "line": 74,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "fields",
      "start": 1694,
      "end": 1700,
      "loc": {
        "start": {
          "line": 74,
          "column": 49
        },
        "end": {
          "line": 74,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1700,
      "end": 1701,
      "loc": {
        "start": {
          "line": 74,
          "column": 55
        },
        "end": {
          "line": 74,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 2,
      "start": 1701,
      "end": 1702,
      "loc": {
        "start": {
          "line": 74,
          "column": 56
        },
        "end": {
          "line": 74,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1702,
      "end": 1703,
      "loc": {
        "start": {
          "line": 74,
          "column": 57
        },
        "end": {
          "line": 74,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1704,
      "end": 1705,
      "loc": {
        "start": {
          "line": 74,
          "column": 59
        },
        "end": {
          "line": 74,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1705,
      "end": 1706,
      "loc": {
        "start": {
          "line": 74,
          "column": 60
        },
        "end": {
          "line": 74,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1706,
      "end": 1707,
      "loc": {
        "start": {
          "line": 74,
          "column": 61
        },
        "end": {
          "line": 74,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1712,
      "end": 1713,
      "loc": {
        "start": {
          "line": 75,
          "column": 4
        },
        "end": {
          "line": 75,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1714,
      "end": 1718,
      "loc": {
        "start": {
          "line": 75,
          "column": 6
        },
        "end": {
          "line": 75,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1719,
      "end": 1721,
      "loc": {
        "start": {
          "line": 75,
          "column": 11
        },
        "end": {
          "line": 75,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1722,
      "end": 1723,
      "loc": {
        "start": {
          "line": 75,
          "column": 14
        },
        "end": {
          "line": 75,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1723,
      "end": 1727,
      "loc": {
        "start": {
          "line": 75,
          "column": 15
        },
        "end": {
          "line": 75,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1727,
      "end": 1728,
      "loc": {
        "start": {
          "line": 75,
          "column": 19
        },
        "end": {
          "line": 75,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1728,
      "end": 1737,
      "loc": {
        "start": {
          "line": 75,
          "column": 20
        },
        "end": {
          "line": 75,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1737,
      "end": 1738,
      "loc": {
        "start": {
          "line": 75,
          "column": 29
        },
        "end": {
          "line": 75,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 1738,
      "end": 1742,
      "loc": {
        "start": {
          "line": 75,
          "column": 30
        },
        "end": {
          "line": 75,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1743,
      "end": 1746,
      "loc": {
        "start": {
          "line": 75,
          "column": 35
        },
        "end": {
          "line": 75,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "WORD",
      "start": 1747,
      "end": 1753,
      "loc": {
        "start": {
          "line": 75,
          "column": 39
        },
        "end": {
          "line": 75,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1753,
      "end": 1754,
      "loc": {
        "start": {
          "line": 75,
          "column": 45
        },
        "end": {
          "line": 75,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1755,
      "end": 1756,
      "loc": {
        "start": {
          "line": 75,
          "column": 47
        },
        "end": {
          "line": 75,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1763,
      "end": 1767,
      "loc": {
        "start": {
          "line": 76,
          "column": 6
        },
        "end": {
          "line": 76,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1768,
      "end": 1769,
      "loc": {
        "start": {
          "line": 76,
          "column": 11
        },
        "end": {
          "line": 76,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1770,
      "end": 1773,
      "loc": {
        "start": {
          "line": 76,
          "column": 13
        },
        "end": {
          "line": 76,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Word",
      "start": 1774,
      "end": 1778,
      "loc": {
        "start": {
          "line": 76,
          "column": 17
        },
        "end": {
          "line": 76,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1778,
      "end": 1779,
      "loc": {
        "start": {
          "line": 76,
          "column": 21
        },
        "end": {
          "line": 76,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1779,
      "end": 1783,
      "loc": {
        "start": {
          "line": 76,
          "column": 22
        },
        "end": {
          "line": 76,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1783,
      "end": 1784,
      "loc": {
        "start": {
          "line": 76,
          "column": 26
        },
        "end": {
          "line": 76,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1784,
      "end": 1793,
      "loc": {
        "start": {
          "line": 76,
          "column": 27
        },
        "end": {
          "line": 76,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1793,
      "end": 1794,
      "loc": {
        "start": {
          "line": 76,
          "column": 36
        },
        "end": {
          "line": 76,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1794,
      "end": 1795,
      "loc": {
        "start": {
          "line": 76,
          "column": 37
        },
        "end": {
          "line": 76,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1800,
      "end": 1801,
      "loc": {
        "start": {
          "line": 77,
          "column": 4
        },
        "end": {
          "line": 77,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "else",
        "keyword": "else",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "else",
      "start": 1802,
      "end": 1806,
      "loc": {
        "start": {
          "line": 77,
          "column": 6
        },
        "end": {
          "line": 77,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1807,
      "end": 1808,
      "loc": {
        "start": {
          "line": 77,
          "column": 11
        },
        "end": {
          "line": 77,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 1815,
      "end": 1820,
      "loc": {
        "start": {
          "line": 78,
          "column": 6
        },
        "end": {
          "line": 78,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1821,
      "end": 1825,
      "loc": {
        "start": {
          "line": 78,
          "column": 12
        },
        "end": {
          "line": 78,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1825,
      "end": 1826,
      "loc": {
        "start": {
          "line": 78,
          "column": 16
        },
        "end": {
          "line": 78,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__parserSyntaxError",
      "start": 1826,
      "end": 1845,
      "loc": {
        "start": {
          "line": 78,
          "column": 17
        },
        "end": {
          "line": 78,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1845,
      "end": 1846,
      "loc": {
        "start": {
          "line": 78,
          "column": 36
        },
        "end": {
          "line": 78,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Unrecognized token while parsing the expression.",
      "start": 1846,
      "end": 1896,
      "loc": {
        "start": {
          "line": 78,
          "column": 37
        },
        "end": {
          "line": 78,
          "column": 87
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1896,
      "end": 1897,
      "loc": {
        "start": {
          "line": 78,
          "column": 87
        },
        "end": {
          "line": 78,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1897,
      "end": 1898,
      "loc": {
        "start": {
          "line": 78,
          "column": 88
        },
        "end": {
          "line": 78,
          "column": 89
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1903,
      "end": 1904,
      "loc": {
        "start": {
          "line": 79,
          "column": 4
        },
        "end": {
          "line": 79,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1910,
      "end": 1916,
      "loc": {
        "start": {
          "line": 81,
          "column": 4
        },
        "end": {
          "line": 81,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1917,
      "end": 1921,
      "loc": {
        "start": {
          "line": 81,
          "column": 11
        },
        "end": {
          "line": 81,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1921,
      "end": 1922,
      "loc": {
        "start": {
          "line": 81,
          "column": 15
        },
        "end": {
          "line": 81,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseApply",
      "start": 1922,
      "end": 1932,
      "loc": {
        "start": {
          "line": 81,
          "column": 16
        },
        "end": {
          "line": 81,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1932,
      "end": 1933,
      "loc": {
        "start": {
          "line": 81,
          "column": 26
        },
        "end": {
          "line": 81,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1933,
      "end": 1937,
      "loc": {
        "start": {
          "line": 81,
          "column": 27
        },
        "end": {
          "line": 81,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1937,
      "end": 1938,
      "loc": {
        "start": {
          "line": 81,
          "column": 31
        },
        "end": {
          "line": 81,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1938,
      "end": 1939,
      "loc": {
        "start": {
          "line": 81,
          "column": 32
        },
        "end": {
          "line": 81,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1942,
      "end": 1943,
      "loc": {
        "start": {
          "line": 82,
          "column": 2
        },
        "end": {
          "line": 82,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseApply",
      "start": 1947,
      "end": 1957,
      "loc": {
        "start": {
          "line": 84,
          "column": 2
        },
        "end": {
          "line": 84,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1957,
      "end": 1958,
      "loc": {
        "start": {
          "line": 84,
          "column": 12
        },
        "end": {
          "line": 84,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 1958,
      "end": 1962,
      "loc": {
        "start": {
          "line": 84,
          "column": 13
        },
        "end": {
          "line": 84,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1962,
      "end": 1963,
      "loc": {
        "start": {
          "line": 84,
          "column": 17
        },
        "end": {
          "line": 84,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1964,
      "end": 1965,
      "loc": {
        "start": {
          "line": 84,
          "column": 19
        },
        "end": {
          "line": 84,
          "column": 20
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Get next token",
      "start": 1970,
      "end": 1987,
      "loc": {
        "start": {
          "line": 85,
          "column": 4
        },
        "end": {
          "line": 85,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1992,
      "end": 1996,
      "loc": {
        "start": {
          "line": 86,
          "column": 4
        },
        "end": {
          "line": 86,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1996,
      "end": 1997,
      "loc": {
        "start": {
          "line": 86,
          "column": 8
        },
        "end": {
          "line": 86,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 1997,
      "end": 2006,
      "loc": {
        "start": {
          "line": 86,
          "column": 9
        },
        "end": {
          "line": 86,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2007,
      "end": 2008,
      "loc": {
        "start": {
          "line": 86,
          "column": 19
        },
        "end": {
          "line": 86,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2009,
      "end": 2013,
      "loc": {
        "start": {
          "line": 86,
          "column": 21
        },
        "end": {
          "line": 86,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2013,
      "end": 2014,
      "loc": {
        "start": {
          "line": 86,
          "column": 25
        },
        "end": {
          "line": 86,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__nextToken",
      "start": 2014,
      "end": 2025,
      "loc": {
        "start": {
          "line": 86,
          "column": 26
        },
        "end": {
          "line": 86,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2025,
      "end": 2026,
      "loc": {
        "start": {
          "line": 86,
          "column": 37
        },
        "end": {
          "line": 86,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2026,
      "end": 2027,
      "loc": {
        "start": {
          "line": 86,
          "column": 38
        },
        "end": {
          "line": 86,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2027,
      "end": 2028,
      "loc": {
        "start": {
          "line": 86,
          "column": 39
        },
        "end": {
          "line": 86,
          "column": 40
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Return if apply is empty (not left parenthesis or null)",
      "start": 2034,
      "end": 2092,
      "loc": {
        "start": {
          "line": 88,
          "column": 4
        },
        "end": {
          "line": 88,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2097,
      "end": 2099,
      "loc": {
        "start": {
          "line": 89,
          "column": 4
        },
        "end": {
          "line": 89,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2100,
      "end": 2101,
      "loc": {
        "start": {
          "line": 89,
          "column": 7
        },
        "end": {
          "line": 89,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 2101,
      "end": 2102,
      "loc": {
        "start": {
          "line": 89,
          "column": 8
        },
        "end": {
          "line": 89,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2102,
      "end": 2106,
      "loc": {
        "start": {
          "line": 89,
          "column": 9
        },
        "end": {
          "line": 89,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2106,
      "end": 2107,
      "loc": {
        "start": {
          "line": 89,
          "column": 13
        },
        "end": {
          "line": 89,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2107,
      "end": 2116,
      "loc": {
        "start": {
          "line": 89,
          "column": 14
        },
        "end": {
          "line": 89,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 2117,
      "end": 2119,
      "loc": {
        "start": {
          "line": 89,
          "column": 24
        },
        "end": {
          "line": 89,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2120,
      "end": 2124,
      "loc": {
        "start": {
          "line": 89,
          "column": 27
        },
        "end": {
          "line": 89,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2124,
      "end": 2125,
      "loc": {
        "start": {
          "line": 89,
          "column": 31
        },
        "end": {
          "line": 89,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2125,
      "end": 2134,
      "loc": {
        "start": {
          "line": 89,
          "column": 32
        },
        "end": {
          "line": 89,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2134,
      "end": 2135,
      "loc": {
        "start": {
          "line": 89,
          "column": 41
        },
        "end": {
          "line": 89,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2135,
      "end": 2139,
      "loc": {
        "start": {
          "line": 89,
          "column": 42
        },
        "end": {
          "line": 89,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2140,
      "end": 2143,
      "loc": {
        "start": {
          "line": 89,
          "column": 47
        },
        "end": {
          "line": 89,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "LP",
      "start": 2144,
      "end": 2148,
      "loc": {
        "start": {
          "line": 89,
          "column": 51
        },
        "end": {
          "line": 89,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2148,
      "end": 2149,
      "loc": {
        "start": {
          "line": 89,
          "column": 55
        },
        "end": {
          "line": 89,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2150,
      "end": 2151,
      "loc": {
        "start": {
          "line": 89,
          "column": 57
        },
        "end": {
          "line": 89,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2158,
      "end": 2164,
      "loc": {
        "start": {
          "line": 90,
          "column": 6
        },
        "end": {
          "line": 90,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 2165,
      "end": 2169,
      "loc": {
        "start": {
          "line": 90,
          "column": 13
        },
        "end": {
          "line": 90,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2169,
      "end": 2170,
      "loc": {
        "start": {
          "line": 90,
          "column": 17
        },
        "end": {
          "line": 90,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2175,
      "end": 2176,
      "loc": {
        "start": {
          "line": 91,
          "column": 4
        },
        "end": {
          "line": 91,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2182,
      "end": 2185,
      "loc": {
        "start": {
          "line": 93,
          "column": 4
        },
        "end": {
          "line": 93,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 2186,
      "end": 2190,
      "loc": {
        "start": {
          "line": 93,
          "column": 8
        },
        "end": {
          "line": 93,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2191,
      "end": 2192,
      "loc": {
        "start": {
          "line": 93,
          "column": 13
        },
        "end": {
          "line": 93,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 2193,
      "end": 2196,
      "loc": {
        "start": {
          "line": 93,
          "column": 15
        },
        "end": {
          "line": 93,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Apply",
      "start": 2197,
      "end": 2202,
      "loc": {
        "start": {
          "line": 93,
          "column": 19
        },
        "end": {
          "line": 93,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2202,
      "end": 2203,
      "loc": {
        "start": {
          "line": 93,
          "column": 24
        },
        "end": {
          "line": 93,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expr",
      "start": 2203,
      "end": 2207,
      "loc": {
        "start": {
          "line": 93,
          "column": 25
        },
        "end": {
          "line": 93,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2207,
      "end": 2208,
      "loc": {
        "start": {
          "line": 93,
          "column": 29
        },
        "end": {
          "line": 93,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2208,
      "end": 2209,
      "loc": {
        "start": {
          "line": 93,
          "column": 30
        },
        "end": {
          "line": 93,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2215,
      "end": 2219,
      "loc": {
        "start": {
          "line": 95,
          "column": 4
        },
        "end": {
          "line": 95,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2219,
      "end": 2220,
      "loc": {
        "start": {
          "line": 95,
          "column": 8
        },
        "end": {
          "line": 95,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2220,
      "end": 2229,
      "loc": {
        "start": {
          "line": 95,
          "column": 9
        },
        "end": {
          "line": 95,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2230,
      "end": 2231,
      "loc": {
        "start": {
          "line": 95,
          "column": 19
        },
        "end": {
          "line": 95,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2232,
      "end": 2236,
      "loc": {
        "start": {
          "line": 95,
          "column": 21
        },
        "end": {
          "line": 95,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2236,
      "end": 2237,
      "loc": {
        "start": {
          "line": 95,
          "column": 25
        },
        "end": {
          "line": 95,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__nextToken",
      "start": 2237,
      "end": 2248,
      "loc": {
        "start": {
          "line": 95,
          "column": 26
        },
        "end": {
          "line": 95,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2248,
      "end": 2249,
      "loc": {
        "start": {
          "line": 95,
          "column": 37
        },
        "end": {
          "line": 95,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2249,
      "end": 2250,
      "loc": {
        "start": {
          "line": 95,
          "column": 38
        },
        "end": {
          "line": 95,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2250,
      "end": 2251,
      "loc": {
        "start": {
          "line": 95,
          "column": 39
        },
        "end": {
          "line": 95,
          "column": 40
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Parse all arguments inside the parenthesis",
      "start": 2256,
      "end": 2301,
      "loc": {
        "start": {
          "line": 96,
          "column": 4
        },
        "end": {
          "line": 96,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "while",
        "keyword": "while",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "while",
      "start": 2306,
      "end": 2311,
      "loc": {
        "start": {
          "line": 97,
          "column": 4
        },
        "end": {
          "line": 97,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2312,
      "end": 2313,
      "loc": {
        "start": {
          "line": 97,
          "column": 10
        },
        "end": {
          "line": 97,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2313,
      "end": 2317,
      "loc": {
        "start": {
          "line": 97,
          "column": 11
        },
        "end": {
          "line": 97,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2317,
      "end": 2318,
      "loc": {
        "start": {
          "line": 97,
          "column": 15
        },
        "end": {
          "line": 97,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2318,
      "end": 2327,
      "loc": {
        "start": {
          "line": 97,
          "column": 16
        },
        "end": {
          "line": 97,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2328,
      "end": 2330,
      "loc": {
        "start": {
          "line": 97,
          "column": 26
        },
        "end": {
          "line": 97,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2331,
      "end": 2335,
      "loc": {
        "start": {
          "line": 97,
          "column": 29
        },
        "end": {
          "line": 97,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2335,
      "end": 2336,
      "loc": {
        "start": {
          "line": 97,
          "column": 33
        },
        "end": {
          "line": 97,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2336,
      "end": 2345,
      "loc": {
        "start": {
          "line": 97,
          "column": 34
        },
        "end": {
          "line": 97,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2345,
      "end": 2346,
      "loc": {
        "start": {
          "line": 97,
          "column": 43
        },
        "end": {
          "line": 97,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2346,
      "end": 2350,
      "loc": {
        "start": {
          "line": 97,
          "column": 44
        },
        "end": {
          "line": 97,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2351,
      "end": 2354,
      "loc": {
        "start": {
          "line": 97,
          "column": 49
        },
        "end": {
          "line": 97,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "RP",
      "start": 2355,
      "end": 2359,
      "loc": {
        "start": {
          "line": 97,
          "column": 53
        },
        "end": {
          "line": 97,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2359,
      "end": 2360,
      "loc": {
        "start": {
          "line": 97,
          "column": 57
        },
        "end": {
          "line": 97,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2361,
      "end": 2362,
      "loc": {
        "start": {
          "line": 97,
          "column": 59
        },
        "end": {
          "line": 97,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2369,
      "end": 2372,
      "loc": {
        "start": {
          "line": 98,
          "column": 6
        },
        "end": {
          "line": 98,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "arg",
      "start": 2373,
      "end": 2376,
      "loc": {
        "start": {
          "line": 98,
          "column": 10
        },
        "end": {
          "line": 98,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2377,
      "end": 2378,
      "loc": {
        "start": {
          "line": 98,
          "column": 14
        },
        "end": {
          "line": 98,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2379,
      "end": 2383,
      "loc": {
        "start": {
          "line": 98,
          "column": 16
        },
        "end": {
          "line": 98,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2383,
      "end": 2384,
      "loc": {
        "start": {
          "line": 98,
          "column": 20
        },
        "end": {
          "line": 98,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseExpression",
      "start": 2384,
      "end": 2399,
      "loc": {
        "start": {
          "line": 98,
          "column": 21
        },
        "end": {
          "line": 98,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2399,
      "end": 2400,
      "loc": {
        "start": {
          "line": 98,
          "column": 36
        },
        "end": {
          "line": 98,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2400,
      "end": 2401,
      "loc": {
        "start": {
          "line": 98,
          "column": 37
        },
        "end": {
          "line": 98,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2401,
      "end": 2402,
      "loc": {
        "start": {
          "line": 98,
          "column": 38
        },
        "end": {
          "line": 98,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 2409,
      "end": 2413,
      "loc": {
        "start": {
          "line": 99,
          "column": 6
        },
        "end": {
          "line": 99,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2413,
      "end": 2414,
      "loc": {
        "start": {
          "line": 99,
          "column": 10
        },
        "end": {
          "line": 99,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "args",
      "start": 2414,
      "end": 2418,
      "loc": {
        "start": {
          "line": 99,
          "column": 11
        },
        "end": {
          "line": 99,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2418,
      "end": 2419,
      "loc": {
        "start": {
          "line": 99,
          "column": 15
        },
        "end": {
          "line": 99,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 2419,
      "end": 2423,
      "loc": {
        "start": {
          "line": 99,
          "column": 16
        },
        "end": {
          "line": 99,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2423,
      "end": 2424,
      "loc": {
        "start": {
          "line": 99,
          "column": 20
        },
        "end": {
          "line": 99,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "arg",
      "start": 2424,
      "end": 2427,
      "loc": {
        "start": {
          "line": 99,
          "column": 21
        },
        "end": {
          "line": 99,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2427,
      "end": 2428,
      "loc": {
        "start": {
          "line": 99,
          "column": 24
        },
        "end": {
          "line": 99,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2428,
      "end": 2429,
      "loc": {
        "start": {
          "line": 99,
          "column": 25
        },
        "end": {
          "line": 99,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2437,
      "end": 2439,
      "loc": {
        "start": {
          "line": 101,
          "column": 6
        },
        "end": {
          "line": 101,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2440,
      "end": 2441,
      "loc": {
        "start": {
          "line": 101,
          "column": 9
        },
        "end": {
          "line": 101,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 2450,
      "end": 2451,
      "loc": {
        "start": {
          "line": 102,
          "column": 8
        },
        "end": {
          "line": 102,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2451,
      "end": 2455,
      "loc": {
        "start": {
          "line": 102,
          "column": 9
        },
        "end": {
          "line": 102,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2455,
      "end": 2456,
      "loc": {
        "start": {
          "line": 102,
          "column": 13
        },
        "end": {
          "line": 102,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2456,
      "end": 2465,
      "loc": {
        "start": {
          "line": 102,
          "column": 14
        },
        "end": {
          "line": 102,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 2466,
      "end": 2468,
      "loc": {
        "start": {
          "line": 102,
          "column": 24
        },
        "end": {
          "line": 102,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2477,
      "end": 2478,
      "loc": {
        "start": {
          "line": 103,
          "column": 8
        },
        "end": {
          "line": 103,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2478,
      "end": 2482,
      "loc": {
        "start": {
          "line": 103,
          "column": 9
        },
        "end": {
          "line": 103,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2482,
      "end": 2483,
      "loc": {
        "start": {
          "line": 103,
          "column": 13
        },
        "end": {
          "line": 103,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2483,
      "end": 2492,
      "loc": {
        "start": {
          "line": 103,
          "column": 14
        },
        "end": {
          "line": 103,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2492,
      "end": 2493,
      "loc": {
        "start": {
          "line": 103,
          "column": 23
        },
        "end": {
          "line": 103,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2493,
      "end": 2497,
      "loc": {
        "start": {
          "line": 103,
          "column": 24
        },
        "end": {
          "line": 103,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2498,
      "end": 2501,
      "loc": {
        "start": {
          "line": 103,
          "column": 29
        },
        "end": {
          "line": 103,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "COMMA",
      "start": 2502,
      "end": 2509,
      "loc": {
        "start": {
          "line": 103,
          "column": 33
        },
        "end": {
          "line": 103,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2510,
      "end": 2512,
      "loc": {
        "start": {
          "line": 103,
          "column": 41
        },
        "end": {
          "line": 103,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2513,
      "end": 2517,
      "loc": {
        "start": {
          "line": 103,
          "column": 44
        },
        "end": {
          "line": 103,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2517,
      "end": 2518,
      "loc": {
        "start": {
          "line": 103,
          "column": 48
        },
        "end": {
          "line": 103,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2518,
      "end": 2527,
      "loc": {
        "start": {
          "line": 103,
          "column": 49
        },
        "end": {
          "line": 103,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2527,
      "end": 2528,
      "loc": {
        "start": {
          "line": 103,
          "column": 58
        },
        "end": {
          "line": 103,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2528,
      "end": 2532,
      "loc": {
        "start": {
          "line": 103,
          "column": 59
        },
        "end": {
          "line": 103,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2533,
      "end": 2536,
      "loc": {
        "start": {
          "line": 103,
          "column": 64
        },
        "end": {
          "line": 103,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "RP",
      "start": 2537,
      "end": 2541,
      "loc": {
        "start": {
          "line": 103,
          "column": 68
        },
        "end": {
          "line": 103,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2541,
      "end": 2542,
      "loc": {
        "start": {
          "line": 103,
          "column": 72
        },
        "end": {
          "line": 103,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2549,
      "end": 2550,
      "loc": {
        "start": {
          "line": 104,
          "column": 6
        },
        "end": {
          "line": 104,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2551,
      "end": 2552,
      "loc": {
        "start": {
          "line": 104,
          "column": 8
        },
        "end": {
          "line": 104,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "throw",
        "keyword": "throw",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "throw",
      "start": 2561,
      "end": 2566,
      "loc": {
        "start": {
          "line": 105,
          "column": 8
        },
        "end": {
          "line": 105,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2567,
      "end": 2571,
      "loc": {
        "start": {
          "line": 105,
          "column": 14
        },
        "end": {
          "line": 105,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2571,
      "end": 2572,
      "loc": {
        "start": {
          "line": 105,
          "column": 18
        },
        "end": {
          "line": 105,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__parserSyntaxError",
      "start": 2572,
      "end": 2591,
      "loc": {
        "start": {
          "line": 105,
          "column": 19
        },
        "end": {
          "line": 105,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2591,
      "end": 2592,
      "loc": {
        "start": {
          "line": 105,
          "column": 38
        },
        "end": {
          "line": 105,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2592,
      "end": 2593,
      "loc": {
        "start": {
          "line": 105,
          "column": 39
        },
        "end": {
          "line": 105,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Missing , or ) after the expression",
      "start": 2593,
      "end": 2628,
      "loc": {
        "start": {
          "line": 105,
          "column": 40
        },
        "end": {
          "line": 105,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2628,
      "end": 2629,
      "loc": {
        "start": {
          "line": 105,
          "column": 75
        },
        "end": {
          "line": 105,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2629,
      "end": 2630,
      "loc": {
        "start": {
          "line": 105,
          "column": 76
        },
        "end": {
          "line": 105,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2630,
      "end": 2631,
      "loc": {
        "start": {
          "line": 105,
          "column": 77
        },
        "end": {
          "line": 105,
          "column": 78
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2638,
      "end": 2639,
      "loc": {
        "start": {
          "line": 106,
          "column": 6
        },
        "end": {
          "line": 106,
          "column": 7
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Don't consume RPs as argument tokens",
      "start": 2647,
      "end": 2686,
      "loc": {
        "start": {
          "line": 108,
          "column": 6
        },
        "end": {
          "line": 108,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2693,
      "end": 2695,
      "loc": {
        "start": {
          "line": 109,
          "column": 6
        },
        "end": {
          "line": 109,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2696,
      "end": 2697,
      "loc": {
        "start": {
          "line": 109,
          "column": 9
        },
        "end": {
          "line": 109,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2697,
      "end": 2701,
      "loc": {
        "start": {
          "line": 109,
          "column": 10
        },
        "end": {
          "line": 109,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2701,
      "end": 2702,
      "loc": {
        "start": {
          "line": 109,
          "column": 14
        },
        "end": {
          "line": 109,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2702,
      "end": 2711,
      "loc": {
        "start": {
          "line": 109,
          "column": 15
        },
        "end": {
          "line": 109,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "&&",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 2,
        "updateContext": null
      },
      "value": "&&",
      "start": 2712,
      "end": 2714,
      "loc": {
        "start": {
          "line": 109,
          "column": 25
        },
        "end": {
          "line": 109,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2715,
      "end": 2719,
      "loc": {
        "start": {
          "line": 109,
          "column": 28
        },
        "end": {
          "line": 109,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2719,
      "end": 2720,
      "loc": {
        "start": {
          "line": 109,
          "column": 32
        },
        "end": {
          "line": 109,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2720,
      "end": 2729,
      "loc": {
        "start": {
          "line": 109,
          "column": 33
        },
        "end": {
          "line": 109,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2729,
      "end": 2730,
      "loc": {
        "start": {
          "line": 109,
          "column": 42
        },
        "end": {
          "line": 109,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 2730,
      "end": 2734,
      "loc": {
        "start": {
          "line": 109,
          "column": 43
        },
        "end": {
          "line": 109,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2735,
      "end": 2738,
      "loc": {
        "start": {
          "line": 109,
          "column": 48
        },
        "end": {
          "line": 109,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "RP",
      "start": 2739,
      "end": 2743,
      "loc": {
        "start": {
          "line": 109,
          "column": 52
        },
        "end": {
          "line": 109,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2743,
      "end": 2744,
      "loc": {
        "start": {
          "line": 109,
          "column": 56
        },
        "end": {
          "line": 109,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2745,
      "end": 2746,
      "loc": {
        "start": {
          "line": 109,
          "column": 58
        },
        "end": {
          "line": 109,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2755,
      "end": 2759,
      "loc": {
        "start": {
          "line": 110,
          "column": 8
        },
        "end": {
          "line": 110,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2759,
      "end": 2760,
      "loc": {
        "start": {
          "line": 110,
          "column": 12
        },
        "end": {
          "line": 110,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 2760,
      "end": 2769,
      "loc": {
        "start": {
          "line": 110,
          "column": 13
        },
        "end": {
          "line": 110,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2770,
      "end": 2771,
      "loc": {
        "start": {
          "line": 110,
          "column": 23
        },
        "end": {
          "line": 110,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2772,
      "end": 2776,
      "loc": {
        "start": {
          "line": 110,
          "column": 25
        },
        "end": {
          "line": 110,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2776,
      "end": 2777,
      "loc": {
        "start": {
          "line": 110,
          "column": 29
        },
        "end": {
          "line": 110,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__nextToken",
      "start": 2777,
      "end": 2788,
      "loc": {
        "start": {
          "line": 110,
          "column": 30
        },
        "end": {
          "line": 110,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2788,
      "end": 2789,
      "loc": {
        "start": {
          "line": 110,
          "column": 41
        },
        "end": {
          "line": 110,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2789,
      "end": 2790,
      "loc": {
        "start": {
          "line": 110,
          "column": 42
        },
        "end": {
          "line": 110,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2790,
      "end": 2791,
      "loc": {
        "start": {
          "line": 110,
          "column": 43
        },
        "end": {
          "line": 110,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2798,
      "end": 2799,
      "loc": {
        "start": {
          "line": 111,
          "column": 6
        },
        "end": {
          "line": 111,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2804,
      "end": 2805,
      "loc": {
        "start": {
          "line": 112,
          "column": 4
        },
        "end": {
          "line": 112,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2811,
      "end": 2817,
      "loc": {
        "start": {
          "line": 114,
          "column": 4
        },
        "end": {
          "line": 114,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2818,
      "end": 2822,
      "loc": {
        "start": {
          "line": 114,
          "column": 11
        },
        "end": {
          "line": 114,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2822,
      "end": 2823,
      "loc": {
        "start": {
          "line": 114,
          "column": 15
        },
        "end": {
          "line": 114,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "parseApply",
      "start": 2823,
      "end": 2833,
      "loc": {
        "start": {
          "line": 114,
          "column": 16
        },
        "end": {
          "line": 114,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2833,
      "end": 2834,
      "loc": {
        "start": {
          "line": 114,
          "column": 26
        },
        "end": {
          "line": 114,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tree",
      "start": 2834,
      "end": 2838,
      "loc": {
        "start": {
          "line": 114,
          "column": 27
        },
        "end": {
          "line": 114,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2838,
      "end": 2839,
      "loc": {
        "start": {
          "line": 114,
          "column": 31
        },
        "end": {
          "line": 114,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2839,
      "end": 2840,
      "loc": {
        "start": {
          "line": 114,
          "column": 32
        },
        "end": {
          "line": 114,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2843,
      "end": 2844,
      "loc": {
        "start": {
          "line": 115,
          "column": 2
        },
        "end": {
          "line": 115,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__nextToken",
      "start": 2848,
      "end": 2859,
      "loc": {
        "start": {
          "line": 117,
          "column": 2
        },
        "end": {
          "line": 117,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2859,
      "end": 2860,
      "loc": {
        "start": {
          "line": 117,
          "column": 13
        },
        "end": {
          "line": 117,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2860,
      "end": 2861,
      "loc": {
        "start": {
          "line": 117,
          "column": 14
        },
        "end": {
          "line": 117,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2862,
      "end": 2863,
      "loc": {
        "start": {
          "line": 117,
          "column": 16
        },
        "end": {
          "line": 117,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 2868,
      "end": 2873,
      "loc": {
        "start": {
          "line": 118,
          "column": 4
        },
        "end": {
          "line": 118,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2874,
      "end": 2879,
      "loc": {
        "start": {
          "line": 118,
          "column": 10
        },
        "end": {
          "line": 118,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2880,
      "end": 2881,
      "loc": {
        "start": {
          "line": 118,
          "column": 16
        },
        "end": {
          "line": 118,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2882,
      "end": 2886,
      "loc": {
        "start": {
          "line": 118,
          "column": 18
        },
        "end": {
          "line": 118,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2886,
      "end": 2887,
      "loc": {
        "start": {
          "line": 118,
          "column": 22
        },
        "end": {
          "line": 118,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tokens",
      "start": 2887,
      "end": 2893,
      "loc": {
        "start": {
          "line": 118,
          "column": 23
        },
        "end": {
          "line": 118,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2893,
      "end": 2894,
      "loc": {
        "start": {
          "line": 118,
          "column": 29
        },
        "end": {
          "line": 118,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2894,
      "end": 2898,
      "loc": {
        "start": {
          "line": 118,
          "column": 30
        },
        "end": {
          "line": 118,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2898,
      "end": 2899,
      "loc": {
        "start": {
          "line": 118,
          "column": 34
        },
        "end": {
          "line": 118,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "index",
      "start": 2899,
      "end": 2904,
      "loc": {
        "start": {
          "line": 118,
          "column": 35
        },
        "end": {
          "line": 118,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 2904,
      "end": 2906,
      "loc": {
        "start": {
          "line": 118,
          "column": 40
        },
        "end": {
          "line": 118,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2906,
      "end": 2907,
      "loc": {
        "start": {
          "line": 118,
          "column": 42
        },
        "end": {
          "line": 118,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2907,
      "end": 2908,
      "loc": {
        "start": {
          "line": 118,
          "column": 43
        },
        "end": {
          "line": 118,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2914,
      "end": 2920,
      "loc": {
        "start": {
          "line": 120,
          "column": 4
        },
        "end": {
          "line": 120,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2921,
      "end": 2926,
      "loc": {
        "start": {
          "line": 120,
          "column": 11
        },
        "end": {
          "line": 120,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2927,
      "end": 2930,
      "loc": {
        "start": {
          "line": 120,
          "column": 17
        },
        "end": {
          "line": 120,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "undefined",
      "start": 2931,
      "end": 2940,
      "loc": {
        "start": {
          "line": 120,
          "column": 21
        },
        "end": {
          "line": 120,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2941,
      "end": 2942,
      "loc": {
        "start": {
          "line": 120,
          "column": 31
        },
        "end": {
          "line": 120,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "token",
      "start": 2943,
      "end": 2948,
      "loc": {
        "start": {
          "line": 120,
          "column": 33
        },
        "end": {
          "line": 120,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2949,
      "end": 2950,
      "loc": {
        "start": {
          "line": 120,
          "column": 39
        },
        "end": {
          "line": 120,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "null",
        "keyword": "null",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "null",
      "start": 2951,
      "end": 2955,
      "loc": {
        "start": {
          "line": 120,
          "column": 41
        },
        "end": {
          "line": 120,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2955,
      "end": 2956,
      "loc": {
        "start": {
          "line": 120,
          "column": 45
        },
        "end": {
          "line": 120,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2959,
      "end": 2960,
      "loc": {
        "start": {
          "line": 121,
          "column": 2
        },
        "end": {
          "line": 121,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "__parserSyntaxError",
      "start": 2964,
      "end": 2983,
      "loc": {
        "start": {
          "line": 123,
          "column": 2
        },
        "end": {
          "line": 123,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2983,
      "end": 2984,
      "loc": {
        "start": {
          "line": 123,
          "column": 21
        },
        "end": {
          "line": 123,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "message",
      "start": 2984,
      "end": 2991,
      "loc": {
        "start": {
          "line": 123,
          "column": 22
        },
        "end": {
          "line": 123,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2991,
      "end": 2992,
      "loc": {
        "start": {
          "line": 123,
          "column": 29
        },
        "end": {
          "line": 123,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2993,
      "end": 2994,
      "loc": {
        "start": {
          "line": 123,
          "column": 31
        },
        "end": {
          "line": 123,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2999,
      "end": 3002,
      "loc": {
        "start": {
          "line": 124,
          "column": 4
        },
        "end": {
          "line": 124,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3003,
      "end": 3008,
      "loc": {
        "start": {
          "line": 124,
          "column": 8
        },
        "end": {
          "line": 124,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3009,
      "end": 3010,
      "loc": {
        "start": {
          "line": 124,
          "column": 14
        },
        "end": {
          "line": 124,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3011,
      "end": 3015,
      "loc": {
        "start": {
          "line": 124,
          "column": 16
        },
        "end": {
          "line": 124,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3015,
      "end": 3016,
      "loc": {
        "start": {
          "line": 124,
          "column": 20
        },
        "end": {
          "line": 124,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 3016,
      "end": 3025,
      "loc": {
        "start": {
          "line": 124,
          "column": 21
        },
        "end": {
          "line": 124,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "?",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3026,
      "end": 3027,
      "loc": {
        "start": {
          "line": 124,
          "column": 31
        },
        "end": {
          "line": 124,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3028,
      "end": 3032,
      "loc": {
        "start": {
          "line": 124,
          "column": 33
        },
        "end": {
          "line": 124,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3032,
      "end": 3033,
      "loc": {
        "start": {
          "line": 124,
          "column": 37
        },
        "end": {
          "line": 124,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lookahead",
      "start": 3033,
      "end": 3042,
      "loc": {
        "start": {
          "line": 124,
          "column": 38
        },
        "end": {
          "line": 124,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3042,
      "end": 3043,
      "loc": {
        "start": {
          "line": 124,
          "column": 47
        },
        "end": {
          "line": 124,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3043,
      "end": 3048,
      "loc": {
        "start": {
          "line": 124,
          "column": 48
        },
        "end": {
          "line": 124,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3049,
      "end": 3050,
      "loc": {
        "start": {
          "line": 124,
          "column": 54
        },
        "end": {
          "line": 124,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3051,
      "end": 3055,
      "loc": {
        "start": {
          "line": 124,
          "column": 56
        },
        "end": {
          "line": 124,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3055,
      "end": 3056,
      "loc": {
        "start": {
          "line": 124,
          "column": 60
        },
        "end": {
          "line": 124,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 3056,
      "end": 3065,
      "loc": {
        "start": {
          "line": 124,
          "column": 61
        },
        "end": {
          "line": 124,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3065,
      "end": 3066,
      "loc": {
        "start": {
          "line": 124,
          "column": 70
        },
        "end": {
          "line": 124,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 3072,
      "end": 3078,
      "loc": {
        "start": {
          "line": 126,
          "column": 4
        },
        "end": {
          "line": 126,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 3079,
      "end": 3082,
      "loc": {
        "start": {
          "line": 126,
          "column": 11
        },
        "end": {
          "line": 126,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "SyntaxError",
      "start": 3083,
      "end": 3094,
      "loc": {
        "start": {
          "line": 126,
          "column": 15
        },
        "end": {
          "line": 126,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3094,
      "end": 3095,
      "loc": {
        "start": {
          "line": 126,
          "column": 26
        },
        "end": {
          "line": 126,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3102,
      "end": 3103,
      "loc": {
        "start": {
          "line": 127,
          "column": 6
        },
        "end": {
          "line": 127,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "Parser::Line ",
      "start": 3103,
      "end": 3116,
      "loc": {
        "start": {
          "line": 127,
          "column": 7
        },
        "end": {
          "line": 127,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3116,
      "end": 3118,
      "loc": {
        "start": {
          "line": 127,
          "column": 20
        },
        "end": {
          "line": 127,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3118,
      "end": 3122,
      "loc": {
        "start": {
          "line": 127,
          "column": 22
        },
        "end": {
          "line": 127,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3122,
      "end": 3123,
      "loc": {
        "start": {
          "line": 127,
          "column": 26
        },
        "end": {
          "line": 127,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "line",
      "start": 3123,
      "end": 3127,
      "loc": {
        "start": {
          "line": 127,
          "column": 27
        },
        "end": {
          "line": 127,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3127,
      "end": 3128,
      "loc": {
        "start": {
          "line": 127,
          "column": 31
        },
        "end": {
          "line": 127,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "::Col ",
      "start": 3128,
      "end": 3134,
      "loc": {
        "start": {
          "line": 127,
          "column": 32
        },
        "end": {
          "line": 127,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3134,
      "end": 3136,
      "loc": {
        "start": {
          "line": 127,
          "column": 38
        },
        "end": {
          "line": 127,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3136,
      "end": 3141,
      "loc": {
        "start": {
          "line": 127,
          "column": 40
        },
        "end": {
          "line": 127,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3141,
      "end": 3142,
      "loc": {
        "start": {
          "line": 127,
          "column": 45
        },
        "end": {
          "line": 127,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "\n",
      "start": 3142,
      "end": 3144,
      "loc": {
        "start": {
          "line": 127,
          "column": 46
        },
        "end": {
          "line": 127,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3144,
      "end": 3146,
      "loc": {
        "start": {
          "line": 127,
          "column": 48
        },
        "end": {
          "line": 127,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "message",
      "start": 3146,
      "end": 3153,
      "loc": {
        "start": {
          "line": 127,
          "column": 50
        },
        "end": {
          "line": 127,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3153,
      "end": 3154,
      "loc": {
        "start": {
          "line": 127,
          "column": 57
        },
        "end": {
          "line": 127,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "\n",
      "start": 3154,
      "end": 3156,
      "loc": {
        "start": {
          "line": 127,
          "column": 58
        },
        "end": {
          "line": 127,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "${",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3156,
      "end": 3158,
      "loc": {
        "start": {
          "line": 127,
          "column": 60
        },
        "end": {
          "line": 127,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3158,
      "end": 3162,
      "loc": {
        "start": {
          "line": 127,
          "column": 62
        },
        "end": {
          "line": 127,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3162,
      "end": 3163,
      "loc": {
        "start": {
          "line": 127,
          "column": 66
        },
        "end": {
          "line": 127,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 3163,
      "end": 3170,
      "loc": {
        "start": {
          "line": 127,
          "column": 67
        },
        "end": {
          "line": 127,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3170,
      "end": 3171,
      "loc": {
        "start": {
          "line": 127,
          "column": 74
        },
        "end": {
          "line": 127,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "slice",
      "start": 3171,
      "end": 3176,
      "loc": {
        "start": {
          "line": 127,
          "column": 75
        },
        "end": {
          "line": 127,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3176,
      "end": 3177,
      "loc": {
        "start": {
          "line": 127,
          "column": 80
        },
        "end": {
          "line": 127,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3186,
      "end": 3191,
      "loc": {
        "start": {
          "line": 128,
          "column": 8
        },
        "end": {
          "line": 128,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 3192,
      "end": 3193,
      "loc": {
        "start": {
          "line": 128,
          "column": 14
        },
        "end": {
          "line": 128,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 3194,
      "end": 3195,
      "loc": {
        "start": {
          "line": 128,
          "column": 16
        },
        "end": {
          "line": 128,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3195,
      "end": 3196,
      "loc": {
        "start": {
          "line": 128,
          "column": 17
        },
        "end": {
          "line": 128,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3205,
      "end": 3210,
      "loc": {
        "start": {
          "line": 129,
          "column": 8
        },
        "end": {
          "line": 129,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 3211,
      "end": 3212,
      "loc": {
        "start": {
          "line": 129,
          "column": 14
        },
        "end": {
          "line": 129,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 10,
      "start": 3213,
      "end": 3215,
      "loc": {
        "start": {
          "line": 129,
          "column": 16
        },
        "end": {
          "line": 129,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3222,
      "end": 3223,
      "loc": {
        "start": {
          "line": 130,
          "column": 6
        },
        "end": {
          "line": 130,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3223,
      "end": 3224,
      "loc": {
        "start": {
          "line": 130,
          "column": 7
        },
        "end": {
          "line": 130,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "",
      "start": 3224,
      "end": 3224,
      "loc": {
        "start": {
          "line": 130,
          "column": 8
        },
        "end": {
          "line": 130,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3224,
      "end": 3225,
      "loc": {
        "start": {
          "line": 130,
          "column": 8
        },
        "end": {
          "line": 130,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3230,
      "end": 3231,
      "loc": {
        "start": {
          "line": 131,
          "column": 4
        },
        "end": {
          "line": 131,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3231,
      "end": 3232,
      "loc": {
        "start": {
          "line": 131,
          "column": 5
        },
        "end": {
          "line": 131,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3235,
      "end": 3236,
      "loc": {
        "start": {
          "line": 132,
          "column": 2
        },
        "end": {
          "line": 132,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3237,
      "end": 3238,
      "loc": {
        "start": {
          "line": 133,
          "column": 0
        },
        "end": {
          "line": 133,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 3240,
      "end": 3246,
      "loc": {
        "start": {
          "line": 135,
          "column": 0
        },
        "end": {
          "line": 135,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3247,
      "end": 3248,
      "loc": {
        "start": {
          "line": 135,
          "column": 7
        },
        "end": {
          "line": 135,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Parser",
      "start": 3249,
      "end": 3255,
      "loc": {
        "start": {
          "line": 135,
          "column": 9
        },
        "end": {
          "line": 135,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3256,
      "end": 3257,
      "loc": {
        "start": {
          "line": 135,
          "column": 16
        },
        "end": {
          "line": 135,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3257,
      "end": 3258,
      "loc": {
        "start": {
          "line": 135,
          "column": 17
        },
        "end": {
          "line": 135,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3259,
      "end": 3259,
      "loc": {
        "start": {
          "line": 136,
          "column": 0
        },
        "end": {
          "line": 136,
          "column": 0
        }
      }
    }
  ]
}