clarity-pattern-parser 4.0.3 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +466 -1
- package/TODO.md +76 -2
- package/dist/ast/Node.d.ts +49 -11
- package/dist/ast/Visitor.d.ts +31 -31
- package/dist/index.browser.js +1513 -1495
- package/dist/index.browser.js.map +1 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.esm.js +1480 -1459
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1481 -1463
- package/dist/index.js.map +1 -1
- package/dist/intellisense/AutoComplete.d.ts +28 -0
- package/dist/intellisense/Suggestion.d.ts +11 -0
- package/dist/intellisense/SuggestionOption.d.ts +4 -0
- package/dist/patterns/And.d.ts +37 -24
- package/dist/patterns/Cursor.d.ts +37 -0
- package/dist/patterns/CursorHistory.d.ts +30 -0
- package/dist/patterns/Literal.d.ts +35 -19
- package/dist/patterns/Not.d.ts +29 -11
- package/dist/patterns/Or.d.ts +33 -22
- package/dist/patterns/ParseError.d.ts +6 -8
- package/dist/patterns/ParseResult.d.ts +6 -0
- package/dist/patterns/Pattern.d.ts +20 -26
- package/dist/patterns/Reference.d.ts +34 -12
- package/dist/patterns/Regex.d.ts +41 -21
- package/dist/patterns/Repeat.d.ts +38 -20
- package/dist/patterns/clonePatterns.d.ts +2 -0
- package/dist/patterns/filterOutNull.d.ts +2 -0
- package/dist/patterns/findPattern.d.ts +2 -0
- package/dist/patterns/getNextPattern.d.ts +2 -0
- package/jest.config.js +2 -1
- package/package.json +4 -5
- package/rollup.config.js +1 -1
- package/src/ast/Node.test.ts +364 -0
- package/src/ast/Node.ts +237 -23
- package/src/index.ts +25 -27
- package/src/intellisense/AutoComplete.test.ts +150 -0
- package/src/intellisense/AutoComplete.ts +200 -0
- package/src/intellisense/Suggestion.ts +12 -0
- package/src/intellisense/SuggestionOption.ts +4 -0
- package/src/{tests/cssPatterns → intellisense/css}/cssValue.ts +1 -1
- package/src/{tests/cssPatterns → intellisense/css}/divider.ts +2 -1
- package/src/intellisense/css/hex.ts +6 -0
- package/src/{tests/cssPatterns → intellisense/css}/method.ts +8 -9
- package/src/intellisense/css/name.ts +5 -0
- package/src/{tests/javascriptPatterns → intellisense/css}/number.ts +3 -3
- package/src/intellisense/css/spaces.ts +6 -0
- package/src/intellisense/css/unit.ts +10 -0
- package/src/{tests/cssPatterns → intellisense/css}/value.ts +1 -1
- package/src/{tests/cssPatterns → intellisense/css}/values.ts +1 -1
- package/src/intellisense/javascript/Javascript.test.ts +203 -0
- package/src/intellisense/javascript/arrayLiteral.ts +25 -0
- package/src/intellisense/javascript/deleteStatement.ts +14 -0
- package/src/intellisense/javascript/escapedCharacter.ts +49 -0
- package/src/intellisense/javascript/exponent.ts +24 -0
- package/src/intellisense/javascript/expression.ts +87 -0
- package/src/intellisense/javascript/expressionStatement.ts +29 -0
- package/src/intellisense/javascript/fraction.ts +11 -0
- package/src/intellisense/javascript/infixOperator.ts +36 -0
- package/src/intellisense/javascript/integer.ts +7 -0
- package/src/intellisense/javascript/invocation.ts +28 -0
- package/src/intellisense/javascript/literal.ts +14 -0
- package/src/intellisense/javascript/name.ts +3 -0
- package/src/intellisense/javascript/numberLiteral.ts +10 -0
- package/src/intellisense/javascript/objectLiteral.ts +30 -0
- package/src/intellisense/javascript/optionalSpaces.ts +3 -0
- package/src/intellisense/javascript/parameters.ts +20 -0
- package/src/intellisense/javascript/prefixOperator.ts +13 -0
- package/src/intellisense/javascript/propertyAccess.ts +23 -0
- package/src/intellisense/javascript/stringLiteral.ts +28 -0
- package/src/patterns/And.test.ts +310 -0
- package/src/patterns/And.ts +244 -119
- package/src/patterns/Cursor.test.ts +93 -0
- package/src/patterns/Cursor.ts +133 -0
- package/src/patterns/CursorHistory.test.ts +54 -0
- package/src/patterns/CursorHistory.ts +95 -0
- package/src/patterns/Literal.test.ts +166 -0
- package/src/patterns/Literal.ts +141 -62
- package/src/patterns/Not.test.ts +168 -0
- package/src/patterns/Not.ts +113 -32
- package/src/patterns/Or.test.ts +209 -0
- package/src/patterns/Or.ts +128 -97
- package/src/patterns/ParseError.ts +3 -7
- package/src/patterns/ParseResult.ts +7 -0
- package/src/patterns/Pattern.ts +21 -150
- package/src/patterns/Reference.test.ts +193 -0
- package/src/patterns/Reference.ts +114 -88
- package/src/patterns/Regex.test.ts +133 -0
- package/src/patterns/Regex.ts +117 -60
- package/src/patterns/Repeat.test.ts +218 -0
- package/src/patterns/Repeat.ts +220 -103
- package/src/patterns/clonePatterns.ts +5 -0
- package/src/patterns/filterOutNull.ts +13 -0
- package/src/patterns/findPattern.ts +25 -0
- package/src/Cursor.ts +0 -141
- package/src/CursorHistory.ts +0 -146
- package/src/TextSuggester.ts +0 -317
- package/src/ast/Visitor.ts +0 -271
- package/src/patterns/LookAhead.ts +0 -32
- package/src/patterns/Recursive.ts +0 -92
- package/src/tests/And.test.ts +0 -180
- package/src/tests/ComplexExamples.test.ts +0 -86
- package/src/tests/CssPatterns.test.ts +0 -90
- package/src/tests/CursorHistory.test.ts +0 -107
- package/src/tests/Cusor.test.ts +0 -174
- package/src/tests/HtmlPatterns.test.ts +0 -34
- package/src/tests/Literal.test.ts +0 -79
- package/src/tests/LookAhead.test.ts +0 -44
- package/src/tests/Not.test.ts +0 -51
- package/src/tests/Or.test.ts +0 -113
- package/src/tests/Pattern.test.ts +0 -290
- package/src/tests/Recursive.test.ts +0 -64
- package/src/tests/Reference.test.ts +0 -16
- package/src/tests/Repeat.test.ts +0 -75
- package/src/tests/SpeedTest.test.ts +0 -31
- package/src/tests/TextSuggester.test.ts +0 -297
- package/src/tests/Visitor.test.ts +0 -331
- package/src/tests/cssPatterns/hex.ts +0 -5
- package/src/tests/cssPatterns/name.ts +0 -5
- package/src/tests/cssPatterns/number.ts +0 -8
- package/src/tests/cssPatterns/spaces.ts +0 -5
- package/src/tests/cssPatterns/unit.ts +0 -8
- package/src/tests/htmlPatterns/element.ts +0 -49
- package/src/tests/javascriptPatterns/boolean.ts +0 -10
- package/src/tests/javascriptPatterns/json.ts +0 -67
- package/src/tests/javascriptPatterns/name.ts +0 -5
- package/src/tests/javascriptPatterns/objectLiteral.ts +0 -40
- package/src/tests/javascriptPatterns/string.ts +0 -84
- package/src/tests/javascriptPatterns/unit.ts +0 -8
- package/src/tests/javascriptPatterns/whitespace.ts +0 -44
- package/src/tests/naturalLanguage/filter.ts +0 -37
- package/src/tests/patterns/sentence.ts +0 -37
- /package/src/{tests/cssPatterns → intellisense/css}/optionalSpaces.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sources":["../src/ast/Node.ts","../src/CursorHistory.ts","../src/Cursor.ts","../src/patterns/ParseError.ts","../src/patterns/Pattern.ts","../src/patterns/Regex.ts","../src/patterns/And.ts","../src/patterns/Literal.ts","../src/patterns/LookAhead.ts","../src/patterns/Not.ts","../src/patterns/Or.ts","../src/patterns/Repeat.ts","../src/patterns/Recursive.ts","../src/patterns/Reference.ts","../src/ast/Visitor.ts","../src/TextSuggester.ts"],"sourcesContent":["export default class Node {\n public type: string;\n public name: string;\n public startIndex: number;\n public endIndex: number;\n public children: Node[];\n public value: string;\n\n constructor(\n type: string,\n name: string,\n startIndex: number,\n endIndex: number,\n children: Node[] = [],\n value: string = \"\"\n ) {\n this.type = type;\n this.name = name;\n this.startIndex = startIndex;\n this.endIndex = endIndex;\n this.children = children;\n this.value = value;\n }\n\n clone(): Node {\n return new Node(\n this.type,\n this.name,\n this.startIndex,\n this.endIndex,\n this.children.map((c) => c.clone()),\n this.value\n );\n }\n\n toString() {\n return this.value;\n }\n}\n","import Pattern from \"./patterns/Pattern\";\nimport Node from \"./ast/Node\";\nimport ParseError from \"./patterns/ParseError\";\n\nexport interface Match {\n pattern: Pattern | null;\n astNode: Node | null;\n}\n\nexport default class CursorHistory {\n public isRecording: boolean;\n public furthestMatch: Match;\n public furthestError: ParseError | null;\n public patterns: Pattern[];\n public astNodes: Node[];\n public errors: ParseError[];\n\n constructor() {\n this.isRecording = false;\n\n this.furthestMatch = {\n pattern: null,\n astNode: null,\n };\n\n this.furthestError = null;\n\n this.patterns = [];\n this.astNodes = [];\n this.errors = [];\n }\n\n addMatch(pattern: Pattern, astNode: Node) {\n if (this.isRecording) {\n this.patterns.push(pattern);\n this.astNodes.push(astNode);\n }\n\n if (\n this.furthestMatch.astNode == null ||\n astNode.endIndex >= this.furthestMatch.astNode.endIndex\n ) {\n this.furthestMatch.pattern = pattern;\n this.furthestMatch.astNode = astNode;\n }\n }\n\n addError(error: ParseError) {\n if (this.isRecording) {\n this.errors.push(error);\n }\n\n if (this.furthestError == null || error.index >= this.furthestError.index) {\n this.furthestError = error;\n }\n }\n\n startRecording() {\n this.isRecording = true;\n }\n\n stopRecording() {\n this.isRecording = false;\n this.clear();\n }\n\n clear() {\n this.patterns.length = 0;\n this.astNodes.length = 0;\n this.errors.length = 0;\n }\n\n getFurthestError() {\n return this.furthestError;\n }\n\n getFurthestMatch() {\n return this.furthestMatch;\n }\n\n getLastMatch() {\n if (this.isRecording) {\n return {\n pattern: this.patterns[this.patterns.length - 1] || null,\n astNode: this.astNodes[this.astNodes.length - 1] || null,\n } as Match;\n } else {\n return this.furthestMatch as Match;\n }\n }\n\n getLastError() {\n return this.errors[this.errors.length - 1] || null;\n }\n\n getAllParseStacks() {\n const stacks = this.astNodes.reduce((acc: Node[][], node) => {\n let container: Node[] = acc[acc.length - 1];\n\n if (node.startIndex === 0) {\n container = [];\n acc.push(container);\n }\n\n container.push(node);\n\n return acc;\n }, []);\n\n // There are times when the matching will fail and hit again on the same node.\n // This filters them out.\n // We simply check to see if there is any overlap with the previous one,\n // and if there is we don't add it. This is why we move backwards.\n const cleanedStack = stacks.map((stack: Node[]) => {\n const cleanedStack = [];\n\n for (let x = stack.length - 1; x >= 0; x--) {\n const currentNode = stack[x];\n const previousNode = stack[x + 1];\n\n if (previousNode == null) {\n cleanedStack.unshift(currentNode);\n } else {\n const left = Math.max(\n currentNode.startIndex,\n previousNode.startIndex\n );\n const right = Math.min(currentNode.endIndex, previousNode.endIndex);\n const isOverlapping = left <= right;\n\n if (!isOverlapping) {\n cleanedStack.unshift(currentNode);\n }\n }\n }\n return cleanedStack;\n });\n\n return cleanedStack;\n }\n\n getLastParseStack(): Node[] {\n const stacks = this.getAllParseStacks();\n return stacks[stacks.length - 1] || [];\n }\n}\n","import Pattern from \"./patterns/Pattern\";\nimport Node from \"./ast/Node\";\nimport CursorHistory from \"./CursorHistory\";\nimport ParseError from \"./patterns/ParseError\";\n\nexport default class Cursor {\n public text: string;\n public index: number;\n public length: number;\n public history: CursorHistory;\n public isInErrorState: boolean;\n\n constructor(text: string) {\n this.text = text;\n this.assertValidity();\n\n this.index = 0;\n this.length = text.length;\n this.history = new CursorHistory();\n this.isInErrorState = false;\n }\n\n assertValidity() {\n if (this.isNullOrEmpty(this.text)) {\n throw new Error(\n \"Illegal Argument: Cursor needs to have a string that has a length greater than 0.\"\n );\n }\n }\n\n startRecording() {\n this.history.startRecording();\n }\n\n stopRecording() {\n this.history.stopRecording();\n }\n\n get parseError() {\n return this.history.getFurthestError();\n }\n\n get lastMatch() {\n return this.history.getFurthestMatch();\n }\n\n throwError(parseError: ParseError) {\n this.isInErrorState = true;\n this.history.addError(parseError);\n }\n\n addMatch(pattern: Pattern, astNode: Node) {\n this.history.addMatch(pattern, astNode);\n }\n\n resolveError() {\n this.isInErrorState = false;\n }\n\n hasUnresolvedError() {\n return this.isInErrorState;\n }\n\n isNullOrEmpty(value: string | null) {\n return value == null || (typeof value === \"string\" && value.length === 0);\n }\n\n hasNext() {\n return this.index + 1 < this.text.length;\n }\n\n hasPrevious() {\n return this.index - 1 >= 0;\n }\n\n next() {\n if (this.hasNext()) {\n this.index++;\n } else {\n throw new Error(\"Cursor: Out of Bounds Exception.\");\n }\n }\n\n previous() {\n if (this.hasPrevious()) {\n this.index--;\n } else {\n throw new Error(\"Cursor: Out of Bounds Exception.\");\n }\n }\n\n mark() {\n return this.index;\n }\n\n moveToMark(mark: number) {\n this.index = mark;\n }\n\n moveToBeginning() {\n this.index = 0;\n }\n\n moveToEnd() {\n this.index = this.text.length - 1;\n }\n\n getChar() {\n return this.text.charAt(this.index);\n }\n\n getIndex() {\n return this.index;\n }\n\n setIndex(index: number) {\n if (typeof index === \"number\") {\n if (index < 0 || index > this.lastIndex()) {\n throw new Error(\"Cursor: Out of Bounds Exception.\");\n }\n\n this.index = index;\n }\n }\n\n isAtBeginning() {\n return this.index === 0;\n }\n\n isAtEnd() {\n return this.index === this.text.length - 1;\n }\n\n lastIndex() {\n return this.length - 1;\n }\n\n didSuccessfullyParse() {\n return !this.hasUnresolvedError() && this.isAtEnd();\n }\n}\n","import Pattern from \"./Pattern\";\n\nexport default class ParseError {\n public message: string;\n public name: string;\n public index: number;\n public pattern: Pattern;\n\n constructor(message: string, index: number, pattern: Pattern) {\n this.name = \"ParseError\";\n this.message = message;\n this.index = index;\n this.pattern = pattern;\n }\n}\n","import Cursor from \"../Cursor\";\nimport Node from \"../ast/Node\";\n\nexport default abstract class Pattern {\n protected _type: string;\n protected _name: string;\n protected _children: Pattern[];\n protected _parent: Pattern | null;\n protected _isOptional = false;\n\n get isOptional() {\n return this._isOptional;\n }\n\n constructor(\n type: string,\n name: string,\n children: Pattern[] = [],\n isOptional = false\n ) {\n this._type = type;\n this._name = name;\n this._children = [];\n this._parent = null;\n this._isOptional = isOptional;\n this.children = children;\n }\n\n abstract parse(cursor: Cursor): Node | null;\n\n exec(text: string) {\n const cursor = new Cursor(text);\n const node = this.parse(cursor);\n\n if (cursor.didSuccessfullyParse()) {\n return node;\n } else {\n return null;\n }\n }\n\n test(text: string) {\n return this.exec(text) != null;\n }\n\n get name() {\n return this._name;\n }\n\n get type() {\n return this._type;\n }\n\n get parent() {\n return this._parent;\n }\n\n set parent(value: Pattern | null) {\n this._parent = value;\n }\n\n get children() {\n return this._children;\n }\n\n set children(value) {\n this._children = value;\n this.cloneChildren();\n this.assignAsParent();\n }\n\n abstract clone(name?: string): Pattern;\n abstract getTokens(): string[];\n\n getTokenValue(): string | null {\n return null;\n }\n\n getNextTokens(): string[] {\n const parent = this._parent;\n\n if (parent != null) {\n const siblings = parent.children;\n const index = siblings.findIndex((c) => c === this);\n const nextSibling = siblings[index + 1];\n\n // I don't like this, so I think we need to rethink this.\n if (parent.type.indexOf(\"repeat\") === 0) {\n const tokens = parent.getNextTokens();\n if (index === 0 && siblings.length > 1) {\n return nextSibling.getTokens().concat(tokens);\n } else if (index === 1) {\n return siblings[0].getTokens();\n } else {\n return this.getTokens().concat(tokens);\n }\n }\n\n // Another thing I don't like.\n if (\n this._parent?.type?.indexOf(\"and\") === 0 &&\n nextSibling != null &&\n nextSibling.isOptional\n ) {\n let tokens: string[] = [];\n\n for (let x = index + 1; x < siblings.length; x++) {\n const child = siblings[x];\n\n if (child.isOptional) {\n tokens = tokens.concat(child.getTokens());\n } else {\n tokens = tokens.concat(child.getTokens());\n break;\n }\n\n if (x === siblings.length - 1) {\n tokens = tokens.concat(this._parent.getNextTokens());\n }\n }\n\n return tokens;\n }\n\n // If you are an or you have already qualified.\n if (parent.type.indexOf(\"or\") === 0) {\n return parent.getNextTokens();\n }\n\n if (nextSibling != null) {\n return nextSibling.getTokens();\n } else {\n return parent.getNextTokens();\n }\n }\n\n return [];\n }\n\n private cloneChildren() {\n this._children = this._children.map((pattern) => {\n return pattern.clone();\n });\n\n Object.freeze(this._children);\n }\n\n private assignAsParent() {\n this._children.forEach((child) => (child.parent = this));\n }\n}\n","import ParseError from \"./ParseError\";\nimport Node from \"../ast/Node\";\nimport Pattern from \"./Pattern\";\nimport Cursor from \"../Cursor\";\n\nexport default class Regex extends Pattern {\n private regexString: string;\n private regex: RegExp;\n private node: Node | null = null;\n private cursor: Cursor | null = null;\n private substring: string = \"\";\n\n constructor(name: string, regex: string, isOptional = false) {\n super(\"regex\", name, [], isOptional);\n this.regexString = regex;\n this.regex = new RegExp(`^${regex}`, \"g\");\n this.assertArguments();\n }\n\n private assertArguments() {\n if (this.regexString.length < 1) {\n throw new Error(\n \"Invalid Arguments: The regex string argument needs to be at least one character long.\"\n );\n }\n\n if (this.regexString.charAt(0) === \"^\") {\n throw new Error(\n \"Invalid Arguments: The regex string cannot start with a '^' because it is expected to be in the middle of a string.\"\n );\n }\n\n if (this.regexString.charAt(this.regexString.length - 1) === \"$\") {\n throw new Error(\n \"Invalid Arguments: The regex string cannot end with a '$' because it is expected to be in the middle of a string.\"\n );\n }\n }\n\n parse(cursor: Cursor) {\n this.resetState(cursor);\n this.tryToParse();\n\n return this.node;\n }\n\n private resetState(cursor: Cursor) {\n this.cursor = cursor;\n this.regex.lastIndex = 0;\n this.substring = this.cursor.text.substr(this.cursor.getIndex());\n this.node = null;\n }\n\n private tryToParse() {\n const result = this.regex.exec(this.substring);\n\n if (result != null && result.index === 0) {\n this.processResult(result);\n } else {\n this.processError();\n }\n }\n\n private processResult(result: RegExpExecArray) {\n const cursor = this.safelyGetCursor();\n const currentIndex = cursor.getIndex();\n const newIndex = currentIndex + result[0].length - 1;\n\n this.node = new Node(\n \"regex\",\n this.name,\n currentIndex,\n newIndex,\n [],\n result[0]\n );\n\n cursor.moveToMark(newIndex);\n cursor.addMatch(this, this.node);\n }\n\n private processError() {\n const cursor = this.safelyGetCursor();\n\n if (!this._isOptional) {\n const message = `ParseError: Expected regex pattern of '${this.regexString}' but found '${this.substring}'.`;\n const parseError = new ParseError(message, cursor.getIndex(), this);\n\n cursor.throwError(parseError);\n }\n\n this.node = null;\n }\n\n private safelyGetCursor() {\n const cursor = this.cursor;\n\n if (cursor == null) {\n throw new Error(\"Couldn't find cursor.\");\n }\n return cursor;\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n\n return new Regex(name, this.regexString, isOptional);\n }\n\n getTokenValue() {\n return this.name;\n }\n\n getTokens() {\n return [this.name];\n }\n}","import ParseError from \"../patterns/ParseError\";\nimport Cursor from \"../Cursor\";\nimport Pattern from \"./Pattern\";\nimport Node from \"../ast/Node\";\n\nexport default class And extends Pattern {\n public onPatternIndex: number = 0;\n public nodes: (Node | null)[] = [];\n public node: Node | null = null;\n public cursor: Cursor | null = null;\n public mark: number = 0;\n\n constructor(name: string, patterns: Pattern[], isOptional = false) {\n super(\"and\", name, patterns, isOptional);\n }\n\n parse(cursor: Cursor) {\n this.resetState(cursor);\n this.tryToParse();\n\n return this.node;\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null){\n isOptional = this._isOptional;\n }\n\n return new And(name, this._children, isOptional);\n }\n\n getTokens() {\n let tokens: string[] = [];\n\n for (let x = 0; x < this._children.length; x++) {\n const child = this._children[x];\n\n if (child.isOptional) {\n tokens = tokens.concat(child.getTokens());\n } else {\n tokens = tokens.concat(child.getTokens());\n break;\n }\n }\n\n return tokens;\n }\n\n private resetState(cursor: Cursor) {\n this.onPatternIndex = 0;\n this.nodes = [];\n this.node = null;\n this.cursor = cursor;\n this.mark = this.cursor.mark();\n }\n\n private tryToParse() {\n const cursor = this.safelyGetCursor();\n\n while (true) {\n const pattern = this._children[this.onPatternIndex];\n const node = pattern.parse(cursor);\n\n if (cursor.hasUnresolvedError()) {\n this.processError();\n break;\n } else {\n this.nodes.push(node);\n }\n\n if (!this.shouldProceed()) {\n this.processResult();\n break;\n }\n }\n }\n\n private safelyGetCursor() {\n const cursor = this.cursor;\n\n if (cursor == null) {\n throw new Error(\"Couldn't find cursor.\");\n }\n return cursor;\n }\n\n private processResult() {\n const cursor = this.safelyGetCursor();\n\n if (cursor.hasUnresolvedError()) {\n this.processError();\n } else {\n this.processSuccess();\n }\n }\n\n private processError() {\n const cursor = this.safelyGetCursor();\n\n if (this.isOptional) {\n cursor.moveToMark(this.mark);\n cursor.resolveError();\n }\n this.node = null;\n }\n\n private shouldProceed() {\n const cursor = this.safelyGetCursor();\n\n if (this.hasMorePatterns()) {\n const lastNode = this.nodes[this.nodes.length - 1];\n const wasOptional = lastNode == null;\n\n if (cursor.hasNext()) {\n if (!wasOptional) {\n cursor.next();\n }\n\n this.onPatternIndex++;\n return true;\n } else if (wasOptional) {\n this.onPatternIndex++;\n return true;\n }\n\n this.assertRestOfPatternsAreOptional();\n return false;\n } else {\n return false;\n }\n }\n\n private hasMorePatterns() {\n return this.onPatternIndex + 1 < this._children.length;\n }\n\n private assertRestOfPatternsAreOptional() {\n const cursor = this.safelyGetCursor();\n const areTheRestOptional = this.areTheRemainingPatternsOptional();\n\n if (!areTheRestOptional) {\n const parseError = new ParseError(\n `Could not match ${this.name} before string ran out.`,\n this.onPatternIndex,\n this\n );\n\n cursor.throwError(parseError);\n }\n }\n\n private areTheRemainingPatternsOptional() {\n return this.children\n .slice(this.onPatternIndex + 1)\n .map((p) => p.isOptional)\n .every((r) => r);\n }\n\n private processSuccess() {\n const cursor = this.safelyGetCursor();\n const nodes = this.nodes.filter((node) => node != null) as Node[];\n this.nodes = nodes;\n\n const lastNode = nodes[this.nodes.length - 1];\n const startIndex = this.mark;\n const endIndex = lastNode.endIndex;\n const value = nodes.map((node) => node.value).join(\"\");\n\n this.node = new Node(\"and\", this.name, startIndex, endIndex, nodes, value);\n\n cursor.index = this.node.endIndex;\n cursor.addMatch(this, this.node);\n }\n}\n","import ParseError from \"./ParseError\";\nimport Node from \"../ast/Node\";\nimport Pattern from \"./Pattern\";\nimport Cursor from \"../Cursor\";\n\nexport default class Literal extends Pattern {\n public literal: string;\n public node: Node | null = null;\n public cursor!: Cursor;\n public mark: number = 0;\n public substring: string = \"\";\n\n constructor(name: string, literal: string, isOptional = false) {\n super(\"literal\", name, [], isOptional);\n this.literal = literal;\n this.assertArguments();\n }\n\n parse(cursor: Cursor) {\n this.resetState(cursor);\n this.tryToParse();\n\n return this.node;\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n \n return new Literal(name, this.literal, isOptional);\n }\n\n getTokens() {\n return [this.literal];\n }\n\n private assertArguments() {\n if (this.literal.length < 1) {\n throw new Error(\n \"Invalid Arguments: The `literal` argument needs to be at least one character long.\"\n );\n }\n }\n\n private resetState(cursor: Cursor) {\n this.cursor = cursor;\n this.mark = this.cursor.mark();\n this.substring = this.cursor.text.substring(\n this.mark,\n this.mark + this.literal.length\n );\n this.node = null;\n }\n\n private tryToParse() {\n if (this.substring === this.literal) {\n this.processResult();\n } else {\n this.processError();\n }\n }\n\n private processError() {\n this.node = null;\n\n if (!this._isOptional) {\n const message = `ParseError: Expected '${this.literal}' but found '${this.substring}'.`;\n const parseError = new ParseError(message, this.cursor.getIndex(), this);\n this.cursor.throwError(parseError);\n }\n }\n\n private processResult() {\n this.node = new Node(\n \"literal\",\n this.name,\n this.mark,\n this.mark + this.literal.length - 1,\n [],\n this.substring\n );\n\n this.cursor.index = this.node.endIndex;\n this.cursor.addMatch(this, this.node);\n }\n}\n","import Cursor from \"../Cursor\";\nimport ParseError from \"./ParseError\";\nimport Pattern from \"./Pattern\";\n\nexport default class LookAhead extends Pattern {\n constructor(pattern: Pattern) {\n super(\"look-ahead\", \"look-ahead\", [pattern]);\n }\n\n parse(cursor: Cursor) {\n const mark = cursor.mark();\n const node = this.children[0].parse(cursor);\n\n if (cursor.hasUnresolvedError() || node == null) {\n cursor.resolveError();\n cursor.throwError(\n new ParseError(\"Couldn't find look ahead pattern.\", mark, this.children[0])\n );\n cursor.moveToMark(mark);\n }\n\n return null;\n }\n\n clone() {\n return new LookAhead(this.children[0].clone());\n }\n\n getTokens() {\n return [];\n }\n}\n","import Pattern from \"./Pattern\";\nimport ParseError from \"./ParseError\";\nimport Cursor from \"../Cursor\";\n\nexport default class Not extends Pattern {\n public cursor!: Cursor;\n public mark: number = 0;\n\n constructor(pattern: Pattern) {\n super(\"not\", `not-${pattern.name}`, [pattern]);\n this._isOptional = true;\n }\n\n parse(cursor: Cursor) {\n this.cursor = cursor;\n this.mark = cursor.mark();\n this.tryToParse();\n return null;\n }\n\n private tryToParse() {\n const mark = this.cursor.mark();\n this.children[0].parse(this.cursor);\n\n if (this.cursor.hasUnresolvedError()) {\n this.cursor.resolveError();\n this.cursor.moveToMark(mark);\n } else {\n this.cursor.moveToMark(mark);\n const parseError = new ParseError(\n `Match invalid pattern: ${this.children[0].name}.`,\n this.mark,\n this\n );\n this.cursor.throwError(parseError);\n }\n }\n\n clone(name?: string) {\n if (name == null) {\n name = this.name;\n }\n\n return new Not(this.children[0]);\n }\n\n getTokens() {\n return [];\n }\n}\n","import Pattern from \"./Pattern\";\nimport ParseError from \"./ParseError\";\nimport Cursor from \"../Cursor\";\nimport Node from \"../ast/Node\";\n\nexport default class Or extends Pattern {\n public patternIndex: number = 0;\n public errors: ParseError[] = [];\n public node: Node | null = null;\n public cursor: Cursor | null = null;\n public mark: number = 0;\n public parseError: ParseError | null = null;\n\n constructor(name: string, patterns: Pattern[], isOptional = false) {\n super(\"or\", name, patterns, isOptional);\n this.assertArguments();\n }\n\n private assertArguments() {\n if (this._children.length < 2) {\n throw new Error(\n \"Invalid Argument: OrValue needs to have more than one value pattern.\"\n );\n }\n\n const hasOptionalChildren = this._children.some(\n (pattern) => pattern.isOptional\n );\n\n if (hasOptionalChildren) {\n throw new Error(\"OrValues cannot have optional patterns.\");\n }\n }\n\n private resetState(cursor: Cursor) {\n this.patternIndex = 0;\n this.errors = [];\n this.node = null;\n this.cursor = cursor;\n this.mark = cursor.mark();\n }\n\n private safelyGetCursor() {\n const cursor = this.cursor;\n\n if (cursor == null) {\n throw new Error(\"Couldn't find cursor.\");\n }\n return cursor;\n }\n\n parse(cursor: Cursor) {\n this.resetState(cursor);\n this.tryToParse();\n\n return this.node;\n }\n\n private tryToParse() {\n const cursor = this.safelyGetCursor();\n\n while (true) {\n const pattern = this._children[this.patternIndex];\n const node = pattern.parse(cursor);\n const hasError = cursor.hasUnresolvedError();\n\n if (hasError) {\n const shouldBreak = this.processError();\n if (shouldBreak) {\n break;\n }\n } else if (node != null) {\n this.processResult(node);\n break;\n }\n }\n }\n\n private processError() {\n const cursor = this.safelyGetCursor();\n const isLastPattern = this.patternIndex + 1 === this._children.length;\n\n if (!isLastPattern) {\n this.patternIndex++;\n cursor.resolveError();\n cursor.moveToMark(this.mark);\n return false;\n } else {\n if (this._isOptional) {\n cursor.resolveError();\n cursor.moveToMark(this.mark);\n }\n this.node = null;\n return true;\n }\n }\n\n private processResult(node: Node) {\n const cursor = this.safelyGetCursor();\n\n this.node = new Node(\n \"or\",\n this.name,\n node.startIndex,\n node.endIndex,\n [node],\n node.value\n );\n\n cursor.index = this.node.endIndex;\n cursor.addMatch(this, this.node);\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n\n return new Or(name, this._children, isOptional);\n }\n\n getTokens() {\n return this._children.reduce<string[]>(\n (acc, c) => acc.concat(c.getTokens()),\n []\n );\n }\n}\n","import Pattern from \"./Pattern\";\nimport Node from \"../ast/Node\";\nimport ParseError from \"./ParseError\";\nimport Cursor from \"../Cursor\";\n\nexport default class Repeat extends Pattern {\n public _pattern: Pattern;\n public _divider: Pattern;\n public nodes: Node[] = [];\n public cursor!: Cursor;\n public mark: number = 0;\n public node: Node | null = null;\n\n constructor(\n name: string,\n pattern: Pattern,\n divider?: Pattern,\n isOptional = false\n ) {\n super(\n \"repeat\",\n name,\n divider != null ? [pattern, divider] : [pattern],\n isOptional\n );\n\n this._pattern = this.children[0];\n this._divider = this.children[1];\n this.assertArguments();\n }\n\n private assertArguments() {\n if (this._pattern.isOptional) {\n throw new Error(\n \"Invalid Arguments: The pattern cannot be a optional pattern.\"\n );\n }\n }\n\n private _reset(cursor: Cursor) {\n this.nodes = [];\n this.cursor = cursor;\n this.mark = this.cursor.mark();\n }\n\n parse(cursor: Cursor) {\n this._reset(cursor);\n this.tryToParse();\n\n return this.node;\n }\n\n private tryToParse() {\n const cursor = this.safelyGetCursor();\n\n while (true) {\n const node = this._pattern.parse(cursor);\n\n if (cursor.hasUnresolvedError()) {\n this.processResult();\n break;\n } else if (node != null) {\n this.nodes.push(node);\n\n if (node.endIndex === cursor.lastIndex()) {\n this.processResult();\n break;\n }\n\n cursor.next();\n\n if (this._divider != null) {\n const mark = cursor.mark();\n const node = this._divider.parse(cursor);\n\n if (cursor.hasUnresolvedError()) {\n cursor.moveToMark(mark);\n this.processResult();\n break;\n } else if (node != null) {\n this.nodes.push(node);\n\n if (node.endIndex === cursor.lastIndex()) {\n this.processResult();\n break;\n }\n\n cursor.next();\n }\n }\n }\n }\n }\n\n private processResult() {\n const endsOnDivider = this.nodes.length % 2 === 0;\n const noMatch = this.nodes.length === 0;\n const hasDivider = this._divider != null;\n\n this.cursor.resolveError();\n\n if ((hasDivider && endsOnDivider) || noMatch) {\n if (this._isOptional) {\n this.cursor.moveToMark(this.mark);\n } else {\n const parseError = new ParseError(\n `Did not find a repeating match of ${this.name}.`,\n this.mark,\n this\n );\n this.cursor.throwError(parseError);\n }\n this.node = null;\n } else {\n const value = this.nodes.map((node) => node.value).join(\"\");\n\n this.node = new Node(\n \"repeat\",\n this.name,\n this.nodes[0].startIndex,\n this.nodes[this.nodes.length - 1].endIndex,\n this.nodes,\n value\n );\n\n this.cursor.index = this.node.endIndex;\n this.cursor.addMatch(this, this.node);\n }\n }\n\n private safelyGetCursor() {\n const cursor = this.cursor;\n\n if (cursor == null) {\n throw new Error(\"Couldn't find cursor.\");\n }\n return cursor;\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n\n return new Repeat(name, this._pattern, this._divider, isOptional);\n }\n\n getTokens() {\n return this._pattern.getTokens();\n }\n}\n","import Pattern from \"./Pattern\";\nimport ParserError from \"./ParseError\";\nimport Cursor from \"../Cursor\";\n\nexport default class Recursive extends Pattern {\n public isRecursing: boolean;\n public pattern: Pattern | null = null;\n\n constructor(name: string, isOptional = false) {\n super(\"recursive\", name, [], isOptional);\n this.isRecursing = false;\n }\n\n getPattern() {\n return this.climb(this.parent, (pattern: Pattern | null) => {\n if (pattern == null) {\n return false;\n }\n return (\n pattern.type !== \"recursive\" &&\n pattern.name === this.name\n );\n });\n }\n\n private climb(\n pattern: Pattern | null,\n isMatch: (pattern: Pattern | null) => boolean\n ): Pattern | null {\n if (isMatch(pattern)) {\n return pattern;\n } else {\n if (pattern && pattern.parent != null) {\n return this.climb(pattern.parent, isMatch);\n }\n return null;\n }\n }\n\n parse(cursor: Cursor) {\n if (this.pattern == null) {\n const pattern = this.getPattern();\n\n if (pattern == null) {\n if (!this._isOptional) {\n cursor.throwError(\n new ParserError(\n `Couldn't find parent pattern to recursively parse, with the name ${this.name}.`,\n cursor.index,\n this\n )\n );\n }\n\n return null;\n }\n\n this.pattern = pattern.clone();\n this.pattern.parent = this;\n }\n\n const mark = cursor.mark();\n const node = this.pattern.parse(cursor);\n\n if (!cursor.hasUnresolvedError() && node != null) {\n cursor.addMatch(this, node);\n }\n\n if (cursor.hasUnresolvedError() && this._isOptional) {\n cursor.resolveError();\n cursor.moveToMark(mark);\n }\n\n return node;\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n\n return new Recursive(name, isOptional);\n }\n\n getTokens() {\n return this.getPattern()?.getTokens() || [];\n }\n}\n","import Pattern from \"./Pattern\";\nimport ParserError from \"./ParseError\";\nimport Cursor from \"../Cursor\";\n\nexport default class Reference extends Pattern {\n constructor(name: string, isOptional = false) {\n super(\"reference\", name, [], isOptional);\n }\n\n private getRoot() {\n let node = this.parent;\n while (node != null) {\n if (node.parent == null) {\n return node;\n }\n node = node.parent;\n }\n return node;\n }\n\n private findPattern(): Pattern | null {\n const root = this.getRoot();\n let result: Pattern | null = null;\n\n if (root == null) {\n return null;\n }\n\n this.walkTheTree(root, (pattern) => {\n if (\n pattern.name === this.name &&\n pattern != this &&\n pattern.type != \"reference\"\n ) {\n result = pattern;\n return false;\n }\n return true;\n });\n\n return result;\n }\n\n private walkTheTree(\n pattern: Pattern,\n callback: (pattern: Pattern) => boolean\n ) {\n for (let x = 0; x < pattern.children.length; x++) {\n const p = pattern.children[x];\n const continueWalking = this.walkTheTree(p, callback);\n\n if (!continueWalking) {\n return false;\n }\n }\n\n return callback(pattern);\n }\n\n parse(cursor: Cursor) {\n const mark = cursor.mark();\n\n try {\n const node = this.safelyGetPattern().parse(cursor);\n\n if (!cursor.hasUnresolvedError() && node != null) {\n cursor.addMatch(this, node);\n }\n\n if (cursor.hasUnresolvedError() && this._isOptional) {\n cursor.resolveError();\n cursor.moveToMark(mark);\n }\n\n return node;\n } catch (error) {\n if (this._isOptional) {\n cursor.moveToMark(mark);\n } else {\n cursor.throwError(\n new ParserError(\n `Couldn't find reference pattern to parse, with the name ${this.name}.`,\n cursor.index,\n this as Pattern\n )\n );\n }\n\n return null;\n }\n }\n\n clone(name?: string, isOptional?: boolean) {\n if (name == null) {\n name = this.name;\n }\n\n if (isOptional == null) {\n isOptional = this._isOptional;\n }\n\n return new Reference(name, isOptional);\n }\n\n private safelyGetPattern() {\n let pattern = this.children[0];\n const hasNoPattern = pattern == null;\n\n if (hasNoPattern) {\n const reference = this.findPattern();\n if (reference == null) {\n throw new Error(\n `Couldn't find reference pattern, with the name ${this.name}.`\n );\n }\n\n pattern = reference;\n this.children = [pattern];\n }\n\n return pattern;\n }\n\n getTokens() {\n return this.safelyGetPattern().getTokens();\n }\n}\n","import Node from \"./Node\";\n\nexport default class Visitor {\n public root: Node | null;\n public selectedNodes: Node[];\n\n constructor(root: Node | null = null, selectedNodes: Node[] = []) {\n this.root = root;\n this.selectedNodes = selectedNodes;\n }\n\n flatten() {\n this.selectedNodes.forEach((node) => {\n if (node.children.length > 0) {\n const children: Node[] = [];\n\n Visitor.walkUp(node, (descendant: Node) => {\n if (descendant.children.length === 0) {\n children.push(descendant);\n }\n });\n\n node.children = children;\n }\n });\n\n return this;\n }\n\n remove() {\n if (this.root == null) {\n return this;\n }\n\n this.recursiveRemove(this.root);\n return this;\n }\n\n private recursiveRemove(node: Node) {\n const nodesToRemove = this.selectedNodes;\n for (let x = 0; x < node.children.length; x++) {\n if (nodesToRemove.indexOf(node.children[x]) > -1) {\n node.children.splice(x, 1);\n x--;\n } else {\n this.recursiveRemove(node.children[x]);\n }\n }\n }\n\n wrap(callback: (node: Node) => Node) {\n const visitor = new Visitor(this.root);\n\n visitor.selectRoot().transform((node) => {\n if (this.selectedNodes.includes(node)) {\n return callback(node);\n }\n return node;\n });\n\n return this;\n }\n\n unwrap() {\n if (this.root == null) {\n return this;\n }\n\n Visitor.walkDown(this.root, (node, stack) => {\n if (this.selectedNodes.includes(node)) {\n const parent = stack[stack.length - 1];\n const grandParent = stack[stack.length - 2];\n\n if (parent != null && grandParent != null) {\n const index = grandParent.children.indexOf(parent);\n if (index > -1) {\n grandParent.children.splice(index, 1, ...parent.children);\n }\n }\n }\n });\n\n return this;\n }\n\n prepend(callback: (node: Node) => Node) {\n if (this.root == null) {\n return this;\n }\n\n Visitor.walkUp(this.root, (node, stack) => {\n if (this.selectedNodes.includes(node)) {\n const parent = stack[stack.length - 1];\n\n if (parent != null) {\n const index = parent.children.indexOf(node);\n if (index > -1) {\n parent.children.splice(index, 0, callback(node));\n }\n }\n }\n });\n\n return this;\n }\n\n append(callback: (node: Node) => Node) {\n if (this.root == null) {\n return this;\n }\n\n Visitor.walkDown(this.root, (node, stack) => {\n if (this.selectedNodes.includes(node)) {\n const parent = stack[stack.length - 1];\n\n if (parent != null) {\n const index = parent.children.indexOf(node);\n if (index > -1) {\n parent.children.splice(index + 1, 0, callback(node));\n }\n }\n }\n });\n\n return this;\n }\n\n transform(callback: (node: Node) => Node) {\n this.selectedNodes.forEach((node) => {\n return this.recursiveTransform(node, callback);\n });\n\n return this;\n }\n\n private recursiveTransform(node: Node, callback: (node: Node) => Node) {\n const length = node.children.length;\n\n for (let x = 0; x < length; x++) {\n node.children[x] = this.recursiveTransform(node.children[x], callback);\n }\n\n return callback(node);\n }\n\n selectAll() {\n return this.select((n) => true);\n }\n\n selectNode(node: Node) {\n return new Visitor(this.root, [...this.selectedNodes, node]);\n }\n\n deselectNode(node: Node) {\n const visitor = new Visitor(this.root, this.selectedNodes.slice());\n return visitor.filter((n) => n !== node);\n }\n\n select(callback: (node: Node) => boolean) {\n if (this.root == null) {\n return this;\n }\n\n const node = this.root;\n const selectedNodes: Node[] = [];\n\n if (node.children.length > 0) {\n Visitor.walkDown(node, (descendant: Node) => {\n if (callback(descendant)) {\n selectedNodes.push(descendant);\n }\n });\n }\n\n return new Visitor(this.root, selectedNodes);\n }\n\n forEach(callback: (node: Node) => void) {\n this.selectedNodes.forEach(callback);\n return this;\n }\n\n filter(callback: (node: Node) => boolean) {\n return new Visitor(this.root, this.selectedNodes.filter(callback));\n }\n\n map(callback: (node: Node) => Node) {\n return new Visitor(this.root, this.selectedNodes.map(callback));\n }\n\n selectRoot() {\n if (this.root == null) {\n return this;\n }\n\n return new Visitor(this.root, [this.root]);\n }\n\n first() {\n return this.get(0);\n }\n\n last() {\n return this.get(this.selectedNodes.length - 1);\n }\n\n get(index: number) {\n const node = this.selectedNodes[index];\n\n if (node == null) {\n throw new Error(\n `Couldn't find node at index: ${index}, out of ${this.selectedNodes.length}.`\n );\n }\n\n return new Visitor(node, []);\n }\n\n clear() {\n this.selectedNodes = [];\n return this;\n }\n\n setRoot(root: Node | null) {\n this.root = root;\n return this;\n }\n\n static select(root: Node, callback?: (node: Node) => boolean) {\n if (callback != null) {\n return new Visitor(root).select(callback);\n } else {\n return new Visitor(root);\n }\n }\n\n static walkUp(\n node: Node,\n callback: (node: Node, ancestors: Node[]) => void,\n ancestors: Node[] = []\n ) {\n ancestors.push(node);\n\n if (node.children.length > 0) {\n const children = node.children.slice();\n children.forEach((c) => this.walkUp(c, callback, ancestors));\n }\n\n ancestors.pop();\n callback(node, ancestors);\n\n return this;\n }\n\n static walkDown(\n node: Node,\n callback: (node: Node, ancestors: Node[]) => void,\n ancestors: Node[] = []\n ) {\n callback(node, ancestors);\n ancestors.push(node);\n\n if (node.children.length > 0) {\n const children = node.children.slice();\n children.forEach((c) => this.walkDown(c, callback, ancestors));\n }\n\n ancestors.pop();\n return this;\n }\n}\n","import Node from \"./ast/Node\";\nimport Cursor from \"./Cursor\";\nimport { Match } from \"./CursorHistory\";\nimport Pattern from \"./patterns/Pattern\";\n\nexport interface Token {\n startIndex: number;\n values: string[];\n}\n\nexport interface SuggestionError {\n startIndex: number;\n endIndex: number;\n text: string;\n}\n\nexport interface SuggestionMatch {\n startIndex: number;\n endIndex: number;\n text: string;\n}\n\nexport interface SuggestionResult {\n pattern: Pattern | null;\n astNode: Node | null;\n match: SuggestionMatch | null;\n error: SuggestionError | null;\n options: Token;\n isComplete: boolean;\n parseStack: Node[];\n}\n\nexport default class TextSuggester {\n private cursor: Cursor | null = null;\n private result: Node | null = null;\n private text: string = \"\";\n private match: SuggestionMatch | null = null;\n private error: SuggestionError | null = null;\n private patternMatch: Match | null = null;\n private matchedText: string = \"\";\n private rootPattern: Pattern | null = null;\n private tokens: Token | null = {\n startIndex: 0,\n values: [],\n };\n private options: string[] = [];\n private parseStack: Node[] = [];\n\n suggest(text: string, pattern: Pattern) {\n this.reset();\n\n this.text = text;\n this.rootPattern = pattern;\n\n // If no text all options are available.\n if (text.length === 0) {\n return {\n pattern: null,\n astNode: null,\n match: null,\n error: null,\n options: {\n startIndex: 0,\n values: pattern.getTokens(),\n },\n isComplete: false,\n parseStack: [],\n } as SuggestionResult;\n }\n\n this.parse();\n this.saveParseStack();\n this.saveMatchedText();\n this.saveMatch();\n this.saveError();\n this.saveOptions();\n this.saveNextToken();\n\n return {\n pattern: this.patternMatch?.pattern || null,\n astNode: this.patternMatch?.astNode || null,\n match: this.match,\n error: this.error,\n options: this.tokens,\n isComplete: this.cursor?.didSuccessfullyParse() || false,\n parseStack: this.parseStack,\n } as SuggestionResult;\n }\n\n private reset() {\n this.cursor = null;\n this.result = null;\n this.text = \"\";\n this.match = null;\n this.error = null;\n this.patternMatch = null;\n this.matchedText = \"\";\n this.rootPattern = null;\n this.tokens = {\n startIndex: 0,\n values: [],\n };\n this.options = [];\n this.parseStack = [];\n }\n\n private parse() {\n this.rootPattern = this.rootPattern;\n this.cursor = new Cursor(this.text || \"\");\n this.cursor.startRecording();\n this.result = this.rootPattern?.parse(this.cursor) || null;\n this.patternMatch = this.cursor.lastMatch;\n }\n\n private saveParseStack() {\n this.parseStack = this.cursor?.history.getLastParseStack() || [];\n }\n\n private saveMatchedText() {\n if (this.patternMatch?.astNode != null) {\n this.matchedText =\n this.text?.substring(0, this.patternMatch.astNode.endIndex + 1) || \"\";\n }\n }\n\n private saveMatch() {\n const node = this.patternMatch?.astNode;\n\n if (node == null) {\n this.match = null;\n return;\n }\n\n let endIndex = this.matchedText.length - 1;\n\n this.match = {\n text: this.matchedText,\n startIndex: 0,\n endIndex: endIndex,\n };\n }\n\n private saveError() {\n if (this.patternMatch?.astNode == null) {\n this.error = {\n startIndex: 0,\n endIndex: this.text.length - 1,\n text: this.text,\n };\n return this;\n }\n\n if (\n this.patternMatch != null &&\n this.text.length > this.matchedText.length\n ) {\n const difference = this.text.length - this.matchedText.length;\n const startIndex = this.patternMatch.astNode.endIndex + 1;\n const endIndex = startIndex + difference - 1;\n\n this.error = {\n startIndex: startIndex,\n endIndex: endIndex,\n text: this.text.substring(startIndex, endIndex + 1),\n };\n\n return;\n } else {\n this.error = null;\n return;\n }\n }\n\n private saveNextToken() {\n const isCompleteMatch =\n this.patternMatch?.pattern === this.rootPattern &&\n this.cursor?.didSuccessfullyParse();\n const noMatch = this.patternMatch?.astNode == null;\n const noOptions = this.options.length === 0;\n\n if (isCompleteMatch && noOptions) {\n this.tokens = null;\n return;\n }\n\n if (noMatch) {\n let options = this.rootPattern?.getTokens();\n\n options = options?.filter((option: any) => {\n return option.indexOf(this.text) === 0;\n });\n\n if (options?.length === 0) {\n this.tokens = null;\n return;\n }\n\n const values = options?.map((option) => {\n const parts = option.split(this.text);\n return parts[1];\n });\n\n this.tokens = {\n startIndex: 0,\n values: values || [],\n };\n\n this.matchedText = this.text;\n this.match = {\n text: this.text,\n startIndex: 0,\n endIndex: this.text.length - 1,\n };\n this.error = null;\n\n return;\n }\n\n const options = this.options;\n let startIndex = this.matchedText.length;\n\n if (this.matchedText.length < this.text.length) {\n const leftOver = this.text.substring(this.matchedText.length);\n const partialMatchOptions = options\n .filter((option: any) => {\n return option.indexOf(leftOver) === 0;\n })\n .map((option: any) => {\n return option.substring(leftOver.length);\n });\n\n if (partialMatchOptions.length === 0) {\n this.tokens = null;\n return;\n } else {\n if (this.match == null) {\n return;\n }\n\n this.match = {\n text: this.match.text + leftOver,\n startIndex: this.match.startIndex,\n endIndex: this.match.endIndex + leftOver.length,\n };\n\n this.error = null;\n\n this.tokens = {\n startIndex: this.match.endIndex + 1,\n values: partialMatchOptions,\n };\n\n return;\n }\n }\n\n this.tokens = {\n startIndex,\n values: options,\n };\n }\n\n private saveOptions() {\n const parents = new Map<Pattern, Pattern>();\n const cursor = this.cursor;\n\n if (cursor == null) {\n this.options = [];\n return;\n }\n\n const furthestMatches = cursor.history.astNodes.reduce(\n (acc: any, node: any, index: any) => {\n const pattern = cursor.history.patterns[index];\n const parent = pattern.parent;\n\n if (parent != null) {\n parents.set(parent, parent);\n }\n\n if (parents.has(pattern)){\n return acc;\n }\n\n if (node.endIndex === acc.furthestTextIndex) {\n acc.nodeIndexes.push(index);\n } else if (node.endIndex > acc.furthestTextIndex) {\n acc.furthestTextIndex = node.endIndex;\n acc.nodeIndexes = [index];\n }\n\n return acc;\n },\n { furthestTextIndex: -1, nodeIndexes: [] }\n );\n\n const matches = furthestMatches.nodeIndexes.reduce(\n (acc: any, index: any) => {\n const pattern = this.cursor?.history.patterns[index];\n const tokens = pattern?.getNextTokens();\n\n tokens?.forEach((token: any) => {\n acc[token] = true;\n });\n\n return acc;\n },\n {}\n );\n\n this.options = Object.keys(matches);\n }\n\n static suggest(text: string, pattern: Pattern) {\n return new TextSuggester().suggest(text, pattern);\n }\n}\n"],"names":["ParserError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.browser.js","sources":["../src/ast/Node.ts","../src/patterns/ParseError.ts","../src/patterns/CursorHistory.ts","../src/patterns/Cursor.ts","../src/patterns/Regex.ts","../src/patterns/clonePatterns.ts","../src/patterns/filterOutNull.ts","../src/patterns/findPattern.ts","../src/patterns/And.ts","../src/patterns/Literal.ts","../src/patterns/Not.ts","../src/patterns/Or.ts","../src/patterns/Repeat.ts","../src/patterns/Reference.ts","../src/intellisense/AutoComplete.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import Node from "./ast/Node";
|
|
2
|
-
import Cursor from "./Cursor";
|
|
3
|
-
import Regex from "./patterns/Regex";
|
|
4
|
-
import And from "./patterns/And";
|
|
5
|
-
import Literal from "./patterns/Literal";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export { Node,
|
|
1
|
+
import { Node } from "./ast/Node";
|
|
2
|
+
import { Cursor } from "./patterns/Cursor";
|
|
3
|
+
import { Regex } from "./patterns/Regex";
|
|
4
|
+
import { And } from "./patterns/And";
|
|
5
|
+
import { Literal } from "./patterns/Literal";
|
|
6
|
+
import { Not } from "./patterns/Not";
|
|
7
|
+
import { Or } from "./patterns/Or";
|
|
8
|
+
import { Repeat } from "./patterns/Repeat";
|
|
9
|
+
import { ParseError } from "./patterns/ParseError";
|
|
10
|
+
import { Pattern } from "./patterns/Pattern";
|
|
11
|
+
import { Reference } from "./patterns/Reference";
|
|
12
|
+
import { AutoComplete } from './intellisense/AutoComplete';
|
|
13
|
+
import { CursorHistory, Match } from "./patterns/CursorHistory";
|
|
14
|
+
import { ParseResult } from "./patterns/ParseResult";
|
|
15
|
+
import { Suggestion } from "./intellisense/Suggestion";
|
|
16
|
+
import { SuggestionOption } from "./intellisense/SuggestionOption";
|
|
17
|
+
export { Node, AutoComplete, Suggestion, SuggestionOption, And, Cursor, CursorHistory, Match, Literal, Not, Or, ParseError, ParseResult, Pattern, Reference, Regex, Repeat, };
|