{
  "type": "File",
  "start": 0,
  "end": 2692,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 129,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 2692,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 129,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 30,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 30
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 7,
            "end": 14,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 14
              }
            },
            "local": {
              "type": "Identifier",
              "start": 7,
              "end": 14,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 7
                },
                "end": {
                  "line": 1,
                  "column": 14
                },
                "identifierName": "xRegExp"
              },
              "name": "xRegExp"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 20,
          "end": 29,
          "loc": {
            "start": {
              "line": 1,
              "column": 20
            },
            "end": {
              "line": 1,
              "column": 29
            }
          },
          "extra": {
            "rawValue": "xregexp",
            "raw": "\"xregexp\""
          },
          "value": "xregexp"
        }
      },
      {
        "type": "Identifier",
        "start": 32,
        "end": 801,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 45,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 38,
          "end": 48,
          "loc": {
            "start": {
              "line": 3,
              "column": 6
            },
            "end": {
              "line": 3,
              "column": 16
            },
            "identifierName": "TokenRegex"
          },
          "name": "TokenRegex"
        },
        "superClass": null,
        "body": {
          "type": "ClassBody",
          "start": 49,
          "end": 801,
          "loc": {
            "start": {
              "line": 3,
              "column": 17
            },
            "end": {
              "line": 45,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ClassMethod",
              "start": 53,
              "end": 171,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 2
                },
                "end": {
                  "line": 7,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 53,
                "end": 64,
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 2
                  },
                  "end": {
                    "line": 4,
                    "column": 13
                  },
                  "identifierName": "constructor"
                },
                "name": "constructor"
              },
              "kind": "constructor",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 65,
                  "end": 69,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 14
                    },
                    "end": {
                      "line": 4,
                      "column": 18
                    },
                    "identifierName": "name"
                  },
                  "name": "name"
                },
                {
                  "type": "Identifier",
                  "start": 71,
                  "end": 83,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 20
                    },
                    "end": {
                      "line": 4,
                      "column": 32
                    },
                    "identifierName": "regexLiteral"
                  },
                  "name": "regexLiteral"
                },
                {
                  "type": "Identifier",
                  "start": 85,
                  "end": 90,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 34
                    },
                    "end": {
                      "line": 4,
                      "column": 39
                    },
                    "identifierName": "flags"
                  },
                  "name": "flags"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 92,
                "end": 171,
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 41
                  },
                  "end": {
                    "line": 7,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 98,
                    "end": 115,
                    "loc": {
                      "start": {
                        "line": 5,
                        "column": 4
                      },
                      "end": {
                        "line": 5,
                        "column": 21
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 98,
                      "end": 114,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 4
                        },
                        "end": {
                          "line": 5,
                          "column": 20
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 98,
                        "end": 107,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 4
                          },
                          "end": {
                            "line": 5,
                            "column": 13
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 98,
                          "end": 102,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 4
                            },
                            "end": {
                              "line": 5,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 103,
                          "end": 107,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 9
                            },
                            "end": {
                              "line": 5,
                              "column": 13
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 110,
                        "end": 114,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 16
                          },
                          "end": {
                            "line": 5,
                            "column": 20
                          },
                          "identifierName": "name"
                        },
                        "name": "name"
                      }
                    }
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 120,
                    "end": 167,
                    "loc": {
                      "start": {
                        "line": 6,
                        "column": 4
                      },
                      "end": {
                        "line": 6,
                        "column": 51
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 120,
                      "end": 166,
                      "loc": {
                        "start": {
                          "line": 6,
                          "column": 4
                        },
                        "end": {
                          "line": 6,
                          "column": 50
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 120,
                        "end": 135,
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 4
                          },
                          "end": {
                            "line": 6,
                            "column": 19
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 120,
                          "end": 124,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 4
                            },
                            "end": {
                              "line": 6,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 125,
                          "end": 135,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 9
                            },
                            "end": {
                              "line": 6,
                              "column": 19
                            },
                            "identifierName": "expression"
                          },
                          "name": "expression"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "CallExpression",
                        "start": 138,
                        "end": 166,
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 22
                          },
                          "end": {
                            "line": 6,
                            "column": 50
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 138,
                          "end": 145,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 22
                            },
                            "end": {
                              "line": 6,
                              "column": 29
                            },
                            "identifierName": "xRegExp"
                          },
                          "name": "xRegExp"
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 146,
                            "end": 158,
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 30
                              },
                              "end": {
                                "line": 6,
                                "column": 42
                              },
                              "identifierName": "regexLiteral"
                            },
                            "name": "regexLiteral"
                          },
                          {
                            "type": "Identifier",
                            "start": 160,
                            "end": 165,
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 44
                              },
                              "end": {
                                "line": 6,
                                "column": 49
                              },
                              "identifierName": "flags"
                            },
                            "name": "flags"
                          }
                        ]
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 175,
              "end": 234,
              "loc": {
                "start": {
                  "line": 9,
                  "column": 2
                },
                "end": {
                  "line": 11,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 179,
                "end": 188,
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 6
                  },
                  "end": {
                    "line": 9,
                    "column": 15
                  },
                  "identifierName": "lastIndex"
                },
                "name": "lastIndex"
              },
              "kind": "get",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 191,
                "end": 234,
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 18
                  },
                  "end": {
                    "line": 11,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 197,
                    "end": 230,
                    "loc": {
                      "start": {
                        "line": 10,
                        "column": 4
                      },
                      "end": {
                        "line": 10,
                        "column": 37
                      }
                    },
                    "argument": {
                      "type": "MemberExpression",
                      "start": 204,
                      "end": 229,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 11
                        },
                        "end": {
                          "line": 10,
                          "column": 36
                        }
                      },
                      "object": {
                        "type": "MemberExpression",
                        "start": 204,
                        "end": 219,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 11
                          },
                          "end": {
                            "line": 10,
                            "column": 26
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 204,
                          "end": 208,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 11
                            },
                            "end": {
                              "line": 10,
                              "column": 15
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 209,
                          "end": 219,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 16
                            },
                            "end": {
                              "line": 10,
                              "column": 26
                            },
                            "identifierName": "expression"
                          },
                          "name": "expression"
                        },
                        "computed": false
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 220,
                        "end": 229,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 27
                          },
                          "end": {
                            "line": 10,
                            "column": 36
                          },
                          "identifierName": "lastIndex"
                        },
                        "name": "lastIndex"
                      },
                      "computed": false
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 238,
              "end": 303,
              "loc": {
                "start": {
                  "line": 13,
                  "column": 2
                },
                "end": {
                  "line": 15,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 242,
                "end": 251,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 6
                  },
                  "end": {
                    "line": 13,
                    "column": 15
                  },
                  "identifierName": "lastIndex"
                },
                "name": "lastIndex"
              },
              "kind": "set",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 252,
                  "end": 257,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 16
                    },
                    "end": {
                      "line": 13,
                      "column": 21
                    },
                    "identifierName": "index"
                  },
                  "name": "index"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 259,
                "end": 303,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 23
                  },
                  "end": {
                    "line": 15,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 265,
                    "end": 299,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 4
                      },
                      "end": {
                        "line": 14,
                        "column": 38
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 265,
                      "end": 298,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 4
                        },
                        "end": {
                          "line": 14,
                          "column": 37
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 265,
                        "end": 290,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 4
                          },
                          "end": {
                            "line": 14,
                            "column": 29
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 265,
                          "end": 280,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 4
                            },
                            "end": {
                              "line": 14,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 265,
                            "end": 269,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 4
                              },
                              "end": {
                                "line": 14,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 270,
                            "end": 280,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 9
                              },
                              "end": {
                                "line": 14,
                                "column": 19
                              },
                              "identifierName": "expression"
                            },
                            "name": "expression"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 281,
                          "end": 290,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 20
                            },
                            "end": {
                              "line": 14,
                              "column": 29
                            },
                            "identifierName": "lastIndex"
                          },
                          "name": "lastIndex"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 293,
                        "end": 298,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 32
                          },
                          "end": {
                            "line": 14,
                            "column": 37
                          },
                          "identifierName": "index"
                        },
                        "name": "index"
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 307,
              "end": 362,
              "loc": {
                "start": {
                  "line": 17,
                  "column": 2
                },
                "end": {
                  "line": 21,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 307,
                "end": 312,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 2
                  },
                  "end": {
                    "line": 17,
                    "column": 7
                  },
                  "identifierName": "reset"
                },
                "name": "reset"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [],
              "body": {
                "type": "BlockStatement",
                "start": 315,
                "end": 362,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 10
                  },
                  "end": {
                    "line": 21,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "ExpressionStatement",
                    "start": 321,
                    "end": 340,
                    "loc": {
                      "start": {
                        "line": 18,
                        "column": 4
                      },
                      "end": {
                        "line": 18,
                        "column": 23
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 321,
                      "end": 339,
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 4
                        },
                        "end": {
                          "line": 18,
                          "column": 22
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 321,
                        "end": 335,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 4
                          },
                          "end": {
                            "line": 18,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 321,
                          "end": 325,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 4
                            },
                            "end": {
                              "line": 18,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 326,
                          "end": 335,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 9
                            },
                            "end": {
                              "line": 18,
                              "column": 18
                            },
                            "identifierName": "lastIndex"
                          },
                          "name": "lastIndex"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "NumericLiteral",
                        "start": 338,
                        "end": 339,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 21
                          },
                          "end": {
                            "line": 18,
                            "column": 22
                          }
                        },
                        "extra": {
                          "rawValue": 0,
                          "raw": "0"
                        },
                        "value": 0
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 346,
                    "end": 358,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 4
                      },
                      "end": {
                        "line": 20,
                        "column": 16
                      }
                    },
                    "argument": {
                      "type": "ThisExpression",
                      "start": 353,
                      "end": 357,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 11
                        },
                        "end": {
                          "line": 20,
                          "column": 15
                        }
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 366,
              "end": 638,
              "loc": {
                "start": {
                  "line": 23,
                  "column": 2
                },
                "end": {
                  "line": 36,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 366,
                "end": 370,
                "loc": {
                  "start": {
                    "line": 23,
                    "column": 2
                  },
                  "end": {
                    "line": 23,
                    "column": 6
                  },
                  "identifierName": "exec"
                },
                "name": "exec"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 371,
                  "end": 378,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 7
                    },
                    "end": {
                      "line": 23,
                      "column": 14
                    },
                    "identifierName": "program"
                  },
                  "name": "program"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 380,
                "end": 638,
                "loc": {
                  "start": {
                    "line": 23,
                    "column": 16
                  },
                  "end": {
                    "line": 36,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 386,
                    "end": 428,
                    "loc": {
                      "start": {
                        "line": 24,
                        "column": 4
                      },
                      "end": {
                        "line": 24,
                        "column": 46
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 390,
                        "end": 427,
                        "loc": {
                          "start": {
                            "line": 24,
                            "column": 8
                          },
                          "end": {
                            "line": 24,
                            "column": 45
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 390,
                          "end": 395,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 13
                            },
                            "identifierName": "match"
                          },
                          "name": "match"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 398,
                          "end": 427,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 16
                            },
                            "end": {
                              "line": 24,
                              "column": 45
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 398,
                            "end": 418,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 16
                              },
                              "end": {
                                "line": 24,
                                "column": 36
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 398,
                              "end": 413,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 16
                                },
                                "end": {
                                  "line": 24,
                                  "column": 31
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 398,
                                "end": 402,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 20
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 403,
                                "end": 413,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 31
                                  },
                                  "identifierName": "expression"
                                },
                                "name": "expression"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 414,
                              "end": 418,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 32
                                },
                                "end": {
                                  "line": 24,
                                  "column": 36
                                },
                                "identifierName": "exec"
                              },
                              "name": "exec"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 419,
                              "end": 426,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 37
                                },
                                "end": {
                                  "line": 24,
                                  "column": 44
                                },
                                "identifierName": "program"
                              },
                              "name": "program"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "let"
                  },
                  {
                    "type": "IfStatement",
                    "start": 434,
                    "end": 616,
                    "loc": {
                      "start": {
                        "line": 26,
                        "column": 4
                      },
                      "end": {
                        "line": 33,
                        "column": 5
                      }
                    },
                    "test": {
                      "type": "BinaryExpression",
                      "start": 438,
                      "end": 452,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 8
                        },
                        "end": {
                          "line": 26,
                          "column": 22
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 438,
                        "end": 443,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 8
                          },
                          "end": {
                            "line": 26,
                            "column": 13
                          },
                          "identifierName": "match"
                        },
                        "name": "match"
                      },
                      "operator": "!==",
                      "right": {
                        "type": "NullLiteral",
                        "start": 448,
                        "end": 452,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 18
                          },
                          "end": {
                            "line": 26,
                            "column": 22
                          }
                        }
                      }
                    },
                    "consequent": {
                      "type": "BlockStatement",
                      "start": 454,
                      "end": 616,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 24
                        },
                        "end": {
                          "line": 33,
                          "column": 5
                        }
                      },
                      "body": [
                        {
                          "type": "ReturnStatement",
                          "start": 462,
                          "end": 610,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 6
                            },
                            "end": {
                              "line": 32,
                              "column": 8
                            }
                          },
                          "argument": {
                            "type": "ObjectExpression",
                            "start": 469,
                            "end": 609,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 13
                              },
                              "end": {
                                "line": 32,
                                "column": 7
                              }
                            },
                            "properties": [
                              {
                                "type": "ObjectProperty",
                                "start": 479,
                                "end": 494,
                                "loc": {
                                  "start": {
                                    "line": 28,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 28,
                                    "column": 23
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "Identifier",
                                  "start": 479,
                                  "end": 483,
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 12
                                    },
                                    "identifierName": "type"
                                  },
                                  "name": "type"
                                },
                                "value": {
                                  "type": "MemberExpression",
                                  "start": 485,
                                  "end": 494,
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 14
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 23
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 485,
                                    "end": 489,
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 18
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 490,
                                    "end": 494,
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 19
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 23
                                      },
                                      "identifierName": "name"
                                    },
                                    "name": "name"
                                  },
                                  "computed": false
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 504,
                                "end": 519,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 23
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "Identifier",
                                  "start": 504,
                                  "end": 509,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 13
                                    },
                                    "identifierName": "value"
                                  },
                                  "name": "value"
                                },
                                "value": {
                                  "type": "MemberExpression",
                                  "start": 511,
                                  "end": 519,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 23
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 511,
                                    "end": 516,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 20
                                      },
                                      "identifierName": "match"
                                    },
                                    "name": "match"
                                  },
                                  "property": {
                                    "type": "NumericLiteral",
                                    "start": 517,
                                    "end": 518,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 22
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "value": 1
                                  },
                                  "computed": true
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 529,
                                "end": 572,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 51
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "Identifier",
                                  "start": 529,
                                  "end": 534,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 13
                                    },
                                    "identifierName": "start"
                                  },
                                  "name": "start"
                                },
                                "value": {
                                  "type": "BinaryExpression",
                                  "start": 536,
                                  "end": 572,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 51
                                    }
                                  },
                                  "left": {
                                    "type": "BinaryExpression",
                                    "start": 536,
                                    "end": 568,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 47
                                      }
                                    },
                                    "left": {
                                      "type": "MemberExpression",
                                      "start": 536,
                                      "end": 550,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 29
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 536,
                                        "end": 540,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 19
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 541,
                                        "end": 550,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 29
                                          },
                                          "identifierName": "lastIndex"
                                        },
                                        "name": "lastIndex"
                                      },
                                      "computed": false
                                    },
                                    "operator": "-",
                                    "right": {
                                      "type": "MemberExpression",
                                      "start": 553,
                                      "end": 568,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 47
                                        }
                                      },
                                      "object": {
                                        "type": "MemberExpression",
                                        "start": 553,
                                        "end": 561,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 40
                                          }
                                        },
                                        "object": {
                                          "type": "Identifier",
                                          "start": 553,
                                          "end": 558,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 37
                                            },
                                            "identifierName": "match"
                                          },
                                          "name": "match"
                                        },
                                        "property": {
                                          "type": "NumericLiteral",
                                          "start": 559,
                                          "end": 560,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 38
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 39
                                            }
                                          },
                                          "extra": {
                                            "rawValue": 1,
                                            "raw": "1"
                                          },
                                          "value": 1
                                        },
                                        "computed": true
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 562,
                                        "end": 568,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 47
                                          },
                                          "identifierName": "length"
                                        },
                                        "name": "length"
                                      },
                                      "computed": false
                                    }
                                  },
                                  "operator": "+",
                                  "right": {
                                    "type": "NumericLiteral",
                                    "start": 571,
                                    "end": 572,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 51
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 1,
                                      "raw": "1"
                                    },
                                    "value": 1
                                  }
                                }
                              },
                              {
                                "type": "ObjectProperty",
                                "start": 582,
                                "end": 601,
                                "loc": {
                                  "start": {
                                    "line": 31,
                                    "column": 8
                                  },
                                  "end": {
                                    "line": 31,
                                    "column": 27
                                  }
                                },
                                "method": false,
                                "shorthand": false,
                                "computed": false,
                                "key": {
                                  "type": "Identifier",
                                  "start": 582,
                                  "end": 585,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 11
                                    },
                                    "identifierName": "end"
                                  },
                                  "name": "end"
                                },
                                "value": {
                                  "type": "MemberExpression",
                                  "start": 587,
                                  "end": 601,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 27
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 587,
                                    "end": 591,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 17
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 592,
                                    "end": 601,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 27
                                      },
                                      "identifierName": "lastIndex"
                                    },
                                    "name": "lastIndex"
                                  },
                                  "computed": false
                                }
                              }
                            ]
                          }
                        }
                      ],
                      "directives": []
                    },
                    "alternate": null
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 622,
                    "end": 634,
                    "loc": {
                      "start": {
                        "line": 35,
                        "column": 4
                      },
                      "end": {
                        "line": 35,
                        "column": 16
                      }
                    },
                    "argument": {
                      "type": "NullLiteral",
                      "start": 629,
                      "end": 633,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 11
                        },
                        "end": {
                          "line": 35,
                          "column": 15
                        }
                      }
                    }
                  }
                ],
                "directives": []
              }
            },
            {
              "type": "ClassMethod",
              "start": 642,
              "end": 799,
              "loc": {
                "start": {
                  "line": 38,
                  "column": 2
                },
                "end": {
                  "line": 44,
                  "column": 3
                }
              },
              "static": false,
              "computed": false,
              "key": {
                "type": "Identifier",
                "start": 642,
                "end": 646,
                "loc": {
                  "start": {
                    "line": 38,
                    "column": 2
                  },
                  "end": {
                    "line": 38,
                    "column": 6
                  },
                  "identifierName": "test"
                },
                "name": "test"
              },
              "kind": "method",
              "id": null,
              "generator": false,
              "expression": false,
              "async": false,
              "params": [
                {
                  "type": "Identifier",
                  "start": 647,
                  "end": 654,
                  "loc": {
                    "start": {
                      "line": 38,
                      "column": 7
                    },
                    "end": {
                      "line": 38,
                      "column": 14
                    },
                    "identifierName": "program"
                  },
                  "name": "program"
                }
              ],
              "body": {
                "type": "BlockStatement",
                "start": 656,
                "end": 799,
                "loc": {
                  "start": {
                    "line": 38,
                    "column": 16
                  },
                  "end": {
                    "line": 44,
                    "column": 3
                  }
                },
                "body": [
                  {
                    "type": "VariableDeclaration",
                    "start": 662,
                    "end": 694,
                    "loc": {
                      "start": {
                        "line": 39,
                        "column": 4
                      },
                      "end": {
                        "line": 39,
                        "column": 36
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 666,
                        "end": 693,
                        "loc": {
                          "start": {
                            "line": 39,
                            "column": 8
                          },
                          "end": {
                            "line": 39,
                            "column": 35
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 666,
                          "end": 676,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 8
                            },
                            "end": {
                              "line": 39,
                              "column": 18
                            },
                            "identifierName": "savedIndex"
                          },
                          "name": "savedIndex"
                        },
                        "init": {
                          "type": "MemberExpression",
                          "start": 679,
                          "end": 693,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 21
                            },
                            "end": {
                              "line": 39,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 679,
                            "end": 683,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 21
                              },
                              "end": {
                                "line": 39,
                                "column": 25
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 684,
                            "end": 693,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 26
                              },
                              "end": {
                                "line": 39,
                                "column": 35
                              },
                              "identifierName": "lastIndex"
                            },
                            "name": "lastIndex"
                          },
                          "computed": false
                        }
                      }
                    ],
                    "kind": "let"
                  },
                  {
                    "type": "VariableDeclaration",
                    "start": 699,
                    "end": 733,
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 4
                      },
                      "end": {
                        "line": 40,
                        "column": 38
                      }
                    },
                    "declarations": [
                      {
                        "type": "VariableDeclarator",
                        "start": 705,
                        "end": 732,
                        "loc": {
                          "start": {
                            "line": 40,
                            "column": 10
                          },
                          "end": {
                            "line": 40,
                            "column": 37
                          }
                        },
                        "id": {
                          "type": "Identifier",
                          "start": 705,
                          "end": 711,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 10
                            },
                            "end": {
                              "line": 40,
                              "column": 16
                            },
                            "identifierName": "result"
                          },
                          "name": "result"
                        },
                        "init": {
                          "type": "CallExpression",
                          "start": 714,
                          "end": 732,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 19
                            },
                            "end": {
                              "line": 40,
                              "column": 37
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 714,
                            "end": 723,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 19
                              },
                              "end": {
                                "line": 40,
                                "column": 28
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 714,
                              "end": 718,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 19
                                },
                                "end": {
                                  "line": 40,
                                  "column": 23
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 719,
                              "end": 723,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 24
                                },
                                "end": {
                                  "line": 40,
                                  "column": 28
                                },
                                "identifierName": "exec"
                              },
                              "name": "exec"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 724,
                              "end": 731,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 29
                                },
                                "end": {
                                  "line": 40,
                                  "column": 36
                                },
                                "identifierName": "program"
                              },
                              "name": "program"
                            }
                          ]
                        }
                      }
                    ],
                    "kind": "const"
                  },
                  {
                    "type": "ExpressionStatement",
                    "start": 738,
                    "end": 766,
                    "loc": {
                      "start": {
                        "line": 41,
                        "column": 4
                      },
                      "end": {
                        "line": 41,
                        "column": 32
                      }
                    },
                    "expression": {
                      "type": "AssignmentExpression",
                      "start": 738,
                      "end": 765,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 4
                        },
                        "end": {
                          "line": 41,
                          "column": 31
                        }
                      },
                      "operator": "=",
                      "left": {
                        "type": "MemberExpression",
                        "start": 738,
                        "end": 752,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 4
                          },
                          "end": {
                            "line": 41,
                            "column": 18
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 738,
                          "end": 742,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 4
                            },
                            "end": {
                              "line": 41,
                              "column": 8
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 743,
                          "end": 752,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 9
                            },
                            "end": {
                              "line": 41,
                              "column": 18
                            },
                            "identifierName": "lastIndex"
                          },
                          "name": "lastIndex"
                        },
                        "computed": false
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 755,
                        "end": 765,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 21
                          },
                          "end": {
                            "line": 41,
                            "column": 31
                          },
                          "identifierName": "savedIndex"
                        },
                        "name": "savedIndex"
                      }
                    }
                  },
                  {
                    "type": "ReturnStatement",
                    "start": 772,
                    "end": 795,
                    "loc": {
                      "start": {
                        "line": 43,
                        "column": 4
                      },
                      "end": {
                        "line": 43,
                        "column": 27
                      }
                    },
                    "argument": {
                      "type": "BinaryExpression",
                      "start": 779,
                      "end": 794,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 11
                        },
                        "end": {
                          "line": 43,
                          "column": 26
                        }
                      },
                      "left": {
                        "type": "Identifier",
                        "start": 779,
                        "end": 785,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 11
                          },
                          "end": {
                            "line": 43,
                            "column": 17
                          },
                          "identifierName": "result"
                        },
                        "name": "result"
                      },
                      "operator": "!==",
                      "right": {
                        "type": "NullLiteral",
                        "start": 790,
                        "end": 794,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 22
                          },
                          "end": {
                            "line": 43,
                            "column": 26
                          }
                        }
                      }
                    }
                  }
                ],
                "directives": []
              }
            }
          ]
        },
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 803,
        "end": 1053,
        "loc": {
          "start": {
            "line": 47,
            "column": 0
          },
          "end": {
            "line": 54,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 809,
            "end": 1052,
            "loc": {
              "start": {
                "line": 47,
                "column": 6
              },
              "end": {
                "line": 54,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 809,
              "end": 815,
              "loc": {
                "start": {
                  "line": 47,
                  "column": 6
                },
                "end": {
                  "line": 47,
                  "column": 12
                },
                "identifierName": "WHITES"
              },
              "name": "WHITES"
            },
            "init": {
              "type": "NewExpression",
              "start": 818,
              "end": 1052,
              "loc": {
                "start": {
                  "line": 47,
                  "column": 15
                },
                "end": {
                  "line": 54,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 822,
                "end": 832,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 19
                  },
                  "end": {
                    "line": 47,
                    "column": 29
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 836,
                  "end": 843,
                  "loc": {
                    "start": {
                      "line": 48,
                      "column": 2
                    },
                    "end": {
                      "line": 48,
                      "column": 9
                    }
                  },
                  "extra": {
                    "rawValue": "WHITE",
                    "raw": "\"WHITE\""
                  },
                  "value": "WHITE"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 847,
                  "end": 1042,
                  "loc": {
                    "start": {
                      "line": 49,
                      "column": 2
                    },
                    "end": {
                      "line": 52,
                      "column": 33
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 848,
                      "end": 1041,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 3
                        },
                        "end": {
                          "line": 52,
                          "column": 32
                        }
                      },
                      "value": {
                        "raw": "(\\\\s+|       # Spaces\n                                [#;].*|     # Single-line comments\n                                \\\\/\\\\*[^]*?\\\\*\\\\/  # Multiline comments\n                               )",
                        "cooked": "(\\s+|       # Spaces\n                                [#;].*|     # Single-line comments\n                                \\/\\*[^]*?\\*\\/  # Multiline comments\n                               )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "TemplateLiteral",
                  "start": 1046,
                  "end": 1050,
                  "loc": {
                    "start": {
                      "line": 53,
                      "column": 2
                    },
                    "end": {
                      "line": 53,
                      "column": 6
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 1047,
                      "end": 1049,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 3
                        },
                        "end": {
                          "line": 53,
                          "column": 5
                        }
                      },
                      "value": {
                        "raw": "yx",
                        "cooked": "yx"
                      },
                      "tail": true
                    }
                  ]
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 1055,
        "end": 1251,
        "loc": {
          "start": {
            "line": 56,
            "column": 0
          },
          "end": {
            "line": 61,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1061,
            "end": 1250,
            "loc": {
              "start": {
                "line": 56,
                "column": 6
              },
              "end": {
                "line": 61,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1061,
              "end": 1068,
              "loc": {
                "start": {
                  "line": 56,
                  "column": 6
                },
                "end": {
                  "line": 56,
                  "column": 13
                },
                "identifierName": "NEWLINE"
              },
              "name": "NEWLINE"
            },
            "init": {
              "type": "NewExpression",
              "start": 1071,
              "end": 1250,
              "loc": {
                "start": {
                  "line": 56,
                  "column": 16
                },
                "end": {
                  "line": 61,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 1075,
                "end": 1085,
                "loc": {
                  "start": {
                    "line": 56,
                    "column": 20
                  },
                  "end": {
                    "line": 56,
                    "column": 30
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 1089,
                  "end": 1098,
                  "loc": {
                    "start": {
                      "line": 57,
                      "column": 2
                    },
                    "end": {
                      "line": 57,
                      "column": 11
                    }
                  },
                  "extra": {
                    "rawValue": "NEWLINE",
                    "raw": "\"NEWLINE\""
                  },
                  "value": "NEWLINE"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 1102,
                  "end": 1248,
                  "loc": {
                    "start": {
                      "line": 58,
                      "column": 2
                    },
                    "end": {
                      "line": 60,
                      "column": 34
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 1103,
                      "end": 1247,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 3
                        },
                        "end": {
                          "line": 60,
                          "column": 33
                        }
                      },
                      "value": {
                        "raw": "(\\\\r?        # Carriage return (for compatibility)\n                                 \\\\n         # Newline char\n                                )",
                        "cooked": "(\\r?        # Carriage return (for compatibility)\n                                 \\n         # Newline char\n                                )"
                      },
                      "tail": true
                    }
                  ]
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 1253,
        "end": 1540,
        "loc": {
          "start": {
            "line": 63,
            "column": 0
          },
          "end": {
            "line": 71,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1259,
            "end": 1539,
            "loc": {
              "start": {
                "line": 63,
                "column": 6
              },
              "end": {
                "line": 71,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1259,
              "end": 1265,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 6
                },
                "end": {
                  "line": 63,
                  "column": 12
                },
                "identifierName": "NUMBER"
              },
              "name": "NUMBER"
            },
            "init": {
              "type": "NewExpression",
              "start": 1268,
              "end": 1539,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 15
                },
                "end": {
                  "line": 71,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 1272,
                "end": 1282,
                "loc": {
                  "start": {
                    "line": 63,
                    "column": 19
                  },
                  "end": {
                    "line": 63,
                    "column": 29
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 1286,
                  "end": 1294,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 2
                    },
                    "end": {
                      "line": 64,
                      "column": 10
                    }
                  },
                  "extra": {
                    "rawValue": "NUMBER",
                    "raw": "\"NUMBER\""
                  },
                  "value": "NUMBER"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 1298,
                  "end": 1529,
                  "loc": {
                    "start": {
                      "line": 65,
                      "column": 2
                    },
                    "end": {
                      "line": 69,
                      "column": 33
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 1299,
                      "end": 1528,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 3
                        },
                        "end": {
                          "line": 69,
                          "column": 32
                        }
                      },
                      "value": {
                        "raw": "([-+]?       # Sign\n                                \\\\d*          # Digits\n                                \\\\.?\\\\d+      # Decimals\n                                (?:[eE][-+]?\\\\d+)? # Exp notatio\n                               )",
                        "cooked": "([-+]?       # Sign\n                                \\d*          # Digits\n                                \\.?\\d+      # Decimals\n                                (?:[eE][-+]?\\d+)? # Exp notatio\n                               )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 1533,
                  "end": 1537,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 2
                    },
                    "end": {
                      "line": 70,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 1542,
        "end": 1682,
        "loc": {
          "start": {
            "line": 73,
            "column": 0
          },
          "end": {
            "line": 78,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1548,
            "end": 1681,
            "loc": {
              "start": {
                "line": 73,
                "column": 6
              },
              "end": {
                "line": 78,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1548,
              "end": 1554,
              "loc": {
                "start": {
                  "line": 73,
                  "column": 6
                },
                "end": {
                  "line": 73,
                  "column": 12
                },
                "identifierName": "STRING"
              },
              "name": "STRING"
            },
            "init": {
              "type": "NewExpression",
              "start": 1557,
              "end": 1681,
              "loc": {
                "start": {
                  "line": 73,
                  "column": 15
                },
                "end": {
                  "line": 78,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 1561,
                "end": 1571,
                "loc": {
                  "start": {
                    "line": 73,
                    "column": 19
                  },
                  "end": {
                    "line": 73,
                    "column": 29
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 1575,
                  "end": 1583,
                  "loc": {
                    "start": {
                      "line": 74,
                      "column": 2
                    },
                    "end": {
                      "line": 74,
                      "column": 10
                    }
                  },
                  "extra": {
                    "rawValue": "STRING",
                    "raw": "\"STRING\""
                  },
                  "value": "STRING"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 1587,
                  "end": 1671,
                  "loc": {
                    "start": {
                      "line": 75,
                      "column": 2
                    },
                    "end": {
                      "line": 76,
                      "column": 35
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 1588,
                      "end": 1670,
                      "loc": {
                        "start": {
                          "line": 75,
                          "column": 3
                        },
                        "end": {
                          "line": 76,
                          "column": 34
                        }
                      },
                      "value": {
                        "raw": "\"([^\"\\\\\\\\]*  # Any character except 'escaped \"'\n                                )\"",
                        "cooked": "\"([^\"\\\\]*  # Any character except 'escaped \"'\n                                )\""
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 1675,
                  "end": 1679,
                  "loc": {
                    "start": {
                      "line": 77,
                      "column": 2
                    },
                    "end": {
                      "line": 77,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 1684,
        "end": 1979,
        "loc": {
          "start": {
            "line": 80,
            "column": 0
          },
          "end": {
            "line": 87,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1690,
            "end": 1978,
            "loc": {
              "start": {
                "line": 80,
                "column": 6
              },
              "end": {
                "line": 87,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1690,
              "end": 1694,
              "loc": {
                "start": {
                  "line": 80,
                  "column": 6
                },
                "end": {
                  "line": 80,
                  "column": 10
                },
                "identifierName": "WORD"
              },
              "name": "WORD"
            },
            "init": {
              "type": "NewExpression",
              "start": 1697,
              "end": 1978,
              "loc": {
                "start": {
                  "line": 80,
                  "column": 13
                },
                "end": {
                  "line": 87,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 1701,
                "end": 1711,
                "loc": {
                  "start": {
                    "line": 80,
                    "column": 17
                  },
                  "end": {
                    "line": 80,
                    "column": 27
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 1715,
                  "end": 1721,
                  "loc": {
                    "start": {
                      "line": 81,
                      "column": 2
                    },
                    "end": {
                      "line": 81,
                      "column": 8
                    }
                  },
                  "extra": {
                    "rawValue": "WORD",
                    "raw": "\"WORD\""
                  },
                  "value": "WORD"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 1725,
                  "end": 1968,
                  "loc": {
                    "start": {
                      "line": 82,
                      "column": 2
                    },
                    "end": {
                      "line": 85,
                      "column": 32
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 1726,
                      "end": 1967,
                      "loc": {
                        "start": {
                          "line": 82,
                          "column": 3
                        },
                        "end": {
                          "line": 85,
                          "column": 31
                        }
                      },
                      "value": {
                        "raw": "(\\\\[\\\\]|     # [] is a reserved word for arrays\n                              :=|         # := is a reserved word for 'define'\n                              [^\\\\s\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\.,:\"]+   # Avoid some chars\n                              )",
                        "cooked": "(\\[\\]|     # [] is a reserved word for arrays\n                              :=|         # := is a reserved word for 'define'\n                              [^\\s\\(\\)\\{\\}\\[\\]\\.,:\"]+   # Avoid some chars\n                              )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 1972,
                  "end": 1976,
                  "loc": {
                    "start": {
                      "line": 86,
                      "column": 2
                    },
                    "end": {
                      "line": 86,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 1981,
        "end": 2095,
        "loc": {
          "start": {
            "line": 89,
            "column": 0
          },
          "end": {
            "line": 94,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 1987,
            "end": 2094,
            "loc": {
              "start": {
                "line": 89,
                "column": 6
              },
              "end": {
                "line": 94,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 1987,
              "end": 1989,
              "loc": {
                "start": {
                  "line": 89,
                  "column": 6
                },
                "end": {
                  "line": 89,
                  "column": 8
                },
                "identifierName": "LP"
              },
              "name": "LP"
            },
            "init": {
              "type": "NewExpression",
              "start": 1992,
              "end": 2094,
              "loc": {
                "start": {
                  "line": 89,
                  "column": 11
                },
                "end": {
                  "line": 94,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 1996,
                "end": 2006,
                "loc": {
                  "start": {
                    "line": 89,
                    "column": 15
                  },
                  "end": {
                    "line": 89,
                    "column": 25
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 2010,
                  "end": 2014,
                  "loc": {
                    "start": {
                      "line": 90,
                      "column": 2
                    },
                    "end": {
                      "line": 90,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "LP",
                    "raw": "\"LP\""
                  },
                  "value": "LP"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 2018,
                  "end": 2084,
                  "loc": {
                    "start": {
                      "line": 91,
                      "column": 2
                    },
                    "end": {
                      "line": 92,
                      "column": 29
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 2019,
                      "end": 2083,
                      "loc": {
                        "start": {
                          "line": 91,
                          "column": 3
                        },
                        "end": {
                          "line": 92,
                          "column": 28
                        }
                      },
                      "value": {
                        "raw": "([\\\\(\\\\{\\\\[\\\\.]  # ({[ are synonyms\n                           )",
                        "cooked": "([\\(\\{\\[\\.]  # ({[ are synonyms\n                           )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 2088,
                  "end": 2092,
                  "loc": {
                    "start": {
                      "line": 93,
                      "column": 2
                    },
                    "end": {
                      "line": 93,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 2097,
        "end": 2210,
        "loc": {
          "start": {
            "line": 96,
            "column": 0
          },
          "end": {
            "line": 101,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 2103,
            "end": 2209,
            "loc": {
              "start": {
                "line": 96,
                "column": 6
              },
              "end": {
                "line": 101,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 2103,
              "end": 2105,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 6
                },
                "end": {
                  "line": 96,
                  "column": 8
                },
                "identifierName": "RP"
              },
              "name": "RP"
            },
            "init": {
              "type": "NewExpression",
              "start": 2108,
              "end": 2209,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 11
                },
                "end": {
                  "line": 101,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 2112,
                "end": 2122,
                "loc": {
                  "start": {
                    "line": 96,
                    "column": 15
                  },
                  "end": {
                    "line": 96,
                    "column": 25
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 2126,
                  "end": 2130,
                  "loc": {
                    "start": {
                      "line": 97,
                      "column": 2
                    },
                    "end": {
                      "line": 97,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "RP",
                    "raw": "\"RP\""
                  },
                  "value": "RP"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 2134,
                  "end": 2199,
                  "loc": {
                    "start": {
                      "line": 98,
                      "column": 2
                    },
                    "end": {
                      "line": 99,
                      "column": 28
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 2135,
                      "end": 2198,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 3
                        },
                        "end": {
                          "line": 99,
                          "column": 27
                        }
                      },
                      "value": {
                        "raw": "([\\\\)\\\\}\\\\]]     # }}] are synonyms\n                          )",
                        "cooked": "([\\)\\}\\]]     # }}] are synonyms\n                          )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 2203,
                  "end": 2207,
                  "loc": {
                    "start": {
                      "line": 100,
                      "column": 2
                    },
                    "end": {
                      "line": 100,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 2212,
        "end": 2409,
        "loc": {
          "start": {
            "line": 103,
            "column": 0
          },
          "end": {
            "line": 109,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 2218,
            "end": 2408,
            "loc": {
              "start": {
                "line": 103,
                "column": 6
              },
              "end": {
                "line": 109,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 2218,
              "end": 2223,
              "loc": {
                "start": {
                  "line": 103,
                  "column": 6
                },
                "end": {
                  "line": 103,
                  "column": 11
                },
                "identifierName": "COMMA"
              },
              "name": "COMMA"
            },
            "init": {
              "type": "NewExpression",
              "start": 2226,
              "end": 2408,
              "loc": {
                "start": {
                  "line": 103,
                  "column": 14
                },
                "end": {
                  "line": 109,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 2230,
                "end": 2240,
                "loc": {
                  "start": {
                    "line": 103,
                    "column": 18
                  },
                  "end": {
                    "line": 103,
                    "column": 28
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 2244,
                  "end": 2251,
                  "loc": {
                    "start": {
                      "line": 104,
                      "column": 2
                    },
                    "end": {
                      "line": 104,
                      "column": 9
                    }
                  },
                  "extra": {
                    "rawValue": "COMMA",
                    "raw": "\"COMMA\""
                  },
                  "value": "COMMA"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 2255,
                  "end": 2398,
                  "loc": {
                    "start": {
                      "line": 105,
                      "column": 2
                    },
                    "end": {
                      "line": 107,
                      "column": 32
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 2256,
                      "end": 2397,
                      "loc": {
                        "start": {
                          "line": 105,
                          "column": 3
                        },
                        "end": {
                          "line": 107,
                          "column": 31
                        }
                      },
                      "value": {
                        "raw": "(,|          # comma\n                               :(?!=)      # a : that isn't followed by a = (:= is word)\n                              )",
                        "cooked": "(,|          # comma\n                               :(?!=)      # a : that isn't followed by a = (:= is word)\n                              )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 2402,
                  "end": 2406,
                  "loc": {
                    "start": {
                      "line": 108,
                      "column": 2
                    },
                    "end": {
                      "line": 108,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "Identifier",
        "start": 2411,
        "end": 2588,
        "loc": {
          "start": {
            "line": 111,
            "column": 0
          },
          "end": {
            "line": 117,
            "column": 2
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 2417,
            "end": 2587,
            "loc": {
              "start": {
                "line": 111,
                "column": 6
              },
              "end": {
                "line": 117,
                "column": 1
              }
            },
            "id": {
              "type": "Identifier",
              "start": 2417,
              "end": 2422,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 6
                },
                "end": {
                  "line": 111,
                  "column": 11
                },
                "identifierName": "REGEX"
              },
              "name": "REGEX"
            },
            "init": {
              "type": "NewExpression",
              "start": 2425,
              "end": 2587,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 14
                },
                "end": {
                  "line": 117,
                  "column": 1
                }
              },
              "callee": {
                "type": "Identifier",
                "start": 2429,
                "end": 2439,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 18
                  },
                  "end": {
                    "line": 111,
                    "column": 28
                  },
                  "identifierName": "TokenRegex"
                },
                "name": "TokenRegex"
              },
              "arguments": [
                {
                  "type": "StringLiteral",
                  "start": 2443,
                  "end": 2450,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 2
                    },
                    "end": {
                      "line": 112,
                      "column": 9
                    }
                  },
                  "extra": {
                    "rawValue": "REGEX",
                    "raw": "\"REGEX\""
                  },
                  "value": "REGEX"
                },
                {
                  "type": "TemplateLiteral",
                  "start": 2454,
                  "end": 2577,
                  "loc": {
                    "start": {
                      "line": 113,
                      "column": 2
                    },
                    "end": {
                      "line": 115,
                      "column": 32
                    }
                  },
                  "expressions": [],
                  "quasis": [
                    {
                      "type": "TemplateElement",
                      "start": 2455,
                      "end": 2576,
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 3
                        },
                        "end": {
                          "line": 115,
                          "column": 31
                        }
                      },
                      "value": {
                        "raw": "(r/[^]*?/       # body of the regex\n                               [nsxAgimuy]*   # flags\n                              )",
                        "cooked": "(r/[^]*?/       # body of the regex\n                               [nsxAgimuy]*   # flags\n                              )"
                      },
                      "tail": true
                    }
                  ]
                },
                {
                  "type": "StringLiteral",
                  "start": 2581,
                  "end": 2585,
                  "loc": {
                    "start": {
                      "line": 116,
                      "column": 2
                    },
                    "end": {
                      "line": 116,
                      "column": 6
                    }
                  },
                  "extra": {
                    "rawValue": "yx",
                    "raw": "\"yx\""
                  },
                  "value": "yx"
                }
              ]
            }
          }
        ],
        "kind": "const",
        "name": "_",
        "leadingComments": [],
        "trailingComments": []
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 2599,
            "end": 2605,
            "loc": {
              "start": {
                "line": 119,
                "column": 9
              },
              "end": {
                "line": 119,
                "column": 15
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2599,
              "end": 2605,
              "loc": {
                "start": {
                  "line": 119,
                  "column": 9
                },
                "end": {
                  "line": 119,
                  "column": 15
                },
                "identifierName": "WHITES"
              },
              "name": "WHITES"
            },
            "exported": {
              "type": "Identifier",
              "start": 2599,
              "end": 2605,
              "loc": {
                "start": {
                  "line": 119,
                  "column": 9
                },
                "end": {
                  "line": 119,
                  "column": 15
                },
                "identifierName": "WHITES"
              },
              "name": "WHITES"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2609,
            "end": 2616,
            "loc": {
              "start": {
                "line": 120,
                "column": 2
              },
              "end": {
                "line": 120,
                "column": 9
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2609,
              "end": 2616,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 2
                },
                "end": {
                  "line": 120,
                  "column": 9
                },
                "identifierName": "NEWLINE"
              },
              "name": "NEWLINE"
            },
            "exported": {
              "type": "Identifier",
              "start": 2609,
              "end": 2616,
              "loc": {
                "start": {
                  "line": 120,
                  "column": 2
                },
                "end": {
                  "line": 120,
                  "column": 9
                },
                "identifierName": "NEWLINE"
              },
              "name": "NEWLINE"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2620,
            "end": 2626,
            "loc": {
              "start": {
                "line": 121,
                "column": 2
              },
              "end": {
                "line": 121,
                "column": 8
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2620,
              "end": 2626,
              "loc": {
                "start": {
                  "line": 121,
                  "column": 2
                },
                "end": {
                  "line": 121,
                  "column": 8
                },
                "identifierName": "NUMBER"
              },
              "name": "NUMBER"
            },
            "exported": {
              "type": "Identifier",
              "start": 2620,
              "end": 2626,
              "loc": {
                "start": {
                  "line": 121,
                  "column": 2
                },
                "end": {
                  "line": 121,
                  "column": 8
                },
                "identifierName": "NUMBER"
              },
              "name": "NUMBER"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2630,
            "end": 2636,
            "loc": {
              "start": {
                "line": 122,
                "column": 2
              },
              "end": {
                "line": 122,
                "column": 8
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2630,
              "end": 2636,
              "loc": {
                "start": {
                  "line": 122,
                  "column": 2
                },
                "end": {
                  "line": 122,
                  "column": 8
                },
                "identifierName": "STRING"
              },
              "name": "STRING"
            },
            "exported": {
              "type": "Identifier",
              "start": 2630,
              "end": 2636,
              "loc": {
                "start": {
                  "line": 122,
                  "column": 2
                },
                "end": {
                  "line": 122,
                  "column": 8
                },
                "identifierName": "STRING"
              },
              "name": "STRING"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2640,
            "end": 2644,
            "loc": {
              "start": {
                "line": 123,
                "column": 2
              },
              "end": {
                "line": 123,
                "column": 6
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2640,
              "end": 2644,
              "loc": {
                "start": {
                  "line": 123,
                  "column": 2
                },
                "end": {
                  "line": 123,
                  "column": 6
                },
                "identifierName": "WORD"
              },
              "name": "WORD"
            },
            "exported": {
              "type": "Identifier",
              "start": 2640,
              "end": 2644,
              "loc": {
                "start": {
                  "line": 123,
                  "column": 2
                },
                "end": {
                  "line": 123,
                  "column": 6
                },
                "identifierName": "WORD"
              },
              "name": "WORD"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2648,
            "end": 2650,
            "loc": {
              "start": {
                "line": 124,
                "column": 2
              },
              "end": {
                "line": 124,
                "column": 4
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2648,
              "end": 2650,
              "loc": {
                "start": {
                  "line": 124,
                  "column": 2
                },
                "end": {
                  "line": 124,
                  "column": 4
                },
                "identifierName": "LP"
              },
              "name": "LP"
            },
            "exported": {
              "type": "Identifier",
              "start": 2648,
              "end": 2650,
              "loc": {
                "start": {
                  "line": 124,
                  "column": 2
                },
                "end": {
                  "line": 124,
                  "column": 4
                },
                "identifierName": "LP"
              },
              "name": "LP"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2654,
            "end": 2656,
            "loc": {
              "start": {
                "line": 125,
                "column": 2
              },
              "end": {
                "line": 125,
                "column": 4
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2654,
              "end": 2656,
              "loc": {
                "start": {
                  "line": 125,
                  "column": 2
                },
                "end": {
                  "line": 125,
                  "column": 4
                },
                "identifierName": "RP"
              },
              "name": "RP"
            },
            "exported": {
              "type": "Identifier",
              "start": 2654,
              "end": 2656,
              "loc": {
                "start": {
                  "line": 125,
                  "column": 2
                },
                "end": {
                  "line": 125,
                  "column": 4
                },
                "identifierName": "RP"
              },
              "name": "RP"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2660,
            "end": 2665,
            "loc": {
              "start": {
                "line": 126,
                "column": 2
              },
              "end": {
                "line": 126,
                "column": 7
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2660,
              "end": 2665,
              "loc": {
                "start": {
                  "line": 126,
                  "column": 2
                },
                "end": {
                  "line": 126,
                  "column": 7
                },
                "identifierName": "COMMA"
              },
              "name": "COMMA"
            },
            "exported": {
              "type": "Identifier",
              "start": 2660,
              "end": 2665,
              "loc": {
                "start": {
                  "line": 126,
                  "column": 2
                },
                "end": {
                  "line": 126,
                  "column": 7
                },
                "identifierName": "COMMA"
              },
              "name": "COMMA"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2669,
            "end": 2674,
            "loc": {
              "start": {
                "line": 127,
                "column": 2
              },
              "end": {
                "line": 127,
                "column": 7
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2669,
              "end": 2674,
              "loc": {
                "start": {
                  "line": 127,
                  "column": 2
                },
                "end": {
                  "line": 127,
                  "column": 7
                },
                "identifierName": "REGEX"
              },
              "name": "REGEX"
            },
            "exported": {
              "type": "Identifier",
              "start": 2669,
              "end": 2674,
              "loc": {
                "start": {
                  "line": 127,
                  "column": 2
                },
                "end": {
                  "line": 127,
                  "column": 7
                },
                "identifierName": "REGEX"
              },
              "name": "REGEX"
            }
          },
          {
            "type": "ExportSpecifier",
            "start": 2678,
            "end": 2688,
            "loc": {
              "start": {
                "line": 128,
                "column": 2
              },
              "end": {
                "line": 128,
                "column": 12
              }
            },
            "local": {
              "type": "Identifier",
              "start": 2678,
              "end": 2688,
              "loc": {
                "start": {
                  "line": 128,
                  "column": 2
                },
                "end": {
                  "line": 128,
                  "column": 12
                },
                "identifierName": "TokenRegex"
              },
              "name": "TokenRegex"
            },
            "exported": {
              "type": "Identifier",
              "start": 2678,
              "end": 2688,
              "loc": {
                "start": {
                  "line": 128,
                  "column": 2
                },
                "end": {
                  "line": 128,
                  "column": 12
                },
                "identifierName": "TokenRegex"
              },
              "name": "TokenRegex"
            }
          }
        ],
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 803,
          "end": 1053,
          "loc": {
            "start": {
              "line": 47,
              "column": 0
            },
            "end": {
              "line": 54,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 809,
              "end": 1052,
              "loc": {
                "start": {
                  "line": 47,
                  "column": 6
                },
                "end": {
                  "line": 54,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 809,
                "end": 815,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 6
                  },
                  "end": {
                    "line": 47,
                    "column": 12
                  },
                  "identifierName": "WHITES"
                },
                "name": "WHITES"
              },
              "init": {
                "type": "NewExpression",
                "start": 818,
                "end": 1052,
                "loc": {
                  "start": {
                    "line": 47,
                    "column": 15
                  },
                  "end": {
                    "line": 54,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 822,
                  "end": 832,
                  "loc": {
                    "start": {
                      "line": 47,
                      "column": 19
                    },
                    "end": {
                      "line": 47,
                      "column": 29
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 836,
                    "end": 843,
                    "loc": {
                      "start": {
                        "line": 48,
                        "column": 2
                      },
                      "end": {
                        "line": 48,
                        "column": 9
                      }
                    },
                    "extra": {
                      "rawValue": "WHITE",
                      "raw": "\"WHITE\""
                    },
                    "value": "WHITE"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 847,
                    "end": 1042,
                    "loc": {
                      "start": {
                        "line": 49,
                        "column": 2
                      },
                      "end": {
                        "line": 52,
                        "column": 33
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 848,
                        "end": 1041,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 3
                          },
                          "end": {
                            "line": 52,
                            "column": 32
                          }
                        },
                        "value": {
                          "raw": "(\\\\s+|       # Spaces\n                                [#;].*|     # Single-line comments\n                                \\\\/\\\\*[^]*?\\\\*\\\\/  # Multiline comments\n                               )",
                          "cooked": "(\\s+|       # Spaces\n                                [#;].*|     # Single-line comments\n                                \\/\\*[^]*?\\*\\/  # Multiline comments\n                               )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 1046,
                    "end": 1050,
                    "loc": {
                      "start": {
                        "line": 53,
                        "column": 2
                      },
                      "end": {
                        "line": 53,
                        "column": 6
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 1047,
                        "end": 1049,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 3
                          },
                          "end": {
                            "line": 53,
                            "column": 5
                          }
                        },
                        "value": {
                          "raw": "yx",
                          "cooked": "yx"
                        },
                        "tail": true
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 32,
          "end": 801,
          "loc": {
            "start": {
              "line": 3,
              "column": 0
            },
            "end": {
              "line": 45,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 38,
            "end": 48,
            "loc": {
              "start": {
                "line": 3,
                "column": 6
              },
              "end": {
                "line": 3,
                "column": 16
              },
              "identifierName": "TokenRegex"
            },
            "name": "TokenRegex"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 49,
            "end": 801,
            "loc": {
              "start": {
                "line": 3,
                "column": 17
              },
              "end": {
                "line": 45,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 53,
                "end": 171,
                "loc": {
                  "start": {
                    "line": 4,
                    "column": 2
                  },
                  "end": {
                    "line": 7,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 53,
                  "end": 64,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 2
                    },
                    "end": {
                      "line": 4,
                      "column": 13
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 65,
                    "end": 69,
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 14
                      },
                      "end": {
                        "line": 4,
                        "column": 18
                      },
                      "identifierName": "name"
                    },
                    "name": "name"
                  },
                  {
                    "type": "Identifier",
                    "start": 71,
                    "end": 83,
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 20
                      },
                      "end": {
                        "line": 4,
                        "column": 32
                      },
                      "identifierName": "regexLiteral"
                    },
                    "name": "regexLiteral"
                  },
                  {
                    "type": "Identifier",
                    "start": 85,
                    "end": 90,
                    "loc": {
                      "start": {
                        "line": 4,
                        "column": 34
                      },
                      "end": {
                        "line": 4,
                        "column": 39
                      },
                      "identifierName": "flags"
                    },
                    "name": "flags"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 92,
                  "end": 171,
                  "loc": {
                    "start": {
                      "line": 4,
                      "column": 41
                    },
                    "end": {
                      "line": 7,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 98,
                      "end": 115,
                      "loc": {
                        "start": {
                          "line": 5,
                          "column": 4
                        },
                        "end": {
                          "line": 5,
                          "column": 21
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 98,
                        "end": 114,
                        "loc": {
                          "start": {
                            "line": 5,
                            "column": 4
                          },
                          "end": {
                            "line": 5,
                            "column": 20
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 98,
                          "end": 107,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 4
                            },
                            "end": {
                              "line": 5,
                              "column": 13
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 98,
                            "end": 102,
                            "loc": {
                              "start": {
                                "line": 5,
                                "column": 4
                              },
                              "end": {
                                "line": 5,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 103,
                            "end": 107,
                            "loc": {
                              "start": {
                                "line": 5,
                                "column": 9
                              },
                              "end": {
                                "line": 5,
                                "column": 13
                              },
                              "identifierName": "name"
                            },
                            "name": "name"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 110,
                          "end": 114,
                          "loc": {
                            "start": {
                              "line": 5,
                              "column": 16
                            },
                            "end": {
                              "line": 5,
                              "column": 20
                            },
                            "identifierName": "name"
                          },
                          "name": "name"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 120,
                      "end": 167,
                      "loc": {
                        "start": {
                          "line": 6,
                          "column": 4
                        },
                        "end": {
                          "line": 6,
                          "column": 51
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 120,
                        "end": 166,
                        "loc": {
                          "start": {
                            "line": 6,
                            "column": 4
                          },
                          "end": {
                            "line": 6,
                            "column": 50
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 120,
                          "end": 135,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 4
                            },
                            "end": {
                              "line": 6,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 120,
                            "end": 124,
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 4
                              },
                              "end": {
                                "line": 6,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 125,
                            "end": 135,
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 9
                              },
                              "end": {
                                "line": 6,
                                "column": 19
                              },
                              "identifierName": "expression"
                            },
                            "name": "expression"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "CallExpression",
                          "start": 138,
                          "end": 166,
                          "loc": {
                            "start": {
                              "line": 6,
                              "column": 22
                            },
                            "end": {
                              "line": 6,
                              "column": 50
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 138,
                            "end": 145,
                            "loc": {
                              "start": {
                                "line": 6,
                                "column": 22
                              },
                              "end": {
                                "line": 6,
                                "column": 29
                              },
                              "identifierName": "xRegExp"
                            },
                            "name": "xRegExp"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 146,
                              "end": 158,
                              "loc": {
                                "start": {
                                  "line": 6,
                                  "column": 30
                                },
                                "end": {
                                  "line": 6,
                                  "column": 42
                                },
                                "identifierName": "regexLiteral"
                              },
                              "name": "regexLiteral"
                            },
                            {
                              "type": "Identifier",
                              "start": 160,
                              "end": 165,
                              "loc": {
                                "start": {
                                  "line": 6,
                                  "column": 44
                                },
                                "end": {
                                  "line": 6,
                                  "column": 49
                                },
                                "identifierName": "flags"
                              },
                              "name": "flags"
                            }
                          ]
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 175,
                "end": 234,
                "loc": {
                  "start": {
                    "line": 9,
                    "column": 2
                  },
                  "end": {
                    "line": 11,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 179,
                  "end": 188,
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 6
                    },
                    "end": {
                      "line": 9,
                      "column": 15
                    },
                    "identifierName": "lastIndex"
                  },
                  "name": "lastIndex"
                },
                "kind": "get",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 191,
                  "end": 234,
                  "loc": {
                    "start": {
                      "line": 9,
                      "column": 18
                    },
                    "end": {
                      "line": 11,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ReturnStatement",
                      "start": 197,
                      "end": 230,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 37
                        }
                      },
                      "argument": {
                        "type": "MemberExpression",
                        "start": 204,
                        "end": 229,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 11
                          },
                          "end": {
                            "line": 10,
                            "column": 36
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 204,
                          "end": 219,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 11
                            },
                            "end": {
                              "line": 10,
                              "column": 26
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 204,
                            "end": 208,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 11
                              },
                              "end": {
                                "line": 10,
                                "column": 15
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 209,
                            "end": 219,
                            "loc": {
                              "start": {
                                "line": 10,
                                "column": 16
                              },
                              "end": {
                                "line": 10,
                                "column": 26
                              },
                              "identifierName": "expression"
                            },
                            "name": "expression"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 220,
                          "end": 229,
                          "loc": {
                            "start": {
                              "line": 10,
                              "column": 27
                            },
                            "end": {
                              "line": 10,
                              "column": 36
                            },
                            "identifierName": "lastIndex"
                          },
                          "name": "lastIndex"
                        },
                        "computed": false
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 238,
                "end": 303,
                "loc": {
                  "start": {
                    "line": 13,
                    "column": 2
                  },
                  "end": {
                    "line": 15,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 242,
                  "end": 251,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 6
                    },
                    "end": {
                      "line": 13,
                      "column": 15
                    },
                    "identifierName": "lastIndex"
                  },
                  "name": "lastIndex"
                },
                "kind": "set",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 252,
                    "end": 257,
                    "loc": {
                      "start": {
                        "line": 13,
                        "column": 16
                      },
                      "end": {
                        "line": 13,
                        "column": 21
                      },
                      "identifierName": "index"
                    },
                    "name": "index"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 259,
                  "end": 303,
                  "loc": {
                    "start": {
                      "line": 13,
                      "column": 23
                    },
                    "end": {
                      "line": 15,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 265,
                      "end": 299,
                      "loc": {
                        "start": {
                          "line": 14,
                          "column": 4
                        },
                        "end": {
                          "line": 14,
                          "column": 38
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 265,
                        "end": 298,
                        "loc": {
                          "start": {
                            "line": 14,
                            "column": 4
                          },
                          "end": {
                            "line": 14,
                            "column": 37
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 265,
                          "end": 290,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 4
                            },
                            "end": {
                              "line": 14,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 265,
                            "end": 280,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 4
                              },
                              "end": {
                                "line": 14,
                                "column": 19
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 265,
                              "end": 269,
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 4
                                },
                                "end": {
                                  "line": 14,
                                  "column": 8
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 270,
                              "end": 280,
                              "loc": {
                                "start": {
                                  "line": 14,
                                  "column": 9
                                },
                                "end": {
                                  "line": 14,
                                  "column": 19
                                },
                                "identifierName": "expression"
                              },
                              "name": "expression"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 281,
                            "end": 290,
                            "loc": {
                              "start": {
                                "line": 14,
                                "column": 20
                              },
                              "end": {
                                "line": 14,
                                "column": 29
                              },
                              "identifierName": "lastIndex"
                            },
                            "name": "lastIndex"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 293,
                          "end": 298,
                          "loc": {
                            "start": {
                              "line": 14,
                              "column": 32
                            },
                            "end": {
                              "line": 14,
                              "column": 37
                            },
                            "identifierName": "index"
                          },
                          "name": "index"
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 307,
                "end": 362,
                "loc": {
                  "start": {
                    "line": 17,
                    "column": 2
                  },
                  "end": {
                    "line": 21,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 307,
                  "end": 312,
                  "loc": {
                    "start": {
                      "line": 17,
                      "column": 2
                    },
                    "end": {
                      "line": 17,
                      "column": 7
                    },
                    "identifierName": "reset"
                  },
                  "name": "reset"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 315,
                  "end": 362,
                  "loc": {
                    "start": {
                      "line": 17,
                      "column": 10
                    },
                    "end": {
                      "line": 21,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 321,
                      "end": 340,
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 4
                        },
                        "end": {
                          "line": 18,
                          "column": 23
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 321,
                        "end": 339,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 4
                          },
                          "end": {
                            "line": 18,
                            "column": 22
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 321,
                          "end": 335,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 4
                            },
                            "end": {
                              "line": 18,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 321,
                            "end": 325,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 4
                              },
                              "end": {
                                "line": 18,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 326,
                            "end": 335,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 9
                              },
                              "end": {
                                "line": 18,
                                "column": 18
                              },
                              "identifierName": "lastIndex"
                            },
                            "name": "lastIndex"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "NumericLiteral",
                          "start": 338,
                          "end": 339,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 21
                            },
                            "end": {
                              "line": 18,
                              "column": 22
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 346,
                      "end": 358,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 4
                        },
                        "end": {
                          "line": 20,
                          "column": 16
                        }
                      },
                      "argument": {
                        "type": "ThisExpression",
                        "start": 353,
                        "end": 357,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 11
                          },
                          "end": {
                            "line": 20,
                            "column": 15
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 366,
                "end": 638,
                "loc": {
                  "start": {
                    "line": 23,
                    "column": 2
                  },
                  "end": {
                    "line": 36,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 366,
                  "end": 370,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 2
                    },
                    "end": {
                      "line": 23,
                      "column": 6
                    },
                    "identifierName": "exec"
                  },
                  "name": "exec"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 371,
                    "end": 378,
                    "loc": {
                      "start": {
                        "line": 23,
                        "column": 7
                      },
                      "end": {
                        "line": 23,
                        "column": 14
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 380,
                  "end": 638,
                  "loc": {
                    "start": {
                      "line": 23,
                      "column": 16
                    },
                    "end": {
                      "line": 36,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 386,
                      "end": 428,
                      "loc": {
                        "start": {
                          "line": 24,
                          "column": 4
                        },
                        "end": {
                          "line": 24,
                          "column": 46
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 390,
                          "end": 427,
                          "loc": {
                            "start": {
                              "line": 24,
                              "column": 8
                            },
                            "end": {
                              "line": 24,
                              "column": 45
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 390,
                            "end": 395,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 8
                              },
                              "end": {
                                "line": 24,
                                "column": 13
                              },
                              "identifierName": "match"
                            },
                            "name": "match"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 398,
                            "end": 427,
                            "loc": {
                              "start": {
                                "line": 24,
                                "column": 16
                              },
                              "end": {
                                "line": 24,
                                "column": 45
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 398,
                              "end": 418,
                              "loc": {
                                "start": {
                                  "line": 24,
                                  "column": 16
                                },
                                "end": {
                                  "line": 24,
                                  "column": 36
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 398,
                                "end": 413,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 31
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 398,
                                  "end": 402,
                                  "loc": {
                                    "start": {
                                      "line": 24,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 24,
                                      "column": 20
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 403,
                                  "end": 413,
                                  "loc": {
                                    "start": {
                                      "line": 24,
                                      "column": 21
                                    },
                                    "end": {
                                      "line": 24,
                                      "column": 31
                                    },
                                    "identifierName": "expression"
                                  },
                                  "name": "expression"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 414,
                                "end": 418,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 36
                                  },
                                  "identifierName": "exec"
                                },
                                "name": "exec"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 419,
                                "end": 426,
                                "loc": {
                                  "start": {
                                    "line": 24,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 24,
                                    "column": 44
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "IfStatement",
                      "start": 434,
                      "end": 616,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 4
                        },
                        "end": {
                          "line": 33,
                          "column": 5
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 438,
                        "end": 452,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 8
                          },
                          "end": {
                            "line": 26,
                            "column": 22
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 438,
                          "end": 443,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 8
                            },
                            "end": {
                              "line": 26,
                              "column": 13
                            },
                            "identifierName": "match"
                          },
                          "name": "match"
                        },
                        "operator": "!==",
                        "right": {
                          "type": "NullLiteral",
                          "start": 448,
                          "end": 452,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 18
                            },
                            "end": {
                              "line": 26,
                              "column": 22
                            }
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 454,
                        "end": 616,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 24
                          },
                          "end": {
                            "line": 33,
                            "column": 5
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 462,
                            "end": 610,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 6
                              },
                              "end": {
                                "line": 32,
                                "column": 8
                              }
                            },
                            "argument": {
                              "type": "ObjectExpression",
                              "start": 469,
                              "end": 609,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 13
                                },
                                "end": {
                                  "line": 32,
                                  "column": 7
                                }
                              },
                              "properties": [
                                {
                                  "type": "ObjectProperty",
                                  "start": 479,
                                  "end": 494,
                                  "loc": {
                                    "start": {
                                      "line": 28,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 28,
                                      "column": 23
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 479,
                                    "end": 483,
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 12
                                      },
                                      "identifierName": "type"
                                    },
                                    "name": "type"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 485,
                                    "end": 494,
                                    "loc": {
                                      "start": {
                                        "line": 28,
                                        "column": 14
                                      },
                                      "end": {
                                        "line": 28,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 485,
                                      "end": 489,
                                      "loc": {
                                        "start": {
                                          "line": 28,
                                          "column": 14
                                        },
                                        "end": {
                                          "line": 28,
                                          "column": 18
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 490,
                                      "end": 494,
                                      "loc": {
                                        "start": {
                                          "line": 28,
                                          "column": 19
                                        },
                                        "end": {
                                          "line": 28,
                                          "column": 23
                                        },
                                        "identifierName": "name"
                                      },
                                      "name": "name"
                                    },
                                    "computed": false
                                  }
                                },
                                {
                                  "type": "ObjectProperty",
                                  "start": 504,
                                  "end": 519,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 23
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 504,
                                    "end": 509,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 13
                                      },
                                      "identifierName": "value"
                                    },
                                    "name": "value"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 511,
                                    "end": 519,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 23
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 511,
                                      "end": 516,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 20
                                        },
                                        "identifierName": "match"
                                      },
                                      "name": "match"
                                    },
                                    "property": {
                                      "type": "NumericLiteral",
                                      "start": 517,
                                      "end": 518,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 22
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 1,
                                        "raw": "1"
                                      },
                                      "value": 1
                                    },
                                    "computed": true
                                  }
                                },
                                {
                                  "type": "ObjectProperty",
                                  "start": 529,
                                  "end": 572,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 51
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 529,
                                    "end": 534,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 13
                                      },
                                      "identifierName": "start"
                                    },
                                    "name": "start"
                                  },
                                  "value": {
                                    "type": "BinaryExpression",
                                    "start": 536,
                                    "end": 572,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 51
                                      }
                                    },
                                    "left": {
                                      "type": "BinaryExpression",
                                      "start": 536,
                                      "end": 568,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 15
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 47
                                        }
                                      },
                                      "left": {
                                        "type": "MemberExpression",
                                        "start": 536,
                                        "end": 550,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 15
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 29
                                          }
                                        },
                                        "object": {
                                          "type": "ThisExpression",
                                          "start": 536,
                                          "end": 540,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 15
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 19
                                            }
                                          }
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 541,
                                          "end": 550,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 29
                                            },
                                            "identifierName": "lastIndex"
                                          },
                                          "name": "lastIndex"
                                        },
                                        "computed": false
                                      },
                                      "operator": "-",
                                      "right": {
                                        "type": "MemberExpression",
                                        "start": 553,
                                        "end": 568,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 47
                                          }
                                        },
                                        "object": {
                                          "type": "MemberExpression",
                                          "start": 553,
                                          "end": 561,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 32
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 40
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 553,
                                            "end": 558,
                                            "loc": {
                                              "start": {
                                                "line": 30,
                                                "column": 32
                                              },
                                              "end": {
                                                "line": 30,
                                                "column": 37
                                              },
                                              "identifierName": "match"
                                            },
                                            "name": "match"
                                          },
                                          "property": {
                                            "type": "NumericLiteral",
                                            "start": 559,
                                            "end": 560,
                                            "loc": {
                                              "start": {
                                                "line": 30,
                                                "column": 38
                                              },
                                              "end": {
                                                "line": 30,
                                                "column": 39
                                              }
                                            },
                                            "extra": {
                                              "rawValue": 1,
                                              "raw": "1"
                                            },
                                            "value": 1
                                          },
                                          "computed": true
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 562,
                                          "end": 568,
                                          "loc": {
                                            "start": {
                                              "line": 30,
                                              "column": 41
                                            },
                                            "end": {
                                              "line": 30,
                                              "column": 47
                                            },
                                            "identifierName": "length"
                                          },
                                          "name": "length"
                                        },
                                        "computed": false
                                      }
                                    },
                                    "operator": "+",
                                    "right": {
                                      "type": "NumericLiteral",
                                      "start": 571,
                                      "end": 572,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 51
                                        }
                                      },
                                      "extra": {
                                        "rawValue": 1,
                                        "raw": "1"
                                      },
                                      "value": 1
                                    }
                                  }
                                },
                                {
                                  "type": "ObjectProperty",
                                  "start": 582,
                                  "end": 601,
                                  "loc": {
                                    "start": {
                                      "line": 31,
                                      "column": 8
                                    },
                                    "end": {
                                      "line": 31,
                                      "column": 27
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 582,
                                    "end": 585,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 8
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 11
                                      },
                                      "identifierName": "end"
                                    },
                                    "name": "end"
                                  },
                                  "value": {
                                    "type": "MemberExpression",
                                    "start": 587,
                                    "end": 601,
                                    "loc": {
                                      "start": {
                                        "line": 31,
                                        "column": 13
                                      },
                                      "end": {
                                        "line": 31,
                                        "column": 27
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 587,
                                      "end": 591,
                                      "loc": {
                                        "start": {
                                          "line": 31,
                                          "column": 13
                                        },
                                        "end": {
                                          "line": 31,
                                          "column": 17
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 592,
                                      "end": 601,
                                      "loc": {
                                        "start": {
                                          "line": 31,
                                          "column": 18
                                        },
                                        "end": {
                                          "line": 31,
                                          "column": 27
                                        },
                                        "identifierName": "lastIndex"
                                      },
                                      "name": "lastIndex"
                                    },
                                    "computed": false
                                  }
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 622,
                      "end": 634,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 4
                        },
                        "end": {
                          "line": 35,
                          "column": 16
                        }
                      },
                      "argument": {
                        "type": "NullLiteral",
                        "start": 629,
                        "end": 633,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 11
                          },
                          "end": {
                            "line": 35,
                            "column": 15
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 642,
                "end": 799,
                "loc": {
                  "start": {
                    "line": 38,
                    "column": 2
                  },
                  "end": {
                    "line": 44,
                    "column": 3
                  }
                },
                "static": false,
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 642,
                  "end": 646,
                  "loc": {
                    "start": {
                      "line": 38,
                      "column": 2
                    },
                    "end": {
                      "line": 38,
                      "column": 6
                    },
                    "identifierName": "test"
                  },
                  "name": "test"
                },
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 647,
                    "end": 654,
                    "loc": {
                      "start": {
                        "line": 38,
                        "column": 7
                      },
                      "end": {
                        "line": 38,
                        "column": 14
                      },
                      "identifierName": "program"
                    },
                    "name": "program"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 656,
                  "end": 799,
                  "loc": {
                    "start": {
                      "line": 38,
                      "column": 16
                    },
                    "end": {
                      "line": 44,
                      "column": 3
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 662,
                      "end": 694,
                      "loc": {
                        "start": {
                          "line": 39,
                          "column": 4
                        },
                        "end": {
                          "line": 39,
                          "column": 36
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 666,
                          "end": 693,
                          "loc": {
                            "start": {
                              "line": 39,
                              "column": 8
                            },
                            "end": {
                              "line": 39,
                              "column": 35
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 666,
                            "end": 676,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 8
                              },
                              "end": {
                                "line": 39,
                                "column": 18
                              },
                              "identifierName": "savedIndex"
                            },
                            "name": "savedIndex"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 679,
                            "end": 693,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 21
                              },
                              "end": {
                                "line": 39,
                                "column": 35
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 679,
                              "end": 683,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 21
                                },
                                "end": {
                                  "line": 39,
                                  "column": 25
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 684,
                              "end": 693,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 26
                                },
                                "end": {
                                  "line": 39,
                                  "column": 35
                                },
                                "identifierName": "lastIndex"
                              },
                              "name": "lastIndex"
                            },
                            "computed": false
                          }
                        }
                      ],
                      "kind": "let"
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 699,
                      "end": 733,
                      "loc": {
                        "start": {
                          "line": 40,
                          "column": 4
                        },
                        "end": {
                          "line": 40,
                          "column": 38
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 705,
                          "end": 732,
                          "loc": {
                            "start": {
                              "line": 40,
                              "column": 10
                            },
                            "end": {
                              "line": 40,
                              "column": 37
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 705,
                            "end": 711,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 10
                              },
                              "end": {
                                "line": 40,
                                "column": 16
                              },
                              "identifierName": "result"
                            },
                            "name": "result"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 714,
                            "end": 732,
                            "loc": {
                              "start": {
                                "line": 40,
                                "column": 19
                              },
                              "end": {
                                "line": 40,
                                "column": 37
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 714,
                              "end": 723,
                              "loc": {
                                "start": {
                                  "line": 40,
                                  "column": 19
                                },
                                "end": {
                                  "line": 40,
                                  "column": 28
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 714,
                                "end": 718,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 23
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 719,
                                "end": 723,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 28
                                  },
                                  "identifierName": "exec"
                                },
                                "name": "exec"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 724,
                                "end": 731,
                                "loc": {
                                  "start": {
                                    "line": 40,
                                    "column": 29
                                  },
                                  "end": {
                                    "line": 40,
                                    "column": 36
                                  },
                                  "identifierName": "program"
                                },
                                "name": "program"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 738,
                      "end": 766,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 4
                        },
                        "end": {
                          "line": 41,
                          "column": 32
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 738,
                        "end": 765,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 4
                          },
                          "end": {
                            "line": 41,
                            "column": 31
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 738,
                          "end": 752,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 4
                            },
                            "end": {
                              "line": 41,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 738,
                            "end": 742,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 4
                              },
                              "end": {
                                "line": 41,
                                "column": 8
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 743,
                            "end": 752,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 9
                              },
                              "end": {
                                "line": 41,
                                "column": 18
                              },
                              "identifierName": "lastIndex"
                            },
                            "name": "lastIndex"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 755,
                          "end": 765,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 21
                            },
                            "end": {
                              "line": 41,
                              "column": 31
                            },
                            "identifierName": "savedIndex"
                          },
                          "name": "savedIndex"
                        }
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 772,
                      "end": 795,
                      "loc": {
                        "start": {
                          "line": 43,
                          "column": 4
                        },
                        "end": {
                          "line": 43,
                          "column": 27
                        }
                      },
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 779,
                        "end": 794,
                        "loc": {
                          "start": {
                            "line": 43,
                            "column": 11
                          },
                          "end": {
                            "line": 43,
                            "column": 26
                          }
                        },
                        "left": {
                          "type": "Identifier",
                          "start": 779,
                          "end": 785,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 11
                            },
                            "end": {
                              "line": 43,
                              "column": 17
                            },
                            "identifierName": "result"
                          },
                          "name": "result"
                        },
                        "operator": "!==",
                        "right": {
                          "type": "NullLiteral",
                          "start": 790,
                          "end": 794,
                          "loc": {
                            "start": {
                              "line": 43,
                              "column": 22
                            },
                            "end": {
                              "line": 43,
                              "column": 26
                            }
                          }
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "__PseudoExport__": true,
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null,
        "leadingComments": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 1055,
          "end": 1251,
          "loc": {
            "start": {
              "line": 56,
              "column": 0
            },
            "end": {
              "line": 61,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 1061,
              "end": 1250,
              "loc": {
                "start": {
                  "line": 56,
                  "column": 6
                },
                "end": {
                  "line": 61,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 1061,
                "end": 1068,
                "loc": {
                  "start": {
                    "line": 56,
                    "column": 6
                  },
                  "end": {
                    "line": 56,
                    "column": 13
                  },
                  "identifierName": "NEWLINE"
                },
                "name": "NEWLINE"
              },
              "init": {
                "type": "NewExpression",
                "start": 1071,
                "end": 1250,
                "loc": {
                  "start": {
                    "line": 56,
                    "column": 16
                  },
                  "end": {
                    "line": 61,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 1075,
                  "end": 1085,
                  "loc": {
                    "start": {
                      "line": 56,
                      "column": 20
                    },
                    "end": {
                      "line": 56,
                      "column": 30
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 1089,
                    "end": 1098,
                    "loc": {
                      "start": {
                        "line": 57,
                        "column": 2
                      },
                      "end": {
                        "line": 57,
                        "column": 11
                      }
                    },
                    "extra": {
                      "rawValue": "NEWLINE",
                      "raw": "\"NEWLINE\""
                    },
                    "value": "NEWLINE"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 1102,
                    "end": 1248,
                    "loc": {
                      "start": {
                        "line": 58,
                        "column": 2
                      },
                      "end": {
                        "line": 60,
                        "column": 34
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 1103,
                        "end": 1247,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 3
                          },
                          "end": {
                            "line": 60,
                            "column": 33
                          }
                        },
                        "value": {
                          "raw": "(\\\\r?        # Carriage return (for compatibility)\n                                 \\\\n         # Newline char\n                                )",
                          "cooked": "(\\r?        # Carriage return (for compatibility)\n                                 \\n         # Newline char\n                                )"
                        },
                        "tail": true
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 1253,
          "end": 1540,
          "loc": {
            "start": {
              "line": 63,
              "column": 0
            },
            "end": {
              "line": 71,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 1259,
              "end": 1539,
              "loc": {
                "start": {
                  "line": 63,
                  "column": 6
                },
                "end": {
                  "line": 71,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 1259,
                "end": 1265,
                "loc": {
                  "start": {
                    "line": 63,
                    "column": 6
                  },
                  "end": {
                    "line": 63,
                    "column": 12
                  },
                  "identifierName": "NUMBER"
                },
                "name": "NUMBER"
              },
              "init": {
                "type": "NewExpression",
                "start": 1268,
                "end": 1539,
                "loc": {
                  "start": {
                    "line": 63,
                    "column": 15
                  },
                  "end": {
                    "line": 71,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 1272,
                  "end": 1282,
                  "loc": {
                    "start": {
                      "line": 63,
                      "column": 19
                    },
                    "end": {
                      "line": 63,
                      "column": 29
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 1286,
                    "end": 1294,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 2
                      },
                      "end": {
                        "line": 64,
                        "column": 10
                      }
                    },
                    "extra": {
                      "rawValue": "NUMBER",
                      "raw": "\"NUMBER\""
                    },
                    "value": "NUMBER"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 1298,
                    "end": 1529,
                    "loc": {
                      "start": {
                        "line": 65,
                        "column": 2
                      },
                      "end": {
                        "line": 69,
                        "column": 33
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 1299,
                        "end": 1528,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 3
                          },
                          "end": {
                            "line": 69,
                            "column": 32
                          }
                        },
                        "value": {
                          "raw": "([-+]?       # Sign\n                                \\\\d*          # Digits\n                                \\\\.?\\\\d+      # Decimals\n                                (?:[eE][-+]?\\\\d+)? # Exp notatio\n                               )",
                          "cooked": "([-+]?       # Sign\n                                \\d*          # Digits\n                                \\.?\\d+      # Decimals\n                                (?:[eE][-+]?\\d+)? # Exp notatio\n                               )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1533,
                    "end": 1537,
                    "loc": {
                      "start": {
                        "line": 70,
                        "column": 2
                      },
                      "end": {
                        "line": 70,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 1542,
          "end": 1682,
          "loc": {
            "start": {
              "line": 73,
              "column": 0
            },
            "end": {
              "line": 78,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 1548,
              "end": 1681,
              "loc": {
                "start": {
                  "line": 73,
                  "column": 6
                },
                "end": {
                  "line": 78,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 1548,
                "end": 1554,
                "loc": {
                  "start": {
                    "line": 73,
                    "column": 6
                  },
                  "end": {
                    "line": 73,
                    "column": 12
                  },
                  "identifierName": "STRING"
                },
                "name": "STRING"
              },
              "init": {
                "type": "NewExpression",
                "start": 1557,
                "end": 1681,
                "loc": {
                  "start": {
                    "line": 73,
                    "column": 15
                  },
                  "end": {
                    "line": 78,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 1561,
                  "end": 1571,
                  "loc": {
                    "start": {
                      "line": 73,
                      "column": 19
                    },
                    "end": {
                      "line": 73,
                      "column": 29
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 1575,
                    "end": 1583,
                    "loc": {
                      "start": {
                        "line": 74,
                        "column": 2
                      },
                      "end": {
                        "line": 74,
                        "column": 10
                      }
                    },
                    "extra": {
                      "rawValue": "STRING",
                      "raw": "\"STRING\""
                    },
                    "value": "STRING"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 1587,
                    "end": 1671,
                    "loc": {
                      "start": {
                        "line": 75,
                        "column": 2
                      },
                      "end": {
                        "line": 76,
                        "column": 35
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 1588,
                        "end": 1670,
                        "loc": {
                          "start": {
                            "line": 75,
                            "column": 3
                          },
                          "end": {
                            "line": 76,
                            "column": 34
                          }
                        },
                        "value": {
                          "raw": "\"([^\"\\\\\\\\]*  # Any character except 'escaped \"'\n                                )\"",
                          "cooked": "\"([^\"\\\\]*  # Any character except 'escaped \"'\n                                )\""
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1675,
                    "end": 1679,
                    "loc": {
                      "start": {
                        "line": 77,
                        "column": 2
                      },
                      "end": {
                        "line": 77,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 1684,
          "end": 1979,
          "loc": {
            "start": {
              "line": 80,
              "column": 0
            },
            "end": {
              "line": 87,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 1690,
              "end": 1978,
              "loc": {
                "start": {
                  "line": 80,
                  "column": 6
                },
                "end": {
                  "line": 87,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 1690,
                "end": 1694,
                "loc": {
                  "start": {
                    "line": 80,
                    "column": 6
                  },
                  "end": {
                    "line": 80,
                    "column": 10
                  },
                  "identifierName": "WORD"
                },
                "name": "WORD"
              },
              "init": {
                "type": "NewExpression",
                "start": 1697,
                "end": 1978,
                "loc": {
                  "start": {
                    "line": 80,
                    "column": 13
                  },
                  "end": {
                    "line": 87,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 1701,
                  "end": 1711,
                  "loc": {
                    "start": {
                      "line": 80,
                      "column": 17
                    },
                    "end": {
                      "line": 80,
                      "column": 27
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 1715,
                    "end": 1721,
                    "loc": {
                      "start": {
                        "line": 81,
                        "column": 2
                      },
                      "end": {
                        "line": 81,
                        "column": 8
                      }
                    },
                    "extra": {
                      "rawValue": "WORD",
                      "raw": "\"WORD\""
                    },
                    "value": "WORD"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 1725,
                    "end": 1968,
                    "loc": {
                      "start": {
                        "line": 82,
                        "column": 2
                      },
                      "end": {
                        "line": 85,
                        "column": 32
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 1726,
                        "end": 1967,
                        "loc": {
                          "start": {
                            "line": 82,
                            "column": 3
                          },
                          "end": {
                            "line": 85,
                            "column": 31
                          }
                        },
                        "value": {
                          "raw": "(\\\\[\\\\]|     # [] is a reserved word for arrays\n                              :=|         # := is a reserved word for 'define'\n                              [^\\\\s\\\\(\\\\)\\\\{\\\\}\\\\[\\\\]\\\\.,:\"]+   # Avoid some chars\n                              )",
                          "cooked": "(\\[\\]|     # [] is a reserved word for arrays\n                              :=|         # := is a reserved word for 'define'\n                              [^\\s\\(\\)\\{\\}\\[\\]\\.,:\"]+   # Avoid some chars\n                              )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 1972,
                    "end": 1976,
                    "loc": {
                      "start": {
                        "line": 86,
                        "column": 2
                      },
                      "end": {
                        "line": 86,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 1981,
          "end": 2095,
          "loc": {
            "start": {
              "line": 89,
              "column": 0
            },
            "end": {
              "line": 94,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 1987,
              "end": 2094,
              "loc": {
                "start": {
                  "line": 89,
                  "column": 6
                },
                "end": {
                  "line": 94,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 1987,
                "end": 1989,
                "loc": {
                  "start": {
                    "line": 89,
                    "column": 6
                  },
                  "end": {
                    "line": 89,
                    "column": 8
                  },
                  "identifierName": "LP"
                },
                "name": "LP"
              },
              "init": {
                "type": "NewExpression",
                "start": 1992,
                "end": 2094,
                "loc": {
                  "start": {
                    "line": 89,
                    "column": 11
                  },
                  "end": {
                    "line": 94,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 1996,
                  "end": 2006,
                  "loc": {
                    "start": {
                      "line": 89,
                      "column": 15
                    },
                    "end": {
                      "line": 89,
                      "column": 25
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 2010,
                    "end": 2014,
                    "loc": {
                      "start": {
                        "line": 90,
                        "column": 2
                      },
                      "end": {
                        "line": 90,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "LP",
                      "raw": "\"LP\""
                    },
                    "value": "LP"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 2018,
                    "end": 2084,
                    "loc": {
                      "start": {
                        "line": 91,
                        "column": 2
                      },
                      "end": {
                        "line": 92,
                        "column": 29
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 2019,
                        "end": 2083,
                        "loc": {
                          "start": {
                            "line": 91,
                            "column": 3
                          },
                          "end": {
                            "line": 92,
                            "column": 28
                          }
                        },
                        "value": {
                          "raw": "([\\\\(\\\\{\\\\[\\\\.]  # ({[ are synonyms\n                           )",
                          "cooked": "([\\(\\{\\[\\.]  # ({[ are synonyms\n                           )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 2088,
                    "end": 2092,
                    "loc": {
                      "start": {
                        "line": 93,
                        "column": 2
                      },
                      "end": {
                        "line": 93,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 2097,
          "end": 2210,
          "loc": {
            "start": {
              "line": 96,
              "column": 0
            },
            "end": {
              "line": 101,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 2103,
              "end": 2209,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 6
                },
                "end": {
                  "line": 101,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 2103,
                "end": 2105,
                "loc": {
                  "start": {
                    "line": 96,
                    "column": 6
                  },
                  "end": {
                    "line": 96,
                    "column": 8
                  },
                  "identifierName": "RP"
                },
                "name": "RP"
              },
              "init": {
                "type": "NewExpression",
                "start": 2108,
                "end": 2209,
                "loc": {
                  "start": {
                    "line": 96,
                    "column": 11
                  },
                  "end": {
                    "line": 101,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 2112,
                  "end": 2122,
                  "loc": {
                    "start": {
                      "line": 96,
                      "column": 15
                    },
                    "end": {
                      "line": 96,
                      "column": 25
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 2126,
                    "end": 2130,
                    "loc": {
                      "start": {
                        "line": 97,
                        "column": 2
                      },
                      "end": {
                        "line": 97,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "RP",
                      "raw": "\"RP\""
                    },
                    "value": "RP"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 2134,
                    "end": 2199,
                    "loc": {
                      "start": {
                        "line": 98,
                        "column": 2
                      },
                      "end": {
                        "line": 99,
                        "column": 28
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 2135,
                        "end": 2198,
                        "loc": {
                          "start": {
                            "line": 98,
                            "column": 3
                          },
                          "end": {
                            "line": 99,
                            "column": 27
                          }
                        },
                        "value": {
                          "raw": "([\\\\)\\\\}\\\\]]     # }}] are synonyms\n                          )",
                          "cooked": "([\\)\\}\\]]     # }}] are synonyms\n                          )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 2203,
                    "end": 2207,
                    "loc": {
                      "start": {
                        "line": 100,
                        "column": 2
                      },
                      "end": {
                        "line": 100,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 2212,
          "end": 2409,
          "loc": {
            "start": {
              "line": 103,
              "column": 0
            },
            "end": {
              "line": 109,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 2218,
              "end": 2408,
              "loc": {
                "start": {
                  "line": 103,
                  "column": 6
                },
                "end": {
                  "line": 109,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 2218,
                "end": 2223,
                "loc": {
                  "start": {
                    "line": 103,
                    "column": 6
                  },
                  "end": {
                    "line": 103,
                    "column": 11
                  },
                  "identifierName": "COMMA"
                },
                "name": "COMMA"
              },
              "init": {
                "type": "NewExpression",
                "start": 2226,
                "end": 2408,
                "loc": {
                  "start": {
                    "line": 103,
                    "column": 14
                  },
                  "end": {
                    "line": 109,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 2230,
                  "end": 2240,
                  "loc": {
                    "start": {
                      "line": 103,
                      "column": 18
                    },
                    "end": {
                      "line": 103,
                      "column": 28
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 2244,
                    "end": 2251,
                    "loc": {
                      "start": {
                        "line": 104,
                        "column": 2
                      },
                      "end": {
                        "line": 104,
                        "column": 9
                      }
                    },
                    "extra": {
                      "rawValue": "COMMA",
                      "raw": "\"COMMA\""
                    },
                    "value": "COMMA"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 2255,
                    "end": 2398,
                    "loc": {
                      "start": {
                        "line": 105,
                        "column": 2
                      },
                      "end": {
                        "line": 107,
                        "column": 32
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 2256,
                        "end": 2397,
                        "loc": {
                          "start": {
                            "line": 105,
                            "column": 3
                          },
                          "end": {
                            "line": 107,
                            "column": 31
                          }
                        },
                        "value": {
                          "raw": "(,|          # comma\n                               :(?!=)      # a : that isn't followed by a = (:= is word)\n                              )",
                          "cooked": "(,|          # comma\n                               :(?!=)      # a : that isn't followed by a = (:= is word)\n                              )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 2402,
                    "end": 2406,
                    "loc": {
                      "start": {
                        "line": 108,
                        "column": 2
                      },
                      "end": {
                        "line": 108,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 2590,
        "end": 2691,
        "loc": {
          "start": {
            "line": 119,
            "column": 0
          },
          "end": {
            "line": 128,
            "column": 15
          }
        },
        "declaration": {
          "type": "VariableDeclaration",
          "start": 2411,
          "end": 2588,
          "loc": {
            "start": {
              "line": 111,
              "column": 0
            },
            "end": {
              "line": 117,
              "column": 2
            }
          },
          "declarations": [
            {
              "type": "VariableDeclarator",
              "start": 2417,
              "end": 2587,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 6
                },
                "end": {
                  "line": 117,
                  "column": 1
                }
              },
              "id": {
                "type": "Identifier",
                "start": 2417,
                "end": 2422,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 6
                  },
                  "end": {
                    "line": 111,
                    "column": 11
                  },
                  "identifierName": "REGEX"
                },
                "name": "REGEX"
              },
              "init": {
                "type": "NewExpression",
                "start": 2425,
                "end": 2587,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 14
                  },
                  "end": {
                    "line": 117,
                    "column": 1
                  }
                },
                "callee": {
                  "type": "Identifier",
                  "start": 2429,
                  "end": 2439,
                  "loc": {
                    "start": {
                      "line": 111,
                      "column": 18
                    },
                    "end": {
                      "line": 111,
                      "column": 28
                    },
                    "identifierName": "TokenRegex"
                  },
                  "name": "TokenRegex"
                },
                "arguments": [
                  {
                    "type": "StringLiteral",
                    "start": 2443,
                    "end": 2450,
                    "loc": {
                      "start": {
                        "line": 112,
                        "column": 2
                      },
                      "end": {
                        "line": 112,
                        "column": 9
                      }
                    },
                    "extra": {
                      "rawValue": "REGEX",
                      "raw": "\"REGEX\""
                    },
                    "value": "REGEX"
                  },
                  {
                    "type": "TemplateLiteral",
                    "start": 2454,
                    "end": 2577,
                    "loc": {
                      "start": {
                        "line": 113,
                        "column": 2
                      },
                      "end": {
                        "line": 115,
                        "column": 32
                      }
                    },
                    "expressions": [],
                    "quasis": [
                      {
                        "type": "TemplateElement",
                        "start": 2455,
                        "end": 2576,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 3
                          },
                          "end": {
                            "line": 115,
                            "column": 31
                          }
                        },
                        "value": {
                          "raw": "(r/[^]*?/       # body of the regex\n                               [nsxAgimuy]*   # flags\n                              )",
                          "cooked": "(r/[^]*?/       # body of the regex\n                               [nsxAgimuy]*   # flags\n                              )"
                        },
                        "tail": true
                      }
                    ]
                  },
                  {
                    "type": "StringLiteral",
                    "start": 2581,
                    "end": 2585,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 2
                      },
                      "end": {
                        "line": 116,
                        "column": 6
                      }
                    },
                    "extra": {
                      "rawValue": "yx",
                      "raw": "\"yx\""
                    },
                    "value": "yx"
                  }
                ]
              }
            }
          ],
          "kind": "const",
          "leadingComments": [],
          "trailingComments": []
        },
        "specifiers": null,
        "source": null
      }
    ],
    "directives": []
  },
  "comments": [],
  "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": "xRegExp",
      "start": 7,
      "end": 14,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 15,
      "end": 19,
      "loc": {
        "start": {
          "line": 1,
          "column": 15
        },
        "end": {
          "line": 1,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "xregexp",
      "start": 20,
      "end": 29,
      "loc": {
        "start": {
          "line": 1,
          "column": 20
        },
        "end": {
          "line": 1,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 29,
      "end": 30,
      "loc": {
        "start": {
          "line": 1,
          "column": 29
        },
        "end": {
          "line": 1,
          "column": 30
        }
      }
    },
    {
      "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": 32,
      "end": 37,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 38,
      "end": 48,
      "loc": {
        "start": {
          "line": 3,
          "column": 6
        },
        "end": {
          "line": 3,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 49,
      "end": 50,
      "loc": {
        "start": {
          "line": 3,
          "column": 17
        },
        "end": {
          "line": 3,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 53,
      "end": 64,
      "loc": {
        "start": {
          "line": 4,
          "column": 2
        },
        "end": {
          "line": 4,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 64,
      "end": 65,
      "loc": {
        "start": {
          "line": 4,
          "column": 13
        },
        "end": {
          "line": 4,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 65,
      "end": 69,
      "loc": {
        "start": {
          "line": 4,
          "column": 14
        },
        "end": {
          "line": 4,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 69,
      "end": 70,
      "loc": {
        "start": {
          "line": 4,
          "column": 18
        },
        "end": {
          "line": 4,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "regexLiteral",
      "start": 71,
      "end": 83,
      "loc": {
        "start": {
          "line": 4,
          "column": 20
        },
        "end": {
          "line": 4,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 83,
      "end": 84,
      "loc": {
        "start": {
          "line": 4,
          "column": 32
        },
        "end": {
          "line": 4,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 85,
      "end": 90,
      "loc": {
        "start": {
          "line": 4,
          "column": 34
        },
        "end": {
          "line": 4,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 90,
      "end": 91,
      "loc": {
        "start": {
          "line": 4,
          "column": 39
        },
        "end": {
          "line": 4,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 92,
      "end": 93,
      "loc": {
        "start": {
          "line": 4,
          "column": 41
        },
        "end": {
          "line": 4,
          "column": 42
        }
      }
    },
    {
      "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": 98,
      "end": 102,
      "loc": {
        "start": {
          "line": 5,
          "column": 4
        },
        "end": {
          "line": 5,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 102,
      "end": 103,
      "loc": {
        "start": {
          "line": 5,
          "column": 8
        },
        "end": {
          "line": 5,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 103,
      "end": 107,
      "loc": {
        "start": {
          "line": 5,
          "column": 9
        },
        "end": {
          "line": 5,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 108,
      "end": 109,
      "loc": {
        "start": {
          "line": 5,
          "column": 14
        },
        "end": {
          "line": 5,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 110,
      "end": 114,
      "loc": {
        "start": {
          "line": 5,
          "column": 16
        },
        "end": {
          "line": 5,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 114,
      "end": 115,
      "loc": {
        "start": {
          "line": 5,
          "column": 20
        },
        "end": {
          "line": 5,
          "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": 120,
      "end": 124,
      "loc": {
        "start": {
          "line": 6,
          "column": 4
        },
        "end": {
          "line": 6,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 124,
      "end": 125,
      "loc": {
        "start": {
          "line": 6,
          "column": 8
        },
        "end": {
          "line": 6,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expression",
      "start": 125,
      "end": 135,
      "loc": {
        "start": {
          "line": 6,
          "column": 9
        },
        "end": {
          "line": 6,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 136,
      "end": 137,
      "loc": {
        "start": {
          "line": 6,
          "column": 20
        },
        "end": {
          "line": 6,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "xRegExp",
      "start": 138,
      "end": 145,
      "loc": {
        "start": {
          "line": 6,
          "column": 22
        },
        "end": {
          "line": 6,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 145,
      "end": 146,
      "loc": {
        "start": {
          "line": 6,
          "column": 29
        },
        "end": {
          "line": 6,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "regexLiteral",
      "start": 146,
      "end": 158,
      "loc": {
        "start": {
          "line": 6,
          "column": 30
        },
        "end": {
          "line": 6,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 158,
      "end": 159,
      "loc": {
        "start": {
          "line": 6,
          "column": 42
        },
        "end": {
          "line": 6,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "flags",
      "start": 160,
      "end": 165,
      "loc": {
        "start": {
          "line": 6,
          "column": 44
        },
        "end": {
          "line": 6,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 165,
      "end": 166,
      "loc": {
        "start": {
          "line": 6,
          "column": 49
        },
        "end": {
          "line": 6,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 166,
      "end": 167,
      "loc": {
        "start": {
          "line": 6,
          "column": 50
        },
        "end": {
          "line": 6,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 170,
      "end": 171,
      "loc": {
        "start": {
          "line": 7,
          "column": 2
        },
        "end": {
          "line": 7,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 175,
      "end": 178,
      "loc": {
        "start": {
          "line": 9,
          "column": 2
        },
        "end": {
          "line": 9,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 179,
      "end": 188,
      "loc": {
        "start": {
          "line": 9,
          "column": 6
        },
        "end": {
          "line": 9,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 188,
      "end": 189,
      "loc": {
        "start": {
          "line": 9,
          "column": 15
        },
        "end": {
          "line": 9,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 189,
      "end": 190,
      "loc": {
        "start": {
          "line": 9,
          "column": 16
        },
        "end": {
          "line": 9,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 191,
      "end": 192,
      "loc": {
        "start": {
          "line": 9,
          "column": 18
        },
        "end": {
          "line": 9,
          "column": 19
        }
      }
    },
    {
      "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": 197,
      "end": 203,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "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": 204,
      "end": 208,
      "loc": {
        "start": {
          "line": 10,
          "column": 11
        },
        "end": {
          "line": 10,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 208,
      "end": 209,
      "loc": {
        "start": {
          "line": 10,
          "column": 15
        },
        "end": {
          "line": 10,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expression",
      "start": 209,
      "end": 219,
      "loc": {
        "start": {
          "line": 10,
          "column": 16
        },
        "end": {
          "line": 10,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 219,
      "end": 220,
      "loc": {
        "start": {
          "line": 10,
          "column": 26
        },
        "end": {
          "line": 10,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 220,
      "end": 229,
      "loc": {
        "start": {
          "line": 10,
          "column": 27
        },
        "end": {
          "line": 10,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 229,
      "end": 230,
      "loc": {
        "start": {
          "line": 10,
          "column": 36
        },
        "end": {
          "line": 10,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 233,
      "end": 234,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 11,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 238,
      "end": 241,
      "loc": {
        "start": {
          "line": 13,
          "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": "lastIndex",
      "start": 242,
      "end": 251,
      "loc": {
        "start": {
          "line": 13,
          "column": 6
        },
        "end": {
          "line": 13,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 251,
      "end": 252,
      "loc": {
        "start": {
          "line": 13,
          "column": 15
        },
        "end": {
          "line": 13,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "index",
      "start": 252,
      "end": 257,
      "loc": {
        "start": {
          "line": 13,
          "column": 16
        },
        "end": {
          "line": 13,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 257,
      "end": 258,
      "loc": {
        "start": {
          "line": 13,
          "column": 21
        },
        "end": {
          "line": 13,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 259,
      "end": 260,
      "loc": {
        "start": {
          "line": 13,
          "column": 23
        },
        "end": {
          "line": 13,
          "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": 265,
      "end": 269,
      "loc": {
        "start": {
          "line": 14,
          "column": 4
        },
        "end": {
          "line": 14,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 269,
      "end": 270,
      "loc": {
        "start": {
          "line": 14,
          "column": 8
        },
        "end": {
          "line": 14,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expression",
      "start": 270,
      "end": 280,
      "loc": {
        "start": {
          "line": 14,
          "column": 9
        },
        "end": {
          "line": 14,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 280,
      "end": 281,
      "loc": {
        "start": {
          "line": 14,
          "column": 19
        },
        "end": {
          "line": 14,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 281,
      "end": 290,
      "loc": {
        "start": {
          "line": 14,
          "column": 20
        },
        "end": {
          "line": 14,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 291,
      "end": 292,
      "loc": {
        "start": {
          "line": 14,
          "column": 30
        },
        "end": {
          "line": 14,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "index",
      "start": 293,
      "end": 298,
      "loc": {
        "start": {
          "line": 14,
          "column": 32
        },
        "end": {
          "line": 14,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 298,
      "end": 299,
      "loc": {
        "start": {
          "line": 14,
          "column": 37
        },
        "end": {
          "line": 14,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 302,
      "end": 303,
      "loc": {
        "start": {
          "line": 15,
          "column": 2
        },
        "end": {
          "line": 15,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "reset",
      "start": 307,
      "end": 312,
      "loc": {
        "start": {
          "line": 17,
          "column": 2
        },
        "end": {
          "line": 17,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 312,
      "end": 313,
      "loc": {
        "start": {
          "line": 17,
          "column": 7
        },
        "end": {
          "line": 17,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 313,
      "end": 314,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 315,
      "end": 316,
      "loc": {
        "start": {
          "line": 17,
          "column": 10
        },
        "end": {
          "line": 17,
          "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": 321,
      "end": 325,
      "loc": {
        "start": {
          "line": 18,
          "column": 4
        },
        "end": {
          "line": 18,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 325,
      "end": 326,
      "loc": {
        "start": {
          "line": 18,
          "column": 8
        },
        "end": {
          "line": 18,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 326,
      "end": 335,
      "loc": {
        "start": {
          "line": 18,
          "column": 9
        },
        "end": {
          "line": 18,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 336,
      "end": 337,
      "loc": {
        "start": {
          "line": 18,
          "column": 19
        },
        "end": {
          "line": 18,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 338,
      "end": 339,
      "loc": {
        "start": {
          "line": 18,
          "column": 21
        },
        "end": {
          "line": 18,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 339,
      "end": 340,
      "loc": {
        "start": {
          "line": 18,
          "column": 22
        },
        "end": {
          "line": 18,
          "column": 23
        }
      }
    },
    {
      "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": 346,
      "end": 352,
      "loc": {
        "start": {
          "line": 20,
          "column": 4
        },
        "end": {
          "line": 20,
          "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": 353,
      "end": 357,
      "loc": {
        "start": {
          "line": 20,
          "column": 11
        },
        "end": {
          "line": 20,
          "column": 15
        }
      }
    },
    {
      "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": 20,
          "column": 15
        },
        "end": {
          "line": 20,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 361,
      "end": 362,
      "loc": {
        "start": {
          "line": 21,
          "column": 2
        },
        "end": {
          "line": 21,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exec",
      "start": 366,
      "end": 370,
      "loc": {
        "start": {
          "line": 23,
          "column": 2
        },
        "end": {
          "line": 23,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 370,
      "end": 371,
      "loc": {
        "start": {
          "line": 23,
          "column": 6
        },
        "end": {
          "line": 23,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 371,
      "end": 378,
      "loc": {
        "start": {
          "line": 23,
          "column": 7
        },
        "end": {
          "line": 23,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 378,
      "end": 379,
      "loc": {
        "start": {
          "line": 23,
          "column": 14
        },
        "end": {
          "line": 23,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 380,
      "end": 381,
      "loc": {
        "start": {
          "line": 23,
          "column": 16
        },
        "end": {
          "line": 23,
          "column": 17
        }
      }
    },
    {
      "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": 386,
      "end": 389,
      "loc": {
        "start": {
          "line": 24,
          "column": 4
        },
        "end": {
          "line": 24,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "match",
      "start": 390,
      "end": 395,
      "loc": {
        "start": {
          "line": 24,
          "column": 8
        },
        "end": {
          "line": 24,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 396,
      "end": 397,
      "loc": {
        "start": {
          "line": 24,
          "column": 14
        },
        "end": {
          "line": 24,
          "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": 398,
      "end": 402,
      "loc": {
        "start": {
          "line": 24,
          "column": 16
        },
        "end": {
          "line": 24,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 402,
      "end": 403,
      "loc": {
        "start": {
          "line": 24,
          "column": 20
        },
        "end": {
          "line": 24,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "expression",
      "start": 403,
      "end": 413,
      "loc": {
        "start": {
          "line": 24,
          "column": 21
        },
        "end": {
          "line": 24,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 413,
      "end": 414,
      "loc": {
        "start": {
          "line": 24,
          "column": 31
        },
        "end": {
          "line": 24,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exec",
      "start": 414,
      "end": 418,
      "loc": {
        "start": {
          "line": 24,
          "column": 32
        },
        "end": {
          "line": 24,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 418,
      "end": 419,
      "loc": {
        "start": {
          "line": 24,
          "column": 36
        },
        "end": {
          "line": 24,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 419,
      "end": 426,
      "loc": {
        "start": {
          "line": 24,
          "column": 37
        },
        "end": {
          "line": 24,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 426,
      "end": 427,
      "loc": {
        "start": {
          "line": 24,
          "column": 44
        },
        "end": {
          "line": 24,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 427,
      "end": 428,
      "loc": {
        "start": {
          "line": 24,
          "column": 45
        },
        "end": {
          "line": 24,
          "column": 46
        }
      }
    },
    {
      "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": 434,
      "end": 436,
      "loc": {
        "start": {
          "line": 26,
          "column": 4
        },
        "end": {
          "line": 26,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 437,
      "end": 438,
      "loc": {
        "start": {
          "line": 26,
          "column": 7
        },
        "end": {
          "line": 26,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "match",
      "start": 438,
      "end": 443,
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 26,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 444,
      "end": 447,
      "loc": {
        "start": {
          "line": 26,
          "column": 14
        },
        "end": {
          "line": 26,
          "column": 17
        }
      }
    },
    {
      "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": 448,
      "end": 452,
      "loc": {
        "start": {
          "line": 26,
          "column": 18
        },
        "end": {
          "line": 26,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 452,
      "end": 453,
      "loc": {
        "start": {
          "line": 26,
          "column": 22
        },
        "end": {
          "line": 26,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 454,
      "end": 455,
      "loc": {
        "start": {
          "line": 26,
          "column": 24
        },
        "end": {
          "line": 26,
          "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": 462,
      "end": 468,
      "loc": {
        "start": {
          "line": 27,
          "column": 6
        },
        "end": {
          "line": 27,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 469,
      "end": 470,
      "loc": {
        "start": {
          "line": 27,
          "column": 13
        },
        "end": {
          "line": 27,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "type",
      "start": 479,
      "end": 483,
      "loc": {
        "start": {
          "line": 28,
          "column": 8
        },
        "end": {
          "line": 28,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 483,
      "end": 484,
      "loc": {
        "start": {
          "line": 28,
          "column": 12
        },
        "end": {
          "line": 28,
          "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": 485,
      "end": 489,
      "loc": {
        "start": {
          "line": 28,
          "column": 14
        },
        "end": {
          "line": 28,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 489,
      "end": 490,
      "loc": {
        "start": {
          "line": 28,
          "column": 18
        },
        "end": {
          "line": 28,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "name",
      "start": 490,
      "end": 494,
      "loc": {
        "start": {
          "line": 28,
          "column": 19
        },
        "end": {
          "line": 28,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 494,
      "end": 495,
      "loc": {
        "start": {
          "line": 28,
          "column": 23
        },
        "end": {
          "line": 28,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 504,
      "end": 509,
      "loc": {
        "start": {
          "line": 29,
          "column": 8
        },
        "end": {
          "line": 29,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 509,
      "end": 510,
      "loc": {
        "start": {
          "line": 29,
          "column": 13
        },
        "end": {
          "line": 29,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "match",
      "start": 511,
      "end": 516,
      "loc": {
        "start": {
          "line": 29,
          "column": 15
        },
        "end": {
          "line": 29,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 516,
      "end": 517,
      "loc": {
        "start": {
          "line": 29,
          "column": 20
        },
        "end": {
          "line": 29,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 517,
      "end": 518,
      "loc": {
        "start": {
          "line": 29,
          "column": 21
        },
        "end": {
          "line": 29,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 518,
      "end": 519,
      "loc": {
        "start": {
          "line": 29,
          "column": 22
        },
        "end": {
          "line": 29,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 519,
      "end": 520,
      "loc": {
        "start": {
          "line": 29,
          "column": 23
        },
        "end": {
          "line": 29,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 529,
      "end": 534,
      "loc": {
        "start": {
          "line": 30,
          "column": 8
        },
        "end": {
          "line": 30,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 534,
      "end": 535,
      "loc": {
        "start": {
          "line": 30,
          "column": 13
        },
        "end": {
          "line": 30,
          "column": 14
        }
      }
    },
    {
      "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": 536,
      "end": 540,
      "loc": {
        "start": {
          "line": 30,
          "column": 15
        },
        "end": {
          "line": 30,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 540,
      "end": 541,
      "loc": {
        "start": {
          "line": 30,
          "column": 19
        },
        "end": {
          "line": 30,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 541,
      "end": 550,
      "loc": {
        "start": {
          "line": 30,
          "column": 20
        },
        "end": {
          "line": 30,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "-",
      "start": 551,
      "end": 552,
      "loc": {
        "start": {
          "line": 30,
          "column": 30
        },
        "end": {
          "line": 30,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "match",
      "start": 553,
      "end": 558,
      "loc": {
        "start": {
          "line": 30,
          "column": 32
        },
        "end": {
          "line": 30,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 558,
      "end": 559,
      "loc": {
        "start": {
          "line": 30,
          "column": 37
        },
        "end": {
          "line": 30,
          "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": 559,
      "end": 560,
      "loc": {
        "start": {
          "line": 30,
          "column": 38
        },
        "end": {
          "line": 30,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 560,
      "end": 561,
      "loc": {
        "start": {
          "line": 30,
          "column": 39
        },
        "end": {
          "line": 30,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 561,
      "end": 562,
      "loc": {
        "start": {
          "line": 30,
          "column": 40
        },
        "end": {
          "line": 30,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 562,
      "end": 568,
      "loc": {
        "start": {
          "line": 30,
          "column": 41
        },
        "end": {
          "line": 30,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 569,
      "end": 570,
      "loc": {
        "start": {
          "line": 30,
          "column": 48
        },
        "end": {
          "line": 30,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 571,
      "end": 572,
      "loc": {
        "start": {
          "line": 30,
          "column": 50
        },
        "end": {
          "line": 30,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 572,
      "end": 573,
      "loc": {
        "start": {
          "line": 30,
          "column": 51
        },
        "end": {
          "line": 30,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "end",
      "start": 582,
      "end": 585,
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "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": 11
        },
        "end": {
          "line": 31,
          "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": 587,
      "end": 591,
      "loc": {
        "start": {
          "line": 31,
          "column": 13
        },
        "end": {
          "line": 31,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 591,
      "end": 592,
      "loc": {
        "start": {
          "line": 31,
          "column": 17
        },
        "end": {
          "line": 31,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 592,
      "end": 601,
      "loc": {
        "start": {
          "line": 31,
          "column": 18
        },
        "end": {
          "line": 31,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 608,
      "end": 609,
      "loc": {
        "start": {
          "line": 32,
          "column": 6
        },
        "end": {
          "line": 32,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 609,
      "end": 610,
      "loc": {
        "start": {
          "line": 32,
          "column": 7
        },
        "end": {
          "line": 32,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 615,
      "end": 616,
      "loc": {
        "start": {
          "line": 33,
          "column": 4
        },
        "end": {
          "line": 33,
          "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": 622,
      "end": 628,
      "loc": {
        "start": {
          "line": 35,
          "column": 4
        },
        "end": {
          "line": 35,
          "column": 10
        }
      }
    },
    {
      "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": 629,
      "end": 633,
      "loc": {
        "start": {
          "line": 35,
          "column": 11
        },
        "end": {
          "line": 35,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 633,
      "end": 634,
      "loc": {
        "start": {
          "line": 35,
          "column": 15
        },
        "end": {
          "line": 35,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 637,
      "end": 638,
      "loc": {
        "start": {
          "line": 36,
          "column": 2
        },
        "end": {
          "line": 36,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "test",
      "start": 642,
      "end": 646,
      "loc": {
        "start": {
          "line": 38,
          "column": 2
        },
        "end": {
          "line": 38,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 646,
      "end": 647,
      "loc": {
        "start": {
          "line": 38,
          "column": 6
        },
        "end": {
          "line": 38,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 647,
      "end": 654,
      "loc": {
        "start": {
          "line": 38,
          "column": 7
        },
        "end": {
          "line": 38,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 654,
      "end": 655,
      "loc": {
        "start": {
          "line": 38,
          "column": 14
        },
        "end": {
          "line": 38,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 656,
      "end": 657,
      "loc": {
        "start": {
          "line": 38,
          "column": 16
        },
        "end": {
          "line": 38,
          "column": 17
        }
      }
    },
    {
      "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": 662,
      "end": 665,
      "loc": {
        "start": {
          "line": 39,
          "column": 4
        },
        "end": {
          "line": 39,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "savedIndex",
      "start": 666,
      "end": 676,
      "loc": {
        "start": {
          "line": 39,
          "column": 8
        },
        "end": {
          "line": 39,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 677,
      "end": 678,
      "loc": {
        "start": {
          "line": 39,
          "column": 19
        },
        "end": {
          "line": 39,
          "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": 679,
      "end": 683,
      "loc": {
        "start": {
          "line": 39,
          "column": 21
        },
        "end": {
          "line": 39,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 683,
      "end": 684,
      "loc": {
        "start": {
          "line": 39,
          "column": 25
        },
        "end": {
          "line": 39,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 684,
      "end": 693,
      "loc": {
        "start": {
          "line": 39,
          "column": 26
        },
        "end": {
          "line": 39,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 693,
      "end": 694,
      "loc": {
        "start": {
          "line": 39,
          "column": 35
        },
        "end": {
          "line": 39,
          "column": 36
        }
      }
    },
    {
      "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": 699,
      "end": 704,
      "loc": {
        "start": {
          "line": 40,
          "column": 4
        },
        "end": {
          "line": 40,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "result",
      "start": 705,
      "end": 711,
      "loc": {
        "start": {
          "line": 40,
          "column": 10
        },
        "end": {
          "line": 40,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 712,
      "end": 713,
      "loc": {
        "start": {
          "line": 40,
          "column": 17
        },
        "end": {
          "line": 40,
          "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": 714,
      "end": 718,
      "loc": {
        "start": {
          "line": 40,
          "column": 19
        },
        "end": {
          "line": 40,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 718,
      "end": 719,
      "loc": {
        "start": {
          "line": 40,
          "column": 23
        },
        "end": {
          "line": 40,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "exec",
      "start": 719,
      "end": 723,
      "loc": {
        "start": {
          "line": 40,
          "column": 24
        },
        "end": {
          "line": 40,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 723,
      "end": 724,
      "loc": {
        "start": {
          "line": 40,
          "column": 28
        },
        "end": {
          "line": 40,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "program",
      "start": 724,
      "end": 731,
      "loc": {
        "start": {
          "line": 40,
          "column": 29
        },
        "end": {
          "line": 40,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 731,
      "end": 732,
      "loc": {
        "start": {
          "line": 40,
          "column": 36
        },
        "end": {
          "line": 40,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 732,
      "end": 733,
      "loc": {
        "start": {
          "line": 40,
          "column": 37
        },
        "end": {
          "line": 40,
          "column": 38
        }
      }
    },
    {
      "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": 738,
      "end": 742,
      "loc": {
        "start": {
          "line": 41,
          "column": 4
        },
        "end": {
          "line": 41,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 742,
      "end": 743,
      "loc": {
        "start": {
          "line": 41,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lastIndex",
      "start": 743,
      "end": 752,
      "loc": {
        "start": {
          "line": 41,
          "column": 9
        },
        "end": {
          "line": 41,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 753,
      "end": 754,
      "loc": {
        "start": {
          "line": 41,
          "column": 19
        },
        "end": {
          "line": 41,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "savedIndex",
      "start": 755,
      "end": 765,
      "loc": {
        "start": {
          "line": 41,
          "column": 21
        },
        "end": {
          "line": 41,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 765,
      "end": 766,
      "loc": {
        "start": {
          "line": 41,
          "column": 31
        },
        "end": {
          "line": 41,
          "column": 32
        }
      }
    },
    {
      "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": 772,
      "end": 778,
      "loc": {
        "start": {
          "line": 43,
          "column": 4
        },
        "end": {
          "line": 43,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "result",
      "start": 779,
      "end": 785,
      "loc": {
        "start": {
          "line": 43,
          "column": 11
        },
        "end": {
          "line": 43,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 786,
      "end": 789,
      "loc": {
        "start": {
          "line": 43,
          "column": 18
        },
        "end": {
          "line": 43,
          "column": 21
        }
      }
    },
    {
      "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": 790,
      "end": 794,
      "loc": {
        "start": {
          "line": 43,
          "column": 22
        },
        "end": {
          "line": 43,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 794,
      "end": 795,
      "loc": {
        "start": {
          "line": 43,
          "column": 26
        },
        "end": {
          "line": 43,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 798,
      "end": 799,
      "loc": {
        "start": {
          "line": 44,
          "column": 2
        },
        "end": {
          "line": 44,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 800,
      "end": 801,
      "loc": {
        "start": {
          "line": 45,
          "column": 0
        },
        "end": {
          "line": 45,
          "column": 1
        }
      }
    },
    {
      "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": 803,
      "end": 808,
      "loc": {
        "start": {
          "line": 47,
          "column": 0
        },
        "end": {
          "line": 47,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "WHITES",
      "start": 809,
      "end": 815,
      "loc": {
        "start": {
          "line": 47,
          "column": 6
        },
        "end": {
          "line": 47,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 816,
      "end": 817,
      "loc": {
        "start": {
          "line": 47,
          "column": 13
        },
        "end": {
          "line": 47,
          "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": 818,
      "end": 821,
      "loc": {
        "start": {
          "line": 47,
          "column": 15
        },
        "end": {
          "line": 47,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 822,
      "end": 832,
      "loc": {
        "start": {
          "line": 47,
          "column": 19
        },
        "end": {
          "line": 47,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 832,
      "end": 833,
      "loc": {
        "start": {
          "line": 47,
          "column": 29
        },
        "end": {
          "line": 47,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "WHITE",
      "start": 836,
      "end": 843,
      "loc": {
        "start": {
          "line": 48,
          "column": 2
        },
        "end": {
          "line": 48,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 843,
      "end": 844,
      "loc": {
        "start": {
          "line": 48,
          "column": 9
        },
        "end": {
          "line": 48,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 847,
      "end": 848,
      "loc": {
        "start": {
          "line": 49,
          "column": 2
        },
        "end": {
          "line": 49,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "(\\s+|       # Spaces\n                                [#;].*|     # Single-line comments\n                                \\/\\*[^]*?\\*\\/  # Multiline comments\n                               )",
      "start": 848,
      "end": 1041,
      "loc": {
        "start": {
          "line": 49,
          "column": 3
        },
        "end": {
          "line": 52,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1041,
      "end": 1042,
      "loc": {
        "start": {
          "line": 52,
          "column": 32
        },
        "end": {
          "line": 52,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1042,
      "end": 1043,
      "loc": {
        "start": {
          "line": 52,
          "column": 33
        },
        "end": {
          "line": 52,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1046,
      "end": 1047,
      "loc": {
        "start": {
          "line": 53,
          "column": 2
        },
        "end": {
          "line": 53,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 1047,
      "end": 1049,
      "loc": {
        "start": {
          "line": 53,
          "column": 3
        },
        "end": {
          "line": 53,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1049,
      "end": 1050,
      "loc": {
        "start": {
          "line": 53,
          "column": 5
        },
        "end": {
          "line": 53,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1051,
      "end": 1052,
      "loc": {
        "start": {
          "line": 54,
          "column": 0
        },
        "end": {
          "line": 54,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1052,
      "end": 1053,
      "loc": {
        "start": {
          "line": 54,
          "column": 1
        },
        "end": {
          "line": 54,
          "column": 2
        }
      }
    },
    {
      "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": 1055,
      "end": 1060,
      "loc": {
        "start": {
          "line": 56,
          "column": 0
        },
        "end": {
          "line": 56,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "NEWLINE",
      "start": 1061,
      "end": 1068,
      "loc": {
        "start": {
          "line": 56,
          "column": 6
        },
        "end": {
          "line": 56,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1069,
      "end": 1070,
      "loc": {
        "start": {
          "line": 56,
          "column": 14
        },
        "end": {
          "line": 56,
          "column": 15
        }
      }
    },
    {
      "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": 1071,
      "end": 1074,
      "loc": {
        "start": {
          "line": 56,
          "column": 16
        },
        "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": "TokenRegex",
      "start": 1075,
      "end": 1085,
      "loc": {
        "start": {
          "line": 56,
          "column": 20
        },
        "end": {
          "line": 56,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1085,
      "end": 1086,
      "loc": {
        "start": {
          "line": 56,
          "column": 30
        },
        "end": {
          "line": 56,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "NEWLINE",
      "start": 1089,
      "end": 1098,
      "loc": {
        "start": {
          "line": 57,
          "column": 2
        },
        "end": {
          "line": 57,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1098,
      "end": 1099,
      "loc": {
        "start": {
          "line": 57,
          "column": 11
        },
        "end": {
          "line": 57,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1102,
      "end": 1103,
      "loc": {
        "start": {
          "line": 58,
          "column": 2
        },
        "end": {
          "line": 58,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "(\\r?        # Carriage return (for compatibility)\n                                 \\n         # Newline char\n                                )",
      "start": 1103,
      "end": 1247,
      "loc": {
        "start": {
          "line": 58,
          "column": 3
        },
        "end": {
          "line": 60,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1247,
      "end": 1248,
      "loc": {
        "start": {
          "line": 60,
          "column": 33
        },
        "end": {
          "line": 60,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1249,
      "end": 1250,
      "loc": {
        "start": {
          "line": 61,
          "column": 0
        },
        "end": {
          "line": 61,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1250,
      "end": 1251,
      "loc": {
        "start": {
          "line": 61,
          "column": 1
        },
        "end": {
          "line": 61,
          "column": 2
        }
      }
    },
    {
      "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": 1253,
      "end": 1258,
      "loc": {
        "start": {
          "line": 63,
          "column": 0
        },
        "end": {
          "line": 63,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "NUMBER",
      "start": 1259,
      "end": 1265,
      "loc": {
        "start": {
          "line": 63,
          "column": 6
        },
        "end": {
          "line": 63,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1266,
      "end": 1267,
      "loc": {
        "start": {
          "line": 63,
          "column": 13
        },
        "end": {
          "line": 63,
          "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": 1268,
      "end": 1271,
      "loc": {
        "start": {
          "line": 63,
          "column": 15
        },
        "end": {
          "line": 63,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 1272,
      "end": 1282,
      "loc": {
        "start": {
          "line": 63,
          "column": 19
        },
        "end": {
          "line": 63,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1282,
      "end": 1283,
      "loc": {
        "start": {
          "line": 63,
          "column": 29
        },
        "end": {
          "line": 63,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "NUMBER",
      "start": 1286,
      "end": 1294,
      "loc": {
        "start": {
          "line": 64,
          "column": 2
        },
        "end": {
          "line": 64,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1294,
      "end": 1295,
      "loc": {
        "start": {
          "line": 64,
          "column": 10
        },
        "end": {
          "line": 64,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1298,
      "end": 1299,
      "loc": {
        "start": {
          "line": 65,
          "column": 2
        },
        "end": {
          "line": 65,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "([-+]?       # Sign\n                                \\d*          # Digits\n                                \\.?\\d+      # Decimals\n                                (?:[eE][-+]?\\d+)? # Exp notatio\n                               )",
      "start": 1299,
      "end": 1528,
      "loc": {
        "start": {
          "line": 65,
          "column": 3
        },
        "end": {
          "line": 69,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1528,
      "end": 1529,
      "loc": {
        "start": {
          "line": 69,
          "column": 32
        },
        "end": {
          "line": 69,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1529,
      "end": 1530,
      "loc": {
        "start": {
          "line": 69,
          "column": 33
        },
        "end": {
          "line": 69,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 1533,
      "end": 1537,
      "loc": {
        "start": {
          "line": 70,
          "column": 2
        },
        "end": {
          "line": 70,
          "column": 6
        }
      }
    },
    {
      "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": 0
        },
        "end": {
          "line": 71,
          "column": 1
        }
      }
    },
    {
      "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": 1
        },
        "end": {
          "line": 71,
          "column": 2
        }
      }
    },
    {
      "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": 1542,
      "end": 1547,
      "loc": {
        "start": {
          "line": 73,
          "column": 0
        },
        "end": {
          "line": 73,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "STRING",
      "start": 1548,
      "end": 1554,
      "loc": {
        "start": {
          "line": 73,
          "column": 6
        },
        "end": {
          "line": 73,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1555,
      "end": 1556,
      "loc": {
        "start": {
          "line": 73,
          "column": 13
        },
        "end": {
          "line": 73,
          "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": 1557,
      "end": 1560,
      "loc": {
        "start": {
          "line": 73,
          "column": 15
        },
        "end": {
          "line": 73,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 1561,
      "end": 1571,
      "loc": {
        "start": {
          "line": 73,
          "column": 19
        },
        "end": {
          "line": 73,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1571,
      "end": 1572,
      "loc": {
        "start": {
          "line": 73,
          "column": 29
        },
        "end": {
          "line": 73,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "STRING",
      "start": 1575,
      "end": 1583,
      "loc": {
        "start": {
          "line": 74,
          "column": 2
        },
        "end": {
          "line": 74,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1583,
      "end": 1584,
      "loc": {
        "start": {
          "line": 74,
          "column": 10
        },
        "end": {
          "line": 74,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1587,
      "end": 1588,
      "loc": {
        "start": {
          "line": 75,
          "column": 2
        },
        "end": {
          "line": 75,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "\"([^\"\\\\]*  # Any character except 'escaped \"'\n                                )\"",
      "start": 1588,
      "end": 1670,
      "loc": {
        "start": {
          "line": 75,
          "column": 3
        },
        "end": {
          "line": 76,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1670,
      "end": 1671,
      "loc": {
        "start": {
          "line": 76,
          "column": 34
        },
        "end": {
          "line": 76,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1671,
      "end": 1672,
      "loc": {
        "start": {
          "line": 76,
          "column": 35
        },
        "end": {
          "line": 76,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 1675,
      "end": 1679,
      "loc": {
        "start": {
          "line": 77,
          "column": 2
        },
        "end": {
          "line": 77,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1680,
      "end": 1681,
      "loc": {
        "start": {
          "line": 78,
          "column": 0
        },
        "end": {
          "line": 78,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1681,
      "end": 1682,
      "loc": {
        "start": {
          "line": 78,
          "column": 1
        },
        "end": {
          "line": 78,
          "column": 2
        }
      }
    },
    {
      "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": 1684,
      "end": 1689,
      "loc": {
        "start": {
          "line": 80,
          "column": 0
        },
        "end": {
          "line": 80,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "WORD",
      "start": 1690,
      "end": 1694,
      "loc": {
        "start": {
          "line": 80,
          "column": 6
        },
        "end": {
          "line": 80,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1695,
      "end": 1696,
      "loc": {
        "start": {
          "line": 80,
          "column": 11
        },
        "end": {
          "line": 80,
          "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": 1697,
      "end": 1700,
      "loc": {
        "start": {
          "line": 80,
          "column": 13
        },
        "end": {
          "line": 80,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 1701,
      "end": 1711,
      "loc": {
        "start": {
          "line": 80,
          "column": 17
        },
        "end": {
          "line": 80,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1711,
      "end": 1712,
      "loc": {
        "start": {
          "line": 80,
          "column": 27
        },
        "end": {
          "line": 80,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "WORD",
      "start": 1715,
      "end": 1721,
      "loc": {
        "start": {
          "line": 81,
          "column": 2
        },
        "end": {
          "line": 81,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1721,
      "end": 1722,
      "loc": {
        "start": {
          "line": 81,
          "column": 8
        },
        "end": {
          "line": 81,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1725,
      "end": 1726,
      "loc": {
        "start": {
          "line": 82,
          "column": 2
        },
        "end": {
          "line": 82,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "(\\[\\]|     # [] is a reserved word for arrays\n                              :=|         # := is a reserved word for 'define'\n                              [^\\s\\(\\)\\{\\}\\[\\]\\.,:\"]+   # Avoid some chars\n                              )",
      "start": 1726,
      "end": 1967,
      "loc": {
        "start": {
          "line": 82,
          "column": 3
        },
        "end": {
          "line": 85,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1967,
      "end": 1968,
      "loc": {
        "start": {
          "line": 85,
          "column": 31
        },
        "end": {
          "line": 85,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1968,
      "end": 1969,
      "loc": {
        "start": {
          "line": 85,
          "column": 32
        },
        "end": {
          "line": 85,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 1972,
      "end": 1976,
      "loc": {
        "start": {
          "line": 86,
          "column": 2
        },
        "end": {
          "line": 86,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1977,
      "end": 1978,
      "loc": {
        "start": {
          "line": 87,
          "column": 0
        },
        "end": {
          "line": 87,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1978,
      "end": 1979,
      "loc": {
        "start": {
          "line": 87,
          "column": 1
        },
        "end": {
          "line": 87,
          "column": 2
        }
      }
    },
    {
      "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": 1981,
      "end": 1986,
      "loc": {
        "start": {
          "line": 89,
          "column": 0
        },
        "end": {
          "line": 89,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "LP",
      "start": 1987,
      "end": 1989,
      "loc": {
        "start": {
          "line": 89,
          "column": 6
        },
        "end": {
          "line": 89,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1990,
      "end": 1991,
      "loc": {
        "start": {
          "line": 89,
          "column": 9
        },
        "end": {
          "line": 89,
          "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": 1992,
      "end": 1995,
      "loc": {
        "start": {
          "line": 89,
          "column": 11
        },
        "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": "TokenRegex",
      "start": 1996,
      "end": 2006,
      "loc": {
        "start": {
          "line": 89,
          "column": 15
        },
        "end": {
          "line": 89,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2006,
      "end": 2007,
      "loc": {
        "start": {
          "line": 89,
          "column": 25
        },
        "end": {
          "line": 89,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "LP",
      "start": 2010,
      "end": 2014,
      "loc": {
        "start": {
          "line": 90,
          "column": 2
        },
        "end": {
          "line": 90,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2014,
      "end": 2015,
      "loc": {
        "start": {
          "line": 90,
          "column": 6
        },
        "end": {
          "line": 90,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2018,
      "end": 2019,
      "loc": {
        "start": {
          "line": 91,
          "column": 2
        },
        "end": {
          "line": 91,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "([\\(\\{\\[\\.]  # ({[ are synonyms\n                           )",
      "start": 2019,
      "end": 2083,
      "loc": {
        "start": {
          "line": 91,
          "column": 3
        },
        "end": {
          "line": 92,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2083,
      "end": 2084,
      "loc": {
        "start": {
          "line": 92,
          "column": 28
        },
        "end": {
          "line": 92,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2084,
      "end": 2085,
      "loc": {
        "start": {
          "line": 92,
          "column": 29
        },
        "end": {
          "line": 92,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 2088,
      "end": 2092,
      "loc": {
        "start": {
          "line": 93,
          "column": 2
        },
        "end": {
          "line": 93,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2093,
      "end": 2094,
      "loc": {
        "start": {
          "line": 94,
          "column": 0
        },
        "end": {
          "line": 94,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2094,
      "end": 2095,
      "loc": {
        "start": {
          "line": 94,
          "column": 1
        },
        "end": {
          "line": 94,
          "column": 2
        }
      }
    },
    {
      "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": 2097,
      "end": 2102,
      "loc": {
        "start": {
          "line": 96,
          "column": 0
        },
        "end": {
          "line": 96,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "RP",
      "start": 2103,
      "end": 2105,
      "loc": {
        "start": {
          "line": 96,
          "column": 6
        },
        "end": {
          "line": 96,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2106,
      "end": 2107,
      "loc": {
        "start": {
          "line": 96,
          "column": 9
        },
        "end": {
          "line": 96,
          "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": 2108,
      "end": 2111,
      "loc": {
        "start": {
          "line": 96,
          "column": 11
        },
        "end": {
          "line": 96,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 2112,
      "end": 2122,
      "loc": {
        "start": {
          "line": 96,
          "column": 15
        },
        "end": {
          "line": 96,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2122,
      "end": 2123,
      "loc": {
        "start": {
          "line": 96,
          "column": 25
        },
        "end": {
          "line": 96,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "RP",
      "start": 2126,
      "end": 2130,
      "loc": {
        "start": {
          "line": 97,
          "column": 2
        },
        "end": {
          "line": 97,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2130,
      "end": 2131,
      "loc": {
        "start": {
          "line": 97,
          "column": 6
        },
        "end": {
          "line": 97,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2134,
      "end": 2135,
      "loc": {
        "start": {
          "line": 98,
          "column": 2
        },
        "end": {
          "line": 98,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "([\\)\\}\\]]     # }}] are synonyms\n                          )",
      "start": 2135,
      "end": 2198,
      "loc": {
        "start": {
          "line": 98,
          "column": 3
        },
        "end": {
          "line": 99,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2198,
      "end": 2199,
      "loc": {
        "start": {
          "line": 99,
          "column": 27
        },
        "end": {
          "line": 99,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2199,
      "end": 2200,
      "loc": {
        "start": {
          "line": 99,
          "column": 28
        },
        "end": {
          "line": 99,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 2203,
      "end": 2207,
      "loc": {
        "start": {
          "line": 100,
          "column": 2
        },
        "end": {
          "line": 100,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2208,
      "end": 2209,
      "loc": {
        "start": {
          "line": 101,
          "column": 0
        },
        "end": {
          "line": 101,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2209,
      "end": 2210,
      "loc": {
        "start": {
          "line": 101,
          "column": 1
        },
        "end": {
          "line": 101,
          "column": 2
        }
      }
    },
    {
      "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": 2212,
      "end": 2217,
      "loc": {
        "start": {
          "line": 103,
          "column": 0
        },
        "end": {
          "line": 103,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "COMMA",
      "start": 2218,
      "end": 2223,
      "loc": {
        "start": {
          "line": 103,
          "column": 6
        },
        "end": {
          "line": 103,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2224,
      "end": 2225,
      "loc": {
        "start": {
          "line": 103,
          "column": 12
        },
        "end": {
          "line": 103,
          "column": 13
        }
      }
    },
    {
      "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": 2226,
      "end": 2229,
      "loc": {
        "start": {
          "line": 103,
          "column": 14
        },
        "end": {
          "line": 103,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 2230,
      "end": 2240,
      "loc": {
        "start": {
          "line": 103,
          "column": 18
        },
        "end": {
          "line": 103,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2240,
      "end": 2241,
      "loc": {
        "start": {
          "line": 103,
          "column": 28
        },
        "end": {
          "line": 103,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "COMMA",
      "start": 2244,
      "end": 2251,
      "loc": {
        "start": {
          "line": 104,
          "column": 2
        },
        "end": {
          "line": 104,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2251,
      "end": 2252,
      "loc": {
        "start": {
          "line": 104,
          "column": 9
        },
        "end": {
          "line": 104,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2255,
      "end": 2256,
      "loc": {
        "start": {
          "line": 105,
          "column": 2
        },
        "end": {
          "line": 105,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "(,|          # comma\n                               :(?!=)      # a : that isn't followed by a = (:= is word)\n                              )",
      "start": 2256,
      "end": 2397,
      "loc": {
        "start": {
          "line": 105,
          "column": 3
        },
        "end": {
          "line": 107,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2397,
      "end": 2398,
      "loc": {
        "start": {
          "line": 107,
          "column": 31
        },
        "end": {
          "line": 107,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2398,
      "end": 2399,
      "loc": {
        "start": {
          "line": 107,
          "column": 32
        },
        "end": {
          "line": 107,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 2402,
      "end": 2406,
      "loc": {
        "start": {
          "line": 108,
          "column": 2
        },
        "end": {
          "line": 108,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2407,
      "end": 2408,
      "loc": {
        "start": {
          "line": 109,
          "column": 0
        },
        "end": {
          "line": 109,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2408,
      "end": 2409,
      "loc": {
        "start": {
          "line": 109,
          "column": 1
        },
        "end": {
          "line": 109,
          "column": 2
        }
      }
    },
    {
      "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": 2411,
      "end": 2416,
      "loc": {
        "start": {
          "line": 111,
          "column": 0
        },
        "end": {
          "line": 111,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "REGEX",
      "start": 2417,
      "end": 2422,
      "loc": {
        "start": {
          "line": 111,
          "column": 6
        },
        "end": {
          "line": 111,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2423,
      "end": 2424,
      "loc": {
        "start": {
          "line": 111,
          "column": 12
        },
        "end": {
          "line": 111,
          "column": 13
        }
      }
    },
    {
      "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": 2425,
      "end": 2428,
      "loc": {
        "start": {
          "line": 111,
          "column": 14
        },
        "end": {
          "line": 111,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 2429,
      "end": 2439,
      "loc": {
        "start": {
          "line": 111,
          "column": 18
        },
        "end": {
          "line": 111,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2439,
      "end": 2440,
      "loc": {
        "start": {
          "line": 111,
          "column": 28
        },
        "end": {
          "line": 111,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "REGEX",
      "start": 2443,
      "end": 2450,
      "loc": {
        "start": {
          "line": 112,
          "column": 2
        },
        "end": {
          "line": 112,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2450,
      "end": 2451,
      "loc": {
        "start": {
          "line": 112,
          "column": 9
        },
        "end": {
          "line": 112,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2454,
      "end": 2455,
      "loc": {
        "start": {
          "line": 113,
          "column": 2
        },
        "end": {
          "line": 113,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "template",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "(r/[^]*?/       # body of the regex\n                               [nsxAgimuy]*   # flags\n                              )",
      "start": 2455,
      "end": 2576,
      "loc": {
        "start": {
          "line": 113,
          "column": 3
        },
        "end": {
          "line": 115,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "`",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2576,
      "end": 2577,
      "loc": {
        "start": {
          "line": 115,
          "column": 31
        },
        "end": {
          "line": 115,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2577,
      "end": 2578,
      "loc": {
        "start": {
          "line": 115,
          "column": 32
        },
        "end": {
          "line": 115,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "yx",
      "start": 2581,
      "end": 2585,
      "loc": {
        "start": {
          "line": 116,
          "column": 2
        },
        "end": {
          "line": 116,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2586,
      "end": 2587,
      "loc": {
        "start": {
          "line": 117,
          "column": 0
        },
        "end": {
          "line": 117,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2587,
      "end": 2588,
      "loc": {
        "start": {
          "line": 117,
          "column": 1
        },
        "end": {
          "line": 117,
          "column": 2
        }
      }
    },
    {
      "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": 2590,
      "end": 2596,
      "loc": {
        "start": {
          "line": 119,
          "column": 0
        },
        "end": {
          "line": 119,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2597,
      "end": 2598,
      "loc": {
        "start": {
          "line": 119,
          "column": 7
        },
        "end": {
          "line": 119,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "WHITES",
      "start": 2599,
      "end": 2605,
      "loc": {
        "start": {
          "line": 119,
          "column": 9
        },
        "end": {
          "line": 119,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2605,
      "end": 2606,
      "loc": {
        "start": {
          "line": 119,
          "column": 15
        },
        "end": {
          "line": 119,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "NEWLINE",
      "start": 2609,
      "end": 2616,
      "loc": {
        "start": {
          "line": 120,
          "column": 2
        },
        "end": {
          "line": 120,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2616,
      "end": 2617,
      "loc": {
        "start": {
          "line": 120,
          "column": 9
        },
        "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": "NUMBER",
      "start": 2620,
      "end": 2626,
      "loc": {
        "start": {
          "line": 121,
          "column": 2
        },
        "end": {
          "line": 121,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2626,
      "end": 2627,
      "loc": {
        "start": {
          "line": 121,
          "column": 8
        },
        "end": {
          "line": 121,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "STRING",
      "start": 2630,
      "end": 2636,
      "loc": {
        "start": {
          "line": 122,
          "column": 2
        },
        "end": {
          "line": 122,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2636,
      "end": 2637,
      "loc": {
        "start": {
          "line": 122,
          "column": 8
        },
        "end": {
          "line": 122,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "WORD",
      "start": 2640,
      "end": 2644,
      "loc": {
        "start": {
          "line": 123,
          "column": 2
        },
        "end": {
          "line": 123,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2644,
      "end": 2645,
      "loc": {
        "start": {
          "line": 123,
          "column": 6
        },
        "end": {
          "line": 123,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "LP",
      "start": 2648,
      "end": 2650,
      "loc": {
        "start": {
          "line": 124,
          "column": 2
        },
        "end": {
          "line": 124,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2650,
      "end": 2651,
      "loc": {
        "start": {
          "line": 124,
          "column": 4
        },
        "end": {
          "line": 124,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "RP",
      "start": 2654,
      "end": 2656,
      "loc": {
        "start": {
          "line": 125,
          "column": 2
        },
        "end": {
          "line": 125,
          "column": 4
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2656,
      "end": 2657,
      "loc": {
        "start": {
          "line": 125,
          "column": 4
        },
        "end": {
          "line": 125,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "COMMA",
      "start": 2660,
      "end": 2665,
      "loc": {
        "start": {
          "line": 126,
          "column": 2
        },
        "end": {
          "line": 126,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2665,
      "end": 2666,
      "loc": {
        "start": {
          "line": 126,
          "column": 7
        },
        "end": {
          "line": 126,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "REGEX",
      "start": 2669,
      "end": 2674,
      "loc": {
        "start": {
          "line": 127,
          "column": 2
        },
        "end": {
          "line": 127,
          "column": 7
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2674,
      "end": 2675,
      "loc": {
        "start": {
          "line": 127,
          "column": 7
        },
        "end": {
          "line": 127,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "TokenRegex",
      "start": 2678,
      "end": 2688,
      "loc": {
        "start": {
          "line": 128,
          "column": 2
        },
        "end": {
          "line": 128,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2689,
      "end": 2690,
      "loc": {
        "start": {
          "line": 128,
          "column": 13
        },
        "end": {
          "line": 128,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2690,
      "end": 2691,
      "loc": {
        "start": {
          "line": 128,
          "column": 14
        },
        "end": {
          "line": 128,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2692,
      "end": 2692,
      "loc": {
        "start": {
          "line": 129,
          "column": 0
        },
        "end": {
          "line": 129,
          "column": 0
        }
      }
    }
  ]
}