/*! Copyright (c) 2020 Patrick Demian; Licensed under MIT */ "use strict";const keywords=["optional","optionally","match","then","any","of","or","word","digit","unicode","character","multiple","one","two","three","four","five","six","seven","eight","nine","ten","anything","whitespace","as","number","if","starts","with","ends","otherwise","else","unless","while","more","using","global","and","multiline","exact","matching","not","between","tab","linefeed","carriage","return","group","by","exactly","inclusive","inclusively","exclusive","exclusively","including","from","to"];var TokenType;!function(e){e[e.END_OF_STATEMENT=0]="END_OF_STATEMENT",e[e.INDENT=1]="INDENT",e[e.BETWEEN=2]="BETWEEN",e[e.QUOTE=3]="QUOTE",e[e.KEYWORD_BETWEEN=4]="KEYWORD_BETWEEN",e[e.KEYWORD_OPTIONAL=5]="KEYWORD_OPTIONAL",e[e.KEYWORD_MATCH=6]="KEYWORD_MATCH",e[e.KEYWORD_THEN=7]="KEYWORD_THEN",e[e.KEYWORD_AND=8]="KEYWORD_AND",e[e.KEYWORD_OR=9]="KEYWORD_OR",e[e.KEYWORD_ANY=10]="KEYWORD_ANY",e[e.KEYWORD_OF=11]="KEYWORD_OF"}(TokenType||(TokenType={}));class Token{constructor(e,n){this.type=e,this.token_string=n}}class TokenizerOptions{constructor(){this.convert_spaces_to_tabs=!1}}function tokenize(e,n){let t=[];for(let s=0;s