@irrelon/battlescript 3.2.1 → 3.2.2

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/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/antlr4ts/Decorators.js","../node_modules/antlr4ts/atn/Transition.js","../node_modules/antlr4ts/atn/ActionTransition.js","../node_modules/antlr4ts/misc/MurmurHash.js","../node_modules/antlr4ts/misc/ObjectEqualityComparator.js","../node_modules/antlr4ts/misc/DefaultEqualityComparator.js","../node_modules/antlr4ts/misc/Array2DHashSet.js","../node_modules/antlr4ts/misc/Array2DHashMap.js","../node_modules/antlr4ts/misc/ArrayEqualityComparator.js","../node_modules/antlr4ts/atn/ATNState.js","../node_modules/antlr4ts/atn/DecisionState.js","../node_modules/antlr4ts/misc/Arrays.js","../node_modules/antlr4ts/atn/PredictionContextCache.js","../node_modules/antlr4ts/atn/PredictionContext.js","../node_modules/antlr4ts/misc/Utils.js","../node_modules/antlr4ts/atn/SemanticContext.js","../node_modules/antlr4ts/atn/ATNConfig.js","../node_modules/antlr4ts/misc/BitSet.js","../node_modules/antlr4ts/atn/ATNConfigSet.js","../node_modules/antlr4ts/dfa/DFAState.js","../node_modules/antlr4ts/atn/ATNSimulator.js","../node_modules/antlr4ts/ConsoleErrorListener.js","../node_modules/antlr4ts/ProxyErrorListener.js","../node_modules/antlr4ts/IntStream.js","../node_modules/antlr4ts/Token.js","../node_modules/antlr4ts/Recognizer.js","../node_modules/antlr4ts/VocabularyImpl.js","../node_modules/antlr4ts/dfa/DFASerializer.js","../node_modules/antlr4ts/dfa/LexerDFASerializer.js","../node_modules/antlr4ts/atn/ATNStateType.js","../node_modules/antlr4ts/atn/StarLoopEntryState.js","../node_modules/antlr4ts/dfa/DFA.js","../node_modules/antlr4ts/misc/IntegerList.js","../node_modules/antlr4ts/misc/Interval.js","../node_modules/antlr4ts/CommonToken.js","../node_modules/antlr4ts/CommonTokenFactory.js","../node_modules/antlr4ts/misc/IntegerStack.js","../node_modules/antlr4ts/dfa/AcceptStateInfo.js","../node_modules/antlr4ts/atn/LexerIndexedCustomAction.js","../node_modules/antlr4ts/atn/LexerActionExecutor.js","../node_modules/antlr4ts/RecognitionException.js","../node_modules/antlr4ts/LexerNoViableAltException.js","../node_modules/antlr4ts/atn/OrderedATNConfigSet.js","../node_modules/antlr4ts/atn/RuleStopState.js","../node_modules/antlr4ts/atn/LexerATNSimulator.js","../node_modules/antlr4ts/Lexer.js","../node_modules/antlr4ts/misc/IntervalSet.js","../node_modules/antlr4ts/atn/BasicState.js","../node_modules/antlr4ts/atn/InvalidState.js","../node_modules/antlr4ts/atn/AbstractPredicateTransition.js","../node_modules/antlr4ts/atn/SetTransition.js","../node_modules/antlr4ts/atn/NotSetTransition.js","../node_modules/antlr4ts/atn/RuleTransition.js","../node_modules/antlr4ts/atn/WildcardTransition.js","../node_modules/antlr4ts/atn/LL1Analyzer.js","../node_modules/antlr4ts/atn/ATN.js","../node_modules/antlr4ts/atn/ATNDeserializationOptions.js","../node_modules/antlr4ts/atn/AtomTransition.js","../node_modules/antlr4ts/atn/BlockStartState.js","../node_modules/antlr4ts/atn/BasicBlockStartState.js","../node_modules/antlr4ts/atn/BlockEndState.js","../node_modules/antlr4ts/atn/EpsilonTransition.js","../node_modules/antlr4ts/atn/LexerChannelAction.js","../node_modules/antlr4ts/atn/LexerCustomAction.js","../node_modules/antlr4ts/atn/LexerModeAction.js","../node_modules/antlr4ts/atn/LexerMoreAction.js","../node_modules/antlr4ts/atn/LexerPopModeAction.js","../node_modules/antlr4ts/atn/LexerPushModeAction.js","../node_modules/antlr4ts/atn/LexerSkipAction.js","../node_modules/antlr4ts/atn/LexerTypeAction.js","../node_modules/antlr4ts/atn/LoopEndState.js","../node_modules/antlr4ts/atn/ConflictInfo.js","../node_modules/antlr4ts/atn/PredicateTransition.js","../node_modules/antlr4ts/FailedPredicateException.js","../node_modules/antlr4ts/InputMismatchException.js","../node_modules/antlr4ts/DefaultErrorStrategy.js","../node_modules/antlr4ts/tree/TerminalNode.js","../node_modules/antlr4ts/tree/ErrorNode.js","../node_modules/antlr4ts/atn/ParseInfo.js","../node_modules/antlr4ts/ProxyParserErrorListener.js","../node_modules/antlr4ts/misc/ParseCancellationException.js","../node_modules/antlr4ts/BailErrorStrategy.js","../node_modules/antlr4ts/misc/Character.js","../node_modules/antlr4ts/CodePointBuffer.js","../node_modules/antlr4ts/CodePointCharStream.js","../node_modules/antlr4ts/CharStreams.js","../node_modules/antlr4ts/BufferedTokenStream.js","../node_modules/antlr4ts/CommonTokenStream.js","../node_modules/antlr4ts/ListTokenSource.js","../node_modules/antlr4ts/misc/MultiMap.js","../node_modules/antlr4ts/tree/RuleNode.js","../node_modules/antlr4ts/tree/Trees.js","../node_modules/antlr4ts/RuleContext.js","../node_modules/antlr4ts/ParserRuleContext.js","../node_modules/antlr4ts/InterpreterRuleContext.js","../node_modules/antlr4ts/ParserInterpreter.js","../node_modules/antlr4ts/tree/pattern/ParseTreeMatch.js","../node_modules/antlr4ts/tree/xpath/XPathLexer.js","../node_modules/antlr4ts/tree/xpath/XPathLexerErrorListener.js","../node_modules/antlr4ts/tree/xpath/XPathElement.js","../node_modules/antlr4ts/tree/xpath/XPathRuleAnywhereElement.js","../node_modules/antlr4ts/tree/xpath/XPathRuleElement.js","../node_modules/antlr4ts/tree/xpath/XPathTokenAnywhereElement.js","../node_modules/antlr4ts/tree/xpath/XPathTokenElement.js","../node_modules/antlr4ts/tree/xpath/XPathWildcardAnywhereElement.js","../node_modules/antlr4ts/tree/xpath/XPathWildcardElement.js","../node_modules/antlr4ts/tree/xpath/XPath.js","../node_modules/antlr4ts/tree/pattern/ParseTreePattern.js","../node_modules/antlr4ts/tree/pattern/RuleTagToken.js","../node_modules/antlr4ts/tree/pattern/Chunk.js","../node_modules/antlr4ts/tree/pattern/TagChunk.js","../node_modules/antlr4ts/tree/pattern/TextChunk.js","../node_modules/antlr4ts/tree/pattern/TokenTagToken.js","../node_modules/antlr4ts/tree/pattern/ParseTreePatternMatcher.js","../node_modules/antlr4ts/atn/DecisionEventInfo.js","../node_modules/antlr4ts/atn/AmbiguityInfo.js","../node_modules/antlr4ts/atn/ContextSensitivityInfo.js","../node_modules/antlr4ts/atn/DecisionInfo.js","../node_modules/antlr4ts/atn/ErrorInfo.js","../node_modules/antlr4ts/atn/LookaheadEventInfo.js","../node_modules/antlr4ts/atn/PredicateEvalInfo.js","../node_modules/antlr4ts/atn/SimulatorState.js","../node_modules/antlr4ts/atn/ProfilingATNSimulator.js","../node_modules/antlr4ts/Parser.js","../node_modules/antlr4ts/NoViableAltException.js","../node_modules/antlr4ts/atn/PredictionMode.js","../node_modules/antlr4ts/atn/ParserATNSimulator.js","../node_modules/antlr4ts/atn/PlusBlockStartState.js","../node_modules/antlr4ts/atn/PlusLoopbackState.js","../node_modules/antlr4ts/atn/PrecedencePredicateTransition.js","../node_modules/antlr4ts/atn/RangeTransition.js","../node_modules/antlr4ts/atn/RuleStartState.js","../node_modules/antlr4ts/atn/StarBlockStartState.js","../node_modules/antlr4ts/atn/StarLoopbackState.js","../node_modules/antlr4ts/atn/TokensStartState.js","../node_modules/antlr4ts/misc/UUID.js","../node_modules/antlr4ts/atn/ATNDeserializer.js","../node_modules/antlr4ts/tree/AbstractParseTreeVisitor.js","../node_modules/antlr4ts/ANTLRErrorListener.js","../node_modules/antlr4ts/ANTLRErrorStrategy.js","../node_modules/antlr4ts/ANTLRInputStream.js","../node_modules/antlr4ts/CharStream.js","../node_modules/antlr4ts/Dependents.js","../node_modules/antlr4ts/DiagnosticErrorListener.js","../node_modules/antlr4ts/LexerInterpreter.js","../node_modules/antlr4ts/ParserErrorListener.js","../node_modules/antlr4ts/RuleContextWithAltNum.js","../node_modules/antlr4ts/RuleDependency.js","../node_modules/antlr4ts/RuleVersion.js","../node_modules/antlr4ts/TokenFactory.js","../node_modules/antlr4ts/TokenSource.js","../node_modules/antlr4ts/TokenStream.js","../node_modules/antlr4ts/TokenStreamRewriter.js","../node_modules/antlr4ts/Vocabulary.js","../node_modules/antlr4ts/WritableToken.js","../node_modules/antlr4ts/index.js"],"sourcesContent":["\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SuppressWarnings = exports.Override = exports.Nullable = exports.NotNull = void 0;\r\nfunction NotNull(target, propertyKey, propertyDescriptor) {\r\n // intentionally empty\r\n}\r\nexports.NotNull = NotNull;\r\nfunction Nullable(target, propertyKey, propertyDescriptor) {\r\n // intentionally empty\r\n}\r\nexports.Nullable = Nullable;\r\nfunction Override(target, propertyKey, propertyDescriptor) {\r\n // do something with 'target' ...\r\n}\r\nexports.Override = Override;\r\nfunction SuppressWarnings(options) {\r\n return (target, propertyKey, descriptor) => {\r\n // intentionally empty\r\n };\r\n}\r\nexports.SuppressWarnings = SuppressWarnings;\r\n//# sourceMappingURL=Decorators.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Transition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** An ATN transition between any two ATN states. Subclasses define\r\n * atom, set, epsilon, action, predicate, rule transitions.\r\n *\r\n * This is a one way link. It emanates from a state (usually via a list of\r\n * transitions) and has a target state.\r\n *\r\n * Since we never have to change the ATN transitions once we construct it,\r\n * we can fix these transitions as specific classes. The DFA transitions\r\n * on the other hand need to update the labels as it adds transitions to\r\n * the states. We'll use the term Edge for the DFA to distinguish them from\r\n * ATN transitions.\r\n */\r\nlet Transition = class Transition {\r\n constructor(target) {\r\n if (target == null) {\r\n throw new Error(\"target cannot be null.\");\r\n }\r\n this.target = target;\r\n }\r\n /**\r\n * Determines if the transition is an \"epsilon\" transition.\r\n *\r\n * The default implementation returns `false`.\r\n *\r\n * @returns `true` if traversing this transition in the ATN does not\r\n * consume an input symbol; otherwise, `false` if traversing this\r\n * transition consumes (matches) an input symbol.\r\n */\r\n get isEpsilon() {\r\n return false;\r\n }\r\n get label() {\r\n return undefined;\r\n }\r\n};\r\nTransition.serializationNames = [\r\n \"INVALID\",\r\n \"EPSILON\",\r\n \"RANGE\",\r\n \"RULE\",\r\n \"PREDICATE\",\r\n \"ATOM\",\r\n \"ACTION\",\r\n \"SET\",\r\n \"NOT_SET\",\r\n \"WILDCARD\",\r\n \"PRECEDENCE\",\r\n];\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Transition.prototype, \"target\", void 0);\r\nTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Transition);\r\nexports.Transition = Transition;\r\n//# sourceMappingURL=Transition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ActionTransition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\nlet ActionTransition = class ActionTransition extends Transition_1.Transition {\r\n constructor(target, ruleIndex, actionIndex = -1, isCtxDependent = false) {\r\n super(target);\r\n this.ruleIndex = ruleIndex;\r\n this.actionIndex = actionIndex;\r\n this.isCtxDependent = isCtxDependent;\r\n }\r\n get serializationType() {\r\n return 6 /* ACTION */;\r\n }\r\n get isEpsilon() {\r\n return true; // we are to be ignored by analysis 'cept for predicates\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return false;\r\n }\r\n toString() {\r\n return \"action_\" + this.ruleIndex + \":\" + this.actionIndex;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionTransition.prototype, \"isEpsilon\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionTransition.prototype, \"toString\", null);\r\nActionTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ActionTransition);\r\nexports.ActionTransition = ActionTransition;\r\n//# sourceMappingURL=ActionTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MurmurHash = void 0;\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nvar MurmurHash;\r\n(function (MurmurHash) {\r\n const DEFAULT_SEED = 0;\r\n /**\r\n * Initialize the hash using the specified `seed`.\r\n *\r\n * @param seed the seed (optional)\r\n * @returns the intermediate hash value\r\n */\r\n function initialize(seed = DEFAULT_SEED) {\r\n return seed;\r\n }\r\n MurmurHash.initialize = initialize;\r\n /**\r\n * Update the intermediate hash value for the next input `value`.\r\n *\r\n * @param hash the intermediate hash value\r\n * @param value the value to add to the current hash\r\n * @returns the updated intermediate hash value\r\n */\r\n function update(hash, value) {\r\n const c1 = 0xCC9E2D51;\r\n const c2 = 0x1B873593;\r\n const r1 = 15;\r\n const r2 = 13;\r\n const m = 5;\r\n const n = 0xE6546B64;\r\n if (value == null) {\r\n value = 0;\r\n }\r\n else if (typeof value === \"string\") {\r\n value = hashString(value);\r\n }\r\n else if (typeof value === \"object\") {\r\n value = value.hashCode();\r\n }\r\n let k = value;\r\n k = Math.imul(k, c1);\r\n k = (k << r1) | (k >>> (32 - r1));\r\n k = Math.imul(k, c2);\r\n hash = hash ^ k;\r\n hash = (hash << r2) | (hash >>> (32 - r2));\r\n hash = Math.imul(hash, m) + n;\r\n return hash & 0xFFFFFFFF;\r\n }\r\n MurmurHash.update = update;\r\n /**\r\n * Apply the final computation steps to the intermediate value `hash`\r\n * to form the final result of the MurmurHash 3 hash function.\r\n *\r\n * @param hash the intermediate hash value\r\n * @param numberOfWords the number of integer values added to the hash\r\n * @returns the final hash result\r\n */\r\n function finish(hash, numberOfWords) {\r\n hash = hash ^ (numberOfWords * 4);\r\n hash = hash ^ (hash >>> 16);\r\n hash = Math.imul(hash, 0x85EBCA6B);\r\n hash = hash ^ (hash >>> 13);\r\n hash = Math.imul(hash, 0xC2B2AE35);\r\n hash = hash ^ (hash >>> 16);\r\n return hash;\r\n }\r\n MurmurHash.finish = finish;\r\n /**\r\n * Utility function to compute the hash code of an array using the\r\n * MurmurHash algorithm.\r\n *\r\n * @param <T> the array element type\r\n * @param data the array data\r\n * @param seed the seed for the MurmurHash algorithm\r\n * @returns the hash code of the data\r\n */\r\n function hashCode(data, seed = DEFAULT_SEED) {\r\n let hash = initialize(seed);\r\n let length = 0;\r\n for (let value of data) {\r\n hash = update(hash, value);\r\n length++;\r\n }\r\n hash = finish(hash, length);\r\n return hash;\r\n }\r\n MurmurHash.hashCode = hashCode;\r\n /**\r\n * Function to hash a string. Based on the implementation found here:\r\n * http://stackoverflow.com/a/7616484\r\n */\r\n function hashString(str) {\r\n let len = str.length;\r\n if (len === 0) {\r\n return 0;\r\n }\r\n let hash = 0;\r\n for (let i = 0; i < len; i++) {\r\n let c = str.charCodeAt(i);\r\n hash = (((hash << 5) >>> 0) - hash) + c;\r\n hash |= 0;\r\n }\r\n return hash;\r\n }\r\n})(MurmurHash = exports.MurmurHash || (exports.MurmurHash = {}));\r\n//# sourceMappingURL=MurmurHash.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectEqualityComparator = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This default implementation of {@link EqualityComparator} uses object equality\r\n * for comparisons by calling {@link Object#hashCode} and {@link Object#equals}.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ObjectEqualityComparator {\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation returns\r\n * `obj.`{@link Object#hashCode hashCode()}.\r\n */\r\n hashCode(obj) {\r\n if (obj == null) {\r\n return 0;\r\n }\r\n return obj.hashCode();\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation relies on object equality. If both objects are\r\n * `undefined` or `null`, this method returns `true`. Otherwise if only\r\n * `a` is `undefined` or `null`, this method returns `false`. Otherwise,\r\n * this method returns the result of\r\n * `a.`{@link Object#equals equals}`(b)`.\r\n */\r\n equals(a, b) {\r\n if (a == null) {\r\n return b == null;\r\n }\r\n return a.equals(b);\r\n }\r\n}\r\nObjectEqualityComparator.INSTANCE = new ObjectEqualityComparator();\r\n__decorate([\r\n Decorators_1.Override\r\n], ObjectEqualityComparator.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ObjectEqualityComparator.prototype, \"equals\", null);\r\nexports.ObjectEqualityComparator = ObjectEqualityComparator;\r\n//# sourceMappingURL=ObjectEqualityComparator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultEqualityComparator = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\nconst ObjectEqualityComparator_1 = require(\"./ObjectEqualityComparator\");\r\n/**\r\n * This default implementation of {@link EqualityComparator} uses object equality\r\n * for comparisons by calling {@link Object#hashCode} and {@link Object#equals}.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass DefaultEqualityComparator {\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation returns\r\n * `obj.`{@link Object#hashCode hashCode()}.\r\n */\r\n hashCode(obj) {\r\n if (obj == null) {\r\n return 0;\r\n }\r\n else if (typeof obj === \"string\" || typeof obj === \"number\") {\r\n return MurmurHash_1.MurmurHash.hashCode([obj]);\r\n }\r\n else {\r\n return ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE.hashCode(obj);\r\n }\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation relies on object equality. If both objects are\r\n * `undefined` or `null`, this method returns `true`. Otherwise if only\r\n * `a` is `undefined` or `null`, this method returns `false`. Otherwise,\r\n * this method returns the result of\r\n * `a.`{@link Object#equals equals}`(b)`.\r\n */\r\n equals(a, b) {\r\n if (a == null) {\r\n return b == null;\r\n }\r\n else if (typeof a === \"string\" || typeof a === \"number\") {\r\n return a === b;\r\n }\r\n else {\r\n return ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE.equals(a, b);\r\n }\r\n }\r\n}\r\nDefaultEqualityComparator.INSTANCE = new DefaultEqualityComparator();\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultEqualityComparator.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultEqualityComparator.prototype, \"equals\", null);\r\nexports.DefaultEqualityComparator = DefaultEqualityComparator;\r\n//# sourceMappingURL=DefaultEqualityComparator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Array2DHashSet = void 0;\r\n// ConvertTo-TS run at 2016-10-03T02:09:41.7434086-07:00\r\nconst assert = require(\"assert\");\r\nconst DefaultEqualityComparator_1 = require(\"./DefaultEqualityComparator\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\n/** {@link Set} implementation with closed hashing (open addressing). */\r\n// NOTE: JavaScript's Set interface has on significant different diffrence from Java's:\r\n// \t\t e.g. the return type of add() differs!\r\n// For this reason I've commented tweaked the implements clause\r\nconst INITAL_CAPACITY = 16; // must be power of 2\r\nconst LOAD_FACTOR = 0.75;\r\nclass Array2DHashSet {\r\n constructor(comparatorOrSet, initialCapacity = INITAL_CAPACITY) {\r\n /** How many elements in set */\r\n this.n = 0;\r\n this.threshold = Math.floor(INITAL_CAPACITY * LOAD_FACTOR); // when to expand\r\n if (comparatorOrSet instanceof Array2DHashSet) {\r\n this.comparator = comparatorOrSet.comparator;\r\n this.buckets = comparatorOrSet.buckets.slice(0);\r\n for (let i = 0; i < this.buckets.length; i++) {\r\n let bucket = this.buckets[i];\r\n if (bucket) {\r\n this.buckets[i] = bucket.slice(0);\r\n }\r\n }\r\n this.n = comparatorOrSet.n;\r\n this.threshold = comparatorOrSet.threshold;\r\n }\r\n else {\r\n this.comparator = comparatorOrSet || DefaultEqualityComparator_1.DefaultEqualityComparator.INSTANCE;\r\n this.buckets = this.createBuckets(initialCapacity);\r\n }\r\n }\r\n /**\r\n * Add `o` to set if not there; return existing value if already\r\n * there. This method performs the same operation as {@link #add} aside from\r\n * the return value.\r\n */\r\n getOrAdd(o) {\r\n if (this.n > this.threshold) {\r\n this.expand();\r\n }\r\n return this.getOrAddImpl(o);\r\n }\r\n getOrAddImpl(o) {\r\n let b = this.getBucket(o);\r\n let bucket = this.buckets[b];\r\n // NEW BUCKET\r\n if (!bucket) {\r\n bucket = [o];\r\n this.buckets[b] = bucket;\r\n this.n++;\r\n return o;\r\n }\r\n // LOOK FOR IT IN BUCKET\r\n for (let existing of bucket) {\r\n if (this.comparator.equals(existing, o)) {\r\n return existing; // found existing, quit\r\n }\r\n }\r\n // FULL BUCKET, expand and add to end\r\n bucket.push(o);\r\n this.n++;\r\n return o;\r\n }\r\n get(o) {\r\n if (o == null) {\r\n return o;\r\n }\r\n let b = this.getBucket(o);\r\n let bucket = this.buckets[b];\r\n if (!bucket) {\r\n // no bucket\r\n return undefined;\r\n }\r\n for (let e of bucket) {\r\n if (this.comparator.equals(e, o)) {\r\n return e;\r\n }\r\n }\r\n return undefined;\r\n }\r\n getBucket(o) {\r\n let hash = this.comparator.hashCode(o);\r\n let b = hash & (this.buckets.length - 1); // assumes len is power of 2\r\n return b;\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n for (let bucket of this.buckets) {\r\n if (bucket == null) {\r\n continue;\r\n }\r\n for (let o of bucket) {\r\n if (o == null) {\r\n break;\r\n }\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.comparator.hashCode(o));\r\n }\r\n }\r\n hash = MurmurHash_1.MurmurHash.finish(hash, this.size);\r\n return hash;\r\n }\r\n equals(o) {\r\n if (o === this) {\r\n return true;\r\n }\r\n if (!(o instanceof Array2DHashSet)) {\r\n return false;\r\n }\r\n if (o.size !== this.size) {\r\n return false;\r\n }\r\n let same = this.containsAll(o);\r\n return same;\r\n }\r\n expand() {\r\n let old = this.buckets;\r\n let newCapacity = this.buckets.length * 2;\r\n let newTable = this.createBuckets(newCapacity);\r\n this.buckets = newTable;\r\n this.threshold = Math.floor(newCapacity * LOAD_FACTOR);\r\n //\t\tSystem.out.println(\"new size=\"+newCapacity+\", thres=\"+threshold);\r\n // rehash all existing entries\r\n let oldSize = this.size;\r\n for (let bucket of old) {\r\n if (!bucket) {\r\n continue;\r\n }\r\n for (let o of bucket) {\r\n let b = this.getBucket(o);\r\n let newBucket = this.buckets[b];\r\n if (!newBucket) {\r\n newBucket = [];\r\n this.buckets[b] = newBucket;\r\n }\r\n newBucket.push(o);\r\n }\r\n }\r\n assert(this.n === oldSize);\r\n }\r\n add(t) {\r\n let existing = this.getOrAdd(t);\r\n return existing === t;\r\n }\r\n get size() {\r\n return this.n;\r\n }\r\n get isEmpty() {\r\n return this.n === 0;\r\n }\r\n contains(o) {\r\n return this.containsFast(this.asElementType(o));\r\n }\r\n containsFast(obj) {\r\n if (obj == null) {\r\n return false;\r\n }\r\n return this.get(obj) != null;\r\n }\r\n *[Symbol.iterator]() {\r\n yield* this.toArray();\r\n }\r\n toArray() {\r\n const a = new Array(this.size);\r\n // Copy elements from the nested arrays into the destination array\r\n let i = 0; // Position within destination array\r\n for (let bucket of this.buckets) {\r\n if (bucket == null) {\r\n continue;\r\n }\r\n for (let o of bucket) {\r\n if (o == null) {\r\n break;\r\n }\r\n a[i++] = o;\r\n }\r\n }\r\n return a;\r\n }\r\n containsAll(collection) {\r\n if (collection instanceof Array2DHashSet) {\r\n let s = collection;\r\n for (let bucket of s.buckets) {\r\n if (bucket == null) {\r\n continue;\r\n }\r\n for (let o of bucket) {\r\n if (o == null) {\r\n break;\r\n }\r\n if (!this.containsFast(this.asElementType(o))) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (let o of collection) {\r\n if (!this.containsFast(this.asElementType(o))) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n addAll(c) {\r\n let changed = false;\r\n for (let o of c) {\r\n let existing = this.getOrAdd(o);\r\n if (existing !== o) {\r\n changed = true;\r\n }\r\n }\r\n return changed;\r\n }\r\n clear() {\r\n this.buckets = this.createBuckets(INITAL_CAPACITY);\r\n this.n = 0;\r\n this.threshold = Math.floor(INITAL_CAPACITY * LOAD_FACTOR);\r\n }\r\n toString() {\r\n if (this.size === 0) {\r\n return \"{}\";\r\n }\r\n let buf = \"{\";\r\n let first = true;\r\n for (let bucket of this.buckets) {\r\n if (bucket == null) {\r\n continue;\r\n }\r\n for (let o of bucket) {\r\n if (o == null) {\r\n break;\r\n }\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += \", \";\r\n }\r\n buf += o.toString();\r\n }\r\n }\r\n buf += \"}\";\r\n return buf;\r\n }\r\n toTableString() {\r\n let buf = \"\";\r\n for (let bucket of this.buckets) {\r\n if (bucket == null) {\r\n buf += \"null\\n\";\r\n continue;\r\n }\r\n buf += \"[\";\r\n let first = true;\r\n for (let o of bucket) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += \" \";\r\n }\r\n if (o == null) {\r\n buf += \"_\";\r\n }\r\n else {\r\n buf += o.toString();\r\n }\r\n }\r\n buf += \"]\\n\";\r\n }\r\n return buf;\r\n }\r\n /**\r\n * Return `o` as an instance of the element type `T`. If\r\n * `o` is non-undefined but known to not be an instance of `T`, this\r\n * method returns `undefined`. The base implementation does not perform any\r\n * type checks; override this method to provide strong type checks for the\r\n * {@link #contains} and {@link #remove} methods to ensure the arguments to\r\n * the {@link EqualityComparator} for the set always have the expected\r\n * types.\r\n *\r\n * @param o the object to try and cast to the element type of the set\r\n * @returns `o` if it could be an instance of `T`, otherwise\r\n * `undefined`.\r\n */\r\n asElementType(o) {\r\n return o;\r\n }\r\n /**\r\n * Return an array of `T[]` with length `capacity`.\r\n *\r\n * @param capacity the length of the array to return\r\n * @returns the newly constructed array\r\n */\r\n createBuckets(capacity) {\r\n return new Array(capacity);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Array2DHashSet.prototype, \"comparator\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"add\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"isEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"contains\", null);\r\n__decorate([\r\n __param(0, Decorators_1.Nullable)\r\n], Array2DHashSet.prototype, \"containsFast\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, Symbol.iterator, null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"toArray\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"containsAll\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"addAll\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"clear\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Array2DHashSet.prototype, \"toString\", null);\r\n__decorate([\r\n Decorators_1.SuppressWarnings(\"unchecked\")\r\n], Array2DHashSet.prototype, \"asElementType\", null);\r\n__decorate([\r\n Decorators_1.SuppressWarnings(\"unchecked\")\r\n], Array2DHashSet.prototype, \"createBuckets\", null);\r\nexports.Array2DHashSet = Array2DHashSet;\r\n//# sourceMappingURL=Array2DHashSet.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Array2DHashMap = void 0;\r\nconst Array2DHashSet_1 = require(\"./Array2DHashSet\");\r\nclass MapKeyEqualityComparator {\r\n constructor(keyComparator) {\r\n this.keyComparator = keyComparator;\r\n }\r\n hashCode(obj) {\r\n return this.keyComparator.hashCode(obj.key);\r\n }\r\n equals(a, b) {\r\n return this.keyComparator.equals(a.key, b.key);\r\n }\r\n}\r\nclass Array2DHashMap {\r\n constructor(keyComparer) {\r\n if (keyComparer instanceof Array2DHashMap) {\r\n this.backingStore = new Array2DHashSet_1.Array2DHashSet(keyComparer.backingStore);\r\n }\r\n else {\r\n this.backingStore = new Array2DHashSet_1.Array2DHashSet(new MapKeyEqualityComparator(keyComparer));\r\n }\r\n }\r\n clear() {\r\n this.backingStore.clear();\r\n }\r\n containsKey(key) {\r\n return this.backingStore.contains({ key });\r\n }\r\n get(key) {\r\n let bucket = this.backingStore.get({ key });\r\n if (!bucket) {\r\n return undefined;\r\n }\r\n return bucket.value;\r\n }\r\n get isEmpty() {\r\n return this.backingStore.isEmpty;\r\n }\r\n put(key, value) {\r\n let element = this.backingStore.get({ key, value });\r\n let result;\r\n if (!element) {\r\n this.backingStore.add({ key, value });\r\n }\r\n else {\r\n result = element.value;\r\n element.value = value;\r\n }\r\n return result;\r\n }\r\n putIfAbsent(key, value) {\r\n let element = this.backingStore.get({ key, value });\r\n let result;\r\n if (!element) {\r\n this.backingStore.add({ key, value });\r\n }\r\n else {\r\n result = element.value;\r\n }\r\n return result;\r\n }\r\n get size() {\r\n return this.backingStore.size;\r\n }\r\n hashCode() {\r\n return this.backingStore.hashCode();\r\n }\r\n equals(o) {\r\n if (!(o instanceof Array2DHashMap)) {\r\n return false;\r\n }\r\n return this.backingStore.equals(o.backingStore);\r\n }\r\n}\r\nexports.Array2DHashMap = Array2DHashMap;\r\n//# sourceMappingURL=Array2DHashMap.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ArrayEqualityComparator = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\nconst ObjectEqualityComparator_1 = require(\"./ObjectEqualityComparator\");\r\n/**\r\n * This default implementation of {@link EqualityComparator} uses object equality\r\n * for comparisons by calling {@link Object#hashCode} and {@link Object#equals}.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ArrayEqualityComparator {\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation returns\r\n * `obj.`{@link Object#hashCode hashCode()}.\r\n */\r\n hashCode(obj) {\r\n if (obj == null) {\r\n return 0;\r\n }\r\n return MurmurHash_1.MurmurHash.hashCode(obj, 0);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation relies on object equality. If both objects are\r\n * `undefined`, this method returns `true`. Otherwise if only\r\n * `a` is `undefined`, this method returns `false`. Otherwise,\r\n * this method returns the result of\r\n * `a.`{@link Object#equals equals}`(b)`.\r\n */\r\n equals(a, b) {\r\n if (a == null) {\r\n return b == null;\r\n }\r\n else if (b == null) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < a.length; i++) {\r\n if (!ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE.equals(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\nArrayEqualityComparator.INSTANCE = new ArrayEqualityComparator();\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayEqualityComparator.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayEqualityComparator.prototype, \"equals\", null);\r\nexports.ArrayEqualityComparator = ArrayEqualityComparator;\r\n//# sourceMappingURL=ArrayEqualityComparator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNState = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst INITIAL_NUM_TRANSITIONS = 4;\r\n/**\r\n * The following images show the relation of states and\r\n * {@link ATNState#transitions} for various grammar constructs.\r\n *\r\n * * Solid edges marked with an &#0949; indicate a required\r\n * {@link EpsilonTransition}.\r\n *\r\n * * Dashed edges indicate locations where any transition derived from\r\n * {@link Transition} might appear.\r\n *\r\n * * Dashed nodes are place holders for either a sequence of linked\r\n * {@link BasicState} states or the inclusion of a block representing a nested\r\n * construct in one of the forms below.\r\n *\r\n * * Nodes showing multiple outgoing alternatives with a `...` support\r\n * any number of alternatives (one or more). Nodes without the `...` only\r\n * support the exact number of alternatives shown in the diagram.\r\n *\r\n * <h2>Basic Blocks</h2>\r\n *\r\n * <h3>Rule</h3>\r\n *\r\n * <embed src=\"images/Rule.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h3>Block of 1 or more alternatives</h3>\r\n *\r\n * <embed src=\"images/Block.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h2>Greedy Loops</h2>\r\n *\r\n * <h3>Greedy Closure: `(...)*`</h3>\r\n *\r\n * <embed src=\"images/ClosureGreedy.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h3>Greedy Positive Closure: `(...)+`</h3>\r\n *\r\n * <embed src=\"images/PositiveClosureGreedy.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h3>Greedy Optional: `(...)?`</h3>\r\n *\r\n * <embed src=\"images/OptionalGreedy.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h2>Non-Greedy Loops</h2>\r\n *\r\n * <h3>Non-Greedy Closure: `(...)*?`</h3>\r\n *\r\n * <embed src=\"images/ClosureNonGreedy.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h3>Non-Greedy Positive Closure: `(...)+?`</h3>\r\n *\r\n * <embed src=\"images/PositiveClosureNonGreedy.svg\" type=\"image/svg+xml\"/>\r\n *\r\n * <h3>Non-Greedy Optional: `(...)??`</h3>\r\n *\r\n * <embed src=\"images/OptionalNonGreedy.svg\" type=\"image/svg+xml\"/>\r\n */\r\nclass ATNState {\r\n constructor() {\r\n this.stateNumber = ATNState.INVALID_STATE_NUMBER;\r\n this.ruleIndex = 0; // at runtime, we don't have Rule objects\r\n this.epsilonOnlyTransitions = false;\r\n /** Track the transitions emanating from this ATN state. */\r\n this.transitions = [];\r\n this.optimizedTransitions = this.transitions;\r\n }\r\n /**\r\n * Gets the state number.\r\n *\r\n * @returns the state number\r\n */\r\n getStateNumber() {\r\n return this.stateNumber;\r\n }\r\n /**\r\n * For all states except {@link RuleStopState}, this returns the state\r\n * number. Returns -1 for stop states.\r\n *\r\n * @returns -1 for {@link RuleStopState}, otherwise the state number\r\n */\r\n get nonStopStateNumber() {\r\n return this.getStateNumber();\r\n }\r\n hashCode() {\r\n return this.stateNumber;\r\n }\r\n equals(o) {\r\n // are these states same object?\r\n if (o instanceof ATNState) {\r\n return this.stateNumber === o.stateNumber;\r\n }\r\n return false;\r\n }\r\n get isNonGreedyExitState() {\r\n return false;\r\n }\r\n toString() {\r\n return String(this.stateNumber);\r\n }\r\n getTransitions() {\r\n return this.transitions.slice(0);\r\n }\r\n get numberOfTransitions() {\r\n return this.transitions.length;\r\n }\r\n addTransition(e, index) {\r\n if (this.transitions.length === 0) {\r\n this.epsilonOnlyTransitions = e.isEpsilon;\r\n }\r\n else if (this.epsilonOnlyTransitions !== e.isEpsilon) {\r\n this.epsilonOnlyTransitions = false;\r\n throw new Error(\"ATN state \" + this.stateNumber + \" has both epsilon and non-epsilon transitions.\");\r\n }\r\n this.transitions.splice(index !== undefined ? index : this.transitions.length, 0, e);\r\n }\r\n transition(i) {\r\n return this.transitions[i];\r\n }\r\n setTransition(i, e) {\r\n this.transitions[i] = e;\r\n }\r\n removeTransition(index) {\r\n return this.transitions.splice(index, 1)[0];\r\n }\r\n get onlyHasEpsilonTransitions() {\r\n return this.epsilonOnlyTransitions;\r\n }\r\n setRuleIndex(ruleIndex) {\r\n this.ruleIndex = ruleIndex;\r\n }\r\n get isOptimized() {\r\n return this.optimizedTransitions !== this.transitions;\r\n }\r\n get numberOfOptimizedTransitions() {\r\n return this.optimizedTransitions.length;\r\n }\r\n getOptimizedTransition(i) {\r\n return this.optimizedTransitions[i];\r\n }\r\n addOptimizedTransition(e) {\r\n if (!this.isOptimized) {\r\n this.optimizedTransitions = new Array();\r\n }\r\n this.optimizedTransitions.push(e);\r\n }\r\n setOptimizedTransition(i, e) {\r\n if (!this.isOptimized) {\r\n throw new Error(\"This ATNState is not optimized.\");\r\n }\r\n this.optimizedTransitions[i] = e;\r\n }\r\n removeOptimizedTransition(i) {\r\n if (!this.isOptimized) {\r\n throw new Error(\"This ATNState is not optimized.\");\r\n }\r\n this.optimizedTransitions.splice(i, 1);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNState.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNState.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNState.prototype, \"toString\", null);\r\nexports.ATNState = ATNState;\r\n(function (ATNState) {\r\n ATNState.INVALID_STATE_NUMBER = -1;\r\n})(ATNState = exports.ATNState || (exports.ATNState = {}));\r\n//# sourceMappingURL=ATNState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DecisionState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:28.4381103-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nclass DecisionState extends ATNState_1.ATNState {\r\n constructor() {\r\n super(...arguments);\r\n this.decision = -1;\r\n this.nonGreedy = false;\r\n this.sll = false;\r\n }\r\n}\r\nexports.DecisionState = DecisionState;\r\n//# sourceMappingURL=DecisionState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Arrays = void 0;\r\nvar Arrays;\r\n(function (Arrays) {\r\n /**\r\n * Searches the specified array of numbers for the specified value using the binary search algorithm. The array must\r\n * be sorted prior to making this call. If it is not sorted, the results are unspecified. If the array contains\r\n * multiple elements with the specified value, there is no guarantee which one will be found.\r\n *\r\n * @returns index of the search key, if it is contained in the array; otherwise, (-(insertion point) - 1). The\r\n * insertion point is defined as the point at which the key would be inserted into the array: the index of the first\r\n * element greater than the key, or array.length if all elements in the array are less than the specified key. Note\r\n * that this guarantees that the return value will be >= 0 if and only if the key is found.\r\n */\r\n function binarySearch(array, key, fromIndex, toIndex) {\r\n return binarySearch0(array, fromIndex !== undefined ? fromIndex : 0, toIndex !== undefined ? toIndex : array.length, key);\r\n }\r\n Arrays.binarySearch = binarySearch;\r\n function binarySearch0(array, fromIndex, toIndex, key) {\r\n let low = fromIndex;\r\n let high = toIndex - 1;\r\n while (low <= high) {\r\n let mid = (low + high) >>> 1;\r\n let midVal = array[mid];\r\n if (midVal < key) {\r\n low = mid + 1;\r\n }\r\n else if (midVal > key) {\r\n high = mid - 1;\r\n }\r\n else {\r\n // key found\r\n return mid;\r\n }\r\n }\r\n // key not found.\r\n return -(low + 1);\r\n }\r\n function toString(array) {\r\n let result = \"[\";\r\n let first = true;\r\n for (let element of array) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n result += \", \";\r\n }\r\n if (element === null) {\r\n result += \"null\";\r\n }\r\n else if (element === undefined) {\r\n result += \"undefined\";\r\n }\r\n else {\r\n result += element;\r\n }\r\n }\r\n result += \"]\";\r\n return result;\r\n }\r\n Arrays.toString = toString;\r\n})(Arrays = exports.Arrays || (exports.Arrays = {}));\r\n//# sourceMappingURL=Arrays.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PredictionContextCache = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.6390614-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst assert = require(\"assert\");\r\n/** Used to cache {@link PredictionContext} objects. Its used for the shared\r\n * context cash associated with contexts in DFA states. This cache\r\n * can be used for both lexers and parsers.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass PredictionContextCache {\r\n constructor(enableCache = true) {\r\n this.contexts = new Array2DHashMap_1.Array2DHashMap(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n this.childContexts = new Array2DHashMap_1.Array2DHashMap(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n this.joinContexts = new Array2DHashMap_1.Array2DHashMap(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n this.enableCache = enableCache;\r\n }\r\n getAsCached(context) {\r\n if (!this.enableCache) {\r\n return context;\r\n }\r\n let result = this.contexts.get(context);\r\n if (!result) {\r\n result = context;\r\n this.contexts.put(context, context);\r\n }\r\n return result;\r\n }\r\n getChild(context, invokingState) {\r\n if (!this.enableCache) {\r\n return context.getChild(invokingState);\r\n }\r\n let operands = new PredictionContextCache.PredictionContextAndInt(context, invokingState);\r\n let result = this.childContexts.get(operands);\r\n if (!result) {\r\n result = context.getChild(invokingState);\r\n result = this.getAsCached(result);\r\n this.childContexts.put(operands, result);\r\n }\r\n return result;\r\n }\r\n join(x, y) {\r\n if (!this.enableCache) {\r\n return PredictionContext_1.PredictionContext.join(x, y, this);\r\n }\r\n let operands = new PredictionContextCache.IdentityCommutativePredictionContextOperands(x, y);\r\n let result = this.joinContexts.get(operands);\r\n if (result) {\r\n return result;\r\n }\r\n result = PredictionContext_1.PredictionContext.join(x, y, this);\r\n result = this.getAsCached(result);\r\n this.joinContexts.put(operands, result);\r\n return result;\r\n }\r\n}\r\nexports.PredictionContextCache = PredictionContextCache;\r\nPredictionContextCache.UNCACHED = new PredictionContextCache(false);\r\n(function (PredictionContextCache) {\r\n class PredictionContextAndInt {\r\n constructor(obj, value) {\r\n this.obj = obj;\r\n this.value = value;\r\n }\r\n equals(obj) {\r\n if (!(obj instanceof PredictionContextAndInt)) {\r\n return false;\r\n }\r\n else if (obj === this) {\r\n return true;\r\n }\r\n let other = obj;\r\n return this.value === other.value\r\n && (this.obj === other.obj || (this.obj != null && this.obj.equals(other.obj)));\r\n }\r\n hashCode() {\r\n let hashCode = 5;\r\n hashCode = 7 * hashCode + (this.obj != null ? this.obj.hashCode() : 0);\r\n hashCode = 7 * hashCode + this.value;\r\n return hashCode;\r\n }\r\n }\r\n __decorate([\r\n Decorators_1.Override\r\n ], PredictionContextAndInt.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PredictionContextAndInt.prototype, \"hashCode\", null);\r\n PredictionContextCache.PredictionContextAndInt = PredictionContextAndInt;\r\n class IdentityCommutativePredictionContextOperands {\r\n constructor(x, y) {\r\n assert(x != null);\r\n assert(y != null);\r\n this._x = x;\r\n this._y = y;\r\n }\r\n get x() {\r\n return this._x;\r\n }\r\n get y() {\r\n return this._y;\r\n }\r\n equals(o) {\r\n if (!(o instanceof IdentityCommutativePredictionContextOperands)) {\r\n return false;\r\n }\r\n else if (this === o) {\r\n return true;\r\n }\r\n let other = o;\r\n return (this._x === other._x && this._y === other._y) || (this._x === other._y && this._y === other._x);\r\n }\r\n hashCode() {\r\n return this._x.hashCode() ^ this._y.hashCode();\r\n }\r\n }\r\n __decorate([\r\n Decorators_1.Override\r\n ], IdentityCommutativePredictionContextOperands.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], IdentityCommutativePredictionContextOperands.prototype, \"hashCode\", null);\r\n PredictionContextCache.IdentityCommutativePredictionContextOperands = IdentityCommutativePredictionContextOperands;\r\n})(PredictionContextCache = exports.PredictionContextCache || (exports.PredictionContextCache = {}));\r\n//# sourceMappingURL=PredictionContextCache.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SingletonPredictionContext = exports.PredictionContext = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.3812636-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst Arrays_1 = require(\"../misc/Arrays\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst PredictionContextCache_1 = require(\"./PredictionContextCache\");\r\nconst assert = require(\"assert\");\r\nconst INITIAL_HASH = 1;\r\nclass PredictionContext {\r\n constructor(cachedHashCode) {\r\n this.cachedHashCode = cachedHashCode;\r\n }\r\n static calculateEmptyHashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize(INITIAL_HASH);\r\n hash = MurmurHash_1.MurmurHash.finish(hash, 0);\r\n return hash;\r\n }\r\n static calculateSingleHashCode(parent, returnState) {\r\n let hash = MurmurHash_1.MurmurHash.initialize(INITIAL_HASH);\r\n hash = MurmurHash_1.MurmurHash.update(hash, parent);\r\n hash = MurmurHash_1.MurmurHash.update(hash, returnState);\r\n hash = MurmurHash_1.MurmurHash.finish(hash, 2);\r\n return hash;\r\n }\r\n static calculateHashCode(parents, returnStates) {\r\n let hash = MurmurHash_1.MurmurHash.initialize(INITIAL_HASH);\r\n for (let parent of parents) {\r\n hash = MurmurHash_1.MurmurHash.update(hash, parent);\r\n }\r\n for (let returnState of returnStates) {\r\n hash = MurmurHash_1.MurmurHash.update(hash, returnState);\r\n }\r\n hash = MurmurHash_1.MurmurHash.finish(hash, 2 * parents.length);\r\n return hash;\r\n }\r\n static fromRuleContext(atn, outerContext, fullContext = true) {\r\n if (outerContext.isEmpty) {\r\n return fullContext ? PredictionContext.EMPTY_FULL : PredictionContext.EMPTY_LOCAL;\r\n }\r\n let parent;\r\n if (outerContext._parent) {\r\n parent = PredictionContext.fromRuleContext(atn, outerContext._parent, fullContext);\r\n }\r\n else {\r\n parent = fullContext ? PredictionContext.EMPTY_FULL : PredictionContext.EMPTY_LOCAL;\r\n }\r\n let state = atn.states[outerContext.invokingState];\r\n let transition = state.transition(0);\r\n return parent.getChild(transition.followState.stateNumber);\r\n }\r\n static addEmptyContext(context) {\r\n return context.addEmptyContext();\r\n }\r\n static removeEmptyContext(context) {\r\n return context.removeEmptyContext();\r\n }\r\n static join(context0, context1, contextCache = PredictionContextCache_1.PredictionContextCache.UNCACHED) {\r\n if (context0 === context1) {\r\n return context0;\r\n }\r\n if (context0.isEmpty) {\r\n return PredictionContext.isEmptyLocal(context0) ? context0 : PredictionContext.addEmptyContext(context1);\r\n }\r\n else if (context1.isEmpty) {\r\n return PredictionContext.isEmptyLocal(context1) ? context1 : PredictionContext.addEmptyContext(context0);\r\n }\r\n let context0size = context0.size;\r\n let context1size = context1.size;\r\n if (context0size === 1 && context1size === 1 && context0.getReturnState(0) === context1.getReturnState(0)) {\r\n let merged = contextCache.join(context0.getParent(0), context1.getParent(0));\r\n if (merged === context0.getParent(0)) {\r\n return context0;\r\n }\r\n else if (merged === context1.getParent(0)) {\r\n return context1;\r\n }\r\n else {\r\n return merged.getChild(context0.getReturnState(0));\r\n }\r\n }\r\n let count = 0;\r\n let parentsList = new Array(context0size + context1size);\r\n let returnStatesList = new Array(parentsList.length);\r\n let leftIndex = 0;\r\n let rightIndex = 0;\r\n let canReturnLeft = true;\r\n let canReturnRight = true;\r\n while (leftIndex < context0size && rightIndex < context1size) {\r\n if (context0.getReturnState(leftIndex) === context1.getReturnState(rightIndex)) {\r\n parentsList[count] = contextCache.join(context0.getParent(leftIndex), context1.getParent(rightIndex));\r\n returnStatesList[count] = context0.getReturnState(leftIndex);\r\n canReturnLeft = canReturnLeft && parentsList[count] === context0.getParent(leftIndex);\r\n canReturnRight = canReturnRight && parentsList[count] === context1.getParent(rightIndex);\r\n leftIndex++;\r\n rightIndex++;\r\n }\r\n else if (context0.getReturnState(leftIndex) < context1.getReturnState(rightIndex)) {\r\n parentsList[count] = context0.getParent(leftIndex);\r\n returnStatesList[count] = context0.getReturnState(leftIndex);\r\n canReturnRight = false;\r\n leftIndex++;\r\n }\r\n else {\r\n assert(context1.getReturnState(rightIndex) < context0.getReturnState(leftIndex));\r\n parentsList[count] = context1.getParent(rightIndex);\r\n returnStatesList[count] = context1.getReturnState(rightIndex);\r\n canReturnLeft = false;\r\n rightIndex++;\r\n }\r\n count++;\r\n }\r\n while (leftIndex < context0size) {\r\n parentsList[count] = context0.getParent(leftIndex);\r\n returnStatesList[count] = context0.getReturnState(leftIndex);\r\n leftIndex++;\r\n canReturnRight = false;\r\n count++;\r\n }\r\n while (rightIndex < context1size) {\r\n parentsList[count] = context1.getParent(rightIndex);\r\n returnStatesList[count] = context1.getReturnState(rightIndex);\r\n rightIndex++;\r\n canReturnLeft = false;\r\n count++;\r\n }\r\n if (canReturnLeft) {\r\n return context0;\r\n }\r\n else if (canReturnRight) {\r\n return context1;\r\n }\r\n if (count < parentsList.length) {\r\n parentsList = parentsList.slice(0, count);\r\n returnStatesList = returnStatesList.slice(0, count);\r\n }\r\n if (parentsList.length === 0) {\r\n // if one of them was EMPTY_LOCAL, it would be empty and handled at the beginning of the method\r\n return PredictionContext.EMPTY_FULL;\r\n }\r\n else if (parentsList.length === 1) {\r\n return new SingletonPredictionContext(parentsList[0], returnStatesList[0]);\r\n }\r\n else {\r\n return new ArrayPredictionContext(parentsList, returnStatesList);\r\n }\r\n }\r\n static isEmptyLocal(context) {\r\n return context === PredictionContext.EMPTY_LOCAL;\r\n }\r\n static getCachedContext(context, contextCache, visited) {\r\n if (context.isEmpty) {\r\n return context;\r\n }\r\n let existing = visited.get(context);\r\n if (existing) {\r\n return existing;\r\n }\r\n existing = contextCache.get(context);\r\n if (existing) {\r\n visited.put(context, existing);\r\n return existing;\r\n }\r\n let changed = false;\r\n let parents = new Array(context.size);\r\n for (let i = 0; i < parents.length; i++) {\r\n let parent = PredictionContext.getCachedContext(context.getParent(i), contextCache, visited);\r\n if (changed || parent !== context.getParent(i)) {\r\n if (!changed) {\r\n parents = new Array(context.size);\r\n for (let j = 0; j < context.size; j++) {\r\n parents[j] = context.getParent(j);\r\n }\r\n changed = true;\r\n }\r\n parents[i] = parent;\r\n }\r\n }\r\n if (!changed) {\r\n existing = contextCache.putIfAbsent(context, context);\r\n visited.put(context, existing != null ? existing : context);\r\n return context;\r\n }\r\n // We know parents.length>0 because context.isEmpty is checked at the beginning of the method.\r\n let updated;\r\n if (parents.length === 1) {\r\n updated = new SingletonPredictionContext(parents[0], context.getReturnState(0));\r\n }\r\n else {\r\n let returnStates = new Array(context.size);\r\n for (let i = 0; i < context.size; i++) {\r\n returnStates[i] = context.getReturnState(i);\r\n }\r\n updated = new ArrayPredictionContext(parents, returnStates, context.hashCode());\r\n }\r\n existing = contextCache.putIfAbsent(updated, updated);\r\n visited.put(updated, existing || updated);\r\n visited.put(context, existing || updated);\r\n return updated;\r\n }\r\n appendSingleContext(returnContext, contextCache) {\r\n return this.appendContext(PredictionContext.EMPTY_FULL.getChild(returnContext), contextCache);\r\n }\r\n getChild(returnState) {\r\n return new SingletonPredictionContext(this, returnState);\r\n }\r\n hashCode() {\r\n return this.cachedHashCode;\r\n }\r\n toStrings(recognizer, currentState, stop = PredictionContext.EMPTY_FULL) {\r\n let result = [];\r\n outer: for (let perm = 0;; perm++) {\r\n let offset = 0;\r\n let last = true;\r\n let p = this;\r\n let stateNumber = currentState;\r\n let localBuffer = \"\";\r\n localBuffer += \"[\";\r\n while (!p.isEmpty && p !== stop) {\r\n let index = 0;\r\n if (p.size > 0) {\r\n let bits = 1;\r\n while (((1 << bits) >>> 0) < p.size) {\r\n bits++;\r\n }\r\n let mask = ((1 << bits) >>> 0) - 1;\r\n index = (perm >> offset) & mask;\r\n last = last && index >= p.size - 1;\r\n if (index >= p.size) {\r\n continue outer;\r\n }\r\n offset += bits;\r\n }\r\n if (recognizer) {\r\n if (localBuffer.length > 1) {\r\n // first char is '[', if more than that this isn't the first rule\r\n localBuffer += \" \";\r\n }\r\n let atn = recognizer.atn;\r\n let s = atn.states[stateNumber];\r\n let ruleName = recognizer.ruleNames[s.ruleIndex];\r\n localBuffer += ruleName;\r\n }\r\n else if (p.getReturnState(index) !== PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n if (!p.isEmpty) {\r\n if (localBuffer.length > 1) {\r\n // first char is '[', if more than that this isn't the first rule\r\n localBuffer += \" \";\r\n }\r\n localBuffer += p.getReturnState(index);\r\n }\r\n }\r\n stateNumber = p.getReturnState(index);\r\n p = p.getParent(index);\r\n }\r\n localBuffer += \"]\";\r\n result.push(localBuffer);\r\n if (last) {\r\n break;\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], PredictionContext.prototype, \"hashCode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], PredictionContext, \"join\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], PredictionContext, \"getCachedContext\", null);\r\nexports.PredictionContext = PredictionContext;\r\nclass EmptyPredictionContext extends PredictionContext {\r\n constructor(fullContext) {\r\n super(PredictionContext.calculateEmptyHashCode());\r\n this.fullContext = fullContext;\r\n }\r\n get isFullContext() {\r\n return this.fullContext;\r\n }\r\n addEmptyContext() {\r\n return this;\r\n }\r\n removeEmptyContext() {\r\n throw new Error(\"Cannot remove the empty context from itself.\");\r\n }\r\n getParent(index) {\r\n throw new Error(\"index out of bounds\");\r\n }\r\n getReturnState(index) {\r\n throw new Error(\"index out of bounds\");\r\n }\r\n findReturnState(returnState) {\r\n return -1;\r\n }\r\n get size() {\r\n return 0;\r\n }\r\n appendSingleContext(returnContext, contextCache) {\r\n return contextCache.getChild(this, returnContext);\r\n }\r\n appendContext(suffix, contextCache) {\r\n return suffix;\r\n }\r\n get isEmpty() {\r\n return true;\r\n }\r\n get hasEmpty() {\r\n return true;\r\n }\r\n equals(o) {\r\n return this === o;\r\n }\r\n toStrings(recognizer, currentState, stop) {\r\n return [\"[]\"];\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"addEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"removeEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"getParent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"getReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"findReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"appendSingleContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"appendContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"isEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"hasEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EmptyPredictionContext.prototype, \"toStrings\", null);\r\nlet ArrayPredictionContext = class ArrayPredictionContext extends PredictionContext {\r\n constructor(parents, returnStates, hashCode) {\r\n super(hashCode || PredictionContext.calculateHashCode(parents, returnStates));\r\n assert(parents.length === returnStates.length);\r\n assert(returnStates.length > 1 || returnStates[0] !== PredictionContext.EMPTY_FULL_STATE_KEY, \"Should be using PredictionContext.EMPTY instead.\");\r\n this.parents = parents;\r\n this.returnStates = returnStates;\r\n }\r\n getParent(index) {\r\n return this.parents[index];\r\n }\r\n getReturnState(index) {\r\n return this.returnStates[index];\r\n }\r\n findReturnState(returnState) {\r\n return Arrays_1.Arrays.binarySearch(this.returnStates, returnState);\r\n }\r\n get size() {\r\n return this.returnStates.length;\r\n }\r\n get isEmpty() {\r\n return false;\r\n }\r\n get hasEmpty() {\r\n return this.returnStates[this.returnStates.length - 1] === PredictionContext.EMPTY_FULL_STATE_KEY;\r\n }\r\n addEmptyContext() {\r\n if (this.hasEmpty) {\r\n return this;\r\n }\r\n let parents2 = this.parents.slice(0);\r\n let returnStates2 = this.returnStates.slice(0);\r\n parents2.push(PredictionContext.EMPTY_FULL);\r\n returnStates2.push(PredictionContext.EMPTY_FULL_STATE_KEY);\r\n return new ArrayPredictionContext(parents2, returnStates2);\r\n }\r\n removeEmptyContext() {\r\n if (!this.hasEmpty) {\r\n return this;\r\n }\r\n if (this.returnStates.length === 2) {\r\n return new SingletonPredictionContext(this.parents[0], this.returnStates[0]);\r\n }\r\n else {\r\n let parents2 = this.parents.slice(0, this.parents.length - 1);\r\n let returnStates2 = this.returnStates.slice(0, this.returnStates.length - 1);\r\n return new ArrayPredictionContext(parents2, returnStates2);\r\n }\r\n }\r\n appendContext(suffix, contextCache) {\r\n return ArrayPredictionContext.appendContextImpl(this, suffix, new PredictionContext.IdentityHashMap());\r\n }\r\n static appendContextImpl(context, suffix, visited) {\r\n if (suffix.isEmpty) {\r\n if (PredictionContext.isEmptyLocal(suffix)) {\r\n if (context.hasEmpty) {\r\n return PredictionContext.EMPTY_LOCAL;\r\n }\r\n throw new Error(\"what to do here?\");\r\n }\r\n return context;\r\n }\r\n if (suffix.size !== 1) {\r\n throw new Error(\"Appending a tree suffix is not yet supported.\");\r\n }\r\n let result = visited.get(context);\r\n if (!result) {\r\n if (context.isEmpty) {\r\n result = suffix;\r\n }\r\n else {\r\n let parentCount = context.size;\r\n if (context.hasEmpty) {\r\n parentCount--;\r\n }\r\n let updatedParents = new Array(parentCount);\r\n let updatedReturnStates = new Array(parentCount);\r\n for (let i = 0; i < parentCount; i++) {\r\n updatedReturnStates[i] = context.getReturnState(i);\r\n }\r\n for (let i = 0; i < parentCount; i++) {\r\n updatedParents[i] = ArrayPredictionContext.appendContextImpl(context.getParent(i), suffix, visited);\r\n }\r\n if (updatedParents.length === 1) {\r\n result = new SingletonPredictionContext(updatedParents[0], updatedReturnStates[0]);\r\n }\r\n else {\r\n assert(updatedParents.length > 1);\r\n result = new ArrayPredictionContext(updatedParents, updatedReturnStates);\r\n }\r\n if (context.hasEmpty) {\r\n result = PredictionContext.join(result, suffix);\r\n }\r\n }\r\n visited.put(context, result);\r\n }\r\n return result;\r\n }\r\n equals(o) {\r\n if (this === o) {\r\n return true;\r\n }\r\n else if (!(o instanceof ArrayPredictionContext)) {\r\n return false;\r\n }\r\n if (this.hashCode() !== o.hashCode()) {\r\n // can't be same if hash is different\r\n return false;\r\n }\r\n let other = o;\r\n return this.equalsImpl(other, new Array2DHashSet_1.Array2DHashSet());\r\n }\r\n equalsImpl(other, visited) {\r\n let selfWorkList = [];\r\n let otherWorkList = [];\r\n selfWorkList.push(this);\r\n otherWorkList.push(other);\r\n while (true) {\r\n let currentSelf = selfWorkList.pop();\r\n let currentOther = otherWorkList.pop();\r\n if (!currentSelf || !currentOther) {\r\n break;\r\n }\r\n let operands = new PredictionContextCache_1.PredictionContextCache.IdentityCommutativePredictionContextOperands(currentSelf, currentOther);\r\n if (!visited.add(operands)) {\r\n continue;\r\n }\r\n let selfSize = operands.x.size;\r\n if (selfSize === 0) {\r\n if (!operands.x.equals(operands.y)) {\r\n return false;\r\n }\r\n continue;\r\n }\r\n let otherSize = operands.y.size;\r\n if (selfSize !== otherSize) {\r\n return false;\r\n }\r\n for (let i = 0; i < selfSize; i++) {\r\n if (operands.x.getReturnState(i) !== operands.y.getReturnState(i)) {\r\n return false;\r\n }\r\n let selfParent = operands.x.getParent(i);\r\n let otherParent = operands.y.getParent(i);\r\n if (selfParent.hashCode() !== otherParent.hashCode()) {\r\n return false;\r\n }\r\n if (selfParent !== otherParent) {\r\n selfWorkList.push(selfParent);\r\n otherWorkList.push(otherParent);\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ArrayPredictionContext.prototype, \"parents\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ArrayPredictionContext.prototype, \"returnStates\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"getParent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"getReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"findReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"isEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"hasEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"addEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"removeEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"appendContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ArrayPredictionContext.prototype, \"equals\", null);\r\nArrayPredictionContext = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ArrayPredictionContext);\r\nlet SingletonPredictionContext = class SingletonPredictionContext extends PredictionContext {\r\n constructor(parent, returnState) {\r\n super(PredictionContext.calculateSingleHashCode(parent, returnState));\r\n // assert(returnState != PredictionContext.EMPTY_FULL_STATE_KEY && returnState != PredictionContext.EMPTY_LOCAL_STATE_KEY);\r\n this.parent = parent;\r\n this.returnState = returnState;\r\n }\r\n getParent(index) {\r\n // assert(index == 0);\r\n return this.parent;\r\n }\r\n getReturnState(index) {\r\n // assert(index == 0);\r\n return this.returnState;\r\n }\r\n findReturnState(returnState) {\r\n return this.returnState === returnState ? 0 : -1;\r\n }\r\n get size() {\r\n return 1;\r\n }\r\n get isEmpty() {\r\n return false;\r\n }\r\n get hasEmpty() {\r\n return false;\r\n }\r\n appendContext(suffix, contextCache) {\r\n return contextCache.getChild(this.parent.appendContext(suffix, contextCache), this.returnState);\r\n }\r\n addEmptyContext() {\r\n let parents = [this.parent, PredictionContext.EMPTY_FULL];\r\n let returnStates = [this.returnState, PredictionContext.EMPTY_FULL_STATE_KEY];\r\n return new ArrayPredictionContext(parents, returnStates);\r\n }\r\n removeEmptyContext() {\r\n return this;\r\n }\r\n equals(o) {\r\n if (o === this) {\r\n return true;\r\n }\r\n else if (!(o instanceof SingletonPredictionContext)) {\r\n return false;\r\n }\r\n let other = o;\r\n if (this.hashCode() !== other.hashCode()) {\r\n return false;\r\n }\r\n return this.returnState === other.returnState\r\n && this.parent.equals(other.parent);\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], SingletonPredictionContext.prototype, \"parent\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"getParent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"getReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"findReturnState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"isEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"hasEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"appendContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"addEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"removeEmptyContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SingletonPredictionContext.prototype, \"equals\", null);\r\nSingletonPredictionContext = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], SingletonPredictionContext);\r\nexports.SingletonPredictionContext = SingletonPredictionContext;\r\n(function (PredictionContext) {\r\n PredictionContext.EMPTY_LOCAL = new EmptyPredictionContext(false);\r\n PredictionContext.EMPTY_FULL = new EmptyPredictionContext(true);\r\n PredictionContext.EMPTY_LOCAL_STATE_KEY = -((1 << 31) >>> 0);\r\n PredictionContext.EMPTY_FULL_STATE_KEY = ((1 << 31) >>> 0) - 1;\r\n class IdentityHashMap extends Array2DHashMap_1.Array2DHashMap {\r\n constructor() {\r\n super(IdentityEqualityComparator.INSTANCE);\r\n }\r\n }\r\n PredictionContext.IdentityHashMap = IdentityHashMap;\r\n class IdentityEqualityComparator {\r\n IdentityEqualityComparator() {\r\n // intentionally empty\r\n }\r\n hashCode(obj) {\r\n return obj.hashCode();\r\n }\r\n equals(a, b) {\r\n return a === b;\r\n }\r\n }\r\n IdentityEqualityComparator.INSTANCE = new IdentityEqualityComparator();\r\n __decorate([\r\n Decorators_1.Override\r\n ], IdentityEqualityComparator.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], IdentityEqualityComparator.prototype, \"equals\", null);\r\n PredictionContext.IdentityEqualityComparator = IdentityEqualityComparator;\r\n})(PredictionContext = exports.PredictionContext || (exports.PredictionContext = {}));\r\n//# sourceMappingURL=PredictionContext.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.toCharArray = exports.toMap = exports.equals = exports.join = exports.escapeWhitespace = void 0;\r\nfunction escapeWhitespace(s, escapeSpaces) {\r\n return escapeSpaces ? s.replace(/ /, \"\\u00B7\") : s\r\n .replace(/\\t/, \"\\\\t\")\r\n .replace(/\\n/, \"\\\\n\")\r\n .replace(/\\r/, \"\\\\r\");\r\n}\r\nexports.escapeWhitespace = escapeWhitespace;\r\n// Seriously: why isn't this built in to java? ugh!\r\nfunction join(collection, separator) {\r\n let buf = \"\";\r\n let first = true;\r\n for (let current of collection) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += separator;\r\n }\r\n buf += current;\r\n }\r\n return buf;\r\n}\r\nexports.join = join;\r\nfunction equals(x, y) {\r\n if (x === y) {\r\n return true;\r\n }\r\n if (x === undefined || y === undefined) {\r\n return false;\r\n }\r\n return x.equals(y);\r\n}\r\nexports.equals = equals;\r\n// export function numNonnull(data: any[]): number {\r\n// \tlet n: number = 0;\r\n// \tif ( data == null ) return n;\r\n// \tfor (let o of data) {\r\n// \t\tif ( o!=null ) n++;\r\n// \t}\r\n// \treturn n;\r\n// }\r\n// export function removeAllElements<T>(data: Collection<T>, value: T): void {\r\n// \tif ( data==null ) return;\r\n// \twhile ( data.contains(value) ) data.remove(value);\r\n// }\r\n// export function writeFile(@NotNull file: File, @NotNull content: Uint8Array): void {\r\n// \tlet fos: FileOutputStream = new FileOutputStream(file);\r\n// \ttry {\r\n// \t\tfos.write(content);\r\n// \t} finally {\r\n// \t\tfos.close();\r\n// \t}\r\n// }\r\n// export function writeFile(@NotNull fileName: string, @NotNull content: string): void {\r\n// \twriteFile(fileName, content, null);\r\n// }\r\n// export function writeFile(@NotNull fileName: string, @NotNull content: string, @Nullable encoding: string): void {\r\n// \tlet f: File = new File(fileName);\r\n// \tlet fos: FileOutputStream = new FileOutputStream(f);\r\n// \tlet osw: OutputStreamWriter;\r\n// \tif (encoding != null) {\r\n// \t\tosw = new OutputStreamWriter(fos, encoding);\r\n// \t}\r\n// \telse {\r\n// \t\tosw = new OutputStreamWriter(fos);\r\n// \t}\r\n// \ttry {\r\n// \t\tosw.write(content);\r\n// \t}\r\n// \tfinally {\r\n// \t\tosw.close();\r\n// \t}\r\n// }\r\n// @NotNull\r\n// export function readFile(@NotNull fileName: string): char[] {\r\n// \treturn readFile(fileName, null);\r\n// }\r\n// @NotNull\r\n// export function readFile(@NotNull fileName: string, @Nullable encoding: string): char[] {\r\n// \tlet f: File = new File(fileName);\r\n// \tlet size: number = (int)f.length();\r\n// \tlet isr: InputStreamReader;\r\n// \tlet fis: FileInputStream = new FileInputStream(fileName);\r\n// \tif ( encoding!=null ) {\r\n// \t\tisr = new InputStreamReader(fis, encoding);\r\n// \t}\r\n// \telse {\r\n// \t\tisr = new InputStreamReader(fis);\r\n// \t}\r\n// \tlet data: char[] = null;\r\n// \ttry {\r\n// \t\tdata = new char[size];\r\n// \t\tlet n: number = isr.read(data);\r\n// \t\tif (n < data.length) {\r\n// \t\t\tdata = Arrays.copyOf(data, n);\r\n// \t\t}\r\n// \t}\r\n// \tfinally {\r\n// \t\tisr.close();\r\n// \t}\r\n// \treturn data;\r\n// }\r\n// export function removeAll<T>(@NotNull predicate: List<T> list,@NotNull Predicate<? super T>): void {\r\n// \tlet j: number = 0;\r\n// \tfor (let i = 0; i < list.size; i++) {\r\n// \t\tlet item: T = list.get(i);\r\n// \t\tif (!predicate.eval(item)) {\r\n// \t\t\tif (j != i) {\r\n// \t\t\t\tlist.set(j, item);\r\n// \t\t\t}\r\n// \t\t\tj++;\r\n// \t\t}\r\n// \t}\r\n// \tif (j < list.size) {\r\n// \t\tlist.subList(j, list.size).clear();\r\n// \t}\r\n// }\r\n// export function removeAll<T>(@NotNull predicate: Iterable<T> iterable,@NotNull Predicate<? super T>): void {\r\n// \tif (iterable instanceof List<?>) {\r\n// \t\tremoveAll((List<T>)iterable, predicate);\r\n// \t\treturn;\r\n// \t}\r\n// \tfor (Iterator<T> iterator = iterable.iterator(); iterator.hasNext(); ) {\r\n// \t\tlet item: T = iterator.next();\r\n// \t\tif (predicate.eval(item)) {\r\n// \t\t\titerator.remove();\r\n// \t\t}\r\n// \t}\r\n// }\r\n/** Convert array of strings to string&rarr;index map. Useful for\r\n * converting rulenames to name&rarr;ruleindex map.\r\n */\r\nfunction toMap(keys) {\r\n let m = new Map();\r\n for (let i = 0; i < keys.length; i++) {\r\n m.set(keys[i], i);\r\n }\r\n return m;\r\n}\r\nexports.toMap = toMap;\r\nfunction toCharArray(str) {\r\n if (typeof str === \"string\") {\r\n let result = new Uint16Array(str.length);\r\n for (let i = 0; i < str.length; i++) {\r\n result[i] = str.charCodeAt(i);\r\n }\r\n return result;\r\n }\r\n else {\r\n return str.toCharArray();\r\n }\r\n}\r\nexports.toCharArray = toCharArray;\r\n// /**\r\n// \t* @since 4.5\r\n// \t*/\r\n// @NotNull\r\n// export function toSet(@NotNull bits: BitSet): IntervalSet {\r\n// \tlet s: IntervalSet = new IntervalSet();\r\n// \tlet i: number = bits.nextSetBit(0);\r\n// \twhile ( i >= 0 ) {\r\n// \t\ts.add(i);\r\n// \t\ti = bits.nextSetBit(i+1);\r\n// \t}\r\n// \treturn s;\r\n// }\r\n//# sourceMappingURL=Utils.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SemanticContext = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:36.9521478-07:00\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst ArrayEqualityComparator_1 = require(\"../misc/ArrayEqualityComparator\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst Utils = require(\"../misc/Utils\");\r\nfunction max(items) {\r\n let result;\r\n for (let current of items) {\r\n if (result === undefined) {\r\n result = current;\r\n continue;\r\n }\r\n let comparison = result.compareTo(current);\r\n if (comparison < 0) {\r\n result = current;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction min(items) {\r\n let result;\r\n for (let current of items) {\r\n if (result === undefined) {\r\n result = current;\r\n continue;\r\n }\r\n let comparison = result.compareTo(current);\r\n if (comparison > 0) {\r\n result = current;\r\n }\r\n }\r\n return result;\r\n}\r\n/** A tree structure used to record the semantic context in which\r\n * an ATN configuration is valid. It's either a single predicate,\r\n * a conjunction `p1&&p2`, or a sum of products `p1||p2`.\r\n *\r\n * I have scoped the {@link AND}, {@link OR}, and {@link Predicate} subclasses of\r\n * {@link SemanticContext} within the scope of this outer class.\r\n */\r\nclass SemanticContext {\r\n /**\r\n * The default {@link SemanticContext}, which is semantically equivalent to\r\n * a predicate of the form `{true}?`.\r\n */\r\n static get NONE() {\r\n if (SemanticContext._NONE === undefined) {\r\n SemanticContext._NONE = new SemanticContext.Predicate();\r\n }\r\n return SemanticContext._NONE;\r\n }\r\n /**\r\n * Evaluate the precedence predicates for the context and reduce the result.\r\n *\r\n * @param parser The parser instance.\r\n * @param parserCallStack\r\n * @returns The simplified semantic context after precedence predicates are\r\n * evaluated, which will be one of the following values.\r\n *\r\n * * {@link #NONE}: if the predicate simplifies to `true` after\r\n * precedence predicates are evaluated.\r\n * * `undefined`: if the predicate simplifies to `false` after\r\n * precedence predicates are evaluated.\r\n * * `this`: if the semantic context is not changed as a result of\r\n * precedence predicate evaluation.\r\n * * A non-`undefined` {@link SemanticContext}: the new simplified\r\n * semantic context after precedence predicates are evaluated.\r\n */\r\n evalPrecedence(parser, parserCallStack) {\r\n return this;\r\n }\r\n static and(a, b) {\r\n if (!a || a === SemanticContext.NONE) {\r\n return b;\r\n }\r\n if (b === SemanticContext.NONE) {\r\n return a;\r\n }\r\n let result = new SemanticContext.AND(a, b);\r\n if (result.opnds.length === 1) {\r\n return result.opnds[0];\r\n }\r\n return result;\r\n }\r\n /**\r\n *\r\n * @see ParserATNSimulator#getPredsForAmbigAlts\r\n */\r\n static or(a, b) {\r\n if (!a) {\r\n return b;\r\n }\r\n if (a === SemanticContext.NONE || b === SemanticContext.NONE) {\r\n return SemanticContext.NONE;\r\n }\r\n let result = new SemanticContext.OR(a, b);\r\n if (result.opnds.length === 1) {\r\n return result.opnds[0];\r\n }\r\n return result;\r\n }\r\n}\r\nexports.SemanticContext = SemanticContext;\r\n(function (SemanticContext) {\r\n /**\r\n * This random 30-bit prime represents the value of `AND.class.hashCode()`.\r\n */\r\n const AND_HASHCODE = 40363613;\r\n /**\r\n * This random 30-bit prime represents the value of `OR.class.hashCode()`.\r\n */\r\n const OR_HASHCODE = 486279973;\r\n function filterPrecedencePredicates(collection) {\r\n let result = [];\r\n for (let i = 0; i < collection.length; i++) {\r\n let context = collection[i];\r\n if (context instanceof SemanticContext.PrecedencePredicate) {\r\n result.push(context);\r\n // Remove the item from 'collection' and move i back so we look at the same index again\r\n collection.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n return result;\r\n }\r\n class Predicate extends SemanticContext {\r\n constructor(ruleIndex = -1, predIndex = -1, isCtxDependent = false) {\r\n super();\r\n this.ruleIndex = ruleIndex;\r\n this.predIndex = predIndex;\r\n this.isCtxDependent = isCtxDependent;\r\n }\r\n eval(parser, parserCallStack) {\r\n let localctx = this.isCtxDependent ? parserCallStack : undefined;\r\n return parser.sempred(localctx, this.ruleIndex, this.predIndex);\r\n }\r\n hashCode() {\r\n let hashCode = MurmurHash_1.MurmurHash.initialize();\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.ruleIndex);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.predIndex);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.isCtxDependent ? 1 : 0);\r\n hashCode = MurmurHash_1.MurmurHash.finish(hashCode, 3);\r\n return hashCode;\r\n }\r\n equals(obj) {\r\n if (!(obj instanceof Predicate)) {\r\n return false;\r\n }\r\n if (this === obj) {\r\n return true;\r\n }\r\n return this.ruleIndex === obj.ruleIndex &&\r\n this.predIndex === obj.predIndex &&\r\n this.isCtxDependent === obj.isCtxDependent;\r\n }\r\n toString() {\r\n return \"{\" + this.ruleIndex + \":\" + this.predIndex + \"}?\";\r\n }\r\n }\r\n __decorate([\r\n Decorators_1.Override\r\n ], Predicate.prototype, \"eval\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], Predicate.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], Predicate.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], Predicate.prototype, \"toString\", null);\r\n SemanticContext.Predicate = Predicate;\r\n class PrecedencePredicate extends SemanticContext {\r\n constructor(precedence) {\r\n super();\r\n this.precedence = precedence;\r\n }\r\n eval(parser, parserCallStack) {\r\n return parser.precpred(parserCallStack, this.precedence);\r\n }\r\n evalPrecedence(parser, parserCallStack) {\r\n if (parser.precpred(parserCallStack, this.precedence)) {\r\n return SemanticContext.NONE;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n compareTo(o) {\r\n return this.precedence - o.precedence;\r\n }\r\n hashCode() {\r\n let hashCode = 1;\r\n hashCode = 31 * hashCode + this.precedence;\r\n return hashCode;\r\n }\r\n equals(obj) {\r\n if (!(obj instanceof PrecedencePredicate)) {\r\n return false;\r\n }\r\n if (this === obj) {\r\n return true;\r\n }\r\n return this.precedence === obj.precedence;\r\n }\r\n toString() {\r\n return \"{\" + this.precedence + \">=prec}?\";\r\n }\r\n }\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"eval\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"evalPrecedence\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"compareTo\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PrecedencePredicate.prototype, \"toString\", null);\r\n SemanticContext.PrecedencePredicate = PrecedencePredicate;\r\n /**\r\n * This is the base class for semantic context \"operators\", which operate on\r\n * a collection of semantic context \"operands\".\r\n *\r\n * @since 4.3\r\n */\r\n class Operator extends SemanticContext {\r\n }\r\n SemanticContext.Operator = Operator;\r\n /**\r\n * A semantic context which is true whenever none of the contained contexts\r\n * is false.\r\n */\r\n let AND = class AND extends Operator {\r\n constructor(a, b) {\r\n super();\r\n let operands = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n if (a instanceof AND) {\r\n operands.addAll(a.opnds);\r\n }\r\n else {\r\n operands.add(a);\r\n }\r\n if (b instanceof AND) {\r\n operands.addAll(b.opnds);\r\n }\r\n else {\r\n operands.add(b);\r\n }\r\n this.opnds = operands.toArray();\r\n let precedencePredicates = filterPrecedencePredicates(this.opnds);\r\n // interested in the transition with the lowest precedence\r\n let reduced = min(precedencePredicates);\r\n if (reduced) {\r\n this.opnds.push(reduced);\r\n }\r\n }\r\n get operands() {\r\n return this.opnds;\r\n }\r\n equals(obj) {\r\n if (this === obj) {\r\n return true;\r\n }\r\n if (!(obj instanceof AND)) {\r\n return false;\r\n }\r\n return ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.equals(this.opnds, obj.opnds);\r\n }\r\n hashCode() {\r\n return MurmurHash_1.MurmurHash.hashCode(this.opnds, AND_HASHCODE);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The evaluation of predicates by this context is short-circuiting, but\r\n * unordered.\r\n */\r\n eval(parser, parserCallStack) {\r\n for (let opnd of this.opnds) {\r\n if (!opnd.eval(parser, parserCallStack)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n evalPrecedence(parser, parserCallStack) {\r\n let differs = false;\r\n let operands = [];\r\n for (let context of this.opnds) {\r\n let evaluated = context.evalPrecedence(parser, parserCallStack);\r\n differs = differs || (evaluated !== context);\r\n if (evaluated == null) {\r\n // The AND context is false if any element is false\r\n return undefined;\r\n }\r\n else if (evaluated !== SemanticContext.NONE) {\r\n // Reduce the result by skipping true elements\r\n operands.push(evaluated);\r\n }\r\n }\r\n if (!differs) {\r\n return this;\r\n }\r\n if (operands.length === 0) {\r\n // all elements were true, so the AND context is true\r\n return SemanticContext.NONE;\r\n }\r\n let result = operands[0];\r\n for (let i = 1; i < operands.length; i++) {\r\n result = SemanticContext.and(result, operands[i]);\r\n }\r\n return result;\r\n }\r\n toString() {\r\n return Utils.join(this.opnds, \"&&\");\r\n }\r\n };\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"operands\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"eval\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"evalPrecedence\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AND.prototype, \"toString\", null);\r\n AND = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n ], AND);\r\n SemanticContext.AND = AND;\r\n /**\r\n * A semantic context which is true whenever at least one of the contained\r\n * contexts is true.\r\n */\r\n let OR = class OR extends Operator {\r\n constructor(a, b) {\r\n super();\r\n let operands = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n if (a instanceof OR) {\r\n operands.addAll(a.opnds);\r\n }\r\n else {\r\n operands.add(a);\r\n }\r\n if (b instanceof OR) {\r\n operands.addAll(b.opnds);\r\n }\r\n else {\r\n operands.add(b);\r\n }\r\n this.opnds = operands.toArray();\r\n let precedencePredicates = filterPrecedencePredicates(this.opnds);\r\n // interested in the transition with the highest precedence\r\n let reduced = max(precedencePredicates);\r\n if (reduced) {\r\n this.opnds.push(reduced);\r\n }\r\n }\r\n get operands() {\r\n return this.opnds;\r\n }\r\n equals(obj) {\r\n if (this === obj) {\r\n return true;\r\n }\r\n if (!(obj instanceof OR)) {\r\n return false;\r\n }\r\n return ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.equals(this.opnds, obj.opnds);\r\n }\r\n hashCode() {\r\n return MurmurHash_1.MurmurHash.hashCode(this.opnds, OR_HASHCODE);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The evaluation of predicates by this context is short-circuiting, but\r\n * unordered.\r\n */\r\n eval(parser, parserCallStack) {\r\n for (let opnd of this.opnds) {\r\n if (opnd.eval(parser, parserCallStack)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n evalPrecedence(parser, parserCallStack) {\r\n let differs = false;\r\n let operands = [];\r\n for (let context of this.opnds) {\r\n let evaluated = context.evalPrecedence(parser, parserCallStack);\r\n differs = differs || (evaluated !== context);\r\n if (evaluated === SemanticContext.NONE) {\r\n // The OR context is true if any element is true\r\n return SemanticContext.NONE;\r\n }\r\n else if (evaluated) {\r\n // Reduce the result by skipping false elements\r\n operands.push(evaluated);\r\n }\r\n }\r\n if (!differs) {\r\n return this;\r\n }\r\n if (operands.length === 0) {\r\n // all elements were false, so the OR context is false\r\n return undefined;\r\n }\r\n let result = operands[0];\r\n for (let i = 1; i < operands.length; i++) {\r\n result = SemanticContext.or(result, operands[i]);\r\n }\r\n return result;\r\n }\r\n toString() {\r\n return Utils.join(this.opnds, \"||\");\r\n }\r\n };\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"operands\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"equals\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"eval\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"evalPrecedence\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], OR.prototype, \"toString\", null);\r\n OR = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n ], OR);\r\n SemanticContext.OR = OR;\r\n})(SemanticContext = exports.SemanticContext || (exports.SemanticContext = {}));\r\n//# sourceMappingURL=SemanticContext.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNConfig = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:25.2796692-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\nconst assert = require(\"assert\");\r\n/**\r\n * This field stores the bit mask for implementing the\r\n * {@link #isPrecedenceFilterSuppressed} property as a bit within the\r\n * existing {@link #altAndOuterContextDepth} field.\r\n */\r\nconst SUPPRESS_PRECEDENCE_FILTER = 0x80000000;\r\n/**\r\n * Represents a location with context in an ATN. The location is identified by the following values:\r\n *\r\n * * The current ATN state\r\n * * The predicted alternative\r\n * * The semantic context which must be true for this configuration to be enabled\r\n * * The syntactic context, which is represented as a graph-structured stack whose path(s) lead to the root of the rule\r\n * invocations leading to this state\r\n *\r\n * In addition to these values, `ATNConfig` stores several properties about paths taken to get to the location which\r\n * were added over time to help with performance, correctness, and/or debugging.\r\n *\r\n * * `reachesIntoOuterContext`:: Used to ensure semantic predicates are not evaluated in the wrong context.\r\n * * `hasPassedThroughNonGreedyDecision`: Used for enabling first-match-wins instead of longest-match-wins after\r\n * crossing a non-greedy decision.\r\n * * `lexerActionExecutor`: Used for tracking the lexer action(s) to execute should this instance be selected during\r\n * lexing.\r\n * * `isPrecedenceFilterSuppressed`: A state variable for one of the dynamic disambiguation strategies employed by\r\n * `ParserATNSimulator.applyPrecedenceFilter`.\r\n *\r\n * Due to the use of a graph-structured stack, a single `ATNConfig` is capable of representing many individual ATN\r\n * configurations which reached the same location in an ATN by following different paths.\r\n *\r\n * PERF: To conserve memory, `ATNConfig` is split into several different concrete types. `ATNConfig` itself stores the\r\n * minimum amount of information typically used to define an `ATNConfig` instance. Various derived types provide\r\n * additional storage space for cases where a non-default value is used for some of the object properties. The\r\n * `ATNConfig.create` and `ATNConfig.transform` methods automatically select the smallest concrete type capable of\r\n * representing the unique information for any given `ATNConfig`.\r\n */\r\nlet ATNConfig = class ATNConfig {\r\n constructor(state, altOrConfig, context) {\r\n if (typeof altOrConfig === \"number\") {\r\n assert((altOrConfig & 0xFFFFFF) === altOrConfig);\r\n this._state = state;\r\n this.altAndOuterContextDepth = altOrConfig;\r\n this._context = context;\r\n }\r\n else {\r\n this._state = state;\r\n this.altAndOuterContextDepth = altOrConfig.altAndOuterContextDepth;\r\n this._context = context;\r\n }\r\n }\r\n static create(state, alt, context, semanticContext = SemanticContext_1.SemanticContext.NONE, lexerActionExecutor) {\r\n if (semanticContext !== SemanticContext_1.SemanticContext.NONE) {\r\n if (lexerActionExecutor != null) {\r\n return new ActionSemanticContextATNConfig(lexerActionExecutor, semanticContext, state, alt, context, false);\r\n }\r\n else {\r\n return new SemanticContextATNConfig(semanticContext, state, alt, context);\r\n }\r\n }\r\n else if (lexerActionExecutor != null) {\r\n return new ActionATNConfig(lexerActionExecutor, state, alt, context, false);\r\n }\r\n else {\r\n return new ATNConfig(state, alt, context);\r\n }\r\n }\r\n /** Gets the ATN state associated with this configuration */\r\n get state() {\r\n return this._state;\r\n }\r\n /** What alt (or lexer rule) is predicted by this configuration */\r\n get alt() {\r\n return this.altAndOuterContextDepth & 0x00FFFFFF;\r\n }\r\n get context() {\r\n return this._context;\r\n }\r\n set context(context) {\r\n this._context = context;\r\n }\r\n get reachesIntoOuterContext() {\r\n return this.outerContextDepth !== 0;\r\n }\r\n /**\r\n * We cannot execute predicates dependent upon local context unless\r\n * we know for sure we are in the correct context. Because there is\r\n * no way to do this efficiently, we simply cannot evaluate\r\n * dependent predicates unless we are in the rule that initially\r\n * invokes the ATN simulator.\r\n *\r\n * closure() tracks the depth of how far we dip into the outer context:\r\n * depth &gt; 0. Note that it may not be totally accurate depth since I\r\n * don't ever decrement. TODO: make it a boolean then\r\n */\r\n get outerContextDepth() {\r\n return (this.altAndOuterContextDepth >>> 24) & 0x7F;\r\n }\r\n set outerContextDepth(outerContextDepth) {\r\n assert(outerContextDepth >= 0);\r\n // saturate at 0x7F - everything but zero/positive is only used for debug information anyway\r\n outerContextDepth = Math.min(outerContextDepth, 0x7F);\r\n this.altAndOuterContextDepth = ((outerContextDepth << 24) | (this.altAndOuterContextDepth & ~0x7F000000) >>> 0);\r\n }\r\n get lexerActionExecutor() {\r\n return undefined;\r\n }\r\n get semanticContext() {\r\n return SemanticContext_1.SemanticContext.NONE;\r\n }\r\n get hasPassedThroughNonGreedyDecision() {\r\n return false;\r\n }\r\n clone() {\r\n return this.transform(this.state, false);\r\n }\r\n transform(/*@NotNull*/ state, checkNonGreedy, arg2) {\r\n if (arg2 == null) {\r\n return this.transformImpl(state, this._context, this.semanticContext, checkNonGreedy, this.lexerActionExecutor);\r\n }\r\n else if (arg2 instanceof PredictionContext_1.PredictionContext) {\r\n return this.transformImpl(state, arg2, this.semanticContext, checkNonGreedy, this.lexerActionExecutor);\r\n }\r\n else if (arg2 instanceof SemanticContext_1.SemanticContext) {\r\n return this.transformImpl(state, this._context, arg2, checkNonGreedy, this.lexerActionExecutor);\r\n }\r\n else {\r\n return this.transformImpl(state, this._context, this.semanticContext, checkNonGreedy, arg2);\r\n }\r\n }\r\n transformImpl(state, context, semanticContext, checkNonGreedy, lexerActionExecutor) {\r\n let passedThroughNonGreedy = checkNonGreedy && ATNConfig.checkNonGreedyDecision(this, state);\r\n if (semanticContext !== SemanticContext_1.SemanticContext.NONE) {\r\n if (lexerActionExecutor != null || passedThroughNonGreedy) {\r\n return new ActionSemanticContextATNConfig(lexerActionExecutor, semanticContext, state, this, context, passedThroughNonGreedy);\r\n }\r\n else {\r\n return new SemanticContextATNConfig(semanticContext, state, this, context);\r\n }\r\n }\r\n else if (lexerActionExecutor != null || passedThroughNonGreedy) {\r\n return new ActionATNConfig(lexerActionExecutor, state, this, context, passedThroughNonGreedy);\r\n }\r\n else {\r\n return new ATNConfig(state, this, context);\r\n }\r\n }\r\n static checkNonGreedyDecision(source, target) {\r\n return source.hasPassedThroughNonGreedyDecision\r\n || target instanceof DecisionState_1.DecisionState && target.nonGreedy;\r\n }\r\n appendContext(context, contextCache) {\r\n if (typeof context === \"number\") {\r\n let appendedContext = this.context.appendSingleContext(context, contextCache);\r\n let result = this.transform(this.state, false, appendedContext);\r\n return result;\r\n }\r\n else {\r\n let appendedContext = this.context.appendContext(context, contextCache);\r\n let result = this.transform(this.state, false, appendedContext);\r\n return result;\r\n }\r\n }\r\n /**\r\n * Determines if this `ATNConfig` fully contains another `ATNConfig`.\r\n *\r\n * An ATN configuration represents a position (including context) in an ATN during parsing. Since `ATNConfig` stores\r\n * the context as a graph, a single `ATNConfig` instance is capable of representing many ATN configurations which\r\n * are all in the same \"location\" but have different contexts. These `ATNConfig` instances are again merged when\r\n * they are added to an `ATNConfigSet`. This method supports `ATNConfigSet.contains` by evaluating whether a\r\n * particular `ATNConfig` contains all of the ATN configurations represented by another `ATNConfig`.\r\n *\r\n * An `ATNConfig` _a_ contains another `ATNConfig` _b_ if all of the following conditions are met:\r\n *\r\n * * The configurations are in the same state (`state`)\r\n * * The configurations predict the same alternative (`alt`)\r\n * * The semantic context of _a_ implies the semantic context of _b_ (this method performs a weaker equality check)\r\n * * Joining the prediction contexts of _a_ and _b_ results in the prediction context of _a_\r\n *\r\n * This method implements a conservative approximation of containment. As a result, when this method returns `true`\r\n * it is known that parsing from `subconfig` can only recognize a subset of the inputs which can be recognized\r\n * starting at the current `ATNConfig`. However, due to the imprecise evaluation of implication for the semantic\r\n * contexts, no assumptions can be made about the relationship between the configurations when this method returns\r\n * `false`.\r\n *\r\n * @param subconfig The sub configuration.\r\n * @returns `true` if this configuration contains `subconfig`; otherwise, `false`.\r\n */\r\n contains(subconfig) {\r\n if (this.state.stateNumber !== subconfig.state.stateNumber\r\n || this.alt !== subconfig.alt\r\n || !this.semanticContext.equals(subconfig.semanticContext)) {\r\n return false;\r\n }\r\n let leftWorkList = [];\r\n let rightWorkList = [];\r\n leftWorkList.push(this.context);\r\n rightWorkList.push(subconfig.context);\r\n while (true) {\r\n let left = leftWorkList.pop();\r\n let right = rightWorkList.pop();\r\n if (!left || !right) {\r\n break;\r\n }\r\n if (left === right) {\r\n return true;\r\n }\r\n if (left.size < right.size) {\r\n return false;\r\n }\r\n if (right.isEmpty) {\r\n return left.hasEmpty;\r\n }\r\n else {\r\n for (let i = 0; i < right.size; i++) {\r\n let index = left.findReturnState(right.getReturnState(i));\r\n if (index < 0) {\r\n // assumes invokingStates has no duplicate entries\r\n return false;\r\n }\r\n leftWorkList.push(left.getParent(index));\r\n rightWorkList.push(right.getParent(i));\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n get isPrecedenceFilterSuppressed() {\r\n return (this.altAndOuterContextDepth & SUPPRESS_PRECEDENCE_FILTER) !== 0;\r\n }\r\n set isPrecedenceFilterSuppressed(value) {\r\n if (value) {\r\n this.altAndOuterContextDepth |= SUPPRESS_PRECEDENCE_FILTER;\r\n }\r\n else {\r\n this.altAndOuterContextDepth &= ~SUPPRESS_PRECEDENCE_FILTER;\r\n }\r\n }\r\n /** An ATN configuration is equal to another if both have\r\n * the same state, they predict the same alternative, and\r\n * syntactic/semantic contexts are the same.\r\n */\r\n equals(o) {\r\n if (this === o) {\r\n return true;\r\n }\r\n else if (!(o instanceof ATNConfig)) {\r\n return false;\r\n }\r\n return this.state.stateNumber === o.state.stateNumber\r\n && this.alt === o.alt\r\n && this.reachesIntoOuterContext === o.reachesIntoOuterContext\r\n && this.context.equals(o.context)\r\n && this.semanticContext.equals(o.semanticContext)\r\n && this.isPrecedenceFilterSuppressed === o.isPrecedenceFilterSuppressed\r\n && this.hasPassedThroughNonGreedyDecision === o.hasPassedThroughNonGreedyDecision\r\n && ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE.equals(this.lexerActionExecutor, o.lexerActionExecutor);\r\n }\r\n hashCode() {\r\n let hashCode = MurmurHash_1.MurmurHash.initialize(7);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.state.stateNumber);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.alt);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.reachesIntoOuterContext ? 1 : 0);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.context);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.semanticContext);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.hasPassedThroughNonGreedyDecision ? 1 : 0);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, this.lexerActionExecutor);\r\n hashCode = MurmurHash_1.MurmurHash.finish(hashCode, 7);\r\n return hashCode;\r\n }\r\n /**\r\n * Returns a graphical representation of the current `ATNConfig` in Graphviz format. The graph can be stored to a\r\n * **.dot** file and then rendered to an image using Graphviz.\r\n *\r\n * @returns A Graphviz graph representing the current `ATNConfig`.\r\n *\r\n * @see http://www.graphviz.org/\r\n */\r\n toDotString() {\r\n let builder = \"\";\r\n builder += (\"digraph G {\\n\");\r\n builder += (\"rankdir=LR;\\n\");\r\n let visited = new Array2DHashMap_1.Array2DHashMap(PredictionContext_1.PredictionContext.IdentityEqualityComparator.INSTANCE);\r\n let workList = [];\r\n function getOrAddContext(context) {\r\n let newNumber = visited.size;\r\n let result = visited.putIfAbsent(context, newNumber);\r\n if (result != null) {\r\n // Already saw this context\r\n return result;\r\n }\r\n workList.push(context);\r\n return newNumber;\r\n }\r\n workList.push(this.context);\r\n visited.put(this.context, 0);\r\n while (true) {\r\n let current = workList.pop();\r\n if (!current) {\r\n break;\r\n }\r\n for (let i = 0; i < current.size; i++) {\r\n builder += (\" s\") + (getOrAddContext(current));\r\n builder += (\"->\");\r\n builder += (\"s\") + (getOrAddContext(current.getParent(i)));\r\n builder += (\"[label=\\\"\") + (current.getReturnState(i)) + (\"\\\"];\\n\");\r\n }\r\n }\r\n builder += (\"}\\n\");\r\n return builder.toString();\r\n }\r\n toString(recog, showAlt, showContext) {\r\n // Must check showContext before showAlt to preserve original overload behavior\r\n if (showContext == null) {\r\n showContext = showAlt != null;\r\n }\r\n if (showAlt == null) {\r\n showAlt = true;\r\n }\r\n let buf = \"\";\r\n // if (this.state.ruleIndex >= 0) {\r\n // \tif (recog != null) {\r\n // \t\tbuf += (recog.ruleNames[this.state.ruleIndex] + \":\");\r\n // \t} else {\r\n // \t\tbuf += (this.state.ruleIndex + \":\");\r\n // \t}\r\n // }\r\n let contexts;\r\n if (showContext) {\r\n contexts = this.context.toStrings(recog, this.state.stateNumber);\r\n }\r\n else {\r\n contexts = [\"?\"];\r\n }\r\n let first = true;\r\n for (let contextDesc of contexts) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += (\", \");\r\n }\r\n buf += (\"(\");\r\n buf += (this.state);\r\n if (showAlt) {\r\n buf += (\",\");\r\n buf += (this.alt);\r\n }\r\n if (this.context) {\r\n buf += (\",\");\r\n buf += (contextDesc);\r\n }\r\n if (this.semanticContext !== SemanticContext_1.SemanticContext.NONE) {\r\n buf += (\",\");\r\n buf += (this.semanticContext);\r\n }\r\n if (this.reachesIntoOuterContext) {\r\n buf += (\",up=\") + (this.outerContextDepth);\r\n }\r\n buf += (\")\");\r\n }\r\n return buf.toString();\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNConfig.prototype, \"_state\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNConfig.prototype, \"_context\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNConfig.prototype, \"state\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ATNConfig.prototype, \"context\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNConfig.prototype, \"semanticContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfig.prototype, \"clone\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ATNConfig.prototype, \"transformImpl\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfig.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfig.prototype, \"hashCode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(3, Decorators_1.NotNull)\r\n], ATNConfig, \"create\", null);\r\nATNConfig = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ATNConfig);\r\nexports.ATNConfig = ATNConfig;\r\n/**\r\n * This class was derived from `ATNConfig` purely as a memory optimization. It allows for the creation of an `ATNConfig`\r\n * with a non-default semantic context.\r\n *\r\n * See the `ATNConfig` documentation for more information about conserving memory through the use of several concrete\r\n * types.\r\n */\r\nlet SemanticContextATNConfig = class SemanticContextATNConfig extends ATNConfig {\r\n constructor(semanticContext, state, altOrConfig, context) {\r\n if (typeof altOrConfig === \"number\") {\r\n super(state, altOrConfig, context);\r\n }\r\n else {\r\n super(state, altOrConfig, context);\r\n }\r\n this._semanticContext = semanticContext;\r\n }\r\n get semanticContext() {\r\n return this._semanticContext;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], SemanticContextATNConfig.prototype, \"_semanticContext\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], SemanticContextATNConfig.prototype, \"semanticContext\", null);\r\nSemanticContextATNConfig = __decorate([\r\n __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], SemanticContextATNConfig);\r\n/**\r\n * This class was derived from `ATNConfig` purely as a memory optimization. It allows for the creation of an `ATNConfig`\r\n * with a lexer action.\r\n *\r\n * See the `ATNConfig` documentation for more information about conserving memory through the use of several concrete\r\n * types.\r\n */\r\nlet ActionATNConfig = class ActionATNConfig extends ATNConfig {\r\n constructor(lexerActionExecutor, state, altOrConfig, context, passedThroughNonGreedyDecision) {\r\n if (typeof altOrConfig === \"number\") {\r\n super(state, altOrConfig, context);\r\n }\r\n else {\r\n super(state, altOrConfig, context);\r\n if (altOrConfig.semanticContext !== SemanticContext_1.SemanticContext.NONE) {\r\n throw new Error(\"Not supported\");\r\n }\r\n }\r\n this._lexerActionExecutor = lexerActionExecutor;\r\n this.passedThroughNonGreedyDecision = passedThroughNonGreedyDecision;\r\n }\r\n get lexerActionExecutor() {\r\n return this._lexerActionExecutor;\r\n }\r\n get hasPassedThroughNonGreedyDecision() {\r\n return this.passedThroughNonGreedyDecision;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionATNConfig.prototype, \"lexerActionExecutor\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionATNConfig.prototype, \"hasPassedThroughNonGreedyDecision\", null);\r\nActionATNConfig = __decorate([\r\n __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ActionATNConfig);\r\n/**\r\n * This class was derived from `SemanticContextATNConfig` purely as a memory optimization. It allows for the creation of\r\n * an `ATNConfig` with both a lexer action and a non-default semantic context.\r\n *\r\n * See the `ATNConfig` documentation for more information about conserving memory through the use of several concrete\r\n * types.\r\n */\r\nlet ActionSemanticContextATNConfig = class ActionSemanticContextATNConfig extends SemanticContextATNConfig {\r\n constructor(lexerActionExecutor, semanticContext, state, altOrConfig, context, passedThroughNonGreedyDecision) {\r\n if (typeof altOrConfig === \"number\") {\r\n super(semanticContext, state, altOrConfig, context);\r\n }\r\n else {\r\n super(semanticContext, state, altOrConfig, context);\r\n }\r\n this._lexerActionExecutor = lexerActionExecutor;\r\n this.passedThroughNonGreedyDecision = passedThroughNonGreedyDecision;\r\n }\r\n get lexerActionExecutor() {\r\n return this._lexerActionExecutor;\r\n }\r\n get hasPassedThroughNonGreedyDecision() {\r\n return this.passedThroughNonGreedyDecision;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionSemanticContextATNConfig.prototype, \"lexerActionExecutor\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ActionSemanticContextATNConfig.prototype, \"hasPassedThroughNonGreedyDecision\", null);\r\nActionSemanticContextATNConfig = __decorate([\r\n __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ActionSemanticContextATNConfig);\r\n//# sourceMappingURL=ATNConfig.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BitSet = void 0;\r\nconst util = require(\"util\");\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\n/**\r\n * Private empty array used to construct empty BitSets\r\n */\r\nconst EMPTY_DATA = new Uint16Array(0);\r\n/**\r\n * Gets the word index of the `UInt16` element in `BitSet.data` containing the bit with the specified index.\r\n */\r\nfunction getIndex(bitNumber) {\r\n return bitNumber >>> 4;\r\n}\r\n/**\r\n * Convert a word index into the bit index of the LSB of that word\r\n */\r\nfunction unIndex(n) {\r\n return n * 16;\r\n}\r\n/**\r\n * Get's the bit number of the least signficant bit set LSB which is set in a word non-zero word;\r\n * Bit numbers run from LSB to MSB starting with 0.\r\n */\r\nfunction findLSBSet(word) {\r\n let bit = 1;\r\n for (let i = 0; i < 16; i++) {\r\n if ((word & bit) !== 0) {\r\n return i;\r\n }\r\n bit = (bit << 1) >>> 0;\r\n }\r\n throw new RangeError(\"No specified bit found\");\r\n}\r\nfunction findMSBSet(word) {\r\n let bit = (1 << 15) >>> 0;\r\n for (let i = 15; i >= 0; i--) {\r\n if ((word & bit) !== 0) {\r\n return i;\r\n }\r\n bit = bit >>> 1;\r\n }\r\n throw new RangeError(\"No specified bit found\");\r\n}\r\n/**\r\n * Gets a 16-bit mask with bit numbers fromBit to toBit (inclusive) set.\r\n * Bit numbers run from LSB to MSB starting with 0.\r\n */\r\nfunction bitsFor(fromBit, toBit) {\r\n fromBit &= 0xF;\r\n toBit &= 0xF;\r\n if (fromBit === toBit) {\r\n return (1 << fromBit) >>> 0;\r\n }\r\n return ((0xFFFF >>> (15 - toBit)) ^ (0xFFFF >>> (16 - fromBit)));\r\n}\r\n/**\r\n * A lookup table for number of set bits in a 16-bit integer. This is used to quickly count the cardinality (number of unique elements) of a BitSet.\r\n */\r\nconst POP_CNT = new Uint8Array(65536);\r\nfor (let i = 0; i < 16; i++) {\r\n const stride = (1 << i) >>> 0;\r\n let index = 0;\r\n while (index < POP_CNT.length) {\r\n // skip the numbers where the bit isn't set\r\n index += stride;\r\n // increment the ones where the bit is set\r\n for (let j = 0; j < stride; j++) {\r\n POP_CNT[index]++;\r\n index++;\r\n }\r\n }\r\n}\r\nclass BitSet {\r\n /*\r\n ** constructor implementation\r\n */\r\n constructor(arg) {\r\n if (!arg) {\r\n // covering the case of unspecified and nbits===0\r\n this.data = EMPTY_DATA;\r\n }\r\n else if (typeof arg === \"number\") {\r\n if (arg < 0) {\r\n throw new RangeError(\"nbits cannot be negative\");\r\n }\r\n else {\r\n this.data = new Uint16Array(getIndex(arg - 1) + 1);\r\n }\r\n }\r\n else {\r\n if (arg instanceof BitSet) {\r\n this.data = arg.data.slice(0); // Clone the data\r\n }\r\n else {\r\n let max = -1;\r\n for (let v of arg) {\r\n if (max < v) {\r\n max = v;\r\n }\r\n }\r\n this.data = new Uint16Array(getIndex(max - 1) + 1);\r\n for (let v of arg) {\r\n this.set(v);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Performs a logical **AND** of this target bit set with the argument bit set. This bit set is modified so that\r\n * each bit in it has the value `true` if and only if it both initially had the value `true` and the corresponding\r\n * bit in the bit set argument also had the value `true`.\r\n */\r\n and(set) {\r\n const data = this.data;\r\n const other = set.data;\r\n const words = Math.min(data.length, other.length);\r\n let lastWord = -1; // Keep track of index of last non-zero word\r\n for (let i = 0; i < words; i++) {\r\n let value = data[i] &= other[i];\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n if (lastWord === -1) {\r\n this.data = EMPTY_DATA;\r\n }\r\n if (lastWord < data.length - 1) {\r\n this.data = data.slice(0, lastWord + 1);\r\n }\r\n }\r\n /**\r\n * Clears all of the bits in this `BitSet` whose corresponding bit is set in the specified `BitSet`.\r\n */\r\n andNot(set) {\r\n const data = this.data;\r\n const other = set.data;\r\n const words = Math.min(data.length, other.length);\r\n let lastWord = -1; // Keep track of index of last non-zero word\r\n for (let i = 0; i < words; i++) {\r\n let value = data[i] &= (other[i] ^ 0xFFFF);\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n if (lastWord === -1) {\r\n this.data = EMPTY_DATA;\r\n }\r\n if (lastWord < data.length - 1) {\r\n this.data = data.slice(0, lastWord + 1);\r\n }\r\n }\r\n /**\r\n * Returns the number of bits set to `true` in this `BitSet`.\r\n */\r\n cardinality() {\r\n if (this.isEmpty) {\r\n return 0;\r\n }\r\n const data = this.data;\r\n const length = data.length;\r\n let result = 0;\r\n for (let i = 0; i < length; i++) {\r\n result += POP_CNT[data[i]];\r\n }\r\n return result;\r\n }\r\n clear(fromIndex, toIndex) {\r\n if (fromIndex == null) {\r\n this.data.fill(0);\r\n }\r\n else if (toIndex == null) {\r\n this.set(fromIndex, false);\r\n }\r\n else {\r\n this.set(fromIndex, toIndex, false);\r\n }\r\n }\r\n flip(fromIndex, toIndex) {\r\n if (toIndex == null) {\r\n toIndex = fromIndex;\r\n }\r\n if (fromIndex < 0 || toIndex < fromIndex) {\r\n throw new RangeError();\r\n }\r\n let word = getIndex(fromIndex);\r\n const lastWord = getIndex(toIndex);\r\n if (word === lastWord) {\r\n this.data[word] ^= bitsFor(fromIndex, toIndex);\r\n }\r\n else {\r\n this.data[word++] ^= bitsFor(fromIndex, 15);\r\n while (word < lastWord) {\r\n this.data[word++] ^= 0xFFFF;\r\n }\r\n this.data[word++] ^= bitsFor(0, toIndex);\r\n }\r\n }\r\n get(fromIndex, toIndex) {\r\n if (toIndex === undefined) {\r\n return !!(this.data[getIndex(fromIndex)] & bitsFor(fromIndex, fromIndex));\r\n }\r\n else {\r\n // return a BitSet\r\n let result = new BitSet(toIndex + 1);\r\n for (let i = fromIndex; i <= toIndex; i++) {\r\n result.set(i, this.get(i));\r\n }\r\n return result;\r\n }\r\n }\r\n /**\r\n * Returns true if the specified `BitSet` has any bits set to `true` that are also set to `true` in this `BitSet`.\r\n *\r\n * @param set `BitSet` to intersect with\r\n */\r\n intersects(set) {\r\n let smallerLength = Math.min(this.length(), set.length());\r\n if (smallerLength === 0) {\r\n return false;\r\n }\r\n let bound = getIndex(smallerLength - 1);\r\n for (let i = 0; i <= bound; i++) {\r\n if ((this.data[i] & set.data[i]) !== 0) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /**\r\n * Returns true if this `BitSet` contains no bits that are set to `true`.\r\n */\r\n get isEmpty() {\r\n return this.length() === 0;\r\n }\r\n /**\r\n * Returns the \"logical size\" of this `BitSet`: the index of the highest set bit in the `BitSet` plus one. Returns\r\n * zero if the `BitSet` contains no set bits.\r\n */\r\n length() {\r\n if (!this.data.length) {\r\n return 0;\r\n }\r\n return this.previousSetBit(unIndex(this.data.length) - 1) + 1;\r\n }\r\n /**\r\n * Returns the index of the first bit that is set to `false` that occurs on or after the specified starting index,\r\n * If no such bit exists then `-1` is returned.\r\n *\r\n * @param fromIndex the index to start checking from (inclusive)\r\n *\r\n * @throws RangeError if the specified index is negative\r\n */\r\n nextClearBit(fromIndex) {\r\n if (fromIndex < 0) {\r\n throw new RangeError(\"fromIndex cannot be negative\");\r\n }\r\n const data = this.data;\r\n const length = data.length;\r\n let word = getIndex(fromIndex);\r\n if (word > length) {\r\n return -1;\r\n }\r\n let ignore = 0xFFFF ^ bitsFor(fromIndex, 15);\r\n if ((data[word] | ignore) === 0xFFFF) {\r\n word++;\r\n ignore = 0;\r\n for (; word < length; word++) {\r\n if (data[word] !== 0xFFFF) {\r\n break;\r\n }\r\n }\r\n if (word === length) {\r\n // Hit the end\r\n return -1;\r\n }\r\n }\r\n return unIndex(word) + findLSBSet((data[word] | ignore) ^ 0xFFFF);\r\n }\r\n /**\r\n * Returns the index of the first bit that is set to `true` that occurs on or after the specified starting index.\r\n * If no such bit exists then `-1` is returned.\r\n *\r\n * To iterate over the `true` bits in a `BitSet`, use the following loop:\r\n *\r\n * ```\r\n * for (let i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) {\r\n * // operate on index i here\r\n * }\r\n * ```\r\n *\r\n * @param fromIndex the index to start checking from (inclusive)\r\n *\r\n * @throws RangeError if the specified index is negative\r\n */\r\n nextSetBit(fromIndex) {\r\n if (fromIndex < 0) {\r\n throw new RangeError(\"fromIndex cannot be negative\");\r\n }\r\n const data = this.data;\r\n const length = data.length;\r\n let word = getIndex(fromIndex);\r\n if (word > length) {\r\n return -1;\r\n }\r\n let mask = bitsFor(fromIndex, 15);\r\n if ((data[word] & mask) === 0) {\r\n word++;\r\n mask = 0xFFFF;\r\n for (; word < length; word++) {\r\n if (data[word] !== 0) {\r\n break;\r\n }\r\n }\r\n if (word >= length) {\r\n return -1;\r\n }\r\n }\r\n return unIndex(word) + findLSBSet(data[word] & mask);\r\n }\r\n /**\r\n * Performs a logical **OR** of this bit set with the bit set argument. This bit set is modified so that a bit in it\r\n * has the value `true` if and only if it either already had the value `true` or the corresponding bit in the bit\r\n * set argument has the value `true`.\r\n */\r\n or(set) {\r\n const data = this.data;\r\n const other = set.data;\r\n const minWords = Math.min(data.length, other.length);\r\n const words = Math.max(data.length, other.length);\r\n const dest = data.length === words ? data : new Uint16Array(words);\r\n let lastWord = -1;\r\n // Or those words both sets have in common\r\n for (let i = 0; i < minWords; i++) {\r\n let value = dest[i] = data[i] | other[i];\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n // Copy words from larger set (if there is one)\r\n const longer = data.length > other.length ? data : other;\r\n for (let i = minWords; i < words; i++) {\r\n let value = dest[i] = longer[i];\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n if (lastWord === -1) {\r\n this.data = EMPTY_DATA;\r\n }\r\n else if (dest.length === lastWord + 1) {\r\n this.data = dest;\r\n }\r\n else {\r\n this.data = dest.slice(0, lastWord);\r\n }\r\n }\r\n /**\r\n * Returns the index of the nearest bit that is set to `false` that occurs on or before the specified starting\r\n * index. If no such bit exists, or if `-1` is given as the starting index, then `-1` is returned.\r\n *\r\n * @param fromIndex the index to start checking from (inclusive)\r\n *\r\n * @throws RangeError if the specified index is less than `-1`\r\n */\r\n previousClearBit(fromIndex) {\r\n if (fromIndex < 0) {\r\n throw new RangeError(\"fromIndex cannot be negative\");\r\n }\r\n const data = this.data;\r\n const length = data.length;\r\n let word = getIndex(fromIndex);\r\n if (word >= length) {\r\n word = length - 1;\r\n }\r\n let ignore = 0xFFFF ^ bitsFor(0, fromIndex);\r\n if ((data[word] | ignore) === 0xFFFF) {\r\n ignore = 0;\r\n word--;\r\n for (; word >= 0; word--) {\r\n if (data[word] !== 0xFFFF) {\r\n break;\r\n }\r\n }\r\n if (word < 0) {\r\n // Hit the end\r\n return -1;\r\n }\r\n }\r\n return unIndex(word) + findMSBSet((data[word] | ignore) ^ 0xFFFF);\r\n }\r\n /**\r\n * Returns the index of the nearest bit that is set to `true` that occurs on or before the specified starting index.\r\n * If no such bit exists, or if `-1` is given as the starting index, then `-1` is returned.\r\n *\r\n * To iterate over the `true` bits in a `BitSet`, use the following loop:\r\n *\r\n * ```\r\n * for (let i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) {\r\n * // operate on index i here\r\n * }\r\n * ```\r\n *\r\n * @param fromIndex the index to start checking from (inclusive)\r\n *\r\n * @throws RangeError if the specified index is less than `-1`\r\n */\r\n previousSetBit(fromIndex) {\r\n if (fromIndex < 0) {\r\n throw new RangeError(\"fromIndex cannot be negative\");\r\n }\r\n const data = this.data;\r\n const length = data.length;\r\n let word = getIndex(fromIndex);\r\n if (word >= length) {\r\n word = length - 1;\r\n }\r\n let mask = bitsFor(0, fromIndex);\r\n if ((data[word] & mask) === 0) {\r\n word--;\r\n mask = 0xFFFF;\r\n for (; word >= 0; word--) {\r\n if (data[word] !== 0) {\r\n break;\r\n }\r\n }\r\n if (word < 0) {\r\n return -1;\r\n }\r\n }\r\n return unIndex(word) + findMSBSet(data[word] & mask);\r\n }\r\n set(fromIndex, toIndex, value) {\r\n if (toIndex === undefined) {\r\n toIndex = fromIndex;\r\n value = true;\r\n }\r\n else if (typeof toIndex === \"boolean\") {\r\n value = toIndex;\r\n toIndex = fromIndex;\r\n }\r\n if (value === undefined) {\r\n value = true;\r\n }\r\n if (fromIndex < 0 || fromIndex > toIndex) {\r\n throw new RangeError();\r\n }\r\n let word = getIndex(fromIndex);\r\n let lastWord = getIndex(toIndex);\r\n if (value && lastWord >= this.data.length) {\r\n // Grow array \"just enough\" for bits we need to set\r\n let temp = new Uint16Array(lastWord + 1);\r\n this.data.forEach((value, index) => temp[index] = value);\r\n this.data = temp;\r\n }\r\n else if (!value) {\r\n // But there is no need to grow array to clear bits.\r\n if (word >= this.data.length) {\r\n // Early exit\r\n return;\r\n }\r\n if (lastWord >= this.data.length) {\r\n // Adjust work to fit array\r\n lastWord = this.data.length - 1;\r\n toIndex = this.data.length * 16 - 1;\r\n }\r\n }\r\n if (word === lastWord) {\r\n this._setBits(word, value, bitsFor(fromIndex, toIndex));\r\n }\r\n else {\r\n this._setBits(word++, value, bitsFor(fromIndex, 15));\r\n while (word < lastWord) {\r\n this.data[word++] = value ? 0xFFFF : 0;\r\n }\r\n this._setBits(word, value, bitsFor(0, toIndex));\r\n }\r\n }\r\n _setBits(word, value, mask) {\r\n if (value) {\r\n this.data[word] |= mask;\r\n }\r\n else {\r\n this.data[word] &= 0xFFFF ^ mask;\r\n }\r\n }\r\n /**\r\n * Returns the number of bits of space actually in use by this `BitSet` to represent bit values. The maximum element\r\n * in the set is the size - 1st element.\r\n */\r\n get size() {\r\n return this.data.byteLength * 8;\r\n }\r\n /**\r\n * Returns a new byte array containing all the bits in this bit set.\r\n *\r\n * More precisely, if\r\n * `let bytes = s.toByteArray();`\r\n * then `bytes.length === (s.length()+7)/8` and `s.get(n) === ((bytes[n/8] & (1<<(n%8))) != 0)` for all\r\n * `n < 8 * bytes.length`.\r\n */\r\n // toByteArray(): Int8Array {\r\n // \tthrow new Error(\"NOT IMPLEMENTED\");\r\n // }\r\n /**\r\n * Returns a new integer array containing all the bits in this bit set.\r\n *\r\n * More precisely, if\r\n * `let integers = s.toIntegerArray();`\r\n * then `integers.length === (s.length()+31)/32` and `s.get(n) === ((integers[n/32] & (1<<(n%32))) != 0)` for all\r\n * `n < 32 * integers.length`.\r\n */\r\n // toIntegerArray(): Int32Array {\r\n // \tthrow new Error(\"NOT IMPLEMENTED\");\r\n // }\r\n hashCode() {\r\n return MurmurHash_1.MurmurHash.hashCode(this.data, 22);\r\n }\r\n /**\r\n * Compares this object against the specified object. The result is `true` if and only if the argument is not\r\n * `undefined` and is a `Bitset` object that has exactly the same set of bits set to `true` as this bit set. That\r\n * is, for every nonnegative index `k`,\r\n *\r\n * ```\r\n * ((BitSet)obj).get(k) == this.get(k)\r\n * ```\r\n *\r\n * must be true. The current sizes of the two bit sets are not compared.\r\n */\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof BitSet)) {\r\n return false;\r\n }\r\n const len = this.length();\r\n if (len !== obj.length()) {\r\n return false;\r\n }\r\n if (len === 0) {\r\n return true;\r\n }\r\n let bound = getIndex(len - 1);\r\n for (let i = 0; i <= bound; i++) {\r\n if (this.data[i] !== obj.data[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Returns a string representation of this bit set. For every index for which this `BitSet` contains a bit in the\r\n * set state, the decimal representation of that index is included in the result. Such indices are listed in order\r\n * from lowest to highest, separated by \", \" (a comma and a space) and surrounded by braces, resulting in the usual\r\n * mathematical notation for a set of integers.\r\n *\r\n * Example:\r\n *\r\n * BitSet drPepper = new BitSet();\r\n *\r\n * Now `drPepper.toString()` returns `\"{}\"`.\r\n *\r\n * drPepper.set(2);\r\n *\r\n * Now `drPepper.toString()` returns `\"{2}\"`.\r\n *\r\n * drPepper.set(4);\r\n * drPepper.set(10);\r\n *\r\n * Now `drPepper.toString()` returns `\"{2, 4, 10}\"`.\r\n */\r\n toString() {\r\n let result = \"{\";\r\n let first = true;\r\n for (let i = this.nextSetBit(0); i >= 0; i = this.nextSetBit(i + 1)) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n result += \", \";\r\n }\r\n result += i;\r\n }\r\n result += \"}\";\r\n return result;\r\n }\r\n // static valueOf(bytes: Int8Array): BitSet;\r\n // static valueOf(buffer: ArrayBuffer): BitSet;\r\n // static valueOf(integers: Int32Array): BitSet;\r\n // static valueOf(data: Int8Array | Int32Array | ArrayBuffer): BitSet {\r\n // \tthrow new Error(\"NOT IMPLEMENTED\");\r\n // }\r\n /**\r\n * Performs a logical **XOR** of this bit set with the bit set argument. This bit set is modified so that a bit in\r\n * it has the value `true` if and only if one of the following statements holds:\r\n *\r\n * * The bit initially has the value `true`, and the corresponding bit in the argument has the value `false`.\r\n * * The bit initially has the value `false`, and the corresponding bit in the argument has the value `true`.\r\n */\r\n xor(set) {\r\n const data = this.data;\r\n const other = set.data;\r\n const minWords = Math.min(data.length, other.length);\r\n const words = Math.max(data.length, other.length);\r\n const dest = data.length === words ? data : new Uint16Array(words);\r\n let lastWord = -1;\r\n // Xor those words both sets have in common\r\n for (let i = 0; i < minWords; i++) {\r\n let value = dest[i] = data[i] ^ other[i];\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n // Copy words from larger set (if there is one)\r\n const longer = data.length > other.length ? data : other;\r\n for (let i = minWords; i < words; i++) {\r\n let value = dest[i] = longer[i];\r\n if (value !== 0) {\r\n lastWord = i;\r\n }\r\n }\r\n if (lastWord === -1) {\r\n this.data = EMPTY_DATA;\r\n }\r\n else if (dest.length === lastWord + 1) {\r\n this.data = dest;\r\n }\r\n else {\r\n this.data = dest.slice(0, lastWord + 1);\r\n }\r\n }\r\n clone() {\r\n return new BitSet(this);\r\n }\r\n [Symbol.iterator]() {\r\n return new BitSetIterator(this.data);\r\n }\r\n // Overrides formatting for nodejs assert etc.\r\n [util.inspect.custom]() {\r\n return \"BitSet \" + this.toString();\r\n }\r\n}\r\nexports.BitSet = BitSet;\r\nclass BitSetIterator {\r\n constructor(data) {\r\n this.data = data;\r\n this.index = 0;\r\n this.mask = 0xFFFF;\r\n }\r\n next() {\r\n while (this.index < this.data.length) {\r\n const bits = this.data[this.index] & this.mask;\r\n if (bits !== 0) {\r\n const bitNumber = unIndex(this.index) + findLSBSet(bits);\r\n this.mask = bitsFor(bitNumber + 1, 15);\r\n return { done: false, value: bitNumber };\r\n }\r\n this.index++;\r\n this.mask = 0xFFFF;\r\n }\r\n return { done: true, value: -1 };\r\n }\r\n [Symbol.iterator]() { return this; }\r\n}\r\n//# sourceMappingURL=BitSet.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNConfigSet = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:25.5488013-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst ArrayEqualityComparator_1 = require(\"../misc/ArrayEqualityComparator\");\r\nconst ATN_1 = require(\"./ATN\");\r\nconst ATNConfig_1 = require(\"./ATNConfig\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst PredictionContextCache_1 = require(\"./PredictionContextCache\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\nconst assert = require(\"assert\");\r\nconst Utils = require(\"../misc/Utils\");\r\nclass KeyTypeEqualityComparer {\r\n hashCode(key) {\r\n return key.state ^ key.alt;\r\n }\r\n equals(a, b) {\r\n return a.state === b.state && a.alt === b.alt;\r\n }\r\n}\r\nKeyTypeEqualityComparer.INSTANCE = new KeyTypeEqualityComparer();\r\nfunction NewKeyedConfigMap(map) {\r\n if (map) {\r\n return new Array2DHashMap_1.Array2DHashMap(map);\r\n }\r\n else {\r\n return new Array2DHashMap_1.Array2DHashMap(KeyTypeEqualityComparer.INSTANCE);\r\n }\r\n}\r\n/**\r\n * Represents a set of ATN configurations (see `ATNConfig`). As configurations are added to the set, they are merged\r\n * with other `ATNConfig` instances already in the set when possible using the graph-structured stack.\r\n *\r\n * An instance of this class represents the complete set of positions (with context) in an ATN which would be associated\r\n * with a single DFA state. Its internal representation is more complex than traditional state used for NFA to DFA\r\n * conversion due to performance requirements (both improving speed and reducing memory overhead) as well as supporting\r\n * features such as semantic predicates and non-greedy operators in a form to support ANTLR's prediction algorithm.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ATNConfigSet {\r\n constructor(set, readonly) {\r\n this._uniqueAlt = 0;\r\n // Used in parser and lexer. In lexer, it indicates we hit a pred\r\n // while computing a closure operation. Don't make a DFA state from this.\r\n this._hasSemanticContext = false;\r\n this._dipsIntoOuterContext = false;\r\n /**\r\n * When `true`, this config set represents configurations where the entire\r\n * outer context has been consumed by the ATN interpreter. This prevents the\r\n * {@link ParserATNSimulator#closure} from pursuing the global FOLLOW when a\r\n * rule stop state is reached with an empty prediction context.\r\n *\r\n * Note: `outermostConfigSet` and {@link #dipsIntoOuterContext} should never\r\n * be true at the same time.\r\n */\r\n this.outermostConfigSet = false;\r\n this.cachedHashCode = -1;\r\n if (!set) {\r\n this.mergedConfigs = NewKeyedConfigMap();\r\n this.unmerged = [];\r\n this.configs = [];\r\n this._uniqueAlt = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n }\r\n else {\r\n if (readonly) {\r\n this.mergedConfigs = undefined;\r\n this.unmerged = undefined;\r\n }\r\n else if (!set.isReadOnly) {\r\n this.mergedConfigs = NewKeyedConfigMap(set.mergedConfigs);\r\n this.unmerged = set.unmerged.slice(0);\r\n }\r\n else {\r\n this.mergedConfigs = NewKeyedConfigMap();\r\n this.unmerged = [];\r\n }\r\n this.configs = set.configs.slice(0);\r\n this._dipsIntoOuterContext = set._dipsIntoOuterContext;\r\n this._hasSemanticContext = set._hasSemanticContext;\r\n this.outermostConfigSet = set.outermostConfigSet;\r\n if (readonly || !set.isReadOnly) {\r\n this._uniqueAlt = set._uniqueAlt;\r\n this._conflictInfo = set._conflictInfo;\r\n }\r\n // if (!readonly && set.isReadOnly) -> addAll is called from clone()\r\n }\r\n }\r\n /**\r\n * Get the set of all alternatives represented by configurations in this\r\n * set.\r\n */\r\n getRepresentedAlternatives() {\r\n if (this._conflictInfo != null) {\r\n return this._conflictInfo.conflictedAlts.clone();\r\n }\r\n let alts = new BitSet_1.BitSet();\r\n for (let config of this) {\r\n alts.set(config.alt);\r\n }\r\n return alts;\r\n }\r\n get isReadOnly() {\r\n return this.mergedConfigs == null;\r\n }\r\n get isOutermostConfigSet() {\r\n return this.outermostConfigSet;\r\n }\r\n set isOutermostConfigSet(outermostConfigSet) {\r\n if (this.outermostConfigSet && !outermostConfigSet) {\r\n throw new Error(\"IllegalStateException\");\r\n }\r\n assert(!outermostConfigSet || !this._dipsIntoOuterContext);\r\n this.outermostConfigSet = outermostConfigSet;\r\n }\r\n getStates() {\r\n let states = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n for (let c of this.configs) {\r\n states.add(c.state);\r\n }\r\n return states;\r\n }\r\n optimizeConfigs(interpreter) {\r\n if (this.configs.length === 0) {\r\n return;\r\n }\r\n for (let config of this.configs) {\r\n config.context = interpreter.atn.getCachedContext(config.context);\r\n }\r\n }\r\n clone(readonly) {\r\n let copy = new ATNConfigSet(this, readonly);\r\n if (!readonly && this.isReadOnly) {\r\n copy.addAll(this.configs);\r\n }\r\n return copy;\r\n }\r\n get size() {\r\n return this.configs.length;\r\n }\r\n get isEmpty() {\r\n return this.configs.length === 0;\r\n }\r\n contains(o) {\r\n if (!(o instanceof ATNConfig_1.ATNConfig)) {\r\n return false;\r\n }\r\n if (this.mergedConfigs && this.unmerged) {\r\n let config = o;\r\n let configKey = this.getKey(config);\r\n let mergedConfig = this.mergedConfigs.get(configKey);\r\n if (mergedConfig != null && this.canMerge(config, configKey, mergedConfig)) {\r\n return mergedConfig.contains(config);\r\n }\r\n for (let c of this.unmerged) {\r\n if (c.contains(o)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n for (let c of this.configs) {\r\n if (c.contains(o)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n *[Symbol.iterator]() {\r\n yield* this.configs;\r\n }\r\n toArray() {\r\n return this.configs;\r\n }\r\n add(e, contextCache) {\r\n this.ensureWritable();\r\n if (!this.mergedConfigs || !this.unmerged) {\r\n throw new Error(\"Covered by ensureWritable but duplicated here for strict null check limitation\");\r\n }\r\n assert(!this.outermostConfigSet || !e.reachesIntoOuterContext);\r\n if (contextCache == null) {\r\n contextCache = PredictionContextCache_1.PredictionContextCache.UNCACHED;\r\n }\r\n let addKey;\r\n let key = this.getKey(e);\r\n let mergedConfig = this.mergedConfigs.get(key);\r\n addKey = (mergedConfig == null);\r\n if (mergedConfig != null && this.canMerge(e, key, mergedConfig)) {\r\n mergedConfig.outerContextDepth = Math.max(mergedConfig.outerContextDepth, e.outerContextDepth);\r\n if (e.isPrecedenceFilterSuppressed) {\r\n mergedConfig.isPrecedenceFilterSuppressed = true;\r\n }\r\n let joined = PredictionContext_1.PredictionContext.join(mergedConfig.context, e.context, contextCache);\r\n this.updatePropertiesForMergedConfig(e);\r\n if (mergedConfig.context === joined) {\r\n return false;\r\n }\r\n mergedConfig.context = joined;\r\n return true;\r\n }\r\n for (let i = 0; i < this.unmerged.length; i++) {\r\n let unmergedConfig = this.unmerged[i];\r\n if (this.canMerge(e, key, unmergedConfig)) {\r\n unmergedConfig.outerContextDepth = Math.max(unmergedConfig.outerContextDepth, e.outerContextDepth);\r\n if (e.isPrecedenceFilterSuppressed) {\r\n unmergedConfig.isPrecedenceFilterSuppressed = true;\r\n }\r\n let joined = PredictionContext_1.PredictionContext.join(unmergedConfig.context, e.context, contextCache);\r\n this.updatePropertiesForMergedConfig(e);\r\n if (unmergedConfig.context === joined) {\r\n return false;\r\n }\r\n unmergedConfig.context = joined;\r\n if (addKey) {\r\n this.mergedConfigs.put(key, unmergedConfig);\r\n this.unmerged.splice(i, 1);\r\n }\r\n return true;\r\n }\r\n }\r\n this.configs.push(e);\r\n if (addKey) {\r\n this.mergedConfigs.put(key, e);\r\n }\r\n else {\r\n this.unmerged.push(e);\r\n }\r\n this.updatePropertiesForAddedConfig(e);\r\n return true;\r\n }\r\n updatePropertiesForMergedConfig(config) {\r\n // merged configs can't change the alt or semantic context\r\n this._dipsIntoOuterContext = this._dipsIntoOuterContext || config.reachesIntoOuterContext;\r\n assert(!this.outermostConfigSet || !this._dipsIntoOuterContext);\r\n }\r\n updatePropertiesForAddedConfig(config) {\r\n if (this.configs.length === 1) {\r\n this._uniqueAlt = config.alt;\r\n }\r\n else if (this._uniqueAlt !== config.alt) {\r\n this._uniqueAlt = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n }\r\n this._hasSemanticContext = this._hasSemanticContext || !SemanticContext_1.SemanticContext.NONE.equals(config.semanticContext);\r\n this._dipsIntoOuterContext = this._dipsIntoOuterContext || config.reachesIntoOuterContext;\r\n assert(!this.outermostConfigSet || !this._dipsIntoOuterContext);\r\n }\r\n canMerge(left, leftKey, right) {\r\n if (left.state.stateNumber !== right.state.stateNumber) {\r\n return false;\r\n }\r\n if (leftKey.alt !== right.alt) {\r\n return false;\r\n }\r\n return left.semanticContext.equals(right.semanticContext);\r\n }\r\n getKey(e) {\r\n return { state: e.state.stateNumber, alt: e.alt };\r\n }\r\n containsAll(c) {\r\n for (let o of c) {\r\n if (!(o instanceof ATNConfig_1.ATNConfig)) {\r\n return false;\r\n }\r\n if (!this.contains(o)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n addAll(c, contextCache) {\r\n this.ensureWritable();\r\n let changed = false;\r\n for (let group of c) {\r\n if (this.add(group, contextCache)) {\r\n changed = true;\r\n }\r\n }\r\n return changed;\r\n }\r\n clear() {\r\n this.ensureWritable();\r\n if (!this.mergedConfigs || !this.unmerged) {\r\n throw new Error(\"Covered by ensureWritable but duplicated here for strict null check limitation\");\r\n }\r\n this.mergedConfigs.clear();\r\n this.unmerged.length = 0;\r\n this.configs.length = 0;\r\n this._dipsIntoOuterContext = false;\r\n this._hasSemanticContext = false;\r\n this._uniqueAlt = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n this._conflictInfo = undefined;\r\n }\r\n equals(obj) {\r\n if (this === obj) {\r\n return true;\r\n }\r\n if (!(obj instanceof ATNConfigSet)) {\r\n return false;\r\n }\r\n return this.outermostConfigSet === obj.outermostConfigSet\r\n && Utils.equals(this._conflictInfo, obj._conflictInfo)\r\n && ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.equals(this.configs, obj.configs);\r\n }\r\n hashCode() {\r\n if (this.isReadOnly && this.cachedHashCode !== -1) {\r\n return this.cachedHashCode;\r\n }\r\n let hashCode = 1;\r\n hashCode = 5 * hashCode ^ (this.outermostConfigSet ? 1 : 0);\r\n hashCode = 5 * hashCode ^ ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.hashCode(this.configs);\r\n if (this.isReadOnly) {\r\n this.cachedHashCode = hashCode;\r\n }\r\n return hashCode;\r\n }\r\n toString(showContext) {\r\n if (showContext == null) {\r\n showContext = false;\r\n }\r\n let buf = \"\";\r\n let sortedConfigs = this.configs.slice(0);\r\n sortedConfigs.sort((o1, o2) => {\r\n if (o1.alt !== o2.alt) {\r\n return o1.alt - o2.alt;\r\n }\r\n else if (o1.state.stateNumber !== o2.state.stateNumber) {\r\n return o1.state.stateNumber - o2.state.stateNumber;\r\n }\r\n else {\r\n return o1.semanticContext.toString().localeCompare(o2.semanticContext.toString());\r\n }\r\n });\r\n buf += (\"[\");\r\n for (let i = 0; i < sortedConfigs.length; i++) {\r\n if (i > 0) {\r\n buf += (\", \");\r\n }\r\n buf += (sortedConfigs[i].toString(undefined, true, showContext));\r\n }\r\n buf += (\"]\");\r\n if (this._hasSemanticContext) {\r\n buf += (\",hasSemanticContext=\") + (this._hasSemanticContext);\r\n }\r\n if (this._uniqueAlt !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n buf += (\",uniqueAlt=\") + (this._uniqueAlt);\r\n }\r\n if (this._conflictInfo != null) {\r\n buf += (\",conflictingAlts=\") + (this._conflictInfo.conflictedAlts);\r\n if (!this._conflictInfo.isExact) {\r\n buf += (\"*\");\r\n }\r\n }\r\n if (this._dipsIntoOuterContext) {\r\n buf += (\",dipsIntoOuterContext\");\r\n }\r\n return buf.toString();\r\n }\r\n get uniqueAlt() {\r\n return this._uniqueAlt;\r\n }\r\n get hasSemanticContext() {\r\n return this._hasSemanticContext;\r\n }\r\n set hasSemanticContext(value) {\r\n this.ensureWritable();\r\n this._hasSemanticContext = value;\r\n }\r\n get conflictInfo() {\r\n return this._conflictInfo;\r\n }\r\n set conflictInfo(conflictInfo) {\r\n this.ensureWritable();\r\n this._conflictInfo = conflictInfo;\r\n }\r\n get conflictingAlts() {\r\n if (this._conflictInfo == null) {\r\n return undefined;\r\n }\r\n return this._conflictInfo.conflictedAlts;\r\n }\r\n get isExactConflict() {\r\n if (this._conflictInfo == null) {\r\n return false;\r\n }\r\n return this._conflictInfo.isExact;\r\n }\r\n get dipsIntoOuterContext() {\r\n return this._dipsIntoOuterContext;\r\n }\r\n get(index) {\r\n return this.configs[index];\r\n }\r\n ensureWritable() {\r\n if (this.isReadOnly) {\r\n throw new Error(\"This ATNConfigSet is read only.\");\r\n }\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNConfigSet.prototype, \"getRepresentedAlternatives\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"isEmpty\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"contains\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, Symbol.iterator, null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"toArray\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"containsAll\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"clear\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ATNConfigSet.prototype, \"hashCode\", null);\r\nexports.ATNConfigSet = ATNConfigSet;\r\n//# sourceMappingURL=ATNConfigSet.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DFAState = void 0;\r\nconst ATN_1 = require(\"../atn/ATN\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst PredictionContext_1 = require(\"../atn/PredictionContext\");\r\nconst assert = require(\"assert\");\r\n/** A DFA state represents a set of possible ATN configurations.\r\n * As Aho, Sethi, Ullman p. 117 says \"The DFA uses its state\r\n * to keep track of all possible states the ATN can be in after\r\n * reading each input symbol. That is to say, after reading\r\n * input a1a2..an, the DFA is in a state that represents the\r\n * subset T of the states of the ATN that are reachable from the\r\n * ATN's start state along some path labeled a1a2..an.\"\r\n * In conventional NFA&rarr;DFA conversion, therefore, the subset T\r\n * would be a bitset representing the set of states the\r\n * ATN could be in. We need to track the alt predicted by each\r\n * state as well, however. More importantly, we need to maintain\r\n * a stack of states, tracking the closure operations as they\r\n * jump from rule to rule, emulating rule invocations (method calls).\r\n * I have to add a stack to simulate the proper lookahead sequences for\r\n * the underlying LL grammar from which the ATN was derived.\r\n *\r\n * I use a set of ATNConfig objects not simple states. An ATNConfig\r\n * is both a state (ala normal conversion) and a RuleContext describing\r\n * the chain of rules (if any) followed to arrive at that state.\r\n *\r\n * A DFA state may have multiple references to a particular state,\r\n * but with different ATN contexts (with same or different alts)\r\n * meaning that state was reached via a different set of rule invocations.\r\n */\r\nclass DFAState {\r\n /**\r\n * Constructs a new `DFAState`.\r\n *\r\n * @param configs The set of ATN configurations defining this state.\r\n */\r\n constructor(configs) {\r\n this.stateNumber = -1;\r\n this.configs = configs;\r\n this.edges = new Map();\r\n this.contextEdges = new Map();\r\n }\r\n get isContextSensitive() {\r\n return !!this.contextSymbols;\r\n }\r\n isContextSymbol(symbol) {\r\n if (!this.isContextSensitive) {\r\n return false;\r\n }\r\n return this.contextSymbols.get(symbol);\r\n }\r\n setContextSymbol(symbol) {\r\n assert(this.isContextSensitive);\r\n this.contextSymbols.set(symbol);\r\n }\r\n setContextSensitive(atn) {\r\n assert(!this.configs.isOutermostConfigSet);\r\n if (this.isContextSensitive) {\r\n return;\r\n }\r\n if (!this.contextSymbols) {\r\n this.contextSymbols = new BitSet_1.BitSet();\r\n }\r\n }\r\n get acceptStateInfo() {\r\n return this._acceptStateInfo;\r\n }\r\n set acceptStateInfo(acceptStateInfo) {\r\n this._acceptStateInfo = acceptStateInfo;\r\n }\r\n get isAcceptState() {\r\n return !!this._acceptStateInfo;\r\n }\r\n get prediction() {\r\n if (!this._acceptStateInfo) {\r\n return ATN_1.ATN.INVALID_ALT_NUMBER;\r\n }\r\n return this._acceptStateInfo.prediction;\r\n }\r\n get lexerActionExecutor() {\r\n if (!this._acceptStateInfo) {\r\n return undefined;\r\n }\r\n return this._acceptStateInfo.lexerActionExecutor;\r\n }\r\n getTarget(symbol) {\r\n return this.edges.get(symbol);\r\n }\r\n setTarget(symbol, target) {\r\n this.edges.set(symbol, target);\r\n }\r\n getEdgeMap() {\r\n return this.edges;\r\n }\r\n getContextTarget(invokingState) {\r\n if (invokingState === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n invokingState = -1;\r\n }\r\n return this.contextEdges.get(invokingState);\r\n }\r\n setContextTarget(invokingState, target) {\r\n if (!this.isContextSensitive) {\r\n throw new Error(\"The state is not context sensitive.\");\r\n }\r\n if (invokingState === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n invokingState = -1;\r\n }\r\n this.contextEdges.set(invokingState, target);\r\n }\r\n getContextEdgeMap() {\r\n let map = new Map(this.contextEdges);\r\n let existing = map.get(-1);\r\n if (existing !== undefined) {\r\n if (map.size === 1) {\r\n let result = new Map();\r\n result.set(PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY, existing);\r\n return result;\r\n }\r\n else {\r\n map.delete(-1);\r\n map.set(PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY, existing);\r\n }\r\n }\r\n return map;\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize(7);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.configs.hashCode());\r\n hash = MurmurHash_1.MurmurHash.finish(hash, 1);\r\n return hash;\r\n }\r\n /**\r\n * Two {@link DFAState} instances are equal if their ATN configuration sets\r\n * are the same. This method is used to see if a state already exists.\r\n *\r\n * Because the number of alternatives and number of ATN configurations are\r\n * finite, there is a finite number of DFA states that can be processed.\r\n * This is necessary to show that the algorithm terminates.\r\n *\r\n * Cannot test the DFA state numbers here because in\r\n * {@link ParserATNSimulator#addDFAState} we need to know if any other state\r\n * exists that has this exact set of ATN configurations. The\r\n * {@link #stateNumber} is irrelevant.\r\n */\r\n equals(o) {\r\n // compare set of ATN configurations in this set with other\r\n if (this === o) {\r\n return true;\r\n }\r\n if (!(o instanceof DFAState)) {\r\n return false;\r\n }\r\n let other = o;\r\n let sameSet = this.configs.equals(other.configs);\r\n //\t\tSystem.out.println(\"DFAState.equals: \"+configs+(sameSet?\"==\":\"!=\")+other.configs);\r\n return sameSet;\r\n }\r\n toString() {\r\n let buf = \"\";\r\n buf += (this.stateNumber) + (\":\") + (this.configs);\r\n if (this.isAcceptState) {\r\n buf += (\"=>\");\r\n if (this.predicates) {\r\n buf += this.predicates;\r\n }\r\n else {\r\n buf += (this.prediction);\r\n }\r\n }\r\n return buf.toString();\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFAState.prototype, \"configs\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFAState.prototype, \"edges\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFAState.prototype, \"contextEdges\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], DFAState.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DFAState.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DFAState.prototype, \"toString\", null);\r\nexports.DFAState = DFAState;\r\n(function (DFAState) {\r\n /** Map a predicate to a predicted alternative. */\r\n let PredPrediction = class PredPrediction {\r\n constructor(pred, alt) {\r\n this.alt = alt;\r\n this.pred = pred;\r\n }\r\n toString() {\r\n return \"(\" + this.pred + \", \" + this.alt + \")\";\r\n }\r\n };\r\n __decorate([\r\n Decorators_1.NotNull\r\n ], PredPrediction.prototype, \"pred\", void 0);\r\n __decorate([\r\n Decorators_1.Override\r\n ], PredPrediction.prototype, \"toString\", null);\r\n PredPrediction = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n ], PredPrediction);\r\n DFAState.PredPrediction = PredPrediction;\r\n})(DFAState = exports.DFAState || (exports.DFAState = {}));\r\n//# sourceMappingURL=DFAState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNSimulator = void 0;\r\nconst ATNConfigSet_1 = require(\"./ATNConfigSet\");\r\nconst DFAState_1 = require(\"../dfa/DFAState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nlet ATNSimulator = class ATNSimulator {\r\n constructor(atn) {\r\n this.atn = atn;\r\n }\r\n static get ERROR() {\r\n if (!ATNSimulator._ERROR) {\r\n ATNSimulator._ERROR = new DFAState_1.DFAState(new ATNConfigSet_1.ATNConfigSet());\r\n ATNSimulator._ERROR.stateNumber = PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY;\r\n }\r\n return ATNSimulator._ERROR;\r\n }\r\n /**\r\n * Clear the DFA cache used by the current instance. Since the DFA cache may\r\n * be shared by multiple ATN simulators, this method may affect the\r\n * performance (but not accuracy) of other parsers which are being used\r\n * concurrently.\r\n *\r\n * @ if the current instance does not\r\n * support clearing the DFA.\r\n *\r\n * @since 4.3\r\n */\r\n clearDFA() {\r\n this.atn.clearDFA();\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNSimulator.prototype, \"atn\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNSimulator, \"ERROR\", null);\r\nATNSimulator = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATNSimulator);\r\nexports.ATNSimulator = ATNSimulator;\r\n(function (ATNSimulator) {\r\n const RULE_VARIANT_DELIMITER = \"$\";\r\n const RULE_LF_VARIANT_MARKER = \"$lf$\";\r\n const RULE_NOLF_VARIANT_MARKER = \"$nolf$\";\r\n})(ATNSimulator = exports.ATNSimulator || (exports.ATNSimulator = {}));\r\nexports.ATNSimulator = ATNSimulator;\r\n//# sourceMappingURL=ATNSimulator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConsoleErrorListener = void 0;\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ConsoleErrorListener {\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This implementation prints messages to {@link System#err} containing the\r\n * values of `line`, `charPositionInLine`, and `msg` using\r\n * the following format.\r\n *\r\n * <pre>\r\n * line *line*:*charPositionInLine* *msg*\r\n * </pre>\r\n */\r\n syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e) {\r\n console.error(`line ${line}:${charPositionInLine} ${msg}`);\r\n }\r\n}\r\nexports.ConsoleErrorListener = ConsoleErrorListener;\r\n/**\r\n * Provides a default instance of {@link ConsoleErrorListener}.\r\n */\r\nConsoleErrorListener.INSTANCE = new ConsoleErrorListener();\r\n//# sourceMappingURL=ConsoleErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProxyErrorListener = void 0;\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/**\r\n * This implementation of {@link ANTLRErrorListener} dispatches all calls to a\r\n * collection of delegate listeners. This reduces the effort required to support multiple\r\n * listeners.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ProxyErrorListener {\r\n constructor(delegates) {\r\n this.delegates = delegates;\r\n if (!delegates) {\r\n throw new Error(\"Invalid delegates\");\r\n }\r\n }\r\n getDelegates() {\r\n return this.delegates;\r\n }\r\n syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e) {\r\n this.delegates.forEach((listener) => {\r\n if (listener.syntaxError) {\r\n listener.syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e);\r\n }\r\n });\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull),\r\n __param(4, Decorators_1.NotNull)\r\n], ProxyErrorListener.prototype, \"syntaxError\", null);\r\nexports.ProxyErrorListener = ProxyErrorListener;\r\n//# sourceMappingURL=ProxyErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IntStream = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:51.6934376-07:00\r\nvar IntStream;\r\n(function (IntStream) {\r\n /**\r\n * The value returned by {@link #LA LA()} when the end of the stream is\r\n * reached.\r\n */\r\n IntStream.EOF = -1;\r\n /**\r\n * The value returned by {@link #getSourceName} when the actual name of the\r\n * underlying source is not known.\r\n */\r\n IntStream.UNKNOWN_SOURCE_NAME = \"<unknown>\";\r\n})(IntStream = exports.IntStream || (exports.IntStream = {}));\r\n//# sourceMappingURL=IntStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Token = void 0;\r\nconst IntStream_1 = require(\"./IntStream\");\r\nvar Token;\r\n(function (Token) {\r\n Token.INVALID_TYPE = 0;\r\n /** During lookahead operations, this \"token\" signifies we hit rule end ATN state\r\n * and did not follow it despite needing to.\r\n */\r\n Token.EPSILON = -2;\r\n Token.MIN_USER_TOKEN_TYPE = 1;\r\n Token.EOF = IntStream_1.IntStream.EOF;\r\n /** All tokens go to the parser (unless skip() is called in that rule)\r\n * on a particular \"channel\". The parser tunes to a particular channel\r\n * so that whitespace etc... can go to the parser on a \"hidden\" channel.\r\n */\r\n Token.DEFAULT_CHANNEL = 0;\r\n /** Anything on different channel than DEFAULT_CHANNEL is not parsed\r\n * by parser.\r\n */\r\n Token.HIDDEN_CHANNEL = 1;\r\n /**\r\n * This is the minimum constant value which can be assigned to a\r\n * user-defined token channel.\r\n *\r\n * The non-negative numbers less than {@link #MIN_USER_CHANNEL_VALUE} are\r\n * assigned to the predefined channels {@link #DEFAULT_CHANNEL} and\r\n * {@link #HIDDEN_CHANNEL}.\r\n *\r\n * @see `Token.channel`\r\n */\r\n Token.MIN_USER_CHANNEL_VALUE = 2;\r\n})(Token = exports.Token || (exports.Token = {}));\r\n//# sourceMappingURL=Token.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Recognizer = void 0;\r\nconst ConsoleErrorListener_1 = require(\"./ConsoleErrorListener\");\r\nconst ProxyErrorListener_1 = require(\"./ProxyErrorListener\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\nconst Utils = require(\"./misc/Utils\");\r\nclass Recognizer {\r\n constructor() {\r\n this._listeners = [ConsoleErrorListener_1.ConsoleErrorListener.INSTANCE];\r\n this._stateNumber = -1;\r\n }\r\n /**\r\n * Get a map from token names to token types.\r\n *\r\n * Used for XPath and tree pattern compilation.\r\n */\r\n getTokenTypeMap() {\r\n let vocabulary = this.vocabulary;\r\n let result = Recognizer.tokenTypeMapCache.get(vocabulary);\r\n if (result == null) {\r\n let intermediateResult = new Map();\r\n for (let i = 0; i <= this.atn.maxTokenType; i++) {\r\n let literalName = vocabulary.getLiteralName(i);\r\n if (literalName != null) {\r\n intermediateResult.set(literalName, i);\r\n }\r\n let symbolicName = vocabulary.getSymbolicName(i);\r\n if (symbolicName != null) {\r\n intermediateResult.set(symbolicName, i);\r\n }\r\n }\r\n intermediateResult.set(\"EOF\", Token_1.Token.EOF);\r\n result = intermediateResult;\r\n Recognizer.tokenTypeMapCache.set(vocabulary, result);\r\n }\r\n return result;\r\n }\r\n /**\r\n * Get a map from rule names to rule indexes.\r\n *\r\n * Used for XPath and tree pattern compilation.\r\n */\r\n getRuleIndexMap() {\r\n let ruleNames = this.ruleNames;\r\n if (ruleNames == null) {\r\n throw new Error(\"The current recognizer does not provide a list of rule names.\");\r\n }\r\n let result = Recognizer.ruleIndexMapCache.get(ruleNames);\r\n if (result == null) {\r\n result = Utils.toMap(ruleNames);\r\n Recognizer.ruleIndexMapCache.set(ruleNames, result);\r\n }\r\n return result;\r\n }\r\n getTokenType(tokenName) {\r\n let ttype = this.getTokenTypeMap().get(tokenName);\r\n if (ttype != null) {\r\n return ttype;\r\n }\r\n return Token_1.Token.INVALID_TYPE;\r\n }\r\n /**\r\n * If this recognizer was generated, it will have a serialized ATN\r\n * representation of the grammar.\r\n *\r\n * For interpreters, we don't know their serialized ATN despite having\r\n * created the interpreter from it.\r\n */\r\n get serializedATN() {\r\n throw new Error(\"there is no serialized ATN\");\r\n }\r\n /**\r\n * Get the {@link ATN} used by the recognizer for prediction.\r\n *\r\n * @returns The {@link ATN} used by the recognizer for prediction.\r\n */\r\n get atn() {\r\n return this._interp.atn;\r\n }\r\n /**\r\n * Get the ATN interpreter used by the recognizer for prediction.\r\n *\r\n * @returns The ATN interpreter used by the recognizer for prediction.\r\n */\r\n get interpreter() {\r\n return this._interp;\r\n }\r\n /**\r\n * Set the ATN interpreter used by the recognizer for prediction.\r\n *\r\n * @param interpreter The ATN interpreter used by the recognizer for\r\n * prediction.\r\n */\r\n set interpreter(interpreter) {\r\n this._interp = interpreter;\r\n }\r\n /** If profiling during the parse/lex, this will return DecisionInfo records\r\n * for each decision in recognizer in a ParseInfo object.\r\n *\r\n * @since 4.3\r\n */\r\n get parseInfo() {\r\n return Promise.resolve(undefined);\r\n }\r\n /** What is the error header, normally line/character position information? */\r\n getErrorHeader(e) {\r\n let token = e.getOffendingToken();\r\n if (!token) {\r\n return \"\";\r\n }\r\n let line = token.line;\r\n let charPositionInLine = token.charPositionInLine;\r\n return \"line \" + line + \":\" + charPositionInLine;\r\n }\r\n /**\r\n * @exception NullPointerException if `listener` is `undefined`.\r\n */\r\n addErrorListener(listener) {\r\n if (!listener) {\r\n throw new TypeError(\"listener must not be null\");\r\n }\r\n this._listeners.push(listener);\r\n }\r\n removeErrorListener(listener) {\r\n let position = this._listeners.indexOf(listener);\r\n if (position !== -1) {\r\n this._listeners.splice(position, 1);\r\n }\r\n }\r\n removeErrorListeners() {\r\n this._listeners.length = 0;\r\n }\r\n getErrorListeners() {\r\n return this._listeners.slice(0);\r\n }\r\n getErrorListenerDispatch() {\r\n return new ProxyErrorListener_1.ProxyErrorListener(this.getErrorListeners());\r\n }\r\n // subclass needs to override these if there are sempreds or actions\r\n // that the ATN interp needs to execute\r\n sempred(_localctx, ruleIndex, actionIndex) {\r\n return true;\r\n }\r\n precpred(localctx, precedence) {\r\n return true;\r\n }\r\n action(_localctx, ruleIndex, actionIndex) {\r\n // intentionally empty\r\n }\r\n get state() {\r\n return this._stateNumber;\r\n }\r\n /** Indicate that the recognizer has changed internal state that is\r\n * consistent with the ATN state passed in. This way we always know\r\n * where we are in the ATN as the parser goes along. The rule\r\n * context objects form a stack that lets us see the stack of\r\n * invoking rules. Combine this and we have complete ATN\r\n * configuration information.\r\n */\r\n set state(atnState) {\r\n //\t\tSystem.err.println(\"setState \"+atnState);\r\n this._stateNumber = atnState;\r\n //\t\tif ( traceATNStates ) _ctx.trace(atnState);\r\n }\r\n}\r\nRecognizer.EOF = -1;\r\nRecognizer.tokenTypeMapCache = new WeakMap();\r\nRecognizer.ruleIndexMapCache = new WeakMap();\r\n__decorate([\r\n Decorators_1.SuppressWarnings(\"serial\"),\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"_listeners\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"getTokenTypeMap\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"getRuleIndexMap\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"serializedATN\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"atn\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], Recognizer.prototype, \"interpreter\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], Recognizer.prototype, \"getErrorHeader\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Recognizer.prototype, \"addErrorListener\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Recognizer.prototype, \"removeErrorListener\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Recognizer.prototype, \"getErrorListeners\", null);\r\nexports.Recognizer = Recognizer;\r\n//# sourceMappingURL=Recognizer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.VocabularyImpl = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:59.5829654-07:00\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\n/**\r\n * This class provides a default implementation of the {@link Vocabulary}\r\n * interface.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass VocabularyImpl {\r\n /**\r\n * Constructs a new instance of {@link VocabularyImpl} from the specified\r\n * literal, symbolic, and display token names.\r\n *\r\n * @param literalNames The literal names assigned to tokens, or an empty array\r\n * if no literal names are assigned.\r\n * @param symbolicNames The symbolic names assigned to tokens, or\r\n * an empty array if no symbolic names are assigned.\r\n * @param displayNames The display names assigned to tokens, or an empty array\r\n * to use the values in `literalNames` and `symbolicNames` as\r\n * the source of display names, as described in\r\n * {@link #getDisplayName(int)}.\r\n *\r\n * @see #getLiteralName(int)\r\n * @see #getSymbolicName(int)\r\n * @see #getDisplayName(int)\r\n */\r\n constructor(literalNames, symbolicNames, displayNames) {\r\n this.literalNames = literalNames;\r\n this.symbolicNames = symbolicNames;\r\n this.displayNames = displayNames;\r\n // See note here on -1 part: https://github.com/antlr/antlr4/pull/1146\r\n this._maxTokenType =\r\n Math.max(this.displayNames.length, Math.max(this.literalNames.length, this.symbolicNames.length)) - 1;\r\n }\r\n get maxTokenType() {\r\n return this._maxTokenType;\r\n }\r\n getLiteralName(tokenType) {\r\n if (tokenType >= 0 && tokenType < this.literalNames.length) {\r\n return this.literalNames[tokenType];\r\n }\r\n return undefined;\r\n }\r\n getSymbolicName(tokenType) {\r\n if (tokenType >= 0 && tokenType < this.symbolicNames.length) {\r\n return this.symbolicNames[tokenType];\r\n }\r\n if (tokenType === Token_1.Token.EOF) {\r\n return \"EOF\";\r\n }\r\n return undefined;\r\n }\r\n getDisplayName(tokenType) {\r\n if (tokenType >= 0 && tokenType < this.displayNames.length) {\r\n let displayName = this.displayNames[tokenType];\r\n if (displayName) {\r\n return displayName;\r\n }\r\n }\r\n let literalName = this.getLiteralName(tokenType);\r\n if (literalName) {\r\n return literalName;\r\n }\r\n let symbolicName = this.getSymbolicName(tokenType);\r\n if (symbolicName) {\r\n return symbolicName;\r\n }\r\n return String(tokenType);\r\n }\r\n}\r\n/**\r\n * Gets an empty {@link Vocabulary} instance.\r\n *\r\n * No literal or symbol names are assigned to token types, so\r\n * {@link #getDisplayName(int)} returns the numeric value for all tokens\r\n * except {@link Token#EOF}.\r\n */\r\nVocabularyImpl.EMPTY_VOCABULARY = new VocabularyImpl([], [], []);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], VocabularyImpl.prototype, \"literalNames\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], VocabularyImpl.prototype, \"symbolicNames\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], VocabularyImpl.prototype, \"displayNames\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], VocabularyImpl.prototype, \"maxTokenType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], VocabularyImpl.prototype, \"getLiteralName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], VocabularyImpl.prototype, \"getSymbolicName\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], VocabularyImpl.prototype, \"getDisplayName\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], VocabularyImpl, \"EMPTY_VOCABULARY\", void 0);\r\nexports.VocabularyImpl = VocabularyImpl;\r\n//# sourceMappingURL=VocabularyImpl.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DFASerializer = void 0;\r\nconst ATNSimulator_1 = require(\"../atn/ATNSimulator\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst PredictionContext_1 = require(\"../atn/PredictionContext\");\r\nconst Recognizer_1 = require(\"../Recognizer\");\r\nconst VocabularyImpl_1 = require(\"../VocabularyImpl\");\r\n/** A DFA walker that knows how to dump them to serialized strings. */\r\nclass DFASerializer {\r\n constructor(dfa, vocabulary, ruleNames, atn) {\r\n if (vocabulary instanceof Recognizer_1.Recognizer) {\r\n ruleNames = vocabulary.ruleNames;\r\n atn = vocabulary.atn;\r\n vocabulary = vocabulary.vocabulary;\r\n }\r\n else if (!vocabulary) {\r\n vocabulary = VocabularyImpl_1.VocabularyImpl.EMPTY_VOCABULARY;\r\n }\r\n this.dfa = dfa;\r\n this.vocabulary = vocabulary;\r\n this.ruleNames = ruleNames;\r\n this.atn = atn;\r\n }\r\n toString() {\r\n if (!this.dfa.s0) {\r\n return \"\";\r\n }\r\n let buf = \"\";\r\n if (this.dfa.states) {\r\n let states = new Array(...this.dfa.states.toArray());\r\n states.sort((o1, o2) => o1.stateNumber - o2.stateNumber);\r\n for (let s of states) {\r\n let edges = s.getEdgeMap();\r\n let edgeKeys = [...edges.keys()].sort((a, b) => a - b);\r\n let contextEdges = s.getContextEdgeMap();\r\n let contextEdgeKeys = [...contextEdges.keys()].sort((a, b) => a - b);\r\n for (let entry of edgeKeys) {\r\n let value = edges.get(entry);\r\n if ((value == null || value === ATNSimulator_1.ATNSimulator.ERROR) && !s.isContextSymbol(entry)) {\r\n continue;\r\n }\r\n let contextSymbol = false;\r\n buf += (this.getStateString(s)) + (\"-\") + (this.getEdgeLabel(entry)) + (\"->\");\r\n if (s.isContextSymbol(entry)) {\r\n buf += (\"!\");\r\n contextSymbol = true;\r\n }\r\n let t = value;\r\n if (t && t.stateNumber !== ATNSimulator_1.ATNSimulator.ERROR.stateNumber) {\r\n buf += (this.getStateString(t)) + (\"\\n\");\r\n }\r\n else if (contextSymbol) {\r\n buf += (\"ctx\\n\");\r\n }\r\n }\r\n if (s.isContextSensitive) {\r\n for (let entry of contextEdgeKeys) {\r\n buf += (this.getStateString(s))\r\n + (\"-\")\r\n + (this.getContextLabel(entry))\r\n + (\"->\")\r\n + (this.getStateString(contextEdges.get(entry)))\r\n + (\"\\n\");\r\n }\r\n }\r\n }\r\n }\r\n let output = buf;\r\n if (output.length === 0) {\r\n return \"\";\r\n }\r\n //return Utils.sortLinesInString(output);\r\n return output;\r\n }\r\n getContextLabel(i) {\r\n if (i === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n return \"ctx:EMPTY_FULL\";\r\n }\r\n else if (i === PredictionContext_1.PredictionContext.EMPTY_LOCAL_STATE_KEY) {\r\n return \"ctx:EMPTY_LOCAL\";\r\n }\r\n if (this.atn && i > 0 && i <= this.atn.states.length) {\r\n let state = this.atn.states[i];\r\n let ruleIndex = state.ruleIndex;\r\n if (this.ruleNames && ruleIndex >= 0 && ruleIndex < this.ruleNames.length) {\r\n return \"ctx:\" + String(i) + \"(\" + this.ruleNames[ruleIndex] + \")\";\r\n }\r\n }\r\n return \"ctx:\" + String(i);\r\n }\r\n getEdgeLabel(i) {\r\n return this.vocabulary.getDisplayName(i);\r\n }\r\n getStateString(s) {\r\n if (s === ATNSimulator_1.ATNSimulator.ERROR) {\r\n return \"ERROR\";\r\n }\r\n let n = s.stateNumber;\r\n let stateStr = \"s\" + n;\r\n if (s.isAcceptState) {\r\n if (s.predicates) {\r\n stateStr = \":s\" + n + \"=>\" + s.predicates;\r\n }\r\n else {\r\n stateStr = \":s\" + n + \"=>\" + s.prediction;\r\n }\r\n }\r\n if (s.isContextSensitive) {\r\n stateStr += \"*\";\r\n for (let config of s.configs) {\r\n if (config.reachesIntoOuterContext) {\r\n stateStr += \"*\";\r\n break;\r\n }\r\n }\r\n }\r\n return stateStr;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFASerializer.prototype, \"dfa\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFASerializer.prototype, \"vocabulary\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], DFASerializer.prototype, \"toString\", null);\r\nexports.DFASerializer = DFASerializer;\r\n//# sourceMappingURL=DFASerializer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerDFASerializer = void 0;\r\nconst DFASerializer_1 = require(\"./DFASerializer\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst VocabularyImpl_1 = require(\"../VocabularyImpl\");\r\nlet LexerDFASerializer = class LexerDFASerializer extends DFASerializer_1.DFASerializer {\r\n constructor(dfa) {\r\n super(dfa, VocabularyImpl_1.VocabularyImpl.EMPTY_VOCABULARY);\r\n }\r\n getEdgeLabel(i) {\r\n return \"'\" + String.fromCodePoint(i) + \"'\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], LexerDFASerializer.prototype, \"getEdgeLabel\", null);\r\nLexerDFASerializer = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerDFASerializer);\r\nexports.LexerDFASerializer = LexerDFASerializer;\r\n//# sourceMappingURL=LexerDFASerializer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNStateType = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:27.4734328-07:00\r\nvar ATNStateType;\r\n(function (ATNStateType) {\r\n ATNStateType[ATNStateType[\"INVALID_TYPE\"] = 0] = \"INVALID_TYPE\";\r\n ATNStateType[ATNStateType[\"BASIC\"] = 1] = \"BASIC\";\r\n ATNStateType[ATNStateType[\"RULE_START\"] = 2] = \"RULE_START\";\r\n ATNStateType[ATNStateType[\"BLOCK_START\"] = 3] = \"BLOCK_START\";\r\n ATNStateType[ATNStateType[\"PLUS_BLOCK_START\"] = 4] = \"PLUS_BLOCK_START\";\r\n ATNStateType[ATNStateType[\"STAR_BLOCK_START\"] = 5] = \"STAR_BLOCK_START\";\r\n ATNStateType[ATNStateType[\"TOKEN_START\"] = 6] = \"TOKEN_START\";\r\n ATNStateType[ATNStateType[\"RULE_STOP\"] = 7] = \"RULE_STOP\";\r\n ATNStateType[ATNStateType[\"BLOCK_END\"] = 8] = \"BLOCK_END\";\r\n ATNStateType[ATNStateType[\"STAR_LOOP_BACK\"] = 9] = \"STAR_LOOP_BACK\";\r\n ATNStateType[ATNStateType[\"STAR_LOOP_ENTRY\"] = 10] = \"STAR_LOOP_ENTRY\";\r\n ATNStateType[ATNStateType[\"PLUS_LOOP_BACK\"] = 11] = \"PLUS_LOOP_BACK\";\r\n ATNStateType[ATNStateType[\"LOOP_END\"] = 12] = \"LOOP_END\";\r\n})(ATNStateType = exports.ATNStateType || (exports.ATNStateType = {}));\r\n//# sourceMappingURL=ATNStateType.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StarLoopEntryState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:37.7099201-07:00\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nclass StarLoopEntryState extends DecisionState_1.DecisionState {\r\n constructor() {\r\n super(...arguments);\r\n /**\r\n * Indicates whether this state can benefit from a precedence DFA during SLL\r\n * decision making.\r\n *\r\n * This is a computed property that is calculated during ATN deserialization\r\n * and stored for use in {@link ParserATNSimulator} and\r\n * {@link ParserInterpreter}.\r\n *\r\n * @see `DFA.isPrecedenceDfa`\r\n */\r\n this.precedenceRuleDecision = false;\r\n /**\r\n * For precedence decisions, this set marks states *S* which have all\r\n * of the following characteristics:\r\n *\r\n * * One or more invocation sites of the current rule returns to\r\n * *S*.\r\n * * The closure from *S* includes the current decision without\r\n * passing through any rule invocations or stepping out of the current\r\n * rule.\r\n *\r\n * This field is not used when {@link #precedenceRuleDecision} is\r\n * `false`.\r\n */\r\n this.precedenceLoopbackStates = new BitSet_1.BitSet();\r\n }\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.STAR_LOOP_ENTRY;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], StarLoopEntryState.prototype, \"stateType\", null);\r\nexports.StarLoopEntryState = StarLoopEntryState;\r\n//# sourceMappingURL=StarLoopEntryState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DFA = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:38.3567094-07:00\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst ATNConfigSet_1 = require(\"../atn/ATNConfigSet\");\r\nconst DFASerializer_1 = require(\"./DFASerializer\");\r\nconst DFAState_1 = require(\"./DFAState\");\r\nconst LexerDFASerializer_1 = require(\"./LexerDFASerializer\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst StarLoopEntryState_1 = require(\"../atn/StarLoopEntryState\");\r\nconst VocabularyImpl_1 = require(\"../VocabularyImpl\");\r\nlet DFA = class DFA {\r\n constructor(atnStartState, decision = 0) {\r\n /**\r\n * A set of all states in the `DFA`.\r\n *\r\n * Note that this collection of states holds the DFA states for both SLL and LL prediction. Only the start state\r\n * needs to be differentiated for these cases, which is tracked by the `s0` and `s0full` fields.\r\n */\r\n this.states = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n this.nextStateNumber = 0;\r\n if (!atnStartState.atn) {\r\n throw new Error(\"The ATNState must be associated with an ATN\");\r\n }\r\n this.atnStartState = atnStartState;\r\n this.atn = atnStartState.atn;\r\n this.decision = decision;\r\n // Precedence DFAs are associated with the special precedence decision created for left-recursive rules which\r\n // evaluate their alternatives using a precedence hierarchy. When such a decision is encountered, we mark this\r\n // DFA instance as a precedence DFA and initialize the initial states s0 and s0full to special DFAState\r\n // instances which use outgoing edges to link to the actual start state used for each precedence level.\r\n let isPrecedenceDfa = false;\r\n if (atnStartState instanceof StarLoopEntryState_1.StarLoopEntryState) {\r\n if (atnStartState.precedenceRuleDecision) {\r\n isPrecedenceDfa = true;\r\n this.s0 = new DFAState_1.DFAState(new ATNConfigSet_1.ATNConfigSet());\r\n this.s0full = new DFAState_1.DFAState(new ATNConfigSet_1.ATNConfigSet());\r\n }\r\n }\r\n this.precedenceDfa = isPrecedenceDfa;\r\n }\r\n /**\r\n * Gets whether this DFA is a precedence DFA. Precedence DFAs use a special\r\n * start state {@link #s0} which is not stored in {@link #states}. The\r\n * {@link DFAState#edges} array for this start state contains outgoing edges\r\n * supplying individual start states corresponding to specific precedence\r\n * values.\r\n *\r\n * @returns `true` if this is a precedence DFA; otherwise,\r\n * `false`.\r\n * @see Parser.precedence\r\n */\r\n get isPrecedenceDfa() {\r\n return this.precedenceDfa;\r\n }\r\n /**\r\n * Get the start state for a specific precedence value.\r\n *\r\n * @param precedence The current precedence.\r\n * @returns The start state corresponding to the specified precedence, or\r\n * `undefined` if no start state exists for the specified precedence.\r\n *\r\n * @ if this is not a precedence DFA.\r\n * @see `isPrecedenceDfa`\r\n */\r\n getPrecedenceStartState(precedence, fullContext) {\r\n if (!this.isPrecedenceDfa) {\r\n throw new Error(\"Only precedence DFAs may contain a precedence start state.\");\r\n }\r\n // s0 and s0full are never null for a precedence DFA\r\n if (fullContext) {\r\n return this.s0full.getTarget(precedence);\r\n }\r\n else {\r\n return this.s0.getTarget(precedence);\r\n }\r\n }\r\n /**\r\n * Set the start state for a specific precedence value.\r\n *\r\n * @param precedence The current precedence.\r\n * @param startState The start state corresponding to the specified\r\n * precedence.\r\n *\r\n * @ if this is not a precedence DFA.\r\n * @see `isPrecedenceDfa`\r\n */\r\n setPrecedenceStartState(precedence, fullContext, startState) {\r\n if (!this.isPrecedenceDfa) {\r\n throw new Error(\"Only precedence DFAs may contain a precedence start state.\");\r\n }\r\n if (precedence < 0) {\r\n return;\r\n }\r\n if (fullContext) {\r\n // s0full is never null for a precedence DFA\r\n this.s0full.setTarget(precedence, startState);\r\n }\r\n else {\r\n // s0 is never null for a precedence DFA\r\n this.s0.setTarget(precedence, startState);\r\n }\r\n }\r\n get isEmpty() {\r\n if (this.isPrecedenceDfa) {\r\n // s0 and s0full are never null for a precedence DFA\r\n return this.s0.getEdgeMap().size === 0 && this.s0full.getEdgeMap().size === 0;\r\n }\r\n return this.s0 == null && this.s0full == null;\r\n }\r\n get isContextSensitive() {\r\n if (this.isPrecedenceDfa) {\r\n // s0full is never null for a precedence DFA\r\n return this.s0full.getEdgeMap().size > 0;\r\n }\r\n return this.s0full != null;\r\n }\r\n addState(state) {\r\n state.stateNumber = this.nextStateNumber++;\r\n return this.states.getOrAdd(state);\r\n }\r\n toString(vocabulary, ruleNames) {\r\n if (!vocabulary) {\r\n vocabulary = VocabularyImpl_1.VocabularyImpl.EMPTY_VOCABULARY;\r\n }\r\n if (!this.s0) {\r\n return \"\";\r\n }\r\n let serializer;\r\n if (ruleNames) {\r\n serializer = new DFASerializer_1.DFASerializer(this, vocabulary, ruleNames, this.atnStartState.atn);\r\n }\r\n else {\r\n serializer = new DFASerializer_1.DFASerializer(this, vocabulary);\r\n }\r\n return serializer.toString();\r\n }\r\n toLexerString() {\r\n if (!this.s0) {\r\n return \"\";\r\n }\r\n let serializer = new LexerDFASerializer_1.LexerDFASerializer(this);\r\n return serializer.toString();\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFA.prototype, \"states\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFA.prototype, \"atnStartState\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DFA.prototype, \"atn\", void 0);\r\nDFA = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DFA);\r\nexports.DFA = DFA;\r\n//# sourceMappingURL=DFA.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IntegerList = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:40.5099429-07:00\r\nconst Arrays_1 = require(\"./Arrays\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst EMPTY_DATA = new Int32Array(0);\r\nconst INITIAL_SIZE = 4;\r\nconst MAX_ARRAY_SIZE = (((1 << 31) >>> 0) - 1) - 8;\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass IntegerList {\r\n constructor(arg) {\r\n if (!arg) {\r\n this._data = EMPTY_DATA;\r\n this._size = 0;\r\n }\r\n else if (arg instanceof IntegerList) {\r\n this._data = arg._data.slice(0);\r\n this._size = arg._size;\r\n }\r\n else if (typeof arg === \"number\") {\r\n if (arg === 0) {\r\n this._data = EMPTY_DATA;\r\n this._size = 0;\r\n }\r\n else {\r\n this._data = new Int32Array(arg);\r\n this._size = 0;\r\n }\r\n }\r\n else {\r\n // arg is Iterable<number>\r\n this._data = EMPTY_DATA;\r\n this._size = 0;\r\n for (let value of arg) {\r\n this.add(value);\r\n }\r\n }\r\n }\r\n add(value) {\r\n if (this._data.length === this._size) {\r\n this.ensureCapacity(this._size + 1);\r\n }\r\n this._data[this._size] = value;\r\n this._size++;\r\n }\r\n addAll(list) {\r\n if (Array.isArray(list)) {\r\n this.ensureCapacity(this._size + list.length);\r\n this._data.subarray(this._size, this._size + list.length).set(list);\r\n this._size += list.length;\r\n }\r\n else if (list instanceof IntegerList) {\r\n this.ensureCapacity(this._size + list._size);\r\n this._data.subarray(this._size, this._size + list.size).set(list._data);\r\n this._size += list._size;\r\n }\r\n else {\r\n // list is JavaCollection<number>\r\n this.ensureCapacity(this._size + list.size);\r\n let current = 0;\r\n for (let xi of list) {\r\n this._data[this._size + current] = xi;\r\n current++;\r\n }\r\n this._size += list.size;\r\n }\r\n }\r\n get(index) {\r\n if (index < 0 || index >= this._size) {\r\n throw RangeError();\r\n }\r\n return this._data[index];\r\n }\r\n contains(value) {\r\n for (let i = 0; i < this._size; i++) {\r\n if (this._data[i] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n set(index, value) {\r\n if (index < 0 || index >= this._size) {\r\n throw RangeError();\r\n }\r\n let previous = this._data[index];\r\n this._data[index] = value;\r\n return previous;\r\n }\r\n removeAt(index) {\r\n let value = this.get(index);\r\n this._data.copyWithin(index, index + 1, this._size);\r\n this._data[this._size - 1] = 0;\r\n this._size--;\r\n return value;\r\n }\r\n removeRange(fromIndex, toIndex) {\r\n if (fromIndex < 0 || toIndex < 0 || fromIndex > this._size || toIndex > this._size) {\r\n throw RangeError();\r\n }\r\n if (fromIndex > toIndex) {\r\n throw RangeError();\r\n }\r\n this._data.copyWithin(toIndex, fromIndex, this._size);\r\n this._data.fill(0, this._size - (toIndex - fromIndex), this._size);\r\n this._size -= (toIndex - fromIndex);\r\n }\r\n get isEmpty() {\r\n return this._size === 0;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n trimToSize() {\r\n if (this._data.length === this._size) {\r\n return;\r\n }\r\n this._data = this._data.slice(0, this._size);\r\n }\r\n clear() {\r\n this._data.fill(0, 0, this._size);\r\n this._size = 0;\r\n }\r\n toArray() {\r\n if (this._size === 0) {\r\n return [];\r\n }\r\n return Array.from(this._data.subarray(0, this._size));\r\n }\r\n sort() {\r\n this._data.subarray(0, this._size).sort();\r\n }\r\n /**\r\n * Compares the specified object with this list for equality. Returns\r\n * `true` if and only if the specified object is also an {@link IntegerList},\r\n * both lists have the same size, and all corresponding pairs of elements in\r\n * the two lists are equal. In other words, two lists are defined to be\r\n * equal if they contain the same elements in the same order.\r\n *\r\n * This implementation first checks if the specified object is this\r\n * list. If so, it returns `true`; if not, it checks if the\r\n * specified object is an {@link IntegerList}. If not, it returns `false`;\r\n * if so, it checks the size of both lists. If the lists are not the same size,\r\n * it returns `false`; otherwise it iterates over both lists, comparing\r\n * corresponding pairs of elements. If any comparison returns `false`,\r\n * this method returns `false`.\r\n *\r\n * @param o the object to be compared for equality with this list\r\n * @returns `true` if the specified object is equal to this list\r\n */\r\n equals(o) {\r\n if (o === this) {\r\n return true;\r\n }\r\n if (!(o instanceof IntegerList)) {\r\n return false;\r\n }\r\n if (this._size !== o._size) {\r\n return false;\r\n }\r\n for (let i = 0; i < this._size; i++) {\r\n if (this._data[i] !== o._data[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Returns the hash code value for this list.\r\n *\r\n * This implementation uses exactly the code that is used to define the\r\n * list hash function in the documentation for the {@link List#hashCode}\r\n * method.\r\n *\r\n * @returns the hash code value for this list\r\n */\r\n hashCode() {\r\n let hashCode = 1;\r\n for (let i = 0; i < this._size; i++) {\r\n hashCode = 31 * hashCode + this._data[i];\r\n }\r\n return hashCode;\r\n }\r\n /**\r\n * Returns a string representation of this list.\r\n */\r\n toString() {\r\n return this._data.toString();\r\n }\r\n binarySearch(key, fromIndex, toIndex) {\r\n if (fromIndex === undefined) {\r\n fromIndex = 0;\r\n }\r\n if (toIndex === undefined) {\r\n toIndex = this._size;\r\n }\r\n if (fromIndex < 0 || toIndex < 0 || fromIndex > this._size || toIndex > this._size) {\r\n throw new RangeError();\r\n }\r\n if (fromIndex > toIndex) {\r\n throw new RangeError();\r\n }\r\n return Arrays_1.Arrays.binarySearch(this._data, key, fromIndex, toIndex);\r\n }\r\n ensureCapacity(capacity) {\r\n if (capacity < 0 || capacity > MAX_ARRAY_SIZE) {\r\n throw new RangeError();\r\n }\r\n let newLength;\r\n if (this._data.length === 0) {\r\n newLength = INITIAL_SIZE;\r\n }\r\n else {\r\n newLength = this._data.length;\r\n }\r\n while (newLength < capacity) {\r\n newLength = newLength * 2;\r\n if (newLength < 0 || newLength > MAX_ARRAY_SIZE) {\r\n newLength = MAX_ARRAY_SIZE;\r\n }\r\n }\r\n let tmp = new Int32Array(newLength);\r\n tmp.set(this._data);\r\n this._data = tmp;\r\n }\r\n /** Convert the list to a UTF-16 encoded char array. If all values are less\r\n * than the 0xFFFF 16-bit code point limit then this is just a char array\r\n * of 16-bit char as usual. For values in the supplementary range, encode\r\n * them as two UTF-16 code units.\r\n */\r\n toCharArray() {\r\n // Optimize for the common case (all data values are < 0xFFFF) to avoid an extra scan\r\n let resultArray = new Uint16Array(this._size);\r\n let resultIdx = 0;\r\n let calculatedPreciseResultSize = false;\r\n for (let i = 0; i < this._size; i++) {\r\n let codePoint = this._data[i];\r\n if (codePoint >= 0 && codePoint < 0x10000) {\r\n resultArray[resultIdx] = codePoint;\r\n resultIdx++;\r\n continue;\r\n }\r\n // Calculate the precise result size if we encounter a code point > 0xFFFF\r\n if (!calculatedPreciseResultSize) {\r\n let newResultArray = new Uint16Array(this.charArraySize());\r\n newResultArray.set(resultArray, 0);\r\n resultArray = newResultArray;\r\n calculatedPreciseResultSize = true;\r\n }\r\n // This will throw RangeError if the code point is not a valid Unicode code point\r\n let pair = String.fromCodePoint(codePoint);\r\n resultArray[resultIdx] = pair.charCodeAt(0);\r\n resultArray[resultIdx + 1] = pair.charCodeAt(1);\r\n resultIdx += 2;\r\n }\r\n return resultArray;\r\n }\r\n charArraySize() {\r\n let result = 0;\r\n for (let i = 0; i < this._size; i++) {\r\n result += this._data[i] >= 0x10000 ? 2 : 1;\r\n }\r\n return result;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], IntegerList.prototype, \"_data\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntegerList.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntegerList.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntegerList.prototype, \"toString\", null);\r\nexports.IntegerList = IntegerList;\r\n//# sourceMappingURL=IntegerList.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Interval = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:40.7402214-07:00\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst INTERVAL_POOL_MAX_VALUE = 1000;\r\n/** An immutable inclusive interval a..b */\r\nclass Interval {\r\n /**\r\n * @param a The start of the interval\r\n * @param b The end of the interval (inclusive)\r\n */\r\n constructor(a, b) {\r\n this.a = a;\r\n this.b = b;\r\n }\r\n static get INVALID() {\r\n return Interval._INVALID;\r\n }\r\n /** Interval objects are used readonly so share all with the\r\n * same single value a==b up to some max size. Use an array as a perfect hash.\r\n * Return shared object for 0..INTERVAL_POOL_MAX_VALUE or a new\r\n * Interval object with a..a in it. On Java.g4, 218623 IntervalSets\r\n * have a..a (set with 1 element).\r\n */\r\n static of(a, b) {\r\n // cache just a..a\r\n if (a !== b || a < 0 || a > INTERVAL_POOL_MAX_VALUE) {\r\n return new Interval(a, b);\r\n }\r\n if (Interval.cache[a] == null) {\r\n Interval.cache[a] = new Interval(a, a);\r\n }\r\n return Interval.cache[a];\r\n }\r\n /** return number of elements between a and b inclusively. x..x is length 1.\r\n * if b &lt; a, then length is 0. 9..10 has length 2.\r\n */\r\n get length() {\r\n if (this.b < this.a) {\r\n return 0;\r\n }\r\n return this.b - this.a + 1;\r\n }\r\n equals(o) {\r\n if (o === this) {\r\n return true;\r\n }\r\n else if (!(o instanceof Interval)) {\r\n return false;\r\n }\r\n return this.a === o.a && this.b === o.b;\r\n }\r\n hashCode() {\r\n let hash = 23;\r\n hash = hash * 31 + this.a;\r\n hash = hash * 31 + this.b;\r\n return hash;\r\n }\r\n /** Does this start completely before other? Disjoint */\r\n startsBeforeDisjoint(other) {\r\n return this.a < other.a && this.b < other.a;\r\n }\r\n /** Does this start at or before other? Nondisjoint */\r\n startsBeforeNonDisjoint(other) {\r\n return this.a <= other.a && this.b >= other.a;\r\n }\r\n /** Does this.a start after other.b? May or may not be disjoint */\r\n startsAfter(other) {\r\n return this.a > other.a;\r\n }\r\n /** Does this start completely after other? Disjoint */\r\n startsAfterDisjoint(other) {\r\n return this.a > other.b;\r\n }\r\n /** Does this start after other? NonDisjoint */\r\n startsAfterNonDisjoint(other) {\r\n return this.a > other.a && this.a <= other.b; // this.b>=other.b implied\r\n }\r\n /** Are both ranges disjoint? I.e., no overlap? */\r\n disjoint(other) {\r\n return this.startsBeforeDisjoint(other) || this.startsAfterDisjoint(other);\r\n }\r\n /** Are two intervals adjacent such as 0..41 and 42..42? */\r\n adjacent(other) {\r\n return this.a === other.b + 1 || this.b === other.a - 1;\r\n }\r\n properlyContains(other) {\r\n return other.a >= this.a && other.b <= this.b;\r\n }\r\n /** Return the interval computed from combining this and other */\r\n union(other) {\r\n return Interval.of(Math.min(this.a, other.a), Math.max(this.b, other.b));\r\n }\r\n /** Return the interval in common between this and o */\r\n intersection(other) {\r\n return Interval.of(Math.max(this.a, other.a), Math.min(this.b, other.b));\r\n }\r\n /** Return the interval with elements from `this` not in `other`;\r\n * `other` must not be totally enclosed (properly contained)\r\n * within `this`, which would result in two disjoint intervals\r\n * instead of the single one returned by this method.\r\n */\r\n differenceNotProperlyContained(other) {\r\n let diff;\r\n if (other.startsBeforeNonDisjoint(this)) {\r\n // other.a to left of this.a (or same)\r\n diff = Interval.of(Math.max(this.a, other.b + 1), this.b);\r\n }\r\n else if (other.startsAfterNonDisjoint(this)) {\r\n // other.a to right of this.a\r\n diff = Interval.of(this.a, other.a - 1);\r\n }\r\n return diff;\r\n }\r\n toString() {\r\n return this.a + \"..\" + this.b;\r\n }\r\n}\r\nInterval._INVALID = new Interval(-1, -2);\r\nInterval.cache = new Array(INTERVAL_POOL_MAX_VALUE + 1);\r\n__decorate([\r\n Decorators_1.Override\r\n], Interval.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Interval.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Interval.prototype, \"toString\", null);\r\nexports.Interval = Interval;\r\n//# sourceMappingURL=Interval.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommonToken = void 0;\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\nlet CommonToken = class CommonToken {\r\n constructor(type, text, source = CommonToken.EMPTY_SOURCE, channel = Token_1.Token.DEFAULT_CHANNEL, start = 0, stop = 0) {\r\n /**\r\n * This is the backing field for {@link #getLine} and {@link #setLine}.\r\n */\r\n this._line = 0;\r\n /**\r\n * This is the backing field for {@link #getCharPositionInLine} and\r\n * {@link #setCharPositionInLine}.\r\n */\r\n this._charPositionInLine = -1; // set to invalid position\r\n /**\r\n * This is the backing field for {@link #getChannel} and\r\n * {@link #setChannel}.\r\n */\r\n this._channel = Token_1.Token.DEFAULT_CHANNEL;\r\n /**\r\n * This is the backing field for `tokenIndex`.\r\n */\r\n this.index = -1;\r\n this._text = text;\r\n this._type = type;\r\n this.source = source;\r\n this._channel = channel;\r\n this.start = start;\r\n this.stop = stop;\r\n if (source.source != null) {\r\n this._line = source.source.line;\r\n this._charPositionInLine = source.source.charPositionInLine;\r\n }\r\n }\r\n /**\r\n * Constructs a new {@link CommonToken} as a copy of another {@link Token}.\r\n *\r\n * If `oldToken` is also a {@link CommonToken} instance, the newly\r\n * constructed token will share a reference to the {@link #text} field and\r\n * the {@link Tuple2} stored in {@link #source}. Otherwise, {@link #text} will\r\n * be assigned the result of calling {@link #getText}, and {@link #source}\r\n * will be constructed from the result of {@link Token#getTokenSource} and\r\n * {@link Token#getInputStream}.\r\n *\r\n * @param oldToken The token to copy.\r\n */\r\n static fromToken(oldToken) {\r\n let result = new CommonToken(oldToken.type, undefined, CommonToken.EMPTY_SOURCE, oldToken.channel, oldToken.startIndex, oldToken.stopIndex);\r\n result._line = oldToken.line;\r\n result.index = oldToken.tokenIndex;\r\n result._charPositionInLine = oldToken.charPositionInLine;\r\n if (oldToken instanceof CommonToken) {\r\n result._text = oldToken._text;\r\n result.source = oldToken.source;\r\n }\r\n else {\r\n result._text = oldToken.text;\r\n result.source = { source: oldToken.tokenSource, stream: oldToken.inputStream };\r\n }\r\n return result;\r\n }\r\n get type() {\r\n return this._type;\r\n }\r\n // @Override\r\n set type(type) {\r\n this._type = type;\r\n }\r\n get line() {\r\n return this._line;\r\n }\r\n // @Override\r\n set line(line) {\r\n this._line = line;\r\n }\r\n get text() {\r\n if (this._text != null) {\r\n return this._text;\r\n }\r\n let input = this.inputStream;\r\n if (input == null) {\r\n return undefined;\r\n }\r\n let n = input.size;\r\n if (this.start < n && this.stop < n) {\r\n return input.getText(Interval_1.Interval.of(this.start, this.stop));\r\n }\r\n else {\r\n return \"<EOF>\";\r\n }\r\n }\r\n /**\r\n * Explicitly set the text for this token. If {code text} is not\r\n * `undefined`, then {@link #getText} will return this value rather than\r\n * extracting the text from the input.\r\n *\r\n * @param text The explicit text of the token, or `undefined` if the text\r\n * should be obtained from the input along with the start and stop indexes\r\n * of the token.\r\n */\r\n // @Override\r\n set text(text) {\r\n this._text = text;\r\n }\r\n get charPositionInLine() {\r\n return this._charPositionInLine;\r\n }\r\n // @Override\r\n set charPositionInLine(charPositionInLine) {\r\n this._charPositionInLine = charPositionInLine;\r\n }\r\n get channel() {\r\n return this._channel;\r\n }\r\n // @Override\r\n set channel(channel) {\r\n this._channel = channel;\r\n }\r\n get startIndex() {\r\n return this.start;\r\n }\r\n set startIndex(start) {\r\n this.start = start;\r\n }\r\n get stopIndex() {\r\n return this.stop;\r\n }\r\n set stopIndex(stop) {\r\n this.stop = stop;\r\n }\r\n get tokenIndex() {\r\n return this.index;\r\n }\r\n // @Override\r\n set tokenIndex(index) {\r\n this.index = index;\r\n }\r\n get tokenSource() {\r\n return this.source.source;\r\n }\r\n get inputStream() {\r\n return this.source.stream;\r\n }\r\n toString(recognizer) {\r\n let channelStr = \"\";\r\n if (this._channel > 0) {\r\n channelStr = \",channel=\" + this._channel;\r\n }\r\n let txt = this.text;\r\n if (txt != null) {\r\n txt = txt.replace(/\\n/g, \"\\\\n\");\r\n txt = txt.replace(/\\r/g, \"\\\\r\");\r\n txt = txt.replace(/\\t/g, \"\\\\t\");\r\n }\r\n else {\r\n txt = \"<no text>\";\r\n }\r\n let typeString = String(this._type);\r\n if (recognizer) {\r\n typeString = recognizer.vocabulary.getDisplayName(this._type);\r\n }\r\n return \"[@\" + this.tokenIndex + \",\" + this.start + \":\" + this.stop + \"='\" + txt + \"',<\" + typeString + \">\" + channelStr + \",\" + this._line + \":\" + this.charPositionInLine + \"]\";\r\n }\r\n};\r\n/**\r\n * An empty {@link Tuple2} which is used as the default value of\r\n * {@link #source} for tokens that do not have a source.\r\n */\r\nCommonToken.EMPTY_SOURCE = { source: undefined, stream: undefined };\r\n__decorate([\r\n Decorators_1.NotNull\r\n], CommonToken.prototype, \"source\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"type\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"line\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"charPositionInLine\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"channel\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"startIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"stopIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"tokenIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"tokenSource\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonToken.prototype, \"toString\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], CommonToken, \"fromToken\", null);\r\nCommonToken = __decorate([\r\n __param(2, Decorators_1.NotNull)\r\n], CommonToken);\r\nexports.CommonToken = CommonToken;\r\n//# sourceMappingURL=CommonToken.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommonTokenFactory = void 0;\r\nconst CommonToken_1 = require(\"./CommonToken\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/**\r\n * This default implementation of {@link TokenFactory} creates\r\n * {@link CommonToken} objects.\r\n */\r\nclass CommonTokenFactory {\r\n /**\r\n * Constructs a {@link CommonTokenFactory} with the specified value for\r\n * {@link #copyText}.\r\n *\r\n * When `copyText` is `false`, the {@link #DEFAULT} instance\r\n * should be used instead of constructing a new instance.\r\n *\r\n * @param copyText The value for {@link #copyText}.\r\n */\r\n constructor(copyText = false) {\r\n this.copyText = copyText;\r\n }\r\n create(source, type, text, channel, start, stop, line, charPositionInLine) {\r\n let t = new CommonToken_1.CommonToken(type, text, source, channel, start, stop);\r\n t.line = line;\r\n t.charPositionInLine = charPositionInLine;\r\n if (text == null && this.copyText && source.stream != null) {\r\n t.text = source.stream.getText(Interval_1.Interval.of(start, stop));\r\n }\r\n return t;\r\n }\r\n createSimple(type, text) {\r\n return new CommonToken_1.CommonToken(type, text);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonTokenFactory.prototype, \"create\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonTokenFactory.prototype, \"createSimple\", null);\r\nexports.CommonTokenFactory = CommonTokenFactory;\r\n(function (CommonTokenFactory) {\r\n /**\r\n * The default {@link CommonTokenFactory} instance.\r\n *\r\n * This token factory does not explicitly copy token text when constructing\r\n * tokens.\r\n */\r\n CommonTokenFactory.DEFAULT = new CommonTokenFactory();\r\n})(CommonTokenFactory = exports.CommonTokenFactory || (exports.CommonTokenFactory = {}));\r\n//# sourceMappingURL=CommonTokenFactory.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IntegerStack = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:40.6647101-07:00\r\nconst IntegerList_1 = require(\"./IntegerList\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass IntegerStack extends IntegerList_1.IntegerList {\r\n constructor(arg) {\r\n super(arg);\r\n }\r\n push(value) {\r\n this.add(value);\r\n }\r\n pop() {\r\n return this.removeAt(this.size - 1);\r\n }\r\n peek() {\r\n return this.get(this.size - 1);\r\n }\r\n}\r\nexports.IntegerStack = IntegerStack;\r\n//# sourceMappingURL=IntegerStack.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AcceptStateInfo = void 0;\r\n/**\r\n * Stores information about a {@link DFAState} which is an accept state under\r\n * some condition. Certain settings, such as\r\n * {@link ParserATNSimulator#getPredictionMode()}, may be used in addition to\r\n * this information to determine whether or not a particular state is an accept\r\n * state.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass AcceptStateInfo {\r\n constructor(prediction, lexerActionExecutor) {\r\n this._prediction = prediction;\r\n this._lexerActionExecutor = lexerActionExecutor;\r\n }\r\n /**\r\n * Gets the prediction made by this accept state. Note that this value\r\n * assumes the predicates, if any, in the {@link DFAState} evaluate to\r\n * `true`. If predicate evaluation is enabled, the final prediction of\r\n * the accept state will be determined by the result of predicate\r\n * evaluation.\r\n */\r\n get prediction() {\r\n return this._prediction;\r\n }\r\n /**\r\n * Gets the {@link LexerActionExecutor} which can be used to execute actions\r\n * and/or commands after the lexer matches a token.\r\n */\r\n get lexerActionExecutor() {\r\n return this._lexerActionExecutor;\r\n }\r\n}\r\nexports.AcceptStateInfo = AcceptStateInfo;\r\n//# sourceMappingURL=AcceptStateInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerIndexedCustomAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This implementation of {@link LexerAction} is used for tracking input offsets\r\n * for position-dependent actions within a {@link LexerActionExecutor}.\r\n *\r\n * This action is not serialized as part of the ATN, and is only required for\r\n * position-dependent lexer actions which appear at a location other than the\r\n * end of a rule. For more information about DFA optimizations employed for\r\n * lexer actions, see {@link LexerActionExecutor#append} and\r\n * {@link LexerActionExecutor#fixOffsetBeforeMatch}.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nlet LexerIndexedCustomAction = class LexerIndexedCustomAction {\r\n /**\r\n * Constructs a new indexed custom action by associating a character offset\r\n * with a {@link LexerAction}.\r\n *\r\n * Note: This class is only required for lexer actions for which\r\n * {@link LexerAction#isPositionDependent} returns `true`.\r\n *\r\n * @param offset The offset into the input {@link CharStream}, relative to\r\n * the token start index, at which the specified lexer action should be\r\n * executed.\r\n * @param action The lexer action to execute at a particular offset in the\r\n * input {@link CharStream}.\r\n */\r\n constructor(offset, action) {\r\n this._offset = offset;\r\n this._action = action;\r\n }\r\n /**\r\n * Gets the location in the input {@link CharStream} at which the lexer\r\n * action should be executed. The value is interpreted as an offset relative\r\n * to the token start index.\r\n *\r\n * @returns The location in the input {@link CharStream} at which the lexer\r\n * action should be executed.\r\n */\r\n get offset() {\r\n return this._offset;\r\n }\r\n /**\r\n * Gets the lexer action to execute.\r\n *\r\n * @returns A {@link LexerAction} object which executes the lexer action.\r\n */\r\n get action() {\r\n return this._action;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * @returns This method returns the result of calling {@link #getActionType}\r\n * on the {@link LexerAction} returned by {@link #getAction}.\r\n */\r\n get actionType() {\r\n return this._action.actionType;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `true`.\r\n */\r\n get isPositionDependent() {\r\n return true;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This method calls {@link #execute} on the result of {@link #getAction}\r\n * using the provided `lexer`.\r\n */\r\n execute(lexer) {\r\n // assume the input stream position was properly set by the calling code\r\n this._action.execute(lexer);\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._offset);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._action);\r\n return MurmurHash_1.MurmurHash.finish(hash, 2);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerIndexedCustomAction)) {\r\n return false;\r\n }\r\n return this._offset === obj._offset\r\n && this._action.equals(obj._action);\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerIndexedCustomAction.prototype, \"action\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerIndexedCustomAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerIndexedCustomAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerIndexedCustomAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerIndexedCustomAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerIndexedCustomAction.prototype, \"equals\", null);\r\nLexerIndexedCustomAction = __decorate([\r\n __param(1, Decorators_1.NotNull)\r\n], LexerIndexedCustomAction);\r\nexports.LexerIndexedCustomAction = LexerIndexedCustomAction;\r\n//# sourceMappingURL=LexerIndexedCustomAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerActionExecutor = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:28.8810453-07:00\r\nconst ArrayEqualityComparator_1 = require(\"../misc/ArrayEqualityComparator\");\r\nconst LexerIndexedCustomAction_1 = require(\"./LexerIndexedCustomAction\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Represents an executor for a sequence of lexer actions which traversed during\r\n * the matching operation of a lexer rule (token).\r\n *\r\n * The executor tracks position information for position-dependent lexer actions\r\n * efficiently, ensuring that actions appearing only at the end of the rule do\r\n * not cause bloating of the {@link DFA} created for the lexer.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nlet LexerActionExecutor = class LexerActionExecutor {\r\n /**\r\n * Constructs an executor for a sequence of {@link LexerAction} actions.\r\n * @param lexerActions The lexer actions to execute.\r\n */\r\n constructor(lexerActions) {\r\n this._lexerActions = lexerActions;\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n for (let lexerAction of lexerActions) {\r\n hash = MurmurHash_1.MurmurHash.update(hash, lexerAction);\r\n }\r\n this.cachedHashCode = MurmurHash_1.MurmurHash.finish(hash, lexerActions.length);\r\n }\r\n /**\r\n * Creates a {@link LexerActionExecutor} which executes the actions for\r\n * the input `lexerActionExecutor` followed by a specified\r\n * `lexerAction`.\r\n *\r\n * @param lexerActionExecutor The executor for actions already traversed by\r\n * the lexer while matching a token within a particular\r\n * {@link ATNConfig}. If this is `undefined`, the method behaves as though\r\n * it were an empty executor.\r\n * @param lexerAction The lexer action to execute after the actions\r\n * specified in `lexerActionExecutor`.\r\n *\r\n * @returns A {@link LexerActionExecutor} for executing the combine actions\r\n * of `lexerActionExecutor` and `lexerAction`.\r\n */\r\n static append(lexerActionExecutor, lexerAction) {\r\n if (!lexerActionExecutor) {\r\n return new LexerActionExecutor([lexerAction]);\r\n }\r\n let lexerActions = lexerActionExecutor._lexerActions.slice(0);\r\n lexerActions.push(lexerAction);\r\n return new LexerActionExecutor(lexerActions);\r\n }\r\n /**\r\n * Creates a {@link LexerActionExecutor} which encodes the current offset\r\n * for position-dependent lexer actions.\r\n *\r\n * Normally, when the executor encounters lexer actions where\r\n * {@link LexerAction#isPositionDependent} returns `true`, it calls\r\n * {@link IntStream#seek} on the input {@link CharStream} to set the input\r\n * position to the *end* of the current token. This behavior provides\r\n * for efficient DFA representation of lexer actions which appear at the end\r\n * of a lexer rule, even when the lexer rule matches a variable number of\r\n * characters.\r\n *\r\n * Prior to traversing a match transition in the ATN, the current offset\r\n * from the token start index is assigned to all position-dependent lexer\r\n * actions which have not already been assigned a fixed offset. By storing\r\n * the offsets relative to the token start index, the DFA representation of\r\n * lexer actions which appear in the middle of tokens remains efficient due\r\n * to sharing among tokens of the same length, regardless of their absolute\r\n * position in the input stream.\r\n *\r\n * If the current executor already has offsets assigned to all\r\n * position-dependent lexer actions, the method returns `this`.\r\n *\r\n * @param offset The current offset to assign to all position-dependent\r\n * lexer actions which do not already have offsets assigned.\r\n *\r\n * @returns A {@link LexerActionExecutor} which stores input stream offsets\r\n * for all position-dependent lexer actions.\r\n */\r\n fixOffsetBeforeMatch(offset) {\r\n let updatedLexerActions;\r\n for (let i = 0; i < this._lexerActions.length; i++) {\r\n if (this._lexerActions[i].isPositionDependent && !(this._lexerActions[i] instanceof LexerIndexedCustomAction_1.LexerIndexedCustomAction)) {\r\n if (!updatedLexerActions) {\r\n updatedLexerActions = this._lexerActions.slice(0);\r\n }\r\n updatedLexerActions[i] = new LexerIndexedCustomAction_1.LexerIndexedCustomAction(offset, this._lexerActions[i]);\r\n }\r\n }\r\n if (!updatedLexerActions) {\r\n return this;\r\n }\r\n return new LexerActionExecutor(updatedLexerActions);\r\n }\r\n /**\r\n * Gets the lexer actions to be executed by this executor.\r\n * @returns The lexer actions to be executed by this executor.\r\n */\r\n get lexerActions() {\r\n return this._lexerActions;\r\n }\r\n /**\r\n * Execute the actions encapsulated by this executor within the context of a\r\n * particular {@link Lexer}.\r\n *\r\n * This method calls {@link IntStream#seek} to set the position of the\r\n * `input` {@link CharStream} prior to calling\r\n * {@link LexerAction#execute} on a position-dependent action. Before the\r\n * method returns, the input position will be restored to the same position\r\n * it was in when the method was invoked.\r\n *\r\n * @param lexer The lexer instance.\r\n * @param input The input stream which is the source for the current token.\r\n * When this method is called, the current {@link IntStream#index} for\r\n * `input` should be the start of the following token, i.e. 1\r\n * character past the end of the current token.\r\n * @param startIndex The token start index. This value may be passed to\r\n * {@link IntStream#seek} to set the `input` position to the beginning\r\n * of the token.\r\n */\r\n execute(lexer, input, startIndex) {\r\n let requiresSeek = false;\r\n let stopIndex = input.index;\r\n try {\r\n for (let lexerAction of this._lexerActions) {\r\n if (lexerAction instanceof LexerIndexedCustomAction_1.LexerIndexedCustomAction) {\r\n let offset = lexerAction.offset;\r\n input.seek(startIndex + offset);\r\n lexerAction = lexerAction.action;\r\n requiresSeek = (startIndex + offset) !== stopIndex;\r\n }\r\n else if (lexerAction.isPositionDependent) {\r\n input.seek(stopIndex);\r\n requiresSeek = false;\r\n }\r\n lexerAction.execute(lexer);\r\n }\r\n }\r\n finally {\r\n if (requiresSeek) {\r\n input.seek(stopIndex);\r\n }\r\n }\r\n }\r\n hashCode() {\r\n return this.cachedHashCode;\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerActionExecutor)) {\r\n return false;\r\n }\r\n return this.cachedHashCode === obj.cachedHashCode\r\n && ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.equals(this._lexerActions, obj._lexerActions);\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerActionExecutor.prototype, \"_lexerActions\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerActionExecutor.prototype, \"lexerActions\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerActionExecutor.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerActionExecutor.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerActionExecutor.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(1, Decorators_1.NotNull)\r\n], LexerActionExecutor, \"append\", null);\r\nLexerActionExecutor = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerActionExecutor);\r\nexports.LexerActionExecutor = LexerActionExecutor;\r\n//# sourceMappingURL=LexerActionExecutor.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RecognitionException = void 0;\r\n/** The root of the ANTLR exception hierarchy. In general, ANTLR tracks just\r\n * 3 kinds of errors: prediction errors, failed predicate errors, and\r\n * mismatched input errors. In each case, the parser knows where it is\r\n * in the input, where it is in the ATN, the rule invocation stack,\r\n * and what kind of problem occurred.\r\n */\r\nclass RecognitionException extends Error {\r\n constructor(recognizer, input, ctx, message) {\r\n super(message);\r\n this._offendingState = -1;\r\n this._recognizer = recognizer;\r\n this.input = input;\r\n this.ctx = ctx;\r\n if (recognizer) {\r\n this._offendingState = recognizer.state;\r\n }\r\n }\r\n /**\r\n * Get the ATN state number the parser was in at the time the error\r\n * occurred. For {@link NoViableAltException} and\r\n * {@link LexerNoViableAltException} exceptions, this is the\r\n * {@link DecisionState} number. For others, it is the state whose outgoing\r\n * edge we couldn't match.\r\n *\r\n * If the state number is not known, this method returns -1.\r\n */\r\n get offendingState() {\r\n return this._offendingState;\r\n }\r\n setOffendingState(offendingState) {\r\n this._offendingState = offendingState;\r\n }\r\n /**\r\n * Gets the set of input symbols which could potentially follow the\r\n * previously matched symbol at the time this exception was thrown.\r\n *\r\n * If the set of expected tokens is not known and could not be computed,\r\n * this method returns `undefined`.\r\n *\r\n * @returns The set of token types that could potentially follow the current\r\n * state in the ATN, or `undefined` if the information is not available.\r\n */\r\n get expectedTokens() {\r\n if (this._recognizer) {\r\n return this._recognizer.atn.getExpectedTokens(this._offendingState, this.ctx);\r\n }\r\n return undefined;\r\n }\r\n /**\r\n * Gets the {@link RuleContext} at the time this exception was thrown.\r\n *\r\n * If the context is not available, this method returns `undefined`.\r\n *\r\n * @returns The {@link RuleContext} at the time this exception was thrown.\r\n * If the context is not available, this method returns `undefined`.\r\n */\r\n get context() {\r\n return this.ctx;\r\n }\r\n /**\r\n * Gets the input stream which is the symbol source for the recognizer where\r\n * this exception was thrown.\r\n *\r\n * If the input stream is not available, this method returns `undefined`.\r\n *\r\n * @returns The input stream which is the symbol source for the recognizer\r\n * where this exception was thrown, or `undefined` if the stream is not\r\n * available.\r\n */\r\n get inputStream() {\r\n return this.input;\r\n }\r\n getOffendingToken(recognizer) {\r\n if (recognizer && recognizer !== this._recognizer) {\r\n return undefined;\r\n }\r\n return this.offendingToken;\r\n }\r\n setOffendingToken(recognizer, offendingToken) {\r\n if (recognizer === this._recognizer) {\r\n this.offendingToken = offendingToken;\r\n }\r\n }\r\n /**\r\n * Gets the {@link Recognizer} where this exception occurred.\r\n *\r\n * If the recognizer is not available, this method returns `undefined`.\r\n *\r\n * @returns The recognizer where this exception occurred, or `undefined` if\r\n * the recognizer is not available.\r\n */\r\n get recognizer() {\r\n return this._recognizer;\r\n }\r\n}\r\nexports.RecognitionException = RecognitionException;\r\n//# sourceMappingURL=RecognitionException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerNoViableAltException = void 0;\r\nconst RecognitionException_1 = require(\"./RecognitionException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Utils = require(\"./misc/Utils\");\r\nlet LexerNoViableAltException = class LexerNoViableAltException extends RecognitionException_1.RecognitionException {\r\n constructor(lexer, input, startIndex, deadEndConfigs) {\r\n super(lexer, input);\r\n this._startIndex = startIndex;\r\n this._deadEndConfigs = deadEndConfigs;\r\n }\r\n get startIndex() {\r\n return this._startIndex;\r\n }\r\n get deadEndConfigs() {\r\n return this._deadEndConfigs;\r\n }\r\n get inputStream() {\r\n return super.inputStream;\r\n }\r\n toString() {\r\n let symbol = \"\";\r\n if (this._startIndex >= 0 && this._startIndex < this.inputStream.size) {\r\n symbol = this.inputStream.getText(Interval_1.Interval.of(this._startIndex, this._startIndex));\r\n symbol = Utils.escapeWhitespace(symbol, false);\r\n }\r\n // return String.format(Locale.getDefault(), \"%s('%s')\", LexerNoViableAltException.class.getSimpleName(), symbol);\r\n return `LexerNoViableAltException('${symbol}')`;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerNoViableAltException.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerNoViableAltException.prototype, \"toString\", null);\r\nLexerNoViableAltException = __decorate([\r\n __param(1, Decorators_1.NotNull)\r\n], LexerNoViableAltException);\r\nexports.LexerNoViableAltException = LexerNoViableAltException;\r\n//# sourceMappingURL=LexerNoViableAltException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.OrderedATNConfigSet = void 0;\r\nconst ATNConfigSet_1 = require(\"./ATNConfigSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass OrderedATNConfigSet extends ATNConfigSet_1.ATNConfigSet {\r\n constructor(set, readonly) {\r\n if (set != null && readonly != null) {\r\n super(set, readonly);\r\n }\r\n else {\r\n super();\r\n }\r\n }\r\n clone(readonly) {\r\n let copy = new OrderedATNConfigSet(this, readonly);\r\n if (!readonly && this.isReadOnly) {\r\n copy.addAll(this);\r\n }\r\n return copy;\r\n }\r\n getKey(e) {\r\n // This is a specially crafted key to ensure configurations are only merged if they are equal\r\n return { state: 0, alt: e.hashCode() };\r\n }\r\n canMerge(left, leftKey, right) {\r\n return left.equals(right);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], OrderedATNConfigSet.prototype, \"clone\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], OrderedATNConfigSet.prototype, \"getKey\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], OrderedATNConfigSet.prototype, \"canMerge\", null);\r\nexports.OrderedATNConfigSet = OrderedATNConfigSet;\r\n//# sourceMappingURL=OrderedATNConfigSet.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleStopState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:36.7513856-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** The last node in the ATN for a rule, unless that rule is the start symbol.\r\n * In that case, there is one transition to EOF. Later, we might encode\r\n * references to all calls to this rule to compute FOLLOW sets for\r\n * error handling.\r\n */\r\nclass RuleStopState extends ATNState_1.ATNState {\r\n get nonStopStateNumber() {\r\n return -1;\r\n }\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.RULE_STOP;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleStopState.prototype, \"nonStopStateNumber\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleStopState.prototype, \"stateType\", null);\r\nexports.RuleStopState = RuleStopState;\r\n//# sourceMappingURL=RuleStopState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerATNSimulator = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:29.1083066-07:00\r\nconst AcceptStateInfo_1 = require(\"../dfa/AcceptStateInfo\");\r\nconst ATN_1 = require(\"./ATN\");\r\nconst ATNConfig_1 = require(\"./ATNConfig\");\r\nconst ATNConfigSet_1 = require(\"./ATNConfigSet\");\r\nconst ATNSimulator_1 = require(\"./ATNSimulator\");\r\nconst DFAState_1 = require(\"../dfa/DFAState\");\r\nconst Interval_1 = require(\"../misc/Interval\");\r\nconst IntStream_1 = require(\"../IntStream\");\r\nconst Lexer_1 = require(\"../Lexer\");\r\nconst LexerActionExecutor_1 = require(\"./LexerActionExecutor\");\r\nconst LexerNoViableAltException_1 = require(\"../LexerNoViableAltException\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst OrderedATNConfigSet_1 = require(\"./OrderedATNConfigSet\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst RuleStopState_1 = require(\"./RuleStopState\");\r\nconst Token_1 = require(\"../Token\");\r\nconst assert = require(\"assert\");\r\n/** \"dup\" of ParserInterpreter */\r\nlet LexerATNSimulator = class LexerATNSimulator extends ATNSimulator_1.ATNSimulator {\r\n constructor(atn, recog) {\r\n super(atn);\r\n this.optimize_tail_calls = true;\r\n /** The current token's starting index into the character stream.\r\n * Shared across DFA to ATN simulation in case the ATN fails and the\r\n * DFA did not have a previous accept state. In this case, we use the\r\n * ATN-generated exception object.\r\n */\r\n this.startIndex = -1;\r\n /** line number 1..n within the input */\r\n this._line = 1;\r\n /** The index of the character relative to the beginning of the line 0..n-1 */\r\n this._charPositionInLine = 0;\r\n this.mode = Lexer_1.Lexer.DEFAULT_MODE;\r\n /** Used during DFA/ATN exec to record the most recent accept configuration info */\r\n this.prevAccept = new LexerATNSimulator.SimState();\r\n this.recog = recog;\r\n }\r\n copyState(simulator) {\r\n this._charPositionInLine = simulator.charPositionInLine;\r\n this._line = simulator._line;\r\n this.mode = simulator.mode;\r\n this.startIndex = simulator.startIndex;\r\n }\r\n match(input, mode) {\r\n this.mode = mode;\r\n let mark = input.mark();\r\n try {\r\n this.startIndex = input.index;\r\n this.prevAccept.reset();\r\n let s0 = this.atn.modeToDFA[mode].s0;\r\n if (s0 == null) {\r\n return this.matchATN(input);\r\n }\r\n else {\r\n return this.execATN(input, s0);\r\n }\r\n }\r\n finally {\r\n input.release(mark);\r\n }\r\n }\r\n reset() {\r\n this.prevAccept.reset();\r\n this.startIndex = -1;\r\n this._line = 1;\r\n this._charPositionInLine = 0;\r\n this.mode = Lexer_1.Lexer.DEFAULT_MODE;\r\n }\r\n matchATN(input) {\r\n let startState = this.atn.modeToStartState[this.mode];\r\n if (LexerATNSimulator.debug) {\r\n console.log(`matchATN mode ${this.mode} start: ${startState}`);\r\n }\r\n let old_mode = this.mode;\r\n let s0_closure = this.computeStartState(input, startState);\r\n let suppressEdge = s0_closure.hasSemanticContext;\r\n if (suppressEdge) {\r\n s0_closure.hasSemanticContext = false;\r\n }\r\n let next = this.addDFAState(s0_closure);\r\n if (!suppressEdge) {\r\n let dfa = this.atn.modeToDFA[this.mode];\r\n if (!dfa.s0) {\r\n dfa.s0 = next;\r\n }\r\n else {\r\n next = dfa.s0;\r\n }\r\n }\r\n let predict = this.execATN(input, next);\r\n if (LexerATNSimulator.debug) {\r\n console.log(`DFA after matchATN: ${this.atn.modeToDFA[old_mode].toLexerString()}`);\r\n }\r\n return predict;\r\n }\r\n execATN(input, ds0) {\r\n // console.log(\"enter exec index \"+input.index+\" from \"+ds0.configs);\r\n if (LexerATNSimulator.debug) {\r\n console.log(`start state closure=${ds0.configs}`);\r\n }\r\n if (ds0.isAcceptState) {\r\n // allow zero-length tokens\r\n this.captureSimState(this.prevAccept, input, ds0);\r\n }\r\n let t = input.LA(1);\r\n // @NotNull\r\n let s = ds0; // s is current/from DFA state\r\n while (true) { // while more work\r\n if (LexerATNSimulator.debug) {\r\n console.log(`execATN loop starting closure: ${s.configs}`);\r\n }\r\n // As we move src->trg, src->trg, we keep track of the previous trg to\r\n // avoid looking up the DFA state again, which is expensive.\r\n // If the previous target was already part of the DFA, we might\r\n // be able to avoid doing a reach operation upon t. If s!=null,\r\n // it means that semantic predicates didn't prevent us from\r\n // creating a DFA state. Once we know s!=null, we check to see if\r\n // the DFA state has an edge already for t. If so, we can just reuse\r\n // it's configuration set; there's no point in re-computing it.\r\n // This is kind of like doing DFA simulation within the ATN\r\n // simulation because DFA simulation is really just a way to avoid\r\n // computing reach/closure sets. Technically, once we know that\r\n // we have a previously added DFA state, we could jump over to\r\n // the DFA simulator. But, that would mean popping back and forth\r\n // a lot and making things more complicated algorithmically.\r\n // This optimization makes a lot of sense for loops within DFA.\r\n // A character will take us back to an existing DFA state\r\n // that already has lots of edges out of it. e.g., .* in comments.\r\n let target = this.getExistingTargetState(s, t);\r\n if (target == null) {\r\n target = this.computeTargetState(input, s, t);\r\n }\r\n if (target === ATNSimulator_1.ATNSimulator.ERROR) {\r\n break;\r\n }\r\n // If this is a consumable input element, make sure to consume before\r\n // capturing the accept state so the input index, line, and char\r\n // position accurately reflect the state of the interpreter at the\r\n // end of the token.\r\n if (t !== IntStream_1.IntStream.EOF) {\r\n this.consume(input);\r\n }\r\n if (target.isAcceptState) {\r\n this.captureSimState(this.prevAccept, input, target);\r\n if (t === IntStream_1.IntStream.EOF) {\r\n break;\r\n }\r\n }\r\n t = input.LA(1);\r\n s = target; // flip; current DFA target becomes new src/from state\r\n }\r\n return this.failOrAccept(this.prevAccept, input, s.configs, t);\r\n }\r\n /**\r\n * Get an existing target state for an edge in the DFA. If the target state\r\n * for the edge has not yet been computed or is otherwise not available,\r\n * this method returns `undefined`.\r\n *\r\n * @param s The current DFA state\r\n * @param t The next input symbol\r\n * @returns The existing target DFA state for the given input symbol\r\n * `t`, or `undefined` if the target state for this edge is not\r\n * already cached\r\n */\r\n getExistingTargetState(s, t) {\r\n let target = s.getTarget(t);\r\n if (LexerATNSimulator.debug && target != null) {\r\n console.log(\"reuse state \" + s.stateNumber +\r\n \" edge to \" + target.stateNumber);\r\n }\r\n return target;\r\n }\r\n /**\r\n * Compute a target state for an edge in the DFA, and attempt to add the\r\n * computed state and corresponding edge to the DFA.\r\n *\r\n * @param input The input stream\r\n * @param s The current DFA state\r\n * @param t The next input symbol\r\n *\r\n * @returns The computed target DFA state for the given input symbol\r\n * `t`. If `t` does not lead to a valid DFA state, this method\r\n * returns {@link #ERROR}.\r\n */\r\n computeTargetState(input, s, t) {\r\n let reach = new OrderedATNConfigSet_1.OrderedATNConfigSet();\r\n // if we don't find an existing DFA state\r\n // Fill reach starting from closure, following t transitions\r\n this.getReachableConfigSet(input, s.configs, reach, t);\r\n if (reach.isEmpty) { // we got nowhere on t from s\r\n if (!reach.hasSemanticContext) {\r\n // we got nowhere on t, don't throw out this knowledge; it'd\r\n // cause a failover from DFA later.\r\n this.addDFAEdge(s, t, ATNSimulator_1.ATNSimulator.ERROR);\r\n }\r\n // stop when we can't match any more char\r\n return ATNSimulator_1.ATNSimulator.ERROR;\r\n }\r\n // Add an edge from s to target DFA found/created for reach\r\n return this.addDFAEdge(s, t, reach);\r\n }\r\n failOrAccept(prevAccept, input, reach, t) {\r\n if (prevAccept.dfaState != null) {\r\n let lexerActionExecutor = prevAccept.dfaState.lexerActionExecutor;\r\n this.accept(input, lexerActionExecutor, this.startIndex, prevAccept.index, prevAccept.line, prevAccept.charPos);\r\n return prevAccept.dfaState.prediction;\r\n }\r\n else {\r\n // if no accept and EOF is first char, return EOF\r\n if (t === IntStream_1.IntStream.EOF && input.index === this.startIndex) {\r\n return Token_1.Token.EOF;\r\n }\r\n throw new LexerNoViableAltException_1.LexerNoViableAltException(this.recog, input, this.startIndex, reach);\r\n }\r\n }\r\n /** Given a starting configuration set, figure out all ATN configurations\r\n * we can reach upon input `t`. Parameter `reach` is a return\r\n * parameter.\r\n */\r\n getReachableConfigSet(input, closure, reach, t) {\r\n // this is used to skip processing for configs which have a lower priority\r\n // than a config that already reached an accept state for the same rule\r\n let skipAlt = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n for (let c of closure) {\r\n let currentAltReachedAcceptState = c.alt === skipAlt;\r\n if (currentAltReachedAcceptState && c.hasPassedThroughNonGreedyDecision) {\r\n continue;\r\n }\r\n if (LexerATNSimulator.debug) {\r\n console.log(`testing ${this.getTokenName(t)} at ${c.toString(this.recog, true)}`);\r\n }\r\n let n = c.state.numberOfOptimizedTransitions;\r\n for (let ti = 0; ti < n; ti++) { // for each optimized transition\r\n let trans = c.state.getOptimizedTransition(ti);\r\n let target = this.getReachableTarget(trans, t);\r\n if (target != null) {\r\n let lexerActionExecutor = c.lexerActionExecutor;\r\n let config;\r\n if (lexerActionExecutor != null) {\r\n lexerActionExecutor = lexerActionExecutor.fixOffsetBeforeMatch(input.index - this.startIndex);\r\n config = c.transform(target, true, lexerActionExecutor);\r\n }\r\n else {\r\n assert(c.lexerActionExecutor == null);\r\n config = c.transform(target, true);\r\n }\r\n let treatEofAsEpsilon = t === IntStream_1.IntStream.EOF;\r\n if (this.closure(input, config, reach, currentAltReachedAcceptState, true, treatEofAsEpsilon)) {\r\n // any remaining configs for this alt have a lower priority than\r\n // the one that just reached an accept state.\r\n skipAlt = c.alt;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n accept(input, lexerActionExecutor, startIndex, index, line, charPos) {\r\n if (LexerATNSimulator.debug) {\r\n console.log(`ACTION ${lexerActionExecutor}`);\r\n }\r\n // seek to after last char in token\r\n input.seek(index);\r\n this._line = line;\r\n this._charPositionInLine = charPos;\r\n if (lexerActionExecutor != null && this.recog != null) {\r\n lexerActionExecutor.execute(this.recog, input, startIndex);\r\n }\r\n }\r\n getReachableTarget(trans, t) {\r\n if (trans.matches(t, Lexer_1.Lexer.MIN_CHAR_VALUE, Lexer_1.Lexer.MAX_CHAR_VALUE)) {\r\n return trans.target;\r\n }\r\n return undefined;\r\n }\r\n computeStartState(input, p) {\r\n let initialContext = PredictionContext_1.PredictionContext.EMPTY_FULL;\r\n let configs = new OrderedATNConfigSet_1.OrderedATNConfigSet();\r\n for (let i = 0; i < p.numberOfTransitions; i++) {\r\n let target = p.transition(i).target;\r\n let c = ATNConfig_1.ATNConfig.create(target, i + 1, initialContext);\r\n this.closure(input, c, configs, false, false, false);\r\n }\r\n return configs;\r\n }\r\n /**\r\n * Since the alternatives within any lexer decision are ordered by\r\n * preference, this method stops pursuing the closure as soon as an accept\r\n * state is reached. After the first accept state is reached by depth-first\r\n * search from `config`, all other (potentially reachable) states for\r\n * this rule would have a lower priority.\r\n *\r\n * @returns `true` if an accept state is reached, otherwise\r\n * `false`.\r\n */\r\n closure(input, config, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon) {\r\n if (LexerATNSimulator.debug) {\r\n console.log(\"closure(\" + config.toString(this.recog, true) + \")\");\r\n }\r\n if (config.state instanceof RuleStopState_1.RuleStopState) {\r\n if (LexerATNSimulator.debug) {\r\n if (this.recog != null) {\r\n console.log(`closure at ${this.recog.ruleNames[config.state.ruleIndex]} rule stop ${config}`);\r\n }\r\n else {\r\n console.log(`closure at rule stop ${config}`);\r\n }\r\n }\r\n let context = config.context;\r\n if (context.isEmpty) {\r\n configs.add(config);\r\n return true;\r\n }\r\n else if (context.hasEmpty) {\r\n configs.add(config.transform(config.state, true, PredictionContext_1.PredictionContext.EMPTY_FULL));\r\n currentAltReachedAcceptState = true;\r\n }\r\n for (let i = 0; i < context.size; i++) {\r\n let returnStateNumber = context.getReturnState(i);\r\n if (returnStateNumber === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n continue;\r\n }\r\n let newContext = context.getParent(i); // \"pop\" return state\r\n let returnState = this.atn.states[returnStateNumber];\r\n let c = config.transform(returnState, false, newContext);\r\n currentAltReachedAcceptState = this.closure(input, c, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon);\r\n }\r\n return currentAltReachedAcceptState;\r\n }\r\n // optimization\r\n if (!config.state.onlyHasEpsilonTransitions) {\r\n if (!currentAltReachedAcceptState || !config.hasPassedThroughNonGreedyDecision) {\r\n configs.add(config);\r\n }\r\n }\r\n let p = config.state;\r\n for (let i = 0; i < p.numberOfOptimizedTransitions; i++) {\r\n let t = p.getOptimizedTransition(i);\r\n let c = this.getEpsilonTarget(input, config, t, configs, speculative, treatEofAsEpsilon);\r\n if (c != null) {\r\n currentAltReachedAcceptState = this.closure(input, c, configs, currentAltReachedAcceptState, speculative, treatEofAsEpsilon);\r\n }\r\n }\r\n return currentAltReachedAcceptState;\r\n }\r\n // side-effect: can alter configs.hasSemanticContext\r\n getEpsilonTarget(input, config, t, configs, speculative, treatEofAsEpsilon) {\r\n let c;\r\n switch (t.serializationType) {\r\n case 3 /* RULE */:\r\n let ruleTransition = t;\r\n if (this.optimize_tail_calls && ruleTransition.optimizedTailCall && !config.context.hasEmpty) {\r\n c = config.transform(t.target, true);\r\n }\r\n else {\r\n let newContext = config.context.getChild(ruleTransition.followState.stateNumber);\r\n c = config.transform(t.target, true, newContext);\r\n }\r\n break;\r\n case 10 /* PRECEDENCE */:\r\n throw new Error(\"Precedence predicates are not supported in lexers.\");\r\n case 4 /* PREDICATE */:\r\n /* Track traversing semantic predicates. If we traverse,\r\n we cannot add a DFA state for this \"reach\" computation\r\n because the DFA would not test the predicate again in the\r\n future. Rather than creating collections of semantic predicates\r\n like v3 and testing them on prediction, v4 will test them on the\r\n fly all the time using the ATN not the DFA. This is slower but\r\n semantically it's not used that often. One of the key elements to\r\n this predicate mechanism is not adding DFA states that see\r\n predicates immediately afterwards in the ATN. For example,\r\n \r\n a : ID {p1}? | ID {p2}? ;\r\n \r\n should create the start state for rule 'a' (to save start state\r\n competition), but should not create target of ID state. The\r\n collection of ATN states the following ID references includes\r\n states reached by traversing predicates. Since this is when we\r\n test them, we cannot cash the DFA state target of ID.\r\n */\r\n let pt = t;\r\n if (LexerATNSimulator.debug) {\r\n console.log(\"EVAL rule \" + pt.ruleIndex + \":\" + pt.predIndex);\r\n }\r\n configs.hasSemanticContext = true;\r\n if (this.evaluatePredicate(input, pt.ruleIndex, pt.predIndex, speculative)) {\r\n c = config.transform(t.target, true);\r\n }\r\n else {\r\n c = undefined;\r\n }\r\n break;\r\n case 6 /* ACTION */:\r\n if (config.context.hasEmpty) {\r\n // execute actions anywhere in the start rule for a token.\r\n //\r\n // TODO: if the entry rule is invoked recursively, some\r\n // actions may be executed during the recursive call. The\r\n // problem can appear when hasEmpty is true but\r\n // isEmpty is false. In this case, the config needs to be\r\n // split into two contexts - one with just the empty path\r\n // and another with everything but the empty path.\r\n // Unfortunately, the current algorithm does not allow\r\n // getEpsilonTarget to return two configurations, so\r\n // additional modifications are needed before we can support\r\n // the split operation.\r\n let lexerActionExecutor = LexerActionExecutor_1.LexerActionExecutor.append(config.lexerActionExecutor, this.atn.lexerActions[t.actionIndex]);\r\n c = config.transform(t.target, true, lexerActionExecutor);\r\n break;\r\n }\r\n else {\r\n // ignore actions in referenced rules\r\n c = config.transform(t.target, true);\r\n break;\r\n }\r\n case 1 /* EPSILON */:\r\n c = config.transform(t.target, true);\r\n break;\r\n case 5 /* ATOM */:\r\n case 2 /* RANGE */:\r\n case 7 /* SET */:\r\n if (treatEofAsEpsilon) {\r\n if (t.matches(IntStream_1.IntStream.EOF, Lexer_1.Lexer.MIN_CHAR_VALUE, Lexer_1.Lexer.MAX_CHAR_VALUE)) {\r\n c = config.transform(t.target, false);\r\n break;\r\n }\r\n }\r\n c = undefined;\r\n break;\r\n default:\r\n c = undefined;\r\n break;\r\n }\r\n return c;\r\n }\r\n /**\r\n * Evaluate a predicate specified in the lexer.\r\n *\r\n * If `speculative` is `true`, this method was called before\r\n * {@link #consume} for the matched character. This method should call\r\n * {@link #consume} before evaluating the predicate to ensure position\r\n * sensitive values, including {@link Lexer#getText}, {@link Lexer#getLine},\r\n * and {@link Lexer#getCharPositionInLine}, properly reflect the current\r\n * lexer state. This method should restore `input` and the simulator\r\n * to the original state before returning (i.e. undo the actions made by the\r\n * call to {@link #consume}.\r\n *\r\n * @param input The input stream.\r\n * @param ruleIndex The rule containing the predicate.\r\n * @param predIndex The index of the predicate within the rule.\r\n * @param speculative `true` if the current index in `input` is\r\n * one character before the predicate's location.\r\n *\r\n * @returns `true` if the specified predicate evaluates to\r\n * `true`.\r\n */\r\n evaluatePredicate(input, ruleIndex, predIndex, speculative) {\r\n // assume true if no recognizer was provided\r\n if (this.recog == null) {\r\n return true;\r\n }\r\n if (!speculative) {\r\n return this.recog.sempred(undefined, ruleIndex, predIndex);\r\n }\r\n let savedCharPositionInLine = this._charPositionInLine;\r\n let savedLine = this._line;\r\n let index = input.index;\r\n let marker = input.mark();\r\n try {\r\n this.consume(input);\r\n return this.recog.sempred(undefined, ruleIndex, predIndex);\r\n }\r\n finally {\r\n this._charPositionInLine = savedCharPositionInLine;\r\n this._line = savedLine;\r\n input.seek(index);\r\n input.release(marker);\r\n }\r\n }\r\n captureSimState(settings, input, dfaState) {\r\n settings.index = input.index;\r\n settings.line = this._line;\r\n settings.charPos = this._charPositionInLine;\r\n settings.dfaState = dfaState;\r\n }\r\n addDFAEdge(p, t, q) {\r\n if (q instanceof ATNConfigSet_1.ATNConfigSet) {\r\n /* leading to this call, ATNConfigSet.hasSemanticContext is used as a\r\n * marker indicating dynamic predicate evaluation makes this edge\r\n * dependent on the specific input sequence, so the static edge in the\r\n * DFA should be omitted. The target DFAState is still created since\r\n * execATN has the ability to resynchronize with the DFA state cache\r\n * following the predicate evaluation step.\r\n *\r\n * TJP notes: next time through the DFA, we see a pred again and eval.\r\n * If that gets us to a previously created (but dangling) DFA\r\n * state, we can continue in pure DFA mode from there.\r\n */\r\n let suppressEdge = q.hasSemanticContext;\r\n if (suppressEdge) {\r\n q.hasSemanticContext = false;\r\n }\r\n // @NotNull\r\n let to = this.addDFAState(q);\r\n if (suppressEdge) {\r\n return to;\r\n }\r\n this.addDFAEdge(p, t, to);\r\n return to;\r\n }\r\n else {\r\n if (LexerATNSimulator.debug) {\r\n console.log(\"EDGE \" + p + \" -> \" + q + \" upon \" + String.fromCharCode(t));\r\n }\r\n if (p != null) {\r\n p.setTarget(t, q);\r\n }\r\n }\r\n }\r\n /** Add a new DFA state if there isn't one with this set of\r\n * \tconfigurations already. This method also detects the first\r\n * \tconfiguration containing an ATN rule stop state. Later, when\r\n * \ttraversing the DFA, we will know which rule to accept.\r\n */\r\n addDFAState(configs) {\r\n /* the lexer evaluates predicates on-the-fly; by this point configs\r\n * should not contain any configurations with unevaluated predicates.\r\n */\r\n assert(!configs.hasSemanticContext);\r\n let proposed = new DFAState_1.DFAState(configs);\r\n let existing = this.atn.modeToDFA[this.mode].states.get(proposed);\r\n if (existing != null) {\r\n return existing;\r\n }\r\n configs.optimizeConfigs(this);\r\n let newState = new DFAState_1.DFAState(configs.clone(true));\r\n let firstConfigWithRuleStopState;\r\n for (let c of configs) {\r\n if (c.state instanceof RuleStopState_1.RuleStopState) {\r\n firstConfigWithRuleStopState = c;\r\n break;\r\n }\r\n }\r\n if (firstConfigWithRuleStopState != null) {\r\n let prediction = this.atn.ruleToTokenType[firstConfigWithRuleStopState.state.ruleIndex];\r\n let lexerActionExecutor = firstConfigWithRuleStopState.lexerActionExecutor;\r\n newState.acceptStateInfo = new AcceptStateInfo_1.AcceptStateInfo(prediction, lexerActionExecutor);\r\n }\r\n return this.atn.modeToDFA[this.mode].addState(newState);\r\n }\r\n getDFA(mode) {\r\n return this.atn.modeToDFA[mode];\r\n }\r\n /** Get the text matched so far for the current token.\r\n */\r\n getText(input) {\r\n // index is first lookahead char, don't include.\r\n return input.getText(Interval_1.Interval.of(this.startIndex, input.index - 1));\r\n }\r\n get line() {\r\n return this._line;\r\n }\r\n set line(line) {\r\n this._line = line;\r\n }\r\n get charPositionInLine() {\r\n return this._charPositionInLine;\r\n }\r\n set charPositionInLine(charPositionInLine) {\r\n this._charPositionInLine = charPositionInLine;\r\n }\r\n consume(input) {\r\n let curChar = input.LA(1);\r\n if (curChar === \"\\n\".charCodeAt(0)) {\r\n this._line++;\r\n this._charPositionInLine = 0;\r\n }\r\n else {\r\n this._charPositionInLine++;\r\n }\r\n input.consume();\r\n }\r\n getTokenName(t) {\r\n if (t === -1) {\r\n return \"EOF\";\r\n }\r\n //if ( atn.g!=null ) return atn.g.getTokenDisplayName(t);\r\n return \"'\" + String.fromCharCode(t) + \"'\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerATNSimulator.prototype, \"prevAccept\", void 0);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"copyState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"match\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerATNSimulator.prototype, \"reset\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"matchATN\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"execATN\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"getExistingTargetState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"computeTargetState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"getReachableConfigSet\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"accept\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"computeStartState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"closure\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"getEpsilonTarget\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"evaluatePredicate\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"captureSimState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"addDFAState\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerATNSimulator.prototype, \"getDFA\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"getText\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator.prototype, \"consume\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerATNSimulator.prototype, \"getTokenName\", null);\r\nLexerATNSimulator = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LexerATNSimulator);\r\nexports.LexerATNSimulator = LexerATNSimulator;\r\n(function (LexerATNSimulator) {\r\n LexerATNSimulator.debug = false;\r\n LexerATNSimulator.dfa_debug = false;\r\n /** When we hit an accept state in either the DFA or the ATN, we\r\n * have to notify the character stream to start buffering characters\r\n * via {@link IntStream#mark} and record the current state. The current sim state\r\n * includes the current index into the input, the current line,\r\n * and current character position in that line. Note that the Lexer is\r\n * tracking the starting line and characterization of the token. These\r\n * variables track the \"state\" of the simulator when it hits an accept state.\r\n *\r\n * We track these variables separately for the DFA and ATN simulation\r\n * because the DFA simulation often has to fail over to the ATN\r\n * simulation. If the ATN simulation fails, we need the DFA to fall\r\n * back to its previously accepted state, if any. If the ATN succeeds,\r\n * then the ATN does the accept and the DFA simulator that invoked it\r\n * can simply return the predicted token type.\r\n */\r\n class SimState {\r\n constructor() {\r\n this.index = -1;\r\n this.line = 0;\r\n this.charPos = -1;\r\n }\r\n reset() {\r\n this.index = -1;\r\n this.line = 0;\r\n this.charPos = -1;\r\n this.dfaState = undefined;\r\n }\r\n }\r\n LexerATNSimulator.SimState = SimState;\r\n})(LexerATNSimulator = exports.LexerATNSimulator || (exports.LexerATNSimulator = {}));\r\nexports.LexerATNSimulator = LexerATNSimulator;\r\n//# sourceMappingURL=LexerATNSimulator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Lexer = void 0;\r\nconst CommonTokenFactory_1 = require(\"./CommonTokenFactory\");\r\nconst IntegerStack_1 = require(\"./misc/IntegerStack\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst IntStream_1 = require(\"./IntStream\");\r\nconst LexerATNSimulator_1 = require(\"./atn/LexerATNSimulator\");\r\nconst LexerNoViableAltException_1 = require(\"./LexerNoViableAltException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Recognizer_1 = require(\"./Recognizer\");\r\nconst Token_1 = require(\"./Token\");\r\n/** A lexer is recognizer that draws input symbols from a character stream.\r\n * lexer grammars result in a subclass of this object. A Lexer object\r\n * uses simplified match() and error recovery mechanisms in the interest\r\n * of speed.\r\n */\r\nclass Lexer extends Recognizer_1.Recognizer {\r\n constructor(input) {\r\n super();\r\n /** How to create token objects */\r\n this._factory = CommonTokenFactory_1.CommonTokenFactory.DEFAULT;\r\n /** What character index in the stream did the current token start at?\r\n * Needed, for example, to get the text for current token. Set at\r\n * the start of nextToken.\r\n */\r\n this._tokenStartCharIndex = -1;\r\n /** The line on which the first character of the token resides */\r\n this._tokenStartLine = 0;\r\n /** The character position of first character within the line */\r\n this._tokenStartCharPositionInLine = 0;\r\n /** Once we see EOF on char stream, next token will be EOF.\r\n * If you have DONE : EOF ; then you see DONE EOF.\r\n */\r\n this._hitEOF = false;\r\n /** The channel number for the current token */\r\n this._channel = 0;\r\n /** The token type for the current token */\r\n this._type = 0;\r\n this._modeStack = new IntegerStack_1.IntegerStack();\r\n this._mode = Lexer.DEFAULT_MODE;\r\n this._input = input;\r\n this._tokenFactorySourcePair = { source: this, stream: input };\r\n }\r\n static get DEFAULT_TOKEN_CHANNEL() {\r\n return Token_1.Token.DEFAULT_CHANNEL;\r\n }\r\n static get HIDDEN() {\r\n return Token_1.Token.HIDDEN_CHANNEL;\r\n }\r\n reset(resetInput) {\r\n // wack Lexer state variables\r\n if (resetInput === undefined || resetInput) {\r\n this._input.seek(0); // rewind the input\r\n }\r\n this._token = undefined;\r\n this._type = Token_1.Token.INVALID_TYPE;\r\n this._channel = Token_1.Token.DEFAULT_CHANNEL;\r\n this._tokenStartCharIndex = -1;\r\n this._tokenStartCharPositionInLine = -1;\r\n this._tokenStartLine = -1;\r\n this._text = undefined;\r\n this._hitEOF = false;\r\n this._mode = Lexer.DEFAULT_MODE;\r\n this._modeStack.clear();\r\n this.interpreter.reset();\r\n }\r\n /** Return a token from this source; i.e., match a token on the char\r\n * stream.\r\n */\r\n nextToken() {\r\n if (this._input == null) {\r\n throw new Error(\"nextToken requires a non-null input stream.\");\r\n }\r\n // Mark start location in char stream so unbuffered streams are\r\n // guaranteed at least have text of current token\r\n let tokenStartMarker = this._input.mark();\r\n try {\r\n outer: while (true) {\r\n if (this._hitEOF) {\r\n return this.emitEOF();\r\n }\r\n this._token = undefined;\r\n this._channel = Token_1.Token.DEFAULT_CHANNEL;\r\n this._tokenStartCharIndex = this._input.index;\r\n this._tokenStartCharPositionInLine = this.interpreter.charPositionInLine;\r\n this._tokenStartLine = this.interpreter.line;\r\n this._text = undefined;\r\n do {\r\n this._type = Token_1.Token.INVALID_TYPE;\r\n //\t\t\t\tSystem.out.println(\"nextToken line \"+tokenStartLine+\" at \"+((char)input.LA(1))+\r\n //\t\t\t\t\t\t\t\t \" in mode \"+mode+\r\n //\t\t\t\t\t\t\t\t \" at index \"+input.index);\r\n let ttype;\r\n try {\r\n ttype = this.interpreter.match(this._input, this._mode);\r\n }\r\n catch (e) {\r\n if (e instanceof LexerNoViableAltException_1.LexerNoViableAltException) {\r\n this.notifyListeners(e); // report error\r\n this.recover(e);\r\n ttype = Lexer.SKIP;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n if (this._input.LA(1) === IntStream_1.IntStream.EOF) {\r\n this._hitEOF = true;\r\n }\r\n if (this._type === Token_1.Token.INVALID_TYPE) {\r\n this._type = ttype;\r\n }\r\n if (this._type === Lexer.SKIP) {\r\n continue outer;\r\n }\r\n } while (this._type === Lexer.MORE);\r\n if (this._token == null) {\r\n return this.emit();\r\n }\r\n return this._token;\r\n }\r\n }\r\n finally {\r\n // make sure we release marker after match or\r\n // unbuffered char stream will keep buffering\r\n this._input.release(tokenStartMarker);\r\n }\r\n }\r\n /** Instruct the lexer to skip creating a token for current lexer rule\r\n * and look for another token. nextToken() knows to keep looking when\r\n * a lexer rule finishes with token set to SKIP_TOKEN. Recall that\r\n * if token==undefined at end of any token rule, it creates one for you\r\n * and emits it.\r\n */\r\n skip() {\r\n this._type = Lexer.SKIP;\r\n }\r\n more() {\r\n this._type = Lexer.MORE;\r\n }\r\n mode(m) {\r\n this._mode = m;\r\n }\r\n pushMode(m) {\r\n if (LexerATNSimulator_1.LexerATNSimulator.debug) {\r\n console.log(\"pushMode \" + m);\r\n }\r\n this._modeStack.push(this._mode);\r\n this.mode(m);\r\n }\r\n popMode() {\r\n if (this._modeStack.isEmpty) {\r\n throw new Error(\"EmptyStackException\");\r\n }\r\n if (LexerATNSimulator_1.LexerATNSimulator.debug) {\r\n console.log(\"popMode back to \" + this._modeStack.peek());\r\n }\r\n this.mode(this._modeStack.pop());\r\n return this._mode;\r\n }\r\n get tokenFactory() {\r\n return this._factory;\r\n }\r\n // @Override\r\n set tokenFactory(factory) {\r\n this._factory = factory;\r\n }\r\n get inputStream() {\r\n return this._input;\r\n }\r\n /** Set the char stream and reset the lexer */\r\n set inputStream(input) {\r\n this.reset(false);\r\n this._input = input;\r\n this._tokenFactorySourcePair = { source: this, stream: this._input };\r\n }\r\n get sourceName() {\r\n return this._input.sourceName;\r\n }\r\n emit(token) {\r\n if (!token) {\r\n token = this._factory.create(this._tokenFactorySourcePair, this._type, this._text, this._channel, this._tokenStartCharIndex, this.charIndex - 1, this._tokenStartLine, this._tokenStartCharPositionInLine);\r\n }\r\n this._token = token;\r\n return token;\r\n }\r\n emitEOF() {\r\n let cpos = this.charPositionInLine;\r\n let line = this.line;\r\n let eof = this._factory.create(this._tokenFactorySourcePair, Token_1.Token.EOF, undefined, Token_1.Token.DEFAULT_CHANNEL, this._input.index, this._input.index - 1, line, cpos);\r\n this.emit(eof);\r\n return eof;\r\n }\r\n get line() {\r\n return this.interpreter.line;\r\n }\r\n set line(line) {\r\n this.interpreter.line = line;\r\n }\r\n get charPositionInLine() {\r\n return this.interpreter.charPositionInLine;\r\n }\r\n set charPositionInLine(charPositionInLine) {\r\n this.interpreter.charPositionInLine = charPositionInLine;\r\n }\r\n /** What is the index of the current character of lookahead? */\r\n get charIndex() {\r\n return this._input.index;\r\n }\r\n /** Return the text matched so far for the current token or any\r\n * text override.\r\n */\r\n get text() {\r\n if (this._text != null) {\r\n return this._text;\r\n }\r\n return this.interpreter.getText(this._input);\r\n }\r\n /** Set the complete text of this token; it wipes any previous\r\n * changes to the text.\r\n */\r\n set text(text) {\r\n this._text = text;\r\n }\r\n /** Override if emitting multiple tokens. */\r\n get token() { return this._token; }\r\n set token(_token) {\r\n this._token = _token;\r\n }\r\n set type(ttype) {\r\n this._type = ttype;\r\n }\r\n get type() {\r\n return this._type;\r\n }\r\n set channel(channel) {\r\n this._channel = channel;\r\n }\r\n get channel() {\r\n return this._channel;\r\n }\r\n /** Return a list of all Token objects in input char stream.\r\n * Forces load of all tokens. Does not include EOF token.\r\n */\r\n getAllTokens() {\r\n let tokens = [];\r\n let t = this.nextToken();\r\n while (t.type !== Token_1.Token.EOF) {\r\n tokens.push(t);\r\n t = this.nextToken();\r\n }\r\n return tokens;\r\n }\r\n notifyListeners(e) {\r\n let text = this._input.getText(Interval_1.Interval.of(this._tokenStartCharIndex, this._input.index));\r\n let msg = \"token recognition error at: '\" +\r\n this.getErrorDisplay(text) + \"'\";\r\n let listener = this.getErrorListenerDispatch();\r\n if (listener.syntaxError) {\r\n listener.syntaxError(this, undefined, this._tokenStartLine, this._tokenStartCharPositionInLine, msg, e);\r\n }\r\n }\r\n getErrorDisplay(s) {\r\n if (typeof s === \"number\") {\r\n switch (s) {\r\n case Token_1.Token.EOF:\r\n return \"<EOF>\";\r\n case 0x0a:\r\n return \"\\\\n\";\r\n case 0x09:\r\n return \"\\\\t\";\r\n case 0x0d:\r\n return \"\\\\r\";\r\n }\r\n return String.fromCharCode(s);\r\n }\r\n return s.replace(/\\n/g, \"\\\\n\")\r\n .replace(/\\t/g, \"\\\\t\")\r\n .replace(/\\r/g, \"\\\\r\");\r\n }\r\n getCharErrorDisplay(c) {\r\n let s = this.getErrorDisplay(c);\r\n return \"'\" + s + \"'\";\r\n }\r\n recover(re) {\r\n if (re instanceof LexerNoViableAltException_1.LexerNoViableAltException) {\r\n if (this._input.LA(1) !== IntStream_1.IntStream.EOF) {\r\n // skip a char and try again\r\n this.interpreter.consume(this._input);\r\n }\r\n }\r\n else {\r\n //System.out.println(\"consuming char \"+(char)input.LA(1)+\" during recovery\");\r\n //re.printStackTrace();\r\n // TODO: Do we lose character or line position information?\r\n this._input.consume();\r\n }\r\n }\r\n}\r\nLexer.DEFAULT_MODE = 0;\r\nLexer.MORE = -2;\r\nLexer.SKIP = -3;\r\nLexer.MIN_CHAR_VALUE = 0x0000;\r\nLexer.MAX_CHAR_VALUE = 0x10FFFF;\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"nextToken\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"tokenFactory\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"sourceName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"line\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Lexer.prototype, \"charPositionInLine\", null);\r\nexports.Lexer = Lexer;\r\n//# sourceMappingURL=Lexer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IntervalSet = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:40.8683480-07:00\r\nconst ArrayEqualityComparator_1 = require(\"./ArrayEqualityComparator\");\r\nconst IntegerList_1 = require(\"./IntegerList\");\r\nconst Interval_1 = require(\"./Interval\");\r\nconst Lexer_1 = require(\"../Lexer\");\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Token_1 = require(\"../Token\");\r\n/**\r\n * This class implements the {@link IntSet} backed by a sorted array of\r\n * non-overlapping intervals. It is particularly efficient for representing\r\n * large collections of numbers, where the majority of elements appear as part\r\n * of a sequential range of numbers that are all part of the set. For example,\r\n * the set { 1, 2, 3, 4, 7, 8 } may be represented as { [1, 4], [7, 8] }.\r\n *\r\n * This class is able to represent sets containing any combination of values in\r\n * the range {@link Integer#MIN_VALUE} to {@link Integer#MAX_VALUE}\r\n * (inclusive).\r\n */\r\nclass IntervalSet {\r\n constructor(intervals) {\r\n this.readonly = false;\r\n if (intervals != null) {\r\n this._intervals = intervals.slice(0);\r\n }\r\n else {\r\n this._intervals = [];\r\n }\r\n }\r\n static get COMPLETE_CHAR_SET() {\r\n if (IntervalSet._COMPLETE_CHAR_SET === undefined) {\r\n IntervalSet._COMPLETE_CHAR_SET = IntervalSet.of(Lexer_1.Lexer.MIN_CHAR_VALUE, Lexer_1.Lexer.MAX_CHAR_VALUE);\r\n IntervalSet._COMPLETE_CHAR_SET.setReadonly(true);\r\n }\r\n return IntervalSet._COMPLETE_CHAR_SET;\r\n }\r\n static get EMPTY_SET() {\r\n if (IntervalSet._EMPTY_SET == null) {\r\n IntervalSet._EMPTY_SET = new IntervalSet();\r\n IntervalSet._EMPTY_SET.setReadonly(true);\r\n }\r\n return IntervalSet._EMPTY_SET;\r\n }\r\n /**\r\n * Create a set with all ints within range [a..b] (inclusive). If b is omitted, the set contains the single element\r\n * a.\r\n */\r\n static of(a, b = a) {\r\n let s = new IntervalSet();\r\n s.add(a, b);\r\n return s;\r\n }\r\n clear() {\r\n if (this.readonly) {\r\n throw new Error(\"can't alter readonly IntervalSet\");\r\n }\r\n this._intervals.length = 0;\r\n }\r\n /** Add interval; i.e., add all integers from a to b to set.\r\n * If b&lt;a, do nothing.\r\n * Keep list in sorted order (by left range value).\r\n * If overlap, combine ranges. For example,\r\n * If this is {1..5, 10..20}, adding 6..7 yields\r\n * {1..5, 6..7, 10..20}. Adding 4..8 yields {1..8, 10..20}.\r\n */\r\n add(a, b = a) {\r\n this.addRange(Interval_1.Interval.of(a, b));\r\n }\r\n // copy on write so we can cache a..a intervals and sets of that\r\n addRange(addition) {\r\n if (this.readonly) {\r\n throw new Error(\"can't alter readonly IntervalSet\");\r\n }\r\n //System.out.println(\"add \"+addition+\" to \"+intervals.toString());\r\n if (addition.b < addition.a) {\r\n return;\r\n }\r\n // find position in list\r\n // Use iterators as we modify list in place\r\n for (let i = 0; i < this._intervals.length; i++) {\r\n let r = this._intervals[i];\r\n if (addition.equals(r)) {\r\n return;\r\n }\r\n if (addition.adjacent(r) || !addition.disjoint(r)) {\r\n // next to each other, make a single larger interval\r\n let bigger = addition.union(r);\r\n this._intervals[i] = bigger;\r\n // make sure we didn't just create an interval that\r\n // should be merged with next interval in list\r\n while (i < this._intervals.length - 1) {\r\n i++;\r\n let next = this._intervals[i];\r\n if (!bigger.adjacent(next) && bigger.disjoint(next)) {\r\n break;\r\n }\r\n // if we bump up against or overlap next, merge\r\n // remove this one\r\n this._intervals.splice(i, 1);\r\n i--;\r\n // move backwards to what we just set\r\n this._intervals[i] = bigger.union(next);\r\n // set to 3 merged ones\r\n }\r\n // first call to next after previous duplicates the result\r\n return;\r\n }\r\n if (addition.startsBeforeDisjoint(r)) {\r\n // insert before r\r\n this._intervals.splice(i, 0, addition);\r\n return;\r\n }\r\n // if disjoint and after r, a future iteration will handle it\r\n }\r\n // ok, must be after last interval (and disjoint from last interval)\r\n // just add it\r\n this._intervals.push(addition);\r\n }\r\n /** combine all sets in the array returned the or'd value */\r\n static or(sets) {\r\n let r = new IntervalSet();\r\n for (let s of sets) {\r\n r.addAll(s);\r\n }\r\n return r;\r\n }\r\n addAll(set) {\r\n if (set == null) {\r\n return this;\r\n }\r\n if (set instanceof IntervalSet) {\r\n let other = set;\r\n // walk set and add each interval\r\n let n = other._intervals.length;\r\n for (let i = 0; i < n; i++) {\r\n let I = other._intervals[i];\r\n this.add(I.a, I.b);\r\n }\r\n }\r\n else {\r\n for (let value of set.toArray()) {\r\n this.add(value);\r\n }\r\n }\r\n return this;\r\n }\r\n complementRange(minElement, maxElement) {\r\n return this.complement(IntervalSet.of(minElement, maxElement));\r\n }\r\n /** {@inheritDoc} */\r\n complement(vocabulary) {\r\n if (vocabulary.isNil) {\r\n // nothing in common with null set\r\n return IntervalSet.EMPTY_SET;\r\n }\r\n let vocabularyIS;\r\n if (vocabulary instanceof IntervalSet) {\r\n vocabularyIS = vocabulary;\r\n }\r\n else {\r\n vocabularyIS = new IntervalSet();\r\n vocabularyIS.addAll(vocabulary);\r\n }\r\n return vocabularyIS.subtract(this);\r\n }\r\n subtract(a) {\r\n if (a == null || a.isNil) {\r\n return new IntervalSet(this._intervals);\r\n }\r\n if (a instanceof IntervalSet) {\r\n return IntervalSet.subtract(this, a);\r\n }\r\n let other = new IntervalSet();\r\n other.addAll(a);\r\n return IntervalSet.subtract(this, other);\r\n }\r\n /**\r\n * Compute the set difference between two interval sets. The specific\r\n * operation is `left - right`.\r\n */\r\n static subtract(left, right) {\r\n if (left.isNil) {\r\n return new IntervalSet();\r\n }\r\n let result = new IntervalSet(left._intervals);\r\n if (right.isNil) {\r\n // right set has no elements; just return the copy of the current set\r\n return result;\r\n }\r\n let resultI = 0;\r\n let rightI = 0;\r\n while (resultI < result._intervals.length && rightI < right._intervals.length) {\r\n let resultInterval = result._intervals[resultI];\r\n let rightInterval = right._intervals[rightI];\r\n // operation: (resultInterval - rightInterval) and update indexes\r\n if (rightInterval.b < resultInterval.a) {\r\n rightI++;\r\n continue;\r\n }\r\n if (rightInterval.a > resultInterval.b) {\r\n resultI++;\r\n continue;\r\n }\r\n let beforeCurrent;\r\n let afterCurrent;\r\n if (rightInterval.a > resultInterval.a) {\r\n beforeCurrent = new Interval_1.Interval(resultInterval.a, rightInterval.a - 1);\r\n }\r\n if (rightInterval.b < resultInterval.b) {\r\n afterCurrent = new Interval_1.Interval(rightInterval.b + 1, resultInterval.b);\r\n }\r\n if (beforeCurrent) {\r\n if (afterCurrent) {\r\n // split the current interval into two\r\n result._intervals[resultI] = beforeCurrent;\r\n result._intervals.splice(resultI + 1, 0, afterCurrent);\r\n resultI++;\r\n rightI++;\r\n continue;\r\n }\r\n else {\r\n // replace the current interval\r\n result._intervals[resultI] = beforeCurrent;\r\n resultI++;\r\n continue;\r\n }\r\n }\r\n else {\r\n if (afterCurrent) {\r\n // replace the current interval\r\n result._intervals[resultI] = afterCurrent;\r\n rightI++;\r\n continue;\r\n }\r\n else {\r\n // remove the current interval (thus no need to increment resultI)\r\n result._intervals.splice(resultI, 1);\r\n continue;\r\n }\r\n }\r\n }\r\n // If rightI reached right.intervals.size, no more intervals to subtract from result.\r\n // If resultI reached result.intervals.size, we would be subtracting from an empty set.\r\n // Either way, we are done.\r\n return result;\r\n }\r\n or(a) {\r\n let o = new IntervalSet();\r\n o.addAll(this);\r\n o.addAll(a);\r\n return o;\r\n }\r\n /** {@inheritDoc} */\r\n and(other) {\r\n if (other.isNil) { //|| !(other instanceof IntervalSet) ) {\r\n // nothing in common with null set\r\n return new IntervalSet();\r\n }\r\n let myIntervals = this._intervals;\r\n let theirIntervals = other._intervals;\r\n let intersection;\r\n let mySize = myIntervals.length;\r\n let theirSize = theirIntervals.length;\r\n let i = 0;\r\n let j = 0;\r\n // iterate down both interval lists looking for nondisjoint intervals\r\n while (i < mySize && j < theirSize) {\r\n let mine = myIntervals[i];\r\n let theirs = theirIntervals[j];\r\n //System.out.println(\"mine=\"+mine+\" and theirs=\"+theirs);\r\n if (mine.startsBeforeDisjoint(theirs)) {\r\n // move this iterator looking for interval that might overlap\r\n i++;\r\n }\r\n else if (theirs.startsBeforeDisjoint(mine)) {\r\n // move other iterator looking for interval that might overlap\r\n j++;\r\n }\r\n else if (mine.properlyContains(theirs)) {\r\n // overlap, add intersection, get next theirs\r\n if (!intersection) {\r\n intersection = new IntervalSet();\r\n }\r\n intersection.addRange(mine.intersection(theirs));\r\n j++;\r\n }\r\n else if (theirs.properlyContains(mine)) {\r\n // overlap, add intersection, get next mine\r\n if (!intersection) {\r\n intersection = new IntervalSet();\r\n }\r\n intersection.addRange(mine.intersection(theirs));\r\n i++;\r\n }\r\n else if (!mine.disjoint(theirs)) {\r\n // overlap, add intersection\r\n if (!intersection) {\r\n intersection = new IntervalSet();\r\n }\r\n intersection.addRange(mine.intersection(theirs));\r\n // Move the iterator of lower range [a..b], but not\r\n // the upper range as it may contain elements that will collide\r\n // with the next iterator. So, if mine=[0..115] and\r\n // theirs=[115..200], then intersection is 115 and move mine\r\n // but not theirs as theirs may collide with the next range\r\n // in thisIter.\r\n // move both iterators to next ranges\r\n if (mine.startsAfterNonDisjoint(theirs)) {\r\n j++;\r\n }\r\n else if (theirs.startsAfterNonDisjoint(mine)) {\r\n i++;\r\n }\r\n }\r\n }\r\n if (!intersection) {\r\n return new IntervalSet();\r\n }\r\n return intersection;\r\n }\r\n /** {@inheritDoc} */\r\n contains(el) {\r\n let n = this._intervals.length;\r\n let l = 0;\r\n let r = n - 1;\r\n // Binary search for the element in the (sorted, disjoint) array of intervals.\r\n while (l <= r) {\r\n let m = (l + r) >> 1;\r\n let I = this._intervals[m];\r\n let a = I.a;\r\n let b = I.b;\r\n if (b < el) {\r\n l = m + 1;\r\n }\r\n else if (a > el) {\r\n r = m - 1;\r\n }\r\n else {\r\n // el >= a && el <= b\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n /** {@inheritDoc} */\r\n get isNil() {\r\n return this._intervals == null || this._intervals.length === 0;\r\n }\r\n /**\r\n * Returns the maximum value contained in the set if not isNil.\r\n *\r\n * @return the maximum value contained in the set.\r\n * @throws RangeError if set is empty\r\n */\r\n get maxElement() {\r\n if (this.isNil) {\r\n throw new RangeError(\"set is empty\");\r\n }\r\n let last = this._intervals[this._intervals.length - 1];\r\n return last.b;\r\n }\r\n /**\r\n * Returns the minimum value contained in the set if not isNil.\r\n *\r\n * @return the minimum value contained in the set.\r\n * @throws RangeError if set is empty\r\n */\r\n get minElement() {\r\n if (this.isNil) {\r\n throw new RangeError(\"set is empty\");\r\n }\r\n return this._intervals[0].a;\r\n }\r\n /** Return a list of Interval objects. */\r\n get intervals() {\r\n return this._intervals;\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n for (let I of this._intervals) {\r\n hash = MurmurHash_1.MurmurHash.update(hash, I.a);\r\n hash = MurmurHash_1.MurmurHash.update(hash, I.b);\r\n }\r\n hash = MurmurHash_1.MurmurHash.finish(hash, this._intervals.length * 2);\r\n return hash;\r\n }\r\n /** Are two IntervalSets equal? Because all intervals are sorted\r\n * and disjoint, equals is a simple linear walk over both lists\r\n * to make sure they are the same. Interval.equals() is used\r\n * by the List.equals() method to check the ranges.\r\n */\r\n equals(o) {\r\n if (o == null || !(o instanceof IntervalSet)) {\r\n return false;\r\n }\r\n return ArrayEqualityComparator_1.ArrayEqualityComparator.INSTANCE.equals(this._intervals, o._intervals);\r\n }\r\n toString(elemAreChar = false) {\r\n let buf = \"\";\r\n if (this._intervals == null || this._intervals.length === 0) {\r\n return \"{}\";\r\n }\r\n if (this.size > 1) {\r\n buf += \"{\";\r\n }\r\n let first = true;\r\n for (let I of this._intervals) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += \", \";\r\n }\r\n let a = I.a;\r\n let b = I.b;\r\n if (a === b) {\r\n if (a === Token_1.Token.EOF) {\r\n buf += \"<EOF>\";\r\n }\r\n else if (elemAreChar) {\r\n buf += \"'\" + String.fromCodePoint(a) + \"'\";\r\n }\r\n else {\r\n buf += a;\r\n }\r\n }\r\n else {\r\n if (elemAreChar) {\r\n buf += \"'\" + String.fromCodePoint(a) + \"'..'\" + String.fromCodePoint(b) + \"'\";\r\n }\r\n else {\r\n buf += a + \"..\" + b;\r\n }\r\n }\r\n }\r\n if (this.size > 1) {\r\n buf += \"}\";\r\n }\r\n return buf;\r\n }\r\n toStringVocabulary(vocabulary) {\r\n if (this._intervals == null || this._intervals.length === 0) {\r\n return \"{}\";\r\n }\r\n let buf = \"\";\r\n if (this.size > 1) {\r\n buf += \"{\";\r\n }\r\n let first = true;\r\n for (let I of this._intervals) {\r\n if (first) {\r\n first = false;\r\n }\r\n else {\r\n buf += \", \";\r\n }\r\n let a = I.a;\r\n let b = I.b;\r\n if (a === b) {\r\n buf += this.elementName(vocabulary, a);\r\n }\r\n else {\r\n for (let i = a; i <= b; i++) {\r\n if (i > a) {\r\n buf += \", \";\r\n }\r\n buf += this.elementName(vocabulary, i);\r\n }\r\n }\r\n }\r\n if (this.size > 1) {\r\n buf += \"}\";\r\n }\r\n return buf;\r\n }\r\n elementName(vocabulary, a) {\r\n if (a === Token_1.Token.EOF) {\r\n return \"<EOF>\";\r\n }\r\n else if (a === Token_1.Token.EPSILON) {\r\n return \"<EPSILON>\";\r\n }\r\n else {\r\n return vocabulary.getDisplayName(a);\r\n }\r\n }\r\n get size() {\r\n let n = 0;\r\n let numIntervals = this._intervals.length;\r\n if (numIntervals === 1) {\r\n let firstInterval = this._intervals[0];\r\n return firstInterval.b - firstInterval.a + 1;\r\n }\r\n for (let i = 0; i < numIntervals; i++) {\r\n let I = this._intervals[i];\r\n n += (I.b - I.a + 1);\r\n }\r\n return n;\r\n }\r\n toIntegerList() {\r\n let values = new IntegerList_1.IntegerList(this.size);\r\n let n = this._intervals.length;\r\n for (let i = 0; i < n; i++) {\r\n let I = this._intervals[i];\r\n let a = I.a;\r\n let b = I.b;\r\n for (let v = a; v <= b; v++) {\r\n values.add(v);\r\n }\r\n }\r\n return values;\r\n }\r\n toSet() {\r\n let s = new Set();\r\n for (let I of this._intervals) {\r\n let a = I.a;\r\n let b = I.b;\r\n for (let v = a; v <= b; v++) {\r\n s.add(v);\r\n }\r\n }\r\n return s;\r\n }\r\n toArray() {\r\n let values = new Array();\r\n let n = this._intervals.length;\r\n for (let i = 0; i < n; i++) {\r\n let I = this._intervals[i];\r\n let a = I.a;\r\n let b = I.b;\r\n for (let v = a; v <= b; v++) {\r\n values.push(v);\r\n }\r\n }\r\n return values;\r\n }\r\n remove(el) {\r\n if (this.readonly) {\r\n throw new Error(\"can't alter readonly IntervalSet\");\r\n }\r\n let n = this._intervals.length;\r\n for (let i = 0; i < n; i++) {\r\n let I = this._intervals[i];\r\n let a = I.a;\r\n let b = I.b;\r\n if (el < a) {\r\n break; // list is sorted and el is before this interval; not here\r\n }\r\n // if whole interval x..x, rm\r\n if (el === a && el === b) {\r\n this._intervals.splice(i, 1);\r\n break;\r\n }\r\n // if on left edge x..b, adjust left\r\n if (el === a) {\r\n this._intervals[i] = Interval_1.Interval.of(I.a + 1, I.b);\r\n break;\r\n }\r\n // if on right edge a..x, adjust right\r\n if (el === b) {\r\n this._intervals[i] = Interval_1.Interval.of(I.a, I.b - 1);\r\n break;\r\n }\r\n // if in middle a..x..b, split interval\r\n if (el > a && el < b) { // found in this interval\r\n let oldb = I.b;\r\n this._intervals[i] = Interval_1.Interval.of(I.a, el - 1); // [a..x-1]\r\n this.add(el + 1, oldb); // add [x+1..b]\r\n }\r\n }\r\n }\r\n get isReadonly() {\r\n return this.readonly;\r\n }\r\n setReadonly(readonly) {\r\n if (this.readonly && !readonly) {\r\n throw new Error(\"can't alter readonly IntervalSet\");\r\n }\r\n this.readonly = readonly;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"addAll\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"complement\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"subtract\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"or\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"and\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"contains\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"isNil\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"equals\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], IntervalSet.prototype, \"toStringVocabulary\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], IntervalSet.prototype, \"elementName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], IntervalSet.prototype, \"remove\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], IntervalSet, \"of\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], IntervalSet, \"subtract\", null);\r\nexports.IntervalSet = IntervalSet;\r\n//# sourceMappingURL=IntervalSet.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasicState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:27.8389930-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass BasicState extends ATNState_1.ATNState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.BASIC;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], BasicState.prototype, \"stateType\", null);\r\nexports.BasicState = BasicState;\r\n//# sourceMappingURL=BasicState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InvalidState = void 0;\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst BasicState_1 = require(\"./BasicState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass InvalidState extends BasicState_1.BasicState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.INVALID_TYPE;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], InvalidState.prototype, \"stateType\", null);\r\nexports.InvalidState = InvalidState;\r\n//# sourceMappingURL=InvalidState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AbstractPredicateTransition = void 0;\r\nconst Transition_1 = require(\"./Transition\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass AbstractPredicateTransition extends Transition_1.Transition {\r\n constructor(target) {\r\n super(target);\r\n }\r\n}\r\nexports.AbstractPredicateTransition = AbstractPredicateTransition;\r\n//# sourceMappingURL=AbstractPredicateTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SetTransition = void 0;\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Token_1 = require(\"../Token\");\r\nconst Transition_1 = require(\"./Transition\");\r\n/** A transition containing a set of values. */\r\nlet SetTransition = class SetTransition extends Transition_1.Transition {\r\n // TODO (sam): should we really allow undefined here?\r\n constructor(target, set) {\r\n super(target);\r\n if (set == null) {\r\n set = IntervalSet_1.IntervalSet.of(Token_1.Token.INVALID_TYPE);\r\n }\r\n this.set = set;\r\n }\r\n get serializationType() {\r\n return 7 /* SET */;\r\n }\r\n get label() {\r\n return this.set;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return this.set.contains(symbol);\r\n }\r\n toString() {\r\n return this.set.toString();\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], SetTransition.prototype, \"set\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], SetTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], SetTransition.prototype, \"label\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], SetTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], SetTransition.prototype, \"toString\", null);\r\nSetTransition = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.Nullable)\r\n], SetTransition);\r\nexports.SetTransition = SetTransition;\r\n//# sourceMappingURL=SetTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NotSetTransition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst SetTransition_1 = require(\"./SetTransition\");\r\nlet NotSetTransition = class NotSetTransition extends SetTransition_1.SetTransition {\r\n constructor(target, set) {\r\n super(target, set);\r\n }\r\n get serializationType() {\r\n return 8 /* NOT_SET */;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return symbol >= minVocabSymbol\r\n && symbol <= maxVocabSymbol\r\n && !super.matches(symbol, minVocabSymbol, maxVocabSymbol);\r\n }\r\n toString() {\r\n return \"~\" + super.toString();\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], NotSetTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], NotSetTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], NotSetTransition.prototype, \"toString\", null);\r\nNotSetTransition = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.Nullable)\r\n], NotSetTransition);\r\nexports.NotSetTransition = NotSetTransition;\r\n//# sourceMappingURL=NotSetTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleTransition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\n/** */\r\nlet RuleTransition = class RuleTransition extends Transition_1.Transition {\r\n constructor(ruleStart, ruleIndex, precedence, followState) {\r\n super(ruleStart);\r\n this.tailCall = false;\r\n this.optimizedTailCall = false;\r\n this.ruleIndex = ruleIndex;\r\n this.precedence = precedence;\r\n this.followState = followState;\r\n }\r\n get serializationType() {\r\n return 3 /* RULE */;\r\n }\r\n get isEpsilon() {\r\n return true;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return false;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], RuleTransition.prototype, \"followState\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTransition.prototype, \"isEpsilon\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTransition.prototype, \"matches\", null);\r\nRuleTransition = __decorate([\r\n __param(0, Decorators_1.NotNull), __param(3, Decorators_1.NotNull)\r\n], RuleTransition);\r\nexports.RuleTransition = RuleTransition;\r\n//# sourceMappingURL=RuleTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.WildcardTransition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\nlet WildcardTransition = class WildcardTransition extends Transition_1.Transition {\r\n constructor(target) {\r\n super(target);\r\n }\r\n get serializationType() {\r\n return 9 /* WILDCARD */;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return symbol >= minVocabSymbol && symbol <= maxVocabSymbol;\r\n }\r\n toString() {\r\n return \".\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], WildcardTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], WildcardTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], WildcardTransition.prototype, \"toString\", null);\r\nWildcardTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], WildcardTransition);\r\nexports.WildcardTransition = WildcardTransition;\r\n//# sourceMappingURL=WildcardTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LL1Analyzer = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:30.4445360-07:00\r\nconst AbstractPredicateTransition_1 = require(\"./AbstractPredicateTransition\");\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst ATNConfig_1 = require(\"./ATNConfig\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst NotSetTransition_1 = require(\"./NotSetTransition\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst RuleStopState_1 = require(\"./RuleStopState\");\r\nconst RuleTransition_1 = require(\"./RuleTransition\");\r\nconst Token_1 = require(\"../Token\");\r\nconst WildcardTransition_1 = require(\"./WildcardTransition\");\r\nlet LL1Analyzer = class LL1Analyzer {\r\n constructor(atn) { this.atn = atn; }\r\n /**\r\n * Calculates the SLL(1) expected lookahead set for each outgoing transition\r\n * of an {@link ATNState}. The returned array has one element for each\r\n * outgoing transition in `s`. If the closure from transition\r\n * *i* leads to a semantic predicate before matching a symbol, the\r\n * element at index *i* of the result will be `undefined`.\r\n *\r\n * @param s the ATN state\r\n * @returns the expected symbols for each outgoing transition of `s`.\r\n */\r\n getDecisionLookahead(s) {\r\n //\t\tSystem.out.println(\"LOOK(\"+s.stateNumber+\")\");\r\n if (s == null) {\r\n return undefined;\r\n }\r\n let look = new Array(s.numberOfTransitions);\r\n for (let alt = 0; alt < s.numberOfTransitions; alt++) {\r\n let current = new IntervalSet_1.IntervalSet();\r\n look[alt] = current;\r\n let lookBusy = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n let seeThruPreds = false; // fail to get lookahead upon pred\r\n this._LOOK(s.transition(alt).target, undefined, PredictionContext_1.PredictionContext.EMPTY_LOCAL, current, lookBusy, new BitSet_1.BitSet(), seeThruPreds, false);\r\n // Wipe out lookahead for this alternative if we found nothing\r\n // or we had a predicate when we !seeThruPreds\r\n if (current.size === 0 || current.contains(LL1Analyzer.HIT_PRED)) {\r\n current = undefined;\r\n look[alt] = current;\r\n }\r\n }\r\n return look;\r\n }\r\n LOOK(s, ctx, stopState) {\r\n if (stopState === undefined) {\r\n if (s.atn == null) {\r\n throw new Error(\"Illegal state\");\r\n }\r\n stopState = s.atn.ruleToStopState[s.ruleIndex];\r\n }\r\n else if (stopState === null) {\r\n // This is an explicit request to pass undefined as the stopState to _LOOK. Used to distinguish an overload\r\n // from the method which simply omits the stopState parameter.\r\n stopState = undefined;\r\n }\r\n let r = new IntervalSet_1.IntervalSet();\r\n let seeThruPreds = true; // ignore preds; get all lookahead\r\n let addEOF = true;\r\n this._LOOK(s, stopState, ctx, r, new Array2DHashSet_1.Array2DHashSet(), new BitSet_1.BitSet(), seeThruPreds, addEOF);\r\n return r;\r\n }\r\n /**\r\n * Compute set of tokens that can follow `s` in the ATN in the\r\n * specified `ctx`.\r\n * <p/>\r\n * If `ctx` is {@link PredictionContext#EMPTY_LOCAL} and\r\n * `stopState` or the end of the rule containing `s` is reached,\r\n * {@link Token#EPSILON} is added to the result set. If `ctx` is not\r\n * {@link PredictionContext#EMPTY_LOCAL} and `addEOF` is `true`\r\n * and `stopState` or the end of the outermost rule is reached,\r\n * {@link Token#EOF} is added to the result set.\r\n *\r\n * @param s the ATN state.\r\n * @param stopState the ATN state to stop at. This can be a\r\n * {@link BlockEndState} to detect epsilon paths through a closure.\r\n * @param ctx The outer context, or {@link PredictionContext#EMPTY_LOCAL} if\r\n * the outer context should not be used.\r\n * @param look The result lookahead set.\r\n * @param lookBusy A set used for preventing epsilon closures in the ATN\r\n * from causing a stack overflow. Outside code should pass\r\n * `new HashSet<ATNConfig>` for this argument.\r\n * @param calledRuleStack A set used for preventing left recursion in the\r\n * ATN from causing a stack overflow. Outside code should pass\r\n * `new BitSet()` for this argument.\r\n * @param seeThruPreds `true` to true semantic predicates as\r\n * implicitly `true` and \"see through them\", otherwise `false`\r\n * to treat semantic predicates as opaque and add {@link #HIT_PRED} to the\r\n * result if one is encountered.\r\n * @param addEOF Add {@link Token#EOF} to the result if the end of the\r\n * outermost context is reached. This parameter has no effect if `ctx`\r\n * is {@link PredictionContext#EMPTY_LOCAL}.\r\n */\r\n _LOOK(s, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF) {\r\n //\t\tSystem.out.println(\"_LOOK(\"+s.stateNumber+\", ctx=\"+ctx);\r\n let c = ATNConfig_1.ATNConfig.create(s, 0, ctx);\r\n if (!lookBusy.add(c)) {\r\n return;\r\n }\r\n if (s === stopState) {\r\n if (PredictionContext_1.PredictionContext.isEmptyLocal(ctx)) {\r\n look.add(Token_1.Token.EPSILON);\r\n return;\r\n }\r\n else if (ctx.isEmpty) {\r\n if (addEOF) {\r\n look.add(Token_1.Token.EOF);\r\n }\r\n return;\r\n }\r\n }\r\n if (s instanceof RuleStopState_1.RuleStopState) {\r\n if (ctx.isEmpty && !PredictionContext_1.PredictionContext.isEmptyLocal(ctx)) {\r\n if (addEOF) {\r\n look.add(Token_1.Token.EOF);\r\n }\r\n return;\r\n }\r\n let removed = calledRuleStack.get(s.ruleIndex);\r\n try {\r\n calledRuleStack.clear(s.ruleIndex);\r\n for (let i = 0; i < ctx.size; i++) {\r\n if (ctx.getReturnState(i) === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n continue;\r\n }\r\n let returnState = this.atn.states[ctx.getReturnState(i)];\r\n //\t\t\t\t\tSystem.out.println(\"popping back to \"+retState);\r\n this._LOOK(returnState, stopState, ctx.getParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF);\r\n }\r\n }\r\n finally {\r\n if (removed) {\r\n calledRuleStack.set(s.ruleIndex);\r\n }\r\n }\r\n }\r\n let n = s.numberOfTransitions;\r\n for (let i = 0; i < n; i++) {\r\n let t = s.transition(i);\r\n if (t instanceof RuleTransition_1.RuleTransition) {\r\n if (calledRuleStack.get(t.ruleIndex)) {\r\n continue;\r\n }\r\n let newContext = ctx.getChild(t.followState.stateNumber);\r\n try {\r\n calledRuleStack.set(t.ruleIndex);\r\n this._LOOK(t.target, stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF);\r\n }\r\n finally {\r\n calledRuleStack.clear(t.ruleIndex);\r\n }\r\n }\r\n else if (t instanceof AbstractPredicateTransition_1.AbstractPredicateTransition) {\r\n if (seeThruPreds) {\r\n this._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF);\r\n }\r\n else {\r\n look.add(LL1Analyzer.HIT_PRED);\r\n }\r\n }\r\n else if (t.isEpsilon) {\r\n this._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF);\r\n }\r\n else if (t instanceof WildcardTransition_1.WildcardTransition) {\r\n look.addAll(IntervalSet_1.IntervalSet.of(Token_1.Token.MIN_USER_TOKEN_TYPE, this.atn.maxTokenType));\r\n }\r\n else {\r\n //\t\t\t\tSystem.out.println(\"adding \"+ t);\r\n let set = t.label;\r\n if (set != null) {\r\n if (t instanceof NotSetTransition_1.NotSetTransition) {\r\n set = set.complement(IntervalSet_1.IntervalSet.of(Token_1.Token.MIN_USER_TOKEN_TYPE, this.atn.maxTokenType));\r\n }\r\n look.addAll(set);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/** Special value added to the lookahead sets to indicate that we hit\r\n * a predicate during analysis if `seeThruPreds==false`.\r\n */\r\nLL1Analyzer.HIT_PRED = Token_1.Token.INVALID_TYPE;\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LL1Analyzer.prototype, \"atn\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], LL1Analyzer.prototype, \"LOOK\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull),\r\n __param(4, Decorators_1.NotNull),\r\n __param(5, Decorators_1.NotNull)\r\n], LL1Analyzer.prototype, \"_LOOK\", null);\r\nLL1Analyzer = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], LL1Analyzer);\r\nexports.LL1Analyzer = LL1Analyzer;\r\n//# sourceMappingURL=LL1Analyzer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATN = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:25.1063510-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst DFA_1 = require(\"../dfa/DFA\");\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst InvalidState_1 = require(\"./InvalidState\");\r\nconst LL1Analyzer_1 = require(\"./LL1Analyzer\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst Token_1 = require(\"../Token\");\r\nconst assert = require(\"assert\");\r\n/** */\r\nlet ATN = class ATN {\r\n /** Used for runtime deserialization of ATNs from strings */\r\n constructor(grammarType, maxTokenType) {\r\n this.states = [];\r\n /** Each subrule/rule is a decision point and we must track them so we\r\n * can go back later and build DFA predictors for them. This includes\r\n * all the rules, subrules, optional blocks, ()+, ()* etc...\r\n */\r\n this.decisionToState = [];\r\n this.modeNameToStartState = new Map();\r\n this.modeToStartState = [];\r\n this.contextCache = new Array2DHashMap_1.Array2DHashMap(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n this.decisionToDFA = [];\r\n this.modeToDFA = [];\r\n this.LL1Table = new Map();\r\n this.grammarType = grammarType;\r\n this.maxTokenType = maxTokenType;\r\n }\r\n clearDFA() {\r\n this.decisionToDFA = new Array(this.decisionToState.length);\r\n for (let i = 0; i < this.decisionToDFA.length; i++) {\r\n this.decisionToDFA[i] = new DFA_1.DFA(this.decisionToState[i], i);\r\n }\r\n this.modeToDFA = new Array(this.modeToStartState.length);\r\n for (let i = 0; i < this.modeToDFA.length; i++) {\r\n this.modeToDFA[i] = new DFA_1.DFA(this.modeToStartState[i]);\r\n }\r\n this.contextCache.clear();\r\n this.LL1Table.clear();\r\n }\r\n get contextCacheSize() {\r\n return this.contextCache.size;\r\n }\r\n getCachedContext(context) {\r\n return PredictionContext_1.PredictionContext.getCachedContext(context, this.contextCache, new PredictionContext_1.PredictionContext.IdentityHashMap());\r\n }\r\n getDecisionToDFA() {\r\n assert(this.decisionToDFA != null && this.decisionToDFA.length === this.decisionToState.length);\r\n return this.decisionToDFA;\r\n }\r\n nextTokens(s, ctx) {\r\n if (ctx) {\r\n let anal = new LL1Analyzer_1.LL1Analyzer(this);\r\n let next = anal.LOOK(s, ctx);\r\n return next;\r\n }\r\n else {\r\n if (s.nextTokenWithinRule) {\r\n return s.nextTokenWithinRule;\r\n }\r\n s.nextTokenWithinRule = this.nextTokens(s, PredictionContext_1.PredictionContext.EMPTY_LOCAL);\r\n s.nextTokenWithinRule.setReadonly(true);\r\n return s.nextTokenWithinRule;\r\n }\r\n }\r\n addState(state) {\r\n state.atn = this;\r\n state.stateNumber = this.states.length;\r\n this.states.push(state);\r\n }\r\n removeState(state) {\r\n // just replace the state, don't shift states in list\r\n let invalidState = new InvalidState_1.InvalidState();\r\n invalidState.atn = this;\r\n invalidState.stateNumber = state.stateNumber;\r\n this.states[state.stateNumber] = invalidState;\r\n }\r\n defineMode(name, s) {\r\n this.modeNameToStartState.set(name, s);\r\n this.modeToStartState.push(s);\r\n this.modeToDFA.push(new DFA_1.DFA(s));\r\n this.defineDecisionState(s);\r\n }\r\n defineDecisionState(s) {\r\n this.decisionToState.push(s);\r\n s.decision = this.decisionToState.length - 1;\r\n this.decisionToDFA.push(new DFA_1.DFA(s, s.decision));\r\n return s.decision;\r\n }\r\n getDecisionState(decision) {\r\n if (this.decisionToState.length > 0) {\r\n return this.decisionToState[decision];\r\n }\r\n return undefined;\r\n }\r\n get numberOfDecisions() {\r\n return this.decisionToState.length;\r\n }\r\n /**\r\n * Computes the set of input symbols which could follow ATN state number\r\n * `stateNumber` in the specified full `context`. This method\r\n * considers the complete parser context, but does not evaluate semantic\r\n * predicates (i.e. all predicates encountered during the calculation are\r\n * assumed true). If a path in the ATN exists from the starting state to the\r\n * {@link RuleStopState} of the outermost context without matching any\r\n * symbols, {@link Token#EOF} is added to the returned set.\r\n *\r\n * If `context` is `undefined`, it is treated as\r\n * {@link ParserRuleContext#EMPTY}.\r\n *\r\n * Note that this does NOT give you the set of all tokens that could\r\n * appear at a given token position in the input phrase. In other words, it\r\n * does not answer:\r\n *\r\n * > Given a specific partial input phrase, return the set of all\r\n * > tokens that can follow the last token in the input phrase.\r\n *\r\n * The big difference is that with just the input, the parser could land\r\n * right in the middle of a lookahead decision. Getting all\r\n * *possible* tokens given a partial input stream is a separate\r\n * computation. See https://github.com/antlr/antlr4/issues/1428\r\n *\r\n * For this function, we are specifying an ATN state and call stack to\r\n * compute what token(s) can come next and specifically: outside of a\r\n * lookahead decision. That is what you want for error reporting and\r\n * recovery upon parse error.\r\n *\r\n * @param stateNumber the ATN state number\r\n * @param context the full parse context\r\n * @returns The set of potentially valid input symbols which could follow the\r\n * specified state in the specified context.\r\n * @ if the ATN does not contain a state with\r\n * number `stateNumber`\r\n */\r\n getExpectedTokens(stateNumber, context) {\r\n if (stateNumber < 0 || stateNumber >= this.states.length) {\r\n throw new RangeError(\"Invalid state number.\");\r\n }\r\n let ctx = context;\r\n let s = this.states[stateNumber];\r\n let following = this.nextTokens(s);\r\n if (!following.contains(Token_1.Token.EPSILON)) {\r\n return following;\r\n }\r\n let expected = new IntervalSet_1.IntervalSet();\r\n expected.addAll(following);\r\n expected.remove(Token_1.Token.EPSILON);\r\n while (ctx != null && ctx.invokingState >= 0 && following.contains(Token_1.Token.EPSILON)) {\r\n let invokingState = this.states[ctx.invokingState];\r\n let rt = invokingState.transition(0);\r\n following = this.nextTokens(rt.followState);\r\n expected.addAll(following);\r\n expected.remove(Token_1.Token.EPSILON);\r\n ctx = ctx._parent;\r\n }\r\n if (following.contains(Token_1.Token.EPSILON)) {\r\n expected.add(Token_1.Token.EOF);\r\n }\r\n return expected;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"states\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"decisionToState\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"modeNameToStartState\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"modeToStartState\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"decisionToDFA\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"modeToDFA\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"nextTokens\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATN.prototype, \"removeState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ATN.prototype, \"defineMode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATN.prototype, \"defineDecisionState\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATN.prototype, \"getExpectedTokens\", null);\r\nATN = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATN);\r\nexports.ATN = ATN;\r\n(function (ATN) {\r\n ATN.INVALID_ALT_NUMBER = 0;\r\n})(ATN = exports.ATN || (exports.ATN = {}));\r\nexports.ATN = ATN;\r\n//# sourceMappingURL=ATN.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNDeserializationOptions = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:25.8187912-07:00\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ATNDeserializationOptions {\r\n constructor(options) {\r\n this.readOnly = false;\r\n if (options) {\r\n this.verifyATN = options.verifyATN;\r\n this.generateRuleBypassTransitions = options.generateRuleBypassTransitions;\r\n this.optimize = options.optimize;\r\n }\r\n else {\r\n this.verifyATN = true;\r\n this.generateRuleBypassTransitions = false;\r\n this.optimize = true;\r\n }\r\n }\r\n static get defaultOptions() {\r\n if (ATNDeserializationOptions._defaultOptions == null) {\r\n ATNDeserializationOptions._defaultOptions = new ATNDeserializationOptions();\r\n ATNDeserializationOptions._defaultOptions.makeReadOnly();\r\n }\r\n return ATNDeserializationOptions._defaultOptions;\r\n }\r\n get isReadOnly() {\r\n return this.readOnly;\r\n }\r\n makeReadOnly() {\r\n this.readOnly = true;\r\n }\r\n get isVerifyATN() {\r\n return this.verifyATN;\r\n }\r\n set isVerifyATN(verifyATN) {\r\n this.throwIfReadOnly();\r\n this.verifyATN = verifyATN;\r\n }\r\n get isGenerateRuleBypassTransitions() {\r\n return this.generateRuleBypassTransitions;\r\n }\r\n set isGenerateRuleBypassTransitions(generateRuleBypassTransitions) {\r\n this.throwIfReadOnly();\r\n this.generateRuleBypassTransitions = generateRuleBypassTransitions;\r\n }\r\n get isOptimize() {\r\n return this.optimize;\r\n }\r\n set isOptimize(optimize) {\r\n this.throwIfReadOnly();\r\n this.optimize = optimize;\r\n }\r\n throwIfReadOnly() {\r\n if (this.isReadOnly) {\r\n throw new Error(\"The object is read only.\");\r\n }\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNDeserializationOptions, \"defaultOptions\", null);\r\nexports.ATNDeserializationOptions = ATNDeserializationOptions;\r\n//# sourceMappingURL=ATNDeserializationOptions.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AtomTransition = void 0;\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\n/** TODO: make all transitions sets? no, should remove set edges */\r\nlet AtomTransition = class AtomTransition extends Transition_1.Transition {\r\n constructor(target, label) {\r\n super(target);\r\n this._label = label;\r\n }\r\n get serializationType() {\r\n return 5 /* ATOM */;\r\n }\r\n get label() {\r\n return IntervalSet_1.IntervalSet.of(this._label);\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return this._label === symbol;\r\n }\r\n toString() {\r\n return String(this.label);\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], AtomTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], AtomTransition.prototype, \"label\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], AtomTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], AtomTransition.prototype, \"toString\", null);\r\nAtomTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], AtomTransition);\r\nexports.AtomTransition = AtomTransition;\r\n//# sourceMappingURL=AtomTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BlockStartState = void 0;\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\n/** The start of a regular `(...)` block. */\r\nclass BlockStartState extends DecisionState_1.DecisionState {\r\n}\r\nexports.BlockStartState = BlockStartState;\r\n//# sourceMappingURL=BlockStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BasicBlockStartState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:27.7669801-07:00\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst BlockStartState_1 = require(\"./BlockStartState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass BasicBlockStartState extends BlockStartState_1.BlockStartState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.BLOCK_START;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], BasicBlockStartState.prototype, \"stateType\", null);\r\nexports.BasicBlockStartState = BasicBlockStartState;\r\n//# sourceMappingURL=BasicBlockStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BlockEndState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:27.9125304-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** Terminal node of a simple `(a|b|c)` block. */\r\nclass BlockEndState extends ATNState_1.ATNState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.BLOCK_END;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], BlockEndState.prototype, \"stateType\", null);\r\nexports.BlockEndState = BlockEndState;\r\n//# sourceMappingURL=BlockEndState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EpsilonTransition = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\nlet EpsilonTransition = class EpsilonTransition extends Transition_1.Transition {\r\n constructor(target, outermostPrecedenceReturn = -1) {\r\n super(target);\r\n this._outermostPrecedenceReturn = outermostPrecedenceReturn;\r\n }\r\n /**\r\n * @returns the rule index of a precedence rule for which this transition is\r\n * returning from, where the precedence value is 0; otherwise, -1.\r\n *\r\n * @see ATNConfig.isPrecedenceFilterSuppressed\r\n * @see ParserATNSimulator#applyPrecedenceFilter(ATNConfigSet, ParserRuleContext, PredictionContextCache)\r\n * @since 4.4.1\r\n */\r\n get outermostPrecedenceReturn() {\r\n return this._outermostPrecedenceReturn;\r\n }\r\n get serializationType() {\r\n return 1 /* EPSILON */;\r\n }\r\n get isEpsilon() {\r\n return true;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return false;\r\n }\r\n toString() {\r\n return \"epsilon\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], EpsilonTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EpsilonTransition.prototype, \"isEpsilon\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], EpsilonTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], EpsilonTransition.prototype, \"toString\", null);\r\nEpsilonTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], EpsilonTransition);\r\nexports.EpsilonTransition = EpsilonTransition;\r\n//# sourceMappingURL=EpsilonTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerChannelAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `channel` lexer action by calling\r\n * {@link Lexer#setChannel} with the assigned channel.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerChannelAction {\r\n /**\r\n * Constructs a new `channel` action with the specified channel value.\r\n * @param channel The channel value to pass to {@link Lexer#setChannel}.\r\n */\r\n constructor(channel) {\r\n this._channel = channel;\r\n }\r\n /**\r\n * Gets the channel to use for the {@link Token} created by the lexer.\r\n *\r\n * @returns The channel to use for the {@link Token} created by the lexer.\r\n */\r\n get channel() {\r\n return this._channel;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#CHANNEL}.\r\n */\r\n get actionType() {\r\n return 0 /* CHANNEL */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#setChannel} with the\r\n * value provided by {@link #getChannel}.\r\n */\r\n execute(lexer) {\r\n lexer.channel = this._channel;\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._channel);\r\n return MurmurHash_1.MurmurHash.finish(hash, 2);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerChannelAction)) {\r\n return false;\r\n }\r\n return this._channel === obj._channel;\r\n }\r\n toString() {\r\n return `channel(${this._channel})`;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerChannelAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerChannelAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerChannelAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerChannelAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerChannelAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerChannelAction.prototype, \"toString\", null);\r\nexports.LexerChannelAction = LexerChannelAction;\r\n//# sourceMappingURL=LexerChannelAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerCustomAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Executes a custom lexer action by calling {@link Recognizer#action} with the\r\n * rule and action indexes assigned to the custom action. The implementation of\r\n * a custom action is added to the generated code for the lexer in an override\r\n * of {@link Recognizer#action} when the grammar is compiled.\r\n *\r\n * This class may represent embedded actions created with the `{...}`\r\n * syntax in ANTLR 4, as well as actions created for lexer commands where the\r\n * command argument could not be evaluated when the grammar was compiled.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerCustomAction {\r\n /**\r\n * Constructs a custom lexer action with the specified rule and action\r\n * indexes.\r\n *\r\n * @param ruleIndex The rule index to use for calls to\r\n * {@link Recognizer#action}.\r\n * @param actionIndex The action index to use for calls to\r\n * {@link Recognizer#action}.\r\n */\r\n constructor(ruleIndex, actionIndex) {\r\n this._ruleIndex = ruleIndex;\r\n this._actionIndex = actionIndex;\r\n }\r\n /**\r\n * Gets the rule index to use for calls to {@link Recognizer#action}.\r\n *\r\n * @returns The rule index for the custom action.\r\n */\r\n get ruleIndex() {\r\n return this._ruleIndex;\r\n }\r\n /**\r\n * Gets the action index to use for calls to {@link Recognizer#action}.\r\n *\r\n * @returns The action index for the custom action.\r\n */\r\n get actionIndex() {\r\n return this._actionIndex;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * @returns This method returns {@link LexerActionType#CUSTOM}.\r\n */\r\n get actionType() {\r\n return 1 /* CUSTOM */;\r\n }\r\n /**\r\n * Gets whether the lexer action is position-dependent. Position-dependent\r\n * actions may have different semantics depending on the {@link CharStream}\r\n * index at the time the action is executed.\r\n *\r\n * Custom actions are position-dependent since they may represent a\r\n * user-defined embedded action which makes calls to methods like\r\n * {@link Lexer#getText}.\r\n *\r\n * @returns This method returns `true`.\r\n */\r\n get isPositionDependent() {\r\n return true;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * Custom actions are implemented by calling {@link Lexer#action} with the\r\n * appropriate rule and action indexes.\r\n */\r\n execute(lexer) {\r\n lexer.action(undefined, this._ruleIndex, this._actionIndex);\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._ruleIndex);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._actionIndex);\r\n return MurmurHash_1.MurmurHash.finish(hash, 3);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerCustomAction)) {\r\n return false;\r\n }\r\n return this._ruleIndex === obj._ruleIndex\r\n && this._actionIndex === obj._actionIndex;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerCustomAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerCustomAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerCustomAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerCustomAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerCustomAction.prototype, \"equals\", null);\r\nexports.LexerCustomAction = LexerCustomAction;\r\n//# sourceMappingURL=LexerCustomAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerModeAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `mode` lexer action by calling {@link Lexer#mode} with\r\n * the assigned mode.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerModeAction {\r\n /**\r\n * Constructs a new `mode` action with the specified mode value.\r\n * @param mode The mode value to pass to {@link Lexer#mode}.\r\n */\r\n constructor(mode) {\r\n this._mode = mode;\r\n }\r\n /**\r\n * Get the lexer mode this action should transition the lexer to.\r\n *\r\n * @returns The lexer mode for this `mode` command.\r\n */\r\n get mode() {\r\n return this._mode;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#MODE}.\r\n */\r\n get actionType() {\r\n return 2 /* MODE */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#mode} with the\r\n * value provided by {@link #getMode}.\r\n */\r\n execute(lexer) {\r\n lexer.mode(this._mode);\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._mode);\r\n return MurmurHash_1.MurmurHash.finish(hash, 2);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerModeAction)) {\r\n return false;\r\n }\r\n return this._mode === obj._mode;\r\n }\r\n toString() {\r\n return `mode(${this._mode})`;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerModeAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerModeAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerModeAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerModeAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerModeAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerModeAction.prototype, \"toString\", null);\r\nexports.LexerModeAction = LexerModeAction;\r\n//# sourceMappingURL=LexerModeAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerMoreAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `more` lexer action by calling {@link Lexer#more}.\r\n *\r\n * The `more` command does not have any parameters, so this action is\r\n * implemented as a singleton instance exposed by {@link #INSTANCE}.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerMoreAction {\r\n /**\r\n * Constructs the singleton instance of the lexer `more` command.\r\n */\r\n constructor() {\r\n // intentionally empty\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#MORE}.\r\n */\r\n get actionType() {\r\n return 3 /* MORE */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#more}.\r\n */\r\n execute(lexer) {\r\n lexer.more();\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n return MurmurHash_1.MurmurHash.finish(hash, 1);\r\n }\r\n equals(obj) {\r\n return obj === this;\r\n }\r\n toString() {\r\n return \"more\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerMoreAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerMoreAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerMoreAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerMoreAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerMoreAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerMoreAction.prototype, \"toString\", null);\r\nexports.LexerMoreAction = LexerMoreAction;\r\n(function (LexerMoreAction) {\r\n /**\r\n * Provides a singleton instance of this parameterless lexer action.\r\n */\r\n LexerMoreAction.INSTANCE = new LexerMoreAction();\r\n})(LexerMoreAction = exports.LexerMoreAction || (exports.LexerMoreAction = {}));\r\n//# sourceMappingURL=LexerMoreAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerPopModeAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `popMode` lexer action by calling {@link Lexer#popMode}.\r\n *\r\n * The `popMode` command does not have any parameters, so this action is\r\n * implemented as a singleton instance exposed by {@link #INSTANCE}.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerPopModeAction {\r\n /**\r\n * Constructs the singleton instance of the lexer `popMode` command.\r\n */\r\n constructor() {\r\n // intentionally empty\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#POP_MODE}.\r\n */\r\n get actionType() {\r\n return 4 /* POP_MODE */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#popMode}.\r\n */\r\n execute(lexer) {\r\n lexer.popMode();\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n return MurmurHash_1.MurmurHash.finish(hash, 1);\r\n }\r\n equals(obj) {\r\n return obj === this;\r\n }\r\n toString() {\r\n return \"popMode\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPopModeAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPopModeAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerPopModeAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPopModeAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPopModeAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPopModeAction.prototype, \"toString\", null);\r\nexports.LexerPopModeAction = LexerPopModeAction;\r\n(function (LexerPopModeAction) {\r\n /**\r\n * Provides a singleton instance of this parameterless lexer action.\r\n */\r\n LexerPopModeAction.INSTANCE = new LexerPopModeAction();\r\n})(LexerPopModeAction = exports.LexerPopModeAction || (exports.LexerPopModeAction = {}));\r\n//# sourceMappingURL=LexerPopModeAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerPushModeAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `pushMode` lexer action by calling\r\n * {@link Lexer#pushMode} with the assigned mode.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerPushModeAction {\r\n /**\r\n * Constructs a new `pushMode` action with the specified mode value.\r\n * @param mode The mode value to pass to {@link Lexer#pushMode}.\r\n */\r\n constructor(mode) {\r\n this._mode = mode;\r\n }\r\n /**\r\n * Get the lexer mode this action should transition the lexer to.\r\n *\r\n * @returns The lexer mode for this `pushMode` command.\r\n */\r\n get mode() {\r\n return this._mode;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#PUSH_MODE}.\r\n */\r\n get actionType() {\r\n return 5 /* PUSH_MODE */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#pushMode} with the\r\n * value provided by {@link #getMode}.\r\n */\r\n execute(lexer) {\r\n lexer.pushMode(this._mode);\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._mode);\r\n return MurmurHash_1.MurmurHash.finish(hash, 2);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerPushModeAction)) {\r\n return false;\r\n }\r\n return this._mode === obj._mode;\r\n }\r\n toString() {\r\n return `pushMode(${this._mode})`;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPushModeAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPushModeAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerPushModeAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPushModeAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPushModeAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerPushModeAction.prototype, \"toString\", null);\r\nexports.LexerPushModeAction = LexerPushModeAction;\r\n//# sourceMappingURL=LexerPushModeAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerSkipAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `skip` lexer action by calling {@link Lexer#skip}.\r\n *\r\n * The `skip` command does not have any parameters, so this action is\r\n * implemented as a singleton instance exposed by {@link #INSTANCE}.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerSkipAction {\r\n /**\r\n * Constructs the singleton instance of the lexer `skip` command.\r\n */\r\n constructor() {\r\n // intentionally empty\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#SKIP}.\r\n */\r\n get actionType() {\r\n return 6 /* SKIP */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by calling {@link Lexer#skip}.\r\n */\r\n execute(lexer) {\r\n lexer.skip();\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n return MurmurHash_1.MurmurHash.finish(hash, 1);\r\n }\r\n equals(obj) {\r\n return obj === this;\r\n }\r\n toString() {\r\n return \"skip\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerSkipAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerSkipAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerSkipAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerSkipAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerSkipAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerSkipAction.prototype, \"toString\", null);\r\nexports.LexerSkipAction = LexerSkipAction;\r\n(function (LexerSkipAction) {\r\n /**\r\n * Provides a singleton instance of this parameterless lexer action.\r\n */\r\n LexerSkipAction.INSTANCE = new LexerSkipAction();\r\n})(LexerSkipAction = exports.LexerSkipAction || (exports.LexerSkipAction = {}));\r\n//# sourceMappingURL=LexerSkipAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerTypeAction = void 0;\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * Implements the `type` lexer action by setting `Lexer.type`\r\n * with the assigned type.\r\n *\r\n * @author Sam Harwell\r\n * @since 4.2\r\n */\r\nclass LexerTypeAction {\r\n /**\r\n * Constructs a new `type` action with the specified token type value.\r\n * @param type The type to assign to the token using `Lexer.type`.\r\n */\r\n constructor(type) {\r\n this._type = type;\r\n }\r\n /**\r\n * Gets the type to assign to a token created by the lexer.\r\n * @returns The type to assign to a token created by the lexer.\r\n */\r\n get type() {\r\n return this._type;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns {@link LexerActionType#TYPE}.\r\n */\r\n get actionType() {\r\n return 7 /* TYPE */;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n * @returns This method returns `false`.\r\n */\r\n get isPositionDependent() {\r\n return false;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This action is implemented by setting `Lexer.type` with the\r\n * value provided by `type`.\r\n */\r\n execute(lexer) {\r\n lexer.type = this._type;\r\n }\r\n hashCode() {\r\n let hash = MurmurHash_1.MurmurHash.initialize();\r\n hash = MurmurHash_1.MurmurHash.update(hash, this.actionType);\r\n hash = MurmurHash_1.MurmurHash.update(hash, this._type);\r\n return MurmurHash_1.MurmurHash.finish(hash, 2);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof LexerTypeAction)) {\r\n return false;\r\n }\r\n return this._type === obj._type;\r\n }\r\n toString() {\r\n return `type(${this._type})`;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerTypeAction.prototype, \"actionType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerTypeAction.prototype, \"isPositionDependent\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], LexerTypeAction.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerTypeAction.prototype, \"hashCode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerTypeAction.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], LexerTypeAction.prototype, \"toString\", null);\r\nexports.LexerTypeAction = LexerTypeAction;\r\n//# sourceMappingURL=LexerTypeAction.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LoopEndState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:30.7737978-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** Mark the end of a * or + loop. */\r\nclass LoopEndState extends ATNState_1.ATNState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.LOOP_END;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], LoopEndState.prototype, \"stateType\", null);\r\nexports.LoopEndState = LoopEndState;\r\n//# sourceMappingURL=LoopEndState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConflictInfo = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Utils = require(\"../misc/Utils\");\r\n/**\r\n * This class stores information about a configuration conflict.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ConflictInfo {\r\n constructor(conflictedAlts, exact) {\r\n this._conflictedAlts = conflictedAlts;\r\n this.exact = exact;\r\n }\r\n /**\r\n * Gets the set of conflicting alternatives for the configuration set.\r\n */\r\n get conflictedAlts() {\r\n return this._conflictedAlts;\r\n }\r\n /**\r\n * Gets whether or not the configuration conflict is an exact conflict.\r\n * An exact conflict occurs when the prediction algorithm determines that\r\n * the represented alternatives for a particular configuration set cannot be\r\n * further reduced by consuming additional input. After reaching an exact\r\n * conflict during an SLL prediction, only switch to full-context prediction\r\n * could reduce the set of viable alternatives. In LL prediction, an exact\r\n * conflict indicates a true ambiguity in the input.\r\n *\r\n * For the {@link PredictionMode#LL_EXACT_AMBIG_DETECTION} prediction mode,\r\n * accept states are conflicting but not exact are treated as non-accept\r\n * states.\r\n */\r\n get isExact() {\r\n return this.exact;\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof ConflictInfo)) {\r\n return false;\r\n }\r\n return this.isExact === obj.isExact\r\n && Utils.equals(this.conflictedAlts, obj.conflictedAlts);\r\n }\r\n hashCode() {\r\n return this.conflictedAlts.hashCode();\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ConflictInfo.prototype, \"equals\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ConflictInfo.prototype, \"hashCode\", null);\r\nexports.ConflictInfo = ConflictInfo;\r\n//# sourceMappingURL=ConflictInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PredicateTransition = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.2826960-07:00\r\nconst AbstractPredicateTransition_1 = require(\"./AbstractPredicateTransition\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\n/** TODO: this is old comment:\r\n * A tree of semantic predicates from the grammar AST if label==SEMPRED.\r\n * In the ATN, labels will always be exactly one predicate, but the DFA\r\n * may have to combine a bunch of them as it collects predicates from\r\n * multiple ATN configurations into a single DFA state.\r\n */\r\nlet PredicateTransition = class PredicateTransition extends AbstractPredicateTransition_1.AbstractPredicateTransition {\r\n constructor(target, ruleIndex, predIndex, isCtxDependent) {\r\n super(target);\r\n this.ruleIndex = ruleIndex;\r\n this.predIndex = predIndex;\r\n this.isCtxDependent = isCtxDependent;\r\n }\r\n get serializationType() {\r\n return 4 /* PREDICATE */;\r\n }\r\n get isEpsilon() { return true; }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return false;\r\n }\r\n get predicate() {\r\n return new SemanticContext_1.SemanticContext.Predicate(this.ruleIndex, this.predIndex, this.isCtxDependent);\r\n }\r\n toString() {\r\n return \"pred_\" + this.ruleIndex + \":\" + this.predIndex;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], PredicateTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], PredicateTransition.prototype, \"isEpsilon\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], PredicateTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], PredicateTransition.prototype, \"toString\", null);\r\nPredicateTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], PredicateTransition);\r\nexports.PredicateTransition = PredicateTransition;\r\n//# sourceMappingURL=PredicateTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FailedPredicateException = void 0;\r\nconst RecognitionException_1 = require(\"./RecognitionException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst PredicateTransition_1 = require(\"./atn/PredicateTransition\");\r\n/** A semantic predicate failed during validation. Validation of predicates\r\n * occurs when normally parsing the alternative just like matching a token.\r\n * Disambiguating predicate evaluation occurs when we test a predicate during\r\n * prediction.\r\n */\r\nlet FailedPredicateException = class FailedPredicateException extends RecognitionException_1.RecognitionException {\r\n constructor(recognizer, predicate, message) {\r\n super(recognizer, recognizer.inputStream, recognizer.context, FailedPredicateException.formatMessage(predicate, message));\r\n let s = recognizer.interpreter.atn.states[recognizer.state];\r\n let trans = s.transition(0);\r\n if (trans instanceof PredicateTransition_1.PredicateTransition) {\r\n this._ruleIndex = trans.ruleIndex;\r\n this._predicateIndex = trans.predIndex;\r\n }\r\n else {\r\n this._ruleIndex = 0;\r\n this._predicateIndex = 0;\r\n }\r\n this._predicate = predicate;\r\n super.setOffendingToken(recognizer, recognizer.currentToken);\r\n }\r\n get ruleIndex() {\r\n return this._ruleIndex;\r\n }\r\n get predicateIndex() {\r\n return this._predicateIndex;\r\n }\r\n get predicate() {\r\n return this._predicate;\r\n }\r\n static formatMessage(predicate, message) {\r\n if (message) {\r\n return message;\r\n }\r\n return `failed predicate: {${predicate}}?`;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], FailedPredicateException, \"formatMessage\", null);\r\nFailedPredicateException = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], FailedPredicateException);\r\nexports.FailedPredicateException = FailedPredicateException;\r\n//# sourceMappingURL=FailedPredicateException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InputMismatchException = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:51.5187682-07:00\r\nconst RecognitionException_1 = require(\"./RecognitionException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/** This signifies any kind of mismatched input exceptions such as\r\n * when the current input does not match the expected token.\r\n */\r\nlet InputMismatchException = class InputMismatchException extends RecognitionException_1.RecognitionException {\r\n constructor(recognizer, state, context) {\r\n if (context === undefined) {\r\n context = recognizer.context;\r\n }\r\n super(recognizer, recognizer.inputStream, context);\r\n if (state !== undefined) {\r\n this.setOffendingState(state);\r\n }\r\n this.setOffendingToken(recognizer, recognizer.currentToken);\r\n }\r\n};\r\nInputMismatchException = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], InputMismatchException);\r\nexports.InputMismatchException = InputMismatchException;\r\n//# sourceMappingURL=InputMismatchException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultErrorStrategy = void 0;\r\nconst ATNState_1 = require(\"./atn/ATNState\");\r\nconst ATNStateType_1 = require(\"./atn/ATNStateType\");\r\nconst FailedPredicateException_1 = require(\"./FailedPredicateException\");\r\nconst InputMismatchException_1 = require(\"./InputMismatchException\");\r\nconst IntervalSet_1 = require(\"./misc/IntervalSet\");\r\nconst NoViableAltException_1 = require(\"./NoViableAltException\");\r\nconst PredictionContext_1 = require(\"./atn/PredictionContext\");\r\nconst Token_1 = require(\"./Token\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/**\r\n * This is the default implementation of {@link ANTLRErrorStrategy} used for\r\n * error reporting and recovery in ANTLR parsers.\r\n */\r\nclass DefaultErrorStrategy {\r\n constructor() {\r\n /**\r\n * Indicates whether the error strategy is currently \"recovering from an\r\n * error\". This is used to suppress reporting multiple error messages while\r\n * attempting to recover from a detected syntax error.\r\n *\r\n * @see #inErrorRecoveryMode\r\n */\r\n this.errorRecoveryMode = false;\r\n /** The index into the input stream where the last error occurred.\r\n * \tThis is used to prevent infinite loops where an error is found\r\n * but no token is consumed during recovery...another error is found,\r\n * ad nauseum. This is a failsafe mechanism to guarantee that at least\r\n * one token/tree node is consumed for two errors.\r\n */\r\n this.lastErrorIndex = -1;\r\n /**\r\n * @see #nextTokensContext\r\n */\r\n this.nextTokensState = ATNState_1.ATNState.INVALID_STATE_NUMBER;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation simply calls {@link #endErrorCondition} to\r\n * ensure that the handler is not in error recovery mode.\r\n */\r\n reset(recognizer) {\r\n this.endErrorCondition(recognizer);\r\n }\r\n /**\r\n * This method is called to enter error recovery mode when a recognition\r\n * exception is reported.\r\n *\r\n * @param recognizer the parser instance\r\n */\r\n beginErrorCondition(recognizer) {\r\n this.errorRecoveryMode = true;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n inErrorRecoveryMode(recognizer) {\r\n return this.errorRecoveryMode;\r\n }\r\n /**\r\n * This method is called to leave error recovery mode after recovering from\r\n * a recognition exception.\r\n *\r\n * @param recognizer\r\n */\r\n endErrorCondition(recognizer) {\r\n this.errorRecoveryMode = false;\r\n this.lastErrorStates = undefined;\r\n this.lastErrorIndex = -1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation simply calls {@link #endErrorCondition}.\r\n */\r\n reportMatch(recognizer) {\r\n this.endErrorCondition(recognizer);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation returns immediately if the handler is already\r\n * in error recovery mode. Otherwise, it calls {@link #beginErrorCondition}\r\n * and dispatches the reporting task based on the runtime type of `e`\r\n * according to the following table.\r\n *\r\n * * {@link NoViableAltException}: Dispatches the call to\r\n * {@link #reportNoViableAlternative}\r\n * * {@link InputMismatchException}: Dispatches the call to\r\n * {@link #reportInputMismatch}\r\n * * {@link FailedPredicateException}: Dispatches the call to\r\n * {@link #reportFailedPredicate}\r\n * * All other types: calls {@link Parser#notifyErrorListeners} to report\r\n * the exception\r\n */\r\n reportError(recognizer, e) {\r\n // if we've already reported an error and have not matched a token\r\n // yet successfully, don't report any errors.\r\n if (this.inErrorRecoveryMode(recognizer)) {\r\n //\t\t\tSystem.err.print(\"[SPURIOUS] \");\r\n return; // don't report spurious errors\r\n }\r\n this.beginErrorCondition(recognizer);\r\n if (e instanceof NoViableAltException_1.NoViableAltException) {\r\n this.reportNoViableAlternative(recognizer, e);\r\n }\r\n else if (e instanceof InputMismatchException_1.InputMismatchException) {\r\n this.reportInputMismatch(recognizer, e);\r\n }\r\n else if (e instanceof FailedPredicateException_1.FailedPredicateException) {\r\n this.reportFailedPredicate(recognizer, e);\r\n }\r\n else {\r\n console.error(`unknown recognition error type: ${e}`);\r\n this.notifyErrorListeners(recognizer, e.toString(), e);\r\n }\r\n }\r\n notifyErrorListeners(recognizer, message, e) {\r\n let offendingToken = e.getOffendingToken(recognizer);\r\n if (offendingToken === undefined) {\r\n // Pass null to notifyErrorListeners so it in turn calls the error listeners with undefined as the offending\r\n // token. If we passed undefined, it would instead call the listeners with currentToken from the parser.\r\n offendingToken = null;\r\n }\r\n recognizer.notifyErrorListeners(message, offendingToken, e);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation resynchronizes the parser by consuming tokens\r\n * until we find one in the resynchronization set--loosely the set of tokens\r\n * that can follow the current rule.\r\n */\r\n recover(recognizer, e) {\r\n //\t\tSystem.out.println(\"recover in \"+recognizer.getRuleInvocationStack()+\r\n //\t\t\t\t\t\t \" index=\"+recognizer.inputStream.index+\r\n //\t\t\t\t\t\t \", lastErrorIndex=\"+\r\n //\t\t\t\t\t\t lastErrorIndex+\r\n //\t\t\t\t\t\t \", states=\"+lastErrorStates);\r\n if (this.lastErrorIndex === recognizer.inputStream.index &&\r\n this.lastErrorStates &&\r\n this.lastErrorStates.contains(recognizer.state)) {\r\n // uh oh, another error at same token index and previously-visited\r\n // state in ATN; must be a case where LT(1) is in the recovery\r\n // token set so nothing got consumed. Consume a single token\r\n // at least to prevent an infinite loop; this is a failsafe.\r\n //\t\t\tSystem.err.println(\"seen error condition before index=\"+\r\n //\t\t\t\t\t\t\t lastErrorIndex+\", states=\"+lastErrorStates);\r\n //\t\t\tSystem.err.println(\"FAILSAFE consumes \"+recognizer.getTokenNames()[recognizer.inputStream.LA(1)]);\r\n recognizer.consume();\r\n }\r\n this.lastErrorIndex = recognizer.inputStream.index;\r\n if (!this.lastErrorStates) {\r\n this.lastErrorStates = new IntervalSet_1.IntervalSet();\r\n }\r\n this.lastErrorStates.add(recognizer.state);\r\n let followSet = this.getErrorRecoverySet(recognizer);\r\n this.consumeUntil(recognizer, followSet);\r\n }\r\n /**\r\n * The default implementation of {@link ANTLRErrorStrategy#sync} makes sure\r\n * that the current lookahead symbol is consistent with what were expecting\r\n * at this point in the ATN. You can call this anytime but ANTLR only\r\n * generates code to check before subrules/loops and each iteration.\r\n *\r\n * Implements Jim Idle's magic sync mechanism in closures and optional\r\n * subrules. E.g.,\r\n *\r\n * ```antlr\r\n * a : sync ( stuff sync )* ;\r\n * sync : {consume to what can follow sync} ;\r\n * ```\r\n *\r\n * At the start of a sub rule upon error, {@link #sync} performs single\r\n * token deletion, if possible. If it can't do that, it bails on the current\r\n * rule and uses the default error recovery, which consumes until the\r\n * resynchronization set of the current rule.\r\n *\r\n * If the sub rule is optional (`(...)?`, `(...)*`, or block\r\n * with an empty alternative), then the expected set includes what follows\r\n * the subrule.\r\n *\r\n * During loop iteration, it consumes until it sees a token that can start a\r\n * sub rule or what follows loop. Yes, that is pretty aggressive. We opt to\r\n * stay in the loop as long as possible.\r\n *\r\n * **ORIGINS**\r\n *\r\n * Previous versions of ANTLR did a poor job of their recovery within loops.\r\n * A single mismatch token or missing token would force the parser to bail\r\n * out of the entire rules surrounding the loop. So, for rule\r\n *\r\n * ```antlr\r\n * classDef : 'class' ID '{' member* '}'\r\n * ```\r\n *\r\n * input with an extra token between members would force the parser to\r\n * consume until it found the next class definition rather than the next\r\n * member definition of the current class.\r\n *\r\n * This functionality cost a little bit of effort because the parser has to\r\n * compare token set at the start of the loop and at each iteration. If for\r\n * some reason speed is suffering for you, you can turn off this\r\n * functionality by simply overriding this method as a blank { }.\r\n */\r\n sync(recognizer) {\r\n let s = recognizer.interpreter.atn.states[recognizer.state];\r\n //\t\tSystem.err.println(\"sync @ \"+s.stateNumber+\"=\"+s.getClass().getSimpleName());\r\n // If already recovering, don't try to sync\r\n if (this.inErrorRecoveryMode(recognizer)) {\r\n return;\r\n }\r\n let tokens = recognizer.inputStream;\r\n let la = tokens.LA(1);\r\n // try cheaper subset first; might get lucky. seems to shave a wee bit off\r\n let nextTokens = recognizer.atn.nextTokens(s);\r\n if (nextTokens.contains(la)) {\r\n // We are sure the token matches\r\n this.nextTokensContext = undefined;\r\n this.nextTokensState = ATNState_1.ATNState.INVALID_STATE_NUMBER;\r\n return;\r\n }\r\n if (nextTokens.contains(Token_1.Token.EPSILON)) {\r\n if (this.nextTokensContext === undefined) {\r\n // It's possible the next token won't match; information tracked\r\n // by sync is restricted for performance.\r\n this.nextTokensContext = recognizer.context;\r\n this.nextTokensState = recognizer.state;\r\n }\r\n return;\r\n }\r\n switch (s.stateType) {\r\n case ATNStateType_1.ATNStateType.BLOCK_START:\r\n case ATNStateType_1.ATNStateType.STAR_BLOCK_START:\r\n case ATNStateType_1.ATNStateType.PLUS_BLOCK_START:\r\n case ATNStateType_1.ATNStateType.STAR_LOOP_ENTRY:\r\n // report error and recover if possible\r\n if (this.singleTokenDeletion(recognizer)) {\r\n return;\r\n }\r\n throw new InputMismatchException_1.InputMismatchException(recognizer);\r\n case ATNStateType_1.ATNStateType.PLUS_LOOP_BACK:\r\n case ATNStateType_1.ATNStateType.STAR_LOOP_BACK:\r\n //\t\t\tSystem.err.println(\"at loop back: \"+s.getClass().getSimpleName());\r\n this.reportUnwantedToken(recognizer);\r\n let expecting = recognizer.getExpectedTokens();\r\n let whatFollowsLoopIterationOrRule = expecting.or(this.getErrorRecoverySet(recognizer));\r\n this.consumeUntil(recognizer, whatFollowsLoopIterationOrRule);\r\n break;\r\n default:\r\n // do nothing if we can't identify the exact kind of ATN state\r\n break;\r\n }\r\n }\r\n /**\r\n * This is called by {@link #reportError} when the exception is a\r\n * {@link NoViableAltException}.\r\n *\r\n * @see #reportError\r\n *\r\n * @param recognizer the parser instance\r\n * @param e the recognition exception\r\n */\r\n reportNoViableAlternative(recognizer, e) {\r\n let tokens = recognizer.inputStream;\r\n let input;\r\n if (tokens) {\r\n if (e.startToken.type === Token_1.Token.EOF) {\r\n input = \"<EOF>\";\r\n }\r\n else {\r\n input = tokens.getTextFromRange(e.startToken, e.getOffendingToken());\r\n }\r\n }\r\n else {\r\n input = \"<unknown input>\";\r\n }\r\n let msg = \"no viable alternative at input \" + this.escapeWSAndQuote(input);\r\n this.notifyErrorListeners(recognizer, msg, e);\r\n }\r\n /**\r\n * This is called by {@link #reportError} when the exception is an\r\n * {@link InputMismatchException}.\r\n *\r\n * @see #reportError\r\n *\r\n * @param recognizer the parser instance\r\n * @param e the recognition exception\r\n */\r\n reportInputMismatch(recognizer, e) {\r\n let expected = e.expectedTokens;\r\n let expectedString = expected ? expected.toStringVocabulary(recognizer.vocabulary) : \"\";\r\n let msg = \"mismatched input \" + this.getTokenErrorDisplay(e.getOffendingToken(recognizer)) +\r\n \" expecting \" + expectedString;\r\n this.notifyErrorListeners(recognizer, msg, e);\r\n }\r\n /**\r\n * This is called by {@link #reportError} when the exception is a\r\n * {@link FailedPredicateException}.\r\n *\r\n * @see #reportError\r\n *\r\n * @param recognizer the parser instance\r\n * @param e the recognition exception\r\n */\r\n reportFailedPredicate(recognizer, e) {\r\n let ruleName = recognizer.ruleNames[recognizer.context.ruleIndex];\r\n let msg = \"rule \" + ruleName + \" \" + e.message;\r\n this.notifyErrorListeners(recognizer, msg, e);\r\n }\r\n /**\r\n * This method is called to report a syntax error which requires the removal\r\n * of a token from the input stream. At the time this method is called, the\r\n * erroneous symbol is current `LT(1)` symbol and has not yet been\r\n * removed from the input stream. When this method returns,\r\n * `recognizer` is in error recovery mode.\r\n *\r\n * This method is called when {@link #singleTokenDeletion} identifies\r\n * single-token deletion as a viable recovery strategy for a mismatched\r\n * input error.\r\n *\r\n * The default implementation simply returns if the handler is already in\r\n * error recovery mode. Otherwise, it calls {@link #beginErrorCondition} to\r\n * enter error recovery mode, followed by calling\r\n * {@link Parser#notifyErrorListeners}.\r\n *\r\n * @param recognizer the parser instance\r\n */\r\n reportUnwantedToken(recognizer) {\r\n if (this.inErrorRecoveryMode(recognizer)) {\r\n return;\r\n }\r\n this.beginErrorCondition(recognizer);\r\n let t = recognizer.currentToken;\r\n let tokenName = this.getTokenErrorDisplay(t);\r\n let expecting = this.getExpectedTokens(recognizer);\r\n let msg = \"extraneous input \" + tokenName + \" expecting \" +\r\n expecting.toStringVocabulary(recognizer.vocabulary);\r\n recognizer.notifyErrorListeners(msg, t, undefined);\r\n }\r\n /**\r\n * This method is called to report a syntax error which requires the\r\n * insertion of a missing token into the input stream. At the time this\r\n * method is called, the missing token has not yet been inserted. When this\r\n * method returns, `recognizer` is in error recovery mode.\r\n *\r\n * This method is called when {@link #singleTokenInsertion} identifies\r\n * single-token insertion as a viable recovery strategy for a mismatched\r\n * input error.\r\n *\r\n * The default implementation simply returns if the handler is already in\r\n * error recovery mode. Otherwise, it calls {@link #beginErrorCondition} to\r\n * enter error recovery mode, followed by calling\r\n * {@link Parser#notifyErrorListeners}.\r\n *\r\n * @param recognizer the parser instance\r\n */\r\n reportMissingToken(recognizer) {\r\n if (this.inErrorRecoveryMode(recognizer)) {\r\n return;\r\n }\r\n this.beginErrorCondition(recognizer);\r\n let t = recognizer.currentToken;\r\n let expecting = this.getExpectedTokens(recognizer);\r\n let msg = \"missing \" + expecting.toStringVocabulary(recognizer.vocabulary) +\r\n \" at \" + this.getTokenErrorDisplay(t);\r\n recognizer.notifyErrorListeners(msg, t, undefined);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation attempts to recover from the mismatched input\r\n * by using single token insertion and deletion as described below. If the\r\n * recovery attempt fails, this method\r\n * {@link InputMismatchException}.\r\n *\r\n * **EXTRA TOKEN** (single token deletion)\r\n *\r\n * `LA(1)` is not what we are looking for. If `LA(2)` has the\r\n * right token, however, then assume `LA(1)` is some extra spurious\r\n * token and delete it. Then consume and return the next token (which was\r\n * the `LA(2)` token) as the successful result of the match operation.\r\n *\r\n * This recovery strategy is implemented by {@link #singleTokenDeletion}.\r\n *\r\n * **MISSING TOKEN** (single token insertion)\r\n *\r\n * If current token (at `LA(1)`) is consistent with what could come\r\n * after the expected `LA(1)` token, then assume the token is missing\r\n * and use the parser's {@link TokenFactory} to create it on the fly. The\r\n * \"insertion\" is performed by returning the created token as the successful\r\n * result of the match operation.\r\n *\r\n * This recovery strategy is implemented by {@link #singleTokenInsertion}.\r\n *\r\n * **EXAMPLE**\r\n *\r\n * For example, Input `i=(3;` is clearly missing the `')'`. When\r\n * the parser returns from the nested call to `expr`, it will have\r\n * call chain:\r\n *\r\n * ```\r\n * stat → expr → atom\r\n * ```\r\n *\r\n * and it will be trying to match the `')'` at this point in the\r\n * derivation:\r\n *\r\n * ```\r\n * => ID '=' '(' INT ')' ('+' atom)* ';'\r\n * ^\r\n * ```\r\n *\r\n * The attempt to match `')'` will fail when it sees `';'` and\r\n * call {@link #recoverInline}. To recover, it sees that `LA(1)==';'`\r\n * is in the set of tokens that can follow the `')'` token reference\r\n * in rule `atom`. It can assume that you forgot the `')'`.\r\n */\r\n recoverInline(recognizer) {\r\n // SINGLE TOKEN DELETION\r\n let matchedSymbol = this.singleTokenDeletion(recognizer);\r\n if (matchedSymbol) {\r\n // we have deleted the extra token.\r\n // now, move past ttype token as if all were ok\r\n recognizer.consume();\r\n return matchedSymbol;\r\n }\r\n // SINGLE TOKEN INSERTION\r\n if (this.singleTokenInsertion(recognizer)) {\r\n return this.getMissingSymbol(recognizer);\r\n }\r\n // even that didn't work; must throw the exception\r\n if (this.nextTokensContext === undefined) {\r\n throw new InputMismatchException_1.InputMismatchException(recognizer);\r\n }\r\n else {\r\n throw new InputMismatchException_1.InputMismatchException(recognizer, this.nextTokensState, this.nextTokensContext);\r\n }\r\n }\r\n /**\r\n * This method implements the single-token insertion inline error recovery\r\n * strategy. It is called by {@link #recoverInline} if the single-token\r\n * deletion strategy fails to recover from the mismatched input. If this\r\n * method returns `true`, `recognizer` will be in error recovery\r\n * mode.\r\n *\r\n * This method determines whether or not single-token insertion is viable by\r\n * checking if the `LA(1)` input symbol could be successfully matched\r\n * if it were instead the `LA(2)` symbol. If this method returns\r\n * `true`, the caller is responsible for creating and inserting a\r\n * token with the correct type to produce this behavior.\r\n *\r\n * @param recognizer the parser instance\r\n * @returns `true` if single-token insertion is a viable recovery\r\n * strategy for the current mismatched input, otherwise `false`\r\n */\r\n singleTokenInsertion(recognizer) {\r\n let currentSymbolType = recognizer.inputStream.LA(1);\r\n // if current token is consistent with what could come after current\r\n // ATN state, then we know we're missing a token; error recovery\r\n // is free to conjure up and insert the missing token\r\n let currentState = recognizer.interpreter.atn.states[recognizer.state];\r\n let next = currentState.transition(0).target;\r\n let atn = recognizer.interpreter.atn;\r\n let expectingAtLL2 = atn.nextTokens(next, PredictionContext_1.PredictionContext.fromRuleContext(atn, recognizer.context));\r\n //\t\tconsole.warn(\"LT(2) set=\"+expectingAtLL2.toString(recognizer.getTokenNames()));\r\n if (expectingAtLL2.contains(currentSymbolType)) {\r\n this.reportMissingToken(recognizer);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * This method implements the single-token deletion inline error recovery\r\n * strategy. It is called by {@link #recoverInline} to attempt to recover\r\n * from mismatched input. If this method returns `undefined`, the parser and error\r\n * handler state will not have changed. If this method returns non-`undefined`,\r\n * `recognizer` will *not* be in error recovery mode since the\r\n * returned token was a successful match.\r\n *\r\n * If the single-token deletion is successful, this method calls\r\n * {@link #reportUnwantedToken} to report the error, followed by\r\n * {@link Parser#consume} to actually \"delete\" the extraneous token. Then,\r\n * before returning {@link #reportMatch} is called to signal a successful\r\n * match.\r\n *\r\n * @param recognizer the parser instance\r\n * @returns the successfully matched {@link Token} instance if single-token\r\n * deletion successfully recovers from the mismatched input, otherwise\r\n * `undefined`\r\n */\r\n singleTokenDeletion(recognizer) {\r\n let nextTokenType = recognizer.inputStream.LA(2);\r\n let expecting = this.getExpectedTokens(recognizer);\r\n if (expecting.contains(nextTokenType)) {\r\n this.reportUnwantedToken(recognizer);\r\n /*\r\n System.err.println(\"recoverFromMismatchedToken deleting \"+\r\n ((TokenStream)recognizer.inputStream).LT(1)+\r\n \" since \"+((TokenStream)recognizer.inputStream).LT(2)+\r\n \" is what we want\");\r\n */\r\n recognizer.consume(); // simply delete extra token\r\n // we want to return the token we're actually matching\r\n let matchedSymbol = recognizer.currentToken;\r\n this.reportMatch(recognizer); // we know current token is correct\r\n return matchedSymbol;\r\n }\r\n return undefined;\r\n }\r\n /** Conjure up a missing token during error recovery.\r\n *\r\n * The recognizer attempts to recover from single missing\r\n * symbols. But, actions might refer to that missing symbol.\r\n * For example, x=ID {f($x);}. The action clearly assumes\r\n * that there has been an identifier matched previously and that\r\n * $x points at that token. If that token is missing, but\r\n * the next token in the stream is what we want we assume that\r\n * this token is missing and we keep going. Because we\r\n * have to return some token to replace the missing token,\r\n * we have to conjure one up. This method gives the user control\r\n * over the tokens returned for missing tokens. Mostly,\r\n * you will want to create something special for identifier\r\n * tokens. For literals such as '{' and ',', the default\r\n * action in the parser or tree parser works. It simply creates\r\n * a CommonToken of the appropriate type. The text will be the token.\r\n * If you change what tokens must be created by the lexer,\r\n * override this method to create the appropriate tokens.\r\n */\r\n getMissingSymbol(recognizer) {\r\n let currentSymbol = recognizer.currentToken;\r\n let expecting = this.getExpectedTokens(recognizer);\r\n let expectedTokenType = Token_1.Token.INVALID_TYPE;\r\n if (!expecting.isNil) {\r\n // get any element\r\n expectedTokenType = expecting.minElement;\r\n }\r\n let tokenText;\r\n if (expectedTokenType === Token_1.Token.EOF) {\r\n tokenText = \"<missing EOF>\";\r\n }\r\n else {\r\n tokenText = \"<missing \" + recognizer.vocabulary.getDisplayName(expectedTokenType) + \">\";\r\n }\r\n let current = currentSymbol;\r\n let lookback = recognizer.inputStream.tryLT(-1);\r\n if (current.type === Token_1.Token.EOF && lookback != null) {\r\n current = lookback;\r\n }\r\n return this.constructToken(recognizer.inputStream.tokenSource, expectedTokenType, tokenText, current);\r\n }\r\n constructToken(tokenSource, expectedTokenType, tokenText, current) {\r\n let factory = tokenSource.tokenFactory;\r\n let x = current.tokenSource;\r\n let stream = x ? x.inputStream : undefined;\r\n return factory.create({ source: tokenSource, stream }, expectedTokenType, tokenText, Token_1.Token.DEFAULT_CHANNEL, -1, -1, current.line, current.charPositionInLine);\r\n }\r\n getExpectedTokens(recognizer) {\r\n return recognizer.getExpectedTokens();\r\n }\r\n /** How should a token be displayed in an error message? The default\r\n * is to display just the text, but during development you might\r\n * want to have a lot of information spit out. Override in that case\r\n * to use t.toString() (which, for CommonToken, dumps everything about\r\n * the token). This is better than forcing you to override a method in\r\n * your token objects because you don't have to go modify your lexer\r\n * so that it creates a new Java type.\r\n */\r\n getTokenErrorDisplay(t) {\r\n if (!t) {\r\n return \"<no token>\";\r\n }\r\n let s = this.getSymbolText(t);\r\n if (!s) {\r\n if (this.getSymbolType(t) === Token_1.Token.EOF) {\r\n s = \"<EOF>\";\r\n }\r\n else {\r\n s = `<${this.getSymbolType(t)}>`;\r\n }\r\n }\r\n return this.escapeWSAndQuote(s);\r\n }\r\n getSymbolText(symbol) {\r\n return symbol.text;\r\n }\r\n getSymbolType(symbol) {\r\n return symbol.type;\r\n }\r\n escapeWSAndQuote(s) {\r\n //\t\tif ( s==null ) return s;\r\n s = s.replace(\"\\n\", \"\\\\n\");\r\n s = s.replace(\"\\r\", \"\\\\r\");\r\n s = s.replace(\"\\t\", \"\\\\t\");\r\n return \"'\" + s + \"'\";\r\n }\r\n /* Compute the error recovery set for the current rule. During\r\n * rule invocation, the parser pushes the set of tokens that can\r\n * follow that rule reference on the stack; this amounts to\r\n * computing FIRST of what follows the rule reference in the\r\n * enclosing rule. See LinearApproximator.FIRST().\r\n * This local follow set only includes tokens\r\n * from within the rule; i.e., the FIRST computation done by\r\n * ANTLR stops at the end of a rule.\r\n *\r\n * EXAMPLE\r\n *\r\n * When you find a \"no viable alt exception\", the input is not\r\n * consistent with any of the alternatives for rule r. The best\r\n * thing to do is to consume tokens until you see something that\r\n * can legally follow a call to r *or* any rule that called r.\r\n * You don't want the exact set of viable next tokens because the\r\n * input might just be missing a token--you might consume the\r\n * rest of the input looking for one of the missing tokens.\r\n *\r\n * Consider grammar:\r\n *\r\n * a : '[' b ']'\r\n * | '(' b ')'\r\n * ;\r\n * b : c '^' INT ;\r\n * c : ID\r\n * | INT\r\n * ;\r\n *\r\n * At each rule invocation, the set of tokens that could follow\r\n * that rule is pushed on a stack. Here are the various\r\n * context-sensitive follow sets:\r\n *\r\n * FOLLOW(b1_in_a) = FIRST(']') = ']'\r\n * FOLLOW(b2_in_a) = FIRST(')') = ')'\r\n * FOLLOW(c_in_b) = FIRST('^') = '^'\r\n *\r\n * Upon erroneous input \"[]\", the call chain is\r\n *\r\n * a -> b -> c\r\n *\r\n * and, hence, the follow context stack is:\r\n *\r\n * depth follow set start of rule execution\r\n * 0 <EOF> a (from main())\r\n * 1 ']' b\r\n * 2 '^' c\r\n *\r\n * Notice that ')' is not included, because b would have to have\r\n * been called from a different context in rule a for ')' to be\r\n * included.\r\n *\r\n * For error recovery, we cannot consider FOLLOW(c)\r\n * (context-sensitive or otherwise). We need the combined set of\r\n * all context-sensitive FOLLOW sets--the set of all tokens that\r\n * could follow any reference in the call chain. We need to\r\n * resync to one of those tokens. Note that FOLLOW(c)='^' and if\r\n * we resync'd to that token, we'd consume until EOF. We need to\r\n * sync to context-sensitive FOLLOWs for a, b, and c: {']','^'}.\r\n * In this case, for input \"[]\", LA(1) is ']' and in the set, so we would\r\n * not consume anything. After printing an error, rule c would\r\n * return normally. Rule b would not find the required '^' though.\r\n * At this point, it gets a mismatched token error and\r\n * exception (since LA(1) is not in the viable following token\r\n * set). The rule exception handler tries to recover, but finds\r\n * the same recovery set and doesn't consume anything. Rule b\r\n * exits normally returning to rule a. Now it finds the ']' (and\r\n * with the successful match exits errorRecovery mode).\r\n *\r\n * So, you can see that the parser walks up the call chain looking\r\n * for the token that was a member of the recovery set.\r\n *\r\n * Errors are not generated in errorRecovery mode.\r\n *\r\n * ANTLR's error recovery mechanism is based upon original ideas:\r\n *\r\n * \"Algorithms + Data Structures = Programs\" by Niklaus Wirth\r\n *\r\n * and\r\n *\r\n * \"A note on error recovery in recursive descent parsers\":\r\n * http://portal.acm.org/citation.cfm?id=947902.947905\r\n *\r\n * Later, Josef Grosch had some good ideas:\r\n *\r\n * \"Efficient and Comfortable Error Recovery in Recursive Descent\r\n * Parsers\":\r\n * ftp://www.cocolab.com/products/cocktail/doca4.ps/ell.ps.zip\r\n *\r\n * Like Grosch I implement context-sensitive FOLLOW sets that are combined\r\n * at run-time upon error to avoid overhead during parsing.\r\n */\r\n getErrorRecoverySet(recognizer) {\r\n let atn = recognizer.interpreter.atn;\r\n let ctx = recognizer.context;\r\n let recoverSet = new IntervalSet_1.IntervalSet();\r\n while (ctx && ctx.invokingState >= 0) {\r\n // compute what follows who invoked us\r\n let invokingState = atn.states[ctx.invokingState];\r\n let rt = invokingState.transition(0);\r\n let follow = atn.nextTokens(rt.followState);\r\n recoverSet.addAll(follow);\r\n ctx = ctx._parent;\r\n }\r\n recoverSet.remove(Token_1.Token.EPSILON);\r\n //\t\tSystem.out.println(\"recover set \"+recoverSet.toString(recognizer.getTokenNames()));\r\n return recoverSet;\r\n }\r\n /** Consume tokens until one matches the given token set. */\r\n consumeUntil(recognizer, set) {\r\n //\t\tSystem.err.println(\"consumeUntil(\"+set.toString(recognizer.getTokenNames())+\")\");\r\n let ttype = recognizer.inputStream.LA(1);\r\n while (ttype !== Token_1.Token.EOF && !set.contains(ttype)) {\r\n //System.out.println(\"consume during recover LA(1)=\"+getTokenNames()[input.LA(1)]);\r\n //\t\t\trecognizer.inputStream.consume();\r\n recognizer.consume();\r\n ttype = recognizer.inputStream.LA(1);\r\n }\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"reset\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"beginErrorCondition\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"inErrorRecoveryMode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"endErrorCondition\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"reportMatch\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"reportError\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"notifyErrorListeners\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"recover\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"sync\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"reportNoViableAlternative\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"reportInputMismatch\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"reportFailedPredicate\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"reportUnwantedToken\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"reportMissingToken\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], DefaultErrorStrategy.prototype, \"recoverInline\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"singleTokenInsertion\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"singleTokenDeletion\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"getMissingSymbol\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"getExpectedTokens\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"getSymbolText\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"getSymbolType\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"escapeWSAndQuote\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"getErrorRecoverySet\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], DefaultErrorStrategy.prototype, \"consumeUntil\", null);\r\nexports.DefaultErrorStrategy = DefaultErrorStrategy;\r\n//# sourceMappingURL=DefaultErrorStrategy.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TerminalNode = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:48.1433686-07:00\r\nconst Interval_1 = require(\"../misc/Interval\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Token_1 = require(\"../Token\");\r\nclass TerminalNode {\r\n constructor(symbol) {\r\n this._symbol = symbol;\r\n }\r\n getChild(i) {\r\n throw new RangeError(\"Terminal Node has no children.\");\r\n }\r\n get symbol() {\r\n return this._symbol;\r\n }\r\n get parent() {\r\n return this._parent;\r\n }\r\n setParent(parent) {\r\n this._parent = parent;\r\n }\r\n get payload() {\r\n return this._symbol;\r\n }\r\n get sourceInterval() {\r\n let tokenIndex = this._symbol.tokenIndex;\r\n return new Interval_1.Interval(tokenIndex, tokenIndex);\r\n }\r\n get childCount() {\r\n return 0;\r\n }\r\n accept(visitor) {\r\n return visitor.visitTerminal(this);\r\n }\r\n get text() {\r\n return this._symbol.text || \"\";\r\n }\r\n toStringTree(parser) {\r\n return this.toString();\r\n }\r\n toString() {\r\n if (this._symbol.type === Token_1.Token.EOF) {\r\n return \"<EOF>\";\r\n }\r\n return this._symbol.text || \"\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"getChild\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"parent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"setParent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"payload\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"sourceInterval\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"childCount\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"accept\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"toStringTree\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TerminalNode.prototype, \"toString\", null);\r\nexports.TerminalNode = TerminalNode;\r\n//# sourceMappingURL=TerminalNode.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorNode = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:47.4646355-07:00\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst TerminalNode_1 = require(\"./TerminalNode\");\r\n/** Represents a token that was consumed during resynchronization\r\n * rather than during a valid match operation. For example,\r\n * we will create this kind of a node during single token insertion\r\n * and deletion as well as during \"consume until error recovery set\"\r\n * upon no viable alternative exceptions.\r\n */\r\nclass ErrorNode extends TerminalNode_1.TerminalNode {\r\n constructor(token) {\r\n super(token);\r\n }\r\n accept(visitor) {\r\n return visitor.visitErrorNode(this);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ErrorNode.prototype, \"accept\", null);\r\nexports.ErrorNode = ErrorNode;\r\n//# sourceMappingURL=ErrorNode.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParseInfo = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class provides access to specific and aggregate statistics gathered\r\n * during profiling of a parser.\r\n *\r\n * @since 4.3\r\n */\r\nlet ParseInfo = class ParseInfo {\r\n constructor(atnSimulator) {\r\n this.atnSimulator = atnSimulator;\r\n }\r\n /**\r\n * Gets an array of {@link DecisionInfo} instances containing the profiling\r\n * information gathered for each decision in the ATN.\r\n *\r\n * @returns An array of {@link DecisionInfo} instances, indexed by decision\r\n * number.\r\n */\r\n getDecisionInfo() {\r\n return this.atnSimulator.getDecisionInfo();\r\n }\r\n /**\r\n * Gets the decision numbers for decisions that required one or more\r\n * full-context predictions during parsing. These are decisions for which\r\n * {@link DecisionInfo#LL_Fallback} is non-zero.\r\n *\r\n * @returns A list of decision numbers which required one or more\r\n * full-context predictions during parsing.\r\n */\r\n getLLDecisions() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let LL = [];\r\n for (let i = 0; i < decisions.length; i++) {\r\n let fallBack = decisions[i].LL_Fallback;\r\n if (fallBack > 0) {\r\n LL.push(i);\r\n }\r\n }\r\n return LL;\r\n }\r\n /**\r\n * Gets the total time spent during prediction across all decisions made\r\n * during parsing. This value is the sum of\r\n * {@link DecisionInfo#timeInPrediction} for all decisions.\r\n */\r\n getTotalTimeInPrediction() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let t = 0;\r\n for (let decision of decisions) {\r\n t += decision.timeInPrediction;\r\n }\r\n return t;\r\n }\r\n /**\r\n * Gets the total number of SLL lookahead operations across all decisions\r\n * made during parsing. This value is the sum of\r\n * {@link DecisionInfo#SLL_TotalLook} for all decisions.\r\n */\r\n getTotalSLLLookaheadOps() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let k = 0;\r\n for (let decision of decisions) {\r\n k += decision.SLL_TotalLook;\r\n }\r\n return k;\r\n }\r\n /**\r\n * Gets the total number of LL lookahead operations across all decisions\r\n * made during parsing. This value is the sum of\r\n * {@link DecisionInfo#LL_TotalLook} for all decisions.\r\n */\r\n getTotalLLLookaheadOps() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let k = 0;\r\n for (let decision of decisions) {\r\n k += decision.LL_TotalLook;\r\n }\r\n return k;\r\n }\r\n /**\r\n * Gets the total number of ATN lookahead operations for SLL prediction\r\n * across all decisions made during parsing.\r\n */\r\n getTotalSLLATNLookaheadOps() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let k = 0;\r\n for (let decision of decisions) {\r\n k += decision.SLL_ATNTransitions;\r\n }\r\n return k;\r\n }\r\n /**\r\n * Gets the total number of ATN lookahead operations for LL prediction\r\n * across all decisions made during parsing.\r\n */\r\n getTotalLLATNLookaheadOps() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let k = 0;\r\n for (let decision of decisions) {\r\n k += decision.LL_ATNTransitions;\r\n }\r\n return k;\r\n }\r\n /**\r\n * Gets the total number of ATN lookahead operations for SLL and LL\r\n * prediction across all decisions made during parsing.\r\n *\r\n * This value is the sum of {@link #getTotalSLLATNLookaheadOps} and\r\n * {@link #getTotalLLATNLookaheadOps}.\r\n */\r\n getTotalATNLookaheadOps() {\r\n let decisions = this.atnSimulator.getDecisionInfo();\r\n let k = 0;\r\n for (let decision of decisions) {\r\n k += decision.SLL_ATNTransitions;\r\n k += decision.LL_ATNTransitions;\r\n }\r\n return k;\r\n }\r\n getDFASize(decision) {\r\n if (decision) {\r\n let decisionToDFA = this.atnSimulator.atn.decisionToDFA[decision];\r\n return decisionToDFA.states.size;\r\n }\r\n else {\r\n let n = 0;\r\n let decisionToDFA = this.atnSimulator.atn.decisionToDFA;\r\n for (let i = 0; i < decisionToDFA.length; i++) {\r\n n += this.getDFASize(i);\r\n }\r\n return n;\r\n }\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseInfo.prototype, \"getDecisionInfo\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseInfo.prototype, \"getLLDecisions\", null);\r\nParseInfo = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParseInfo);\r\nexports.ParseInfo = ParseInfo;\r\n//# sourceMappingURL=ParseInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProxyParserErrorListener = void 0;\r\nconst ProxyErrorListener_1 = require(\"./ProxyErrorListener\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/**\r\n * @author Sam Harwell\r\n */\r\nclass ProxyParserErrorListener extends ProxyErrorListener_1.ProxyErrorListener {\r\n constructor(delegates) {\r\n super(delegates);\r\n }\r\n reportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) {\r\n this.getDelegates()\r\n .forEach((listener) => {\r\n if (listener.reportAmbiguity) {\r\n listener.reportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs);\r\n }\r\n });\r\n }\r\n reportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, conflictState) {\r\n this.getDelegates()\r\n .forEach((listener) => {\r\n if (listener.reportAttemptingFullContext) {\r\n listener.reportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, conflictState);\r\n }\r\n });\r\n }\r\n reportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, acceptState) {\r\n this.getDelegates()\r\n .forEach((listener) => {\r\n if (listener.reportContextSensitivity) {\r\n listener.reportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, acceptState);\r\n }\r\n });\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ProxyParserErrorListener.prototype, \"reportAmbiguity\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProxyParserErrorListener.prototype, \"reportAttemptingFullContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProxyParserErrorListener.prototype, \"reportContextSensitivity\", null);\r\nexports.ProxyParserErrorListener = ProxyParserErrorListener;\r\n//# sourceMappingURL=ProxyParserErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParseCancellationException = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:42.5447085-07:00\r\n/**\r\n * This exception is thrown to cancel a parsing operation. This exception does\r\n * not extend {@link RecognitionException}, allowing it to bypass the standard\r\n * error recovery mechanisms. {@link BailErrorStrategy} throws this exception in\r\n * response to a parse error.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ParseCancellationException extends Error {\r\n constructor(cause) {\r\n super(cause.message);\r\n this.cause = cause;\r\n this.stack = cause.stack;\r\n }\r\n getCause() {\r\n return this.cause;\r\n }\r\n}\r\nexports.ParseCancellationException = ParseCancellationException;\r\n//# sourceMappingURL=ParseCancellationException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BailErrorStrategy = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:49.2855056-07:00\r\nconst DefaultErrorStrategy_1 = require(\"./DefaultErrorStrategy\");\r\nconst InputMismatchException_1 = require(\"./InputMismatchException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst ParseCancellationException_1 = require(\"./misc/ParseCancellationException\");\r\n/**\r\n * This implementation of {@link ANTLRErrorStrategy} responds to syntax errors\r\n * by immediately canceling the parse operation with a\r\n * {@link ParseCancellationException}. The implementation ensures that the\r\n * {@link ParserRuleContext#exception} field is set for all parse tree nodes\r\n * that were not completed prior to encountering the error.\r\n *\r\n * This error strategy is useful in the following scenarios.\r\n *\r\n * * **Two-stage parsing:** This error strategy allows the first\r\n * stage of two-stage parsing to immediately terminate if an error is\r\n * encountered, and immediately fall back to the second stage. In addition to\r\n * avoiding wasted work by attempting to recover from errors here, the empty\r\n * implementation of {@link BailErrorStrategy#sync} improves the performance of\r\n * the first stage.\r\n * * **Silent validation:** When syntax errors are not being\r\n * reported or logged, and the parse result is simply ignored if errors occur,\r\n * the {@link BailErrorStrategy} avoids wasting work on recovering from errors\r\n * when the result will be ignored either way.\r\n *\r\n * ```\r\n * myparser.errorHandler = new BailErrorStrategy();\r\n * ```\r\n *\r\n * @see Parser.errorHandler\r\n */\r\nclass BailErrorStrategy extends DefaultErrorStrategy_1.DefaultErrorStrategy {\r\n /** Instead of recovering from exception `e`, re-throw it wrapped\r\n * in a {@link ParseCancellationException} so it is not caught by the\r\n * rule function catches. Use {@link Exception#getCause()} to get the\r\n * original {@link RecognitionException}.\r\n */\r\n recover(recognizer, e) {\r\n for (let context = recognizer.context; context; context = context.parent) {\r\n context.exception = e;\r\n }\r\n throw new ParseCancellationException_1.ParseCancellationException(e);\r\n }\r\n /** Make sure we don't attempt to recover inline; if the parser\r\n * successfully recovers, it won't throw an exception.\r\n */\r\n recoverInline(recognizer) {\r\n let e = new InputMismatchException_1.InputMismatchException(recognizer);\r\n for (let context = recognizer.context; context; context = context.parent) {\r\n context.exception = e;\r\n }\r\n throw new ParseCancellationException_1.ParseCancellationException(e);\r\n }\r\n /** Make sure we don't attempt to recover from problems in subrules. */\r\n sync(recognizer) {\r\n // intentionally empty\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], BailErrorStrategy.prototype, \"recover\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BailErrorStrategy.prototype, \"recoverInline\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BailErrorStrategy.prototype, \"sync\", null);\r\nexports.BailErrorStrategy = BailErrorStrategy;\r\n//# sourceMappingURL=BailErrorStrategy.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.isSupplementaryCodePoint = exports.isLowSurrogate = exports.isHighSurrogate = void 0;\r\nfunction isHighSurrogate(ch) {\r\n return ch >= 0xD800 && ch <= 0xDBFF;\r\n}\r\nexports.isHighSurrogate = isHighSurrogate;\r\nfunction isLowSurrogate(ch) {\r\n return ch >= 0xDC00 && ch <= 0xDFFF;\r\n}\r\nexports.isLowSurrogate = isLowSurrogate;\r\nfunction isSupplementaryCodePoint(ch) {\r\n return ch >= 0x10000;\r\n}\r\nexports.isSupplementaryCodePoint = isSupplementaryCodePoint;\r\n//# sourceMappingURL=Character.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CodePointBuffer = void 0;\r\nconst assert = require(\"assert\");\r\nconst Character = require(\"./misc/Character\");\r\n/**\r\n * Wrapper for `Uint8Array` / `Uint16Array` / `Int32Array`.\r\n */\r\nclass CodePointBuffer {\r\n constructor(buffer, size) {\r\n this.buffer = buffer;\r\n this._position = 0;\r\n this._size = size;\r\n }\r\n static withArray(buffer) {\r\n return new CodePointBuffer(buffer, buffer.length);\r\n }\r\n get position() {\r\n return this._position;\r\n }\r\n set position(newPosition) {\r\n if (newPosition < 0 || newPosition > this._size) {\r\n throw new RangeError();\r\n }\r\n this._position = newPosition;\r\n }\r\n get remaining() {\r\n return this._size - this.position;\r\n }\r\n get(offset) {\r\n return this.buffer[offset];\r\n }\r\n array() {\r\n return this.buffer.slice(0, this._size);\r\n }\r\n static builder(initialBufferSize) {\r\n return new CodePointBuffer.Builder(initialBufferSize);\r\n }\r\n}\r\nexports.CodePointBuffer = CodePointBuffer;\r\n(function (CodePointBuffer) {\r\n let Type;\r\n (function (Type) {\r\n Type[Type[\"BYTE\"] = 0] = \"BYTE\";\r\n Type[Type[\"CHAR\"] = 1] = \"CHAR\";\r\n Type[Type[\"INT\"] = 2] = \"INT\";\r\n })(Type || (Type = {}));\r\n class Builder {\r\n constructor(initialBufferSize) {\r\n this.type = 0 /* BYTE */;\r\n this.buffer = new Uint8Array(initialBufferSize);\r\n this.prevHighSurrogate = -1;\r\n this.position = 0;\r\n }\r\n build() {\r\n return new CodePointBuffer(this.buffer, this.position);\r\n }\r\n static roundUpToNextPowerOfTwo(i) {\r\n let nextPowerOfTwo = 32 - Math.clz32(i - 1);\r\n return Math.pow(2, nextPowerOfTwo);\r\n }\r\n ensureRemaining(remainingNeeded) {\r\n switch (this.type) {\r\n case 0 /* BYTE */:\r\n if (this.buffer.length - this.position < remainingNeeded) {\r\n let newCapacity = Builder.roundUpToNextPowerOfTwo(this.buffer.length + remainingNeeded);\r\n let newBuffer = new Uint8Array(newCapacity);\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.buffer = newBuffer;\r\n }\r\n break;\r\n case 1 /* CHAR */:\r\n if (this.buffer.length - this.position < remainingNeeded) {\r\n let newCapacity = Builder.roundUpToNextPowerOfTwo(this.buffer.length + remainingNeeded);\r\n let newBuffer = new Uint16Array(newCapacity);\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.buffer = newBuffer;\r\n }\r\n break;\r\n case 2 /* INT */:\r\n if (this.buffer.length - this.position < remainingNeeded) {\r\n let newCapacity = Builder.roundUpToNextPowerOfTwo(this.buffer.length + remainingNeeded);\r\n let newBuffer = new Int32Array(newCapacity);\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.buffer = newBuffer;\r\n }\r\n break;\r\n }\r\n }\r\n append(utf16In) {\r\n this.ensureRemaining(utf16In.length);\r\n this.appendArray(utf16In);\r\n }\r\n appendArray(utf16In) {\r\n switch (this.type) {\r\n case 0 /* BYTE */:\r\n this.appendArrayByte(utf16In);\r\n break;\r\n case 1 /* CHAR */:\r\n this.appendArrayChar(utf16In);\r\n break;\r\n case 2 /* INT */:\r\n this.appendArrayInt(utf16In);\r\n break;\r\n }\r\n }\r\n appendArrayByte(utf16In) {\r\n assert(this.prevHighSurrogate === -1);\r\n let input = utf16In;\r\n let inOffset = 0;\r\n let inLimit = utf16In.length;\r\n let outByte = this.buffer;\r\n let outOffset = this.position;\r\n while (inOffset < inLimit) {\r\n let c = input[inOffset];\r\n if (c <= 0xFF) {\r\n outByte[outOffset] = c;\r\n }\r\n else {\r\n utf16In = utf16In.subarray(inOffset, inLimit);\r\n this.position = outOffset;\r\n if (!Character.isHighSurrogate(c)) {\r\n this.byteToCharBuffer(utf16In.length);\r\n this.appendArrayChar(utf16In);\r\n return;\r\n }\r\n else {\r\n this.byteToIntBuffer(utf16In.length);\r\n this.appendArrayInt(utf16In);\r\n return;\r\n }\r\n }\r\n inOffset++;\r\n outOffset++;\r\n }\r\n this.position = outOffset;\r\n }\r\n appendArrayChar(utf16In) {\r\n assert(this.prevHighSurrogate === -1);\r\n let input = utf16In;\r\n let inOffset = 0;\r\n let inLimit = utf16In.length;\r\n let outChar = this.buffer;\r\n let outOffset = this.position;\r\n while (inOffset < inLimit) {\r\n let c = input[inOffset];\r\n if (!Character.isHighSurrogate(c)) {\r\n outChar[outOffset] = c;\r\n }\r\n else {\r\n utf16In = utf16In.subarray(inOffset, inLimit);\r\n this.position = outOffset;\r\n this.charToIntBuffer(utf16In.length);\r\n this.appendArrayInt(utf16In);\r\n return;\r\n }\r\n inOffset++;\r\n outOffset++;\r\n }\r\n this.position = outOffset;\r\n }\r\n appendArrayInt(utf16In) {\r\n let input = utf16In;\r\n let inOffset = 0;\r\n let inLimit = utf16In.length;\r\n let outInt = this.buffer;\r\n let outOffset = this.position;\r\n while (inOffset < inLimit) {\r\n let c = input[inOffset];\r\n inOffset++;\r\n if (this.prevHighSurrogate !== -1) {\r\n if (Character.isLowSurrogate(c)) {\r\n outInt[outOffset] = String.fromCharCode(this.prevHighSurrogate, c).codePointAt(0);\r\n outOffset++;\r\n this.prevHighSurrogate = -1;\r\n }\r\n else {\r\n // Dangling high surrogate\r\n outInt[outOffset] = this.prevHighSurrogate;\r\n outOffset++;\r\n if (Character.isHighSurrogate(c)) {\r\n this.prevHighSurrogate = c;\r\n }\r\n else {\r\n outInt[outOffset] = c;\r\n outOffset++;\r\n this.prevHighSurrogate = -1;\r\n }\r\n }\r\n }\r\n else if (Character.isHighSurrogate(c)) {\r\n this.prevHighSurrogate = c;\r\n }\r\n else {\r\n outInt[outOffset] = c;\r\n outOffset++;\r\n }\r\n }\r\n if (this.prevHighSurrogate !== -1) {\r\n // Dangling high surrogate\r\n outInt[outOffset] = this.prevHighSurrogate;\r\n outOffset++;\r\n }\r\n this.position = outOffset;\r\n }\r\n byteToCharBuffer(toAppend) {\r\n // CharBuffers hold twice as much per unit as ByteBuffers, so start with half the capacity.\r\n let newBuffer = new Uint16Array(Math.max(this.position + toAppend, this.buffer.length >> 1));\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.type = 1 /* CHAR */;\r\n this.buffer = newBuffer;\r\n }\r\n byteToIntBuffer(toAppend) {\r\n // IntBuffers hold four times as much per unit as ByteBuffers, so start with one quarter the capacity.\r\n let newBuffer = new Int32Array(Math.max(this.position + toAppend, this.buffer.length >> 2));\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.type = 2 /* INT */;\r\n this.buffer = newBuffer;\r\n }\r\n charToIntBuffer(toAppend) {\r\n // IntBuffers hold two times as much per unit as ByteBuffers, so start with one half the capacity.\r\n let newBuffer = new Int32Array(Math.max(this.position + toAppend, this.buffer.length >> 1));\r\n newBuffer.set(this.buffer.subarray(0, this.position), 0);\r\n this.type = 2 /* INT */;\r\n this.buffer = newBuffer;\r\n }\r\n }\r\n CodePointBuffer.Builder = Builder;\r\n})(CodePointBuffer = exports.CodePointBuffer || (exports.CodePointBuffer = {}));\r\n//# sourceMappingURL=CodePointBuffer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CodePointCharStream = void 0;\r\nconst assert = require(\"assert\");\r\nconst IntStream_1 = require(\"./IntStream\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/**\r\n * Alternative to {@link ANTLRInputStream} which treats the input\r\n * as a series of Unicode code points, instead of a series of UTF-16\r\n * code units.\r\n *\r\n * Use this if you need to parse input which potentially contains\r\n * Unicode values > U+FFFF.\r\n */\r\nclass CodePointCharStream {\r\n // Use the factory method {@link #fromBuffer(CodePointBuffer)} to\r\n // construct instances of this type.\r\n constructor(array, position, remaining, name) {\r\n // TODO\r\n assert(position === 0);\r\n this._array = array;\r\n this._size = remaining;\r\n this._name = name;\r\n this._position = 0;\r\n }\r\n get internalStorage() {\r\n return this._array;\r\n }\r\n static fromBuffer(codePointBuffer, name) {\r\n if (name === undefined || name.length === 0) {\r\n name = IntStream_1.IntStream.UNKNOWN_SOURCE_NAME;\r\n }\r\n // Java lacks generics on primitive types.\r\n //\r\n // To avoid lots of calls to virtual methods in the\r\n // very hot codepath of LA() below, we construct one\r\n // of three concrete subclasses.\r\n //\r\n // The concrete subclasses directly access the code\r\n // points stored in the underlying array (byte[],\r\n // char[], or int[]), so we can avoid lots of virtual\r\n // method calls to ByteBuffer.get(offset).\r\n return new CodePointCharStream(codePointBuffer.array(), codePointBuffer.position, codePointBuffer.remaining, name);\r\n }\r\n consume() {\r\n if (this._size - this._position === 0) {\r\n assert(this.LA(1) === IntStream_1.IntStream.EOF);\r\n throw new RangeError(\"cannot consume EOF\");\r\n }\r\n this._position++;\r\n }\r\n get index() {\r\n return this._position;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n /** mark/release do nothing; we have entire buffer */\r\n mark() {\r\n return -1;\r\n }\r\n release(marker) {\r\n // No default implementation since this stream buffers the entire input\r\n }\r\n seek(index) {\r\n this._position = index;\r\n }\r\n get sourceName() {\r\n return this._name;\r\n }\r\n toString() {\r\n return this.getText(Interval_1.Interval.of(0, this.size - 1));\r\n }\r\n LA(i) {\r\n let offset;\r\n switch (Math.sign(i)) {\r\n case -1:\r\n offset = this.index + i;\r\n if (offset < 0) {\r\n return IntStream_1.IntStream.EOF;\r\n }\r\n return this._array[offset];\r\n case 0:\r\n // Undefined\r\n return 0;\r\n case 1:\r\n offset = this.index + i - 1;\r\n if (offset >= this.size) {\r\n return IntStream_1.IntStream.EOF;\r\n }\r\n return this._array[offset];\r\n }\r\n throw new RangeError(\"Not reached\");\r\n }\r\n /** Return the UTF-16 encoded string for the given interval */\r\n getText(interval) {\r\n const startIdx = Math.min(interval.a, this.size);\r\n const len = Math.min(interval.b - interval.a + 1, this.size - startIdx);\r\n if (this._array instanceof Int32Array) {\r\n return String.fromCodePoint(...Array.from(this._array.subarray(startIdx, startIdx + len)));\r\n }\r\n else {\r\n return String.fromCharCode(...Array.from(this._array.subarray(startIdx, startIdx + len)));\r\n }\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"consume\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"index\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"mark\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"release\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"seek\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"sourceName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"toString\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"LA\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CodePointCharStream.prototype, \"getText\", null);\r\nexports.CodePointCharStream = CodePointCharStream;\r\n//# sourceMappingURL=CodePointCharStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CharStreams = void 0;\r\nconst CodePointBuffer_1 = require(\"./CodePointBuffer\");\r\nconst CodePointCharStream_1 = require(\"./CodePointCharStream\");\r\nconst IntStream_1 = require(\"./IntStream\");\r\n// const DEFAULT_BUFFER_SIZE: number = 4096;\r\n/** This class represents the primary interface for creating {@link CharStream}s\r\n * from a variety of sources as of 4.7. The motivation was to support\r\n * Unicode code points > U+FFFF. {@link ANTLRInputStream} and\r\n * {@link ANTLRFileStream} are now deprecated in favor of the streams created\r\n * by this interface.\r\n *\r\n * DEPRECATED: {@code new ANTLRFileStream(\"myinputfile\")}\r\n * NEW: {@code CharStreams.fromFileName(\"myinputfile\")}\r\n *\r\n * WARNING: If you use both the deprecated and the new streams, you will see\r\n * a nontrivial performance degradation. This speed hit is because the\r\n * {@link Lexer}'s internal code goes from a monomorphic to megamorphic\r\n * dynamic dispatch to get characters from the input stream. Java's\r\n * on-the-fly compiler (JIT) is unable to perform the same optimizations\r\n * so stick with either the old or the new streams, if performance is\r\n * a primary concern. See the extreme debugging and spelunking\r\n * needed to identify this issue in our timing rig:\r\n *\r\n * https://github.com/antlr/antlr4/pull/1781\r\n *\r\n * The ANTLR character streams still buffer all the input when you create\r\n * the stream, as they have done for ~20 years. If you need unbuffered\r\n * access, please note that it becomes challenging to create\r\n * parse trees. The parse tree has to point to tokens which will either\r\n * point into a stale location in an unbuffered stream or you have to copy\r\n * the characters out of the buffer into the token. That defeats the purpose\r\n * of unbuffered input. Per the ANTLR book, unbuffered streams are primarily\r\n * useful for processing infinite streams *during the parse.*\r\n *\r\n * The new streams also use 8-bit buffers when possible so this new\r\n * interface supports character streams that use half as much memory\r\n * as the old {@link ANTLRFileStream}, which assumed 16-bit characters.\r\n *\r\n * A big shout out to Ben Hamilton (github bhamiltoncx) for his superhuman\r\n * efforts across all targets to get true Unicode 3.1 support for U+10FFFF.\r\n *\r\n * @since 4.7\r\n */\r\nvar CharStreams;\r\n(function (CharStreams) {\r\n // /**\r\n // * Creates a {@link CharStream} given a path to a UTF-8\r\n // * encoded file on disk.\r\n // *\r\n // * Reads the entire contents of the file into the result before returning.\r\n // */\r\n // export function fromFile(file: File): CharStream;\r\n // export function fromFile(file: File, charset: Charset): CharStream;\r\n // export function fromFile(file: File, charset?: Charset): CharStream {\r\n // \tif (charset === undefined) {\r\n // \t\tcharset = Charset.forName(\"UTF-8\");\r\n // \t}\r\n function fromString(s, sourceName) {\r\n if (sourceName === undefined || sourceName.length === 0) {\r\n sourceName = IntStream_1.IntStream.UNKNOWN_SOURCE_NAME;\r\n }\r\n // Initial guess assumes no code points > U+FFFF: one code\r\n // point for each code unit in the string\r\n let codePointBufferBuilder = CodePointBuffer_1.CodePointBuffer.builder(s.length);\r\n // TODO: CharBuffer.wrap(String) rightfully returns a read-only buffer\r\n // which doesn't expose its array, so we make a copy.\r\n let cb = new Uint16Array(s.length);\r\n for (let i = 0; i < s.length; i++) {\r\n cb[i] = s.charCodeAt(i);\r\n }\r\n codePointBufferBuilder.append(cb);\r\n return CodePointCharStream_1.CodePointCharStream.fromBuffer(codePointBufferBuilder.build(), sourceName);\r\n }\r\n CharStreams.fromString = fromString;\r\n // export function bufferFromChannel(\r\n // \tchannel: ReadableByteChannel,\r\n // \tcharset: Charset,\r\n // \tbufferSize: number,\r\n // \tdecodingErrorAction: CodingErrorAction,\r\n // \tinputSize: number): CodePointBuffer {\r\n // \ttry {\r\n // \t\tlet utf8BytesIn: Uint8Array = new Uint8Array(bufferSize);\r\n // \t\tlet utf16CodeUnitsOut: Uint16Array = new Uint16Array(bufferSize);\r\n // \t\tif (inputSize === -1) {\r\n // \t\t\tinputSize = bufferSize;\r\n // \t\t} else if (inputSize > Integer.MAX_VALUE) {\r\n // \t\t\t// ByteBuffer et al don't support long sizes\r\n // \t\t\tthrow new RangeError(`inputSize ${inputSize} larger than max ${Integer.MAX_VALUE}`);\r\n // \t\t}\r\n // \t\tlet codePointBufferBuilder: CodePointBuffer.Builder = CodePointBuffer.builder(inputSize);\r\n // \t\tlet decoder: CharsetDecoder = charset\r\n // \t\t\t\t.newDecoder()\r\n // \t\t\t\t.onMalformedInput(decodingErrorAction)\r\n // \t\t\t\t.onUnmappableCharacter(decodingErrorAction);\r\n // \t\tlet endOfInput: boolean = false;\r\n // \t\twhile (!endOfInput) {\r\n // \t\t\tlet bytesRead: number = channel.read(utf8BytesIn);\r\n // \t\t\tendOfInput = (bytesRead === -1);\r\n // \t\t\tutf8BytesIn.flip();\r\n // \t\t\tlet result: CoderResult = decoder.decode(\r\n // \t\t\t\tutf8BytesIn,\r\n // \t\t\t\tutf16CodeUnitsOut,\r\n // \t\t\t\tendOfInput);\r\n // \t\t\tif (result.isError() && decodingErrorAction === CodingErrorAction.REPORT) {\r\n // \t\t\t\tresult.throwException();\r\n // \t\t\t}\r\n // \t\t\tutf16CodeUnitsOut.flip();\r\n // \t\t\tcodePointBufferBuilder.append(utf16CodeUnitsOut);\r\n // \t\t\tutf8BytesIn.compact();\r\n // \t\t\tutf16CodeUnitsOut.compact();\r\n // \t\t}\r\n // \t\t// Handle any bytes at the end of the file which need to\r\n // \t\t// be represented as errors or substitution characters.\r\n // \t\tlet flushResult: CoderResult = decoder.flush(utf16CodeUnitsOut);\r\n // \t\tif (flushResult.isError() && decodingErrorAction === CodingErrorAction.REPORT) {\r\n // \t\t\tflushResult.throwException();\r\n // \t\t}\r\n // \t\tutf16CodeUnitsOut.flip();\r\n // \t\tcodePointBufferBuilder.append(utf16CodeUnitsOut);\r\n // \t\treturn codePointBufferBuilder.build();\r\n // \t}\r\n // \tfinally {\r\n // \t\tchannel.close();\r\n // \t}\r\n // }\r\n})(CharStreams = exports.CharStreams || (exports.CharStreams = {}));\r\n//# sourceMappingURL=CharStreams.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BufferedTokenStream = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:49.6074365-07:00\r\nconst assert = require(\"assert\");\r\nconst CommonToken_1 = require(\"./CommonToken\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Lexer_1 = require(\"./Lexer\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\n/**\r\n * This implementation of {@link TokenStream} loads tokens from a\r\n * {@link TokenSource} on-demand, and places the tokens in a buffer to provide\r\n * access to any previous token by index.\r\n *\r\n * This token stream ignores the value of {@link Token#getChannel}. If your\r\n * parser requires the token stream filter tokens to only those on a particular\r\n * channel, such as {@link Token#DEFAULT_CHANNEL} or\r\n * {@link Token#HIDDEN_CHANNEL}, use a filtering token stream such a\r\n * {@link CommonTokenStream}.\r\n */\r\nlet BufferedTokenStream = class BufferedTokenStream {\r\n constructor(tokenSource) {\r\n /**\r\n * A collection of all tokens fetched from the token source. The list is\r\n * considered a complete view of the input once {@link #fetchedEOF} is set\r\n * to `true`.\r\n */\r\n this.tokens = [];\r\n /**\r\n * The index into {@link #tokens} of the current token (next token to\r\n * {@link #consume}). {@link #tokens}`[`{@link #p}`]` should be\r\n * {@link #LT LT(1)}.\r\n *\r\n * This field is set to -1 when the stream is first constructed or when\r\n * {@link #setTokenSource} is called, indicating that the first token has\r\n * not yet been fetched from the token source. For additional information,\r\n * see the documentation of {@link IntStream} for a description of\r\n * Initializing Methods.\r\n */\r\n this.p = -1;\r\n /**\r\n * Indicates whether the {@link Token#EOF} token has been fetched from\r\n * {@link #tokenSource} and added to {@link #tokens}. This field improves\r\n * performance for the following cases:\r\n *\r\n * * {@link #consume}: The lookahead check in {@link #consume} to prevent\r\n * consuming the EOF symbol is optimized by checking the values of\r\n * {@link #fetchedEOF} and {@link #p} instead of calling {@link #LA}.\r\n * * {@link #fetch}: The check to prevent adding multiple EOF symbols into\r\n * {@link #tokens} is trivial with this field.\r\n */\r\n this.fetchedEOF = false;\r\n if (tokenSource == null) {\r\n throw new Error(\"tokenSource cannot be null\");\r\n }\r\n this._tokenSource = tokenSource;\r\n }\r\n get tokenSource() {\r\n return this._tokenSource;\r\n }\r\n /** Reset this token stream by setting its token source. */\r\n set tokenSource(tokenSource) {\r\n this._tokenSource = tokenSource;\r\n this.tokens.length = 0;\r\n this.p = -1;\r\n this.fetchedEOF = false;\r\n }\r\n get index() {\r\n return this.p;\r\n }\r\n mark() {\r\n return 0;\r\n }\r\n release(marker) {\r\n // no resources to release\r\n }\r\n seek(index) {\r\n this.lazyInit();\r\n this.p = this.adjustSeekIndex(index);\r\n }\r\n get size() {\r\n return this.tokens.length;\r\n }\r\n consume() {\r\n let skipEofCheck;\r\n if (this.p >= 0) {\r\n if (this.fetchedEOF) {\r\n // the last token in tokens is EOF. skip check if p indexes any\r\n // fetched token except the last.\r\n skipEofCheck = this.p < this.tokens.length - 1;\r\n }\r\n else {\r\n // no EOF token in tokens. skip check if p indexes a fetched token.\r\n skipEofCheck = this.p < this.tokens.length;\r\n }\r\n }\r\n else {\r\n // not yet initialized\r\n skipEofCheck = false;\r\n }\r\n if (!skipEofCheck && this.LA(1) === Token_1.Token.EOF) {\r\n throw new Error(\"cannot consume EOF\");\r\n }\r\n if (this.sync(this.p + 1)) {\r\n this.p = this.adjustSeekIndex(this.p + 1);\r\n }\r\n }\r\n /** Make sure index `i` in tokens has a token.\r\n *\r\n * @returns `true` if a token is located at index `i`, otherwise\r\n * `false`.\r\n * @see #get(int i)\r\n */\r\n sync(i) {\r\n assert(i >= 0);\r\n let n = i - this.tokens.length + 1; // how many more elements we need?\r\n //System.out.println(\"sync(\"+i+\") needs \"+n);\r\n if (n > 0) {\r\n let fetched = this.fetch(n);\r\n return fetched >= n;\r\n }\r\n return true;\r\n }\r\n /** Add `n` elements to buffer.\r\n *\r\n * @returns The actual number of elements added to the buffer.\r\n */\r\n fetch(n) {\r\n if (this.fetchedEOF) {\r\n return 0;\r\n }\r\n for (let i = 0; i < n; i++) {\r\n let t = this.tokenSource.nextToken();\r\n if (this.isWritableToken(t)) {\r\n t.tokenIndex = this.tokens.length;\r\n }\r\n this.tokens.push(t);\r\n if (t.type === Token_1.Token.EOF) {\r\n this.fetchedEOF = true;\r\n return i + 1;\r\n }\r\n }\r\n return n;\r\n }\r\n get(i) {\r\n if (i < 0 || i >= this.tokens.length) {\r\n throw new RangeError(\"token index \" + i + \" out of range 0..\" + (this.tokens.length - 1));\r\n }\r\n return this.tokens[i];\r\n }\r\n /** Get all tokens from start..stop inclusively. */\r\n getRange(start, stop) {\r\n if (start < 0 || stop < 0) {\r\n return [];\r\n }\r\n this.lazyInit();\r\n let subset = new Array();\r\n if (stop >= this.tokens.length) {\r\n stop = this.tokens.length - 1;\r\n }\r\n for (let i = start; i <= stop; i++) {\r\n let t = this.tokens[i];\r\n if (t.type === Token_1.Token.EOF) {\r\n break;\r\n }\r\n subset.push(t);\r\n }\r\n return subset;\r\n }\r\n LA(i) {\r\n let token = this.LT(i);\r\n if (!token) {\r\n return Token_1.Token.INVALID_TYPE;\r\n }\r\n return token.type;\r\n }\r\n tryLB(k) {\r\n if ((this.p - k) < 0) {\r\n return undefined;\r\n }\r\n return this.tokens[this.p - k];\r\n }\r\n LT(k) {\r\n let result = this.tryLT(k);\r\n if (result === undefined) {\r\n throw new RangeError(\"requested lookback index out of range\");\r\n }\r\n return result;\r\n }\r\n tryLT(k) {\r\n this.lazyInit();\r\n if (k === 0) {\r\n throw new RangeError(\"0 is not a valid lookahead index\");\r\n }\r\n if (k < 0) {\r\n return this.tryLB(-k);\r\n }\r\n let i = this.p + k - 1;\r\n this.sync(i);\r\n if (i >= this.tokens.length) {\r\n // return EOF token\r\n // EOF must be last token\r\n return this.tokens[this.tokens.length - 1];\r\n }\r\n //\t\tif ( i>range ) range = i;\r\n return this.tokens[i];\r\n }\r\n /**\r\n * Allowed derived classes to modify the behavior of operations which change\r\n * the current stream position by adjusting the target token index of a seek\r\n * operation. The default implementation simply returns `i`. If an\r\n * exception is thrown in this method, the current stream index should not be\r\n * changed.\r\n *\r\n * For example, {@link CommonTokenStream} overrides this method to ensure that\r\n * the seek target is always an on-channel token.\r\n *\r\n * @param i The target token index.\r\n * @returns The adjusted target token index.\r\n */\r\n adjustSeekIndex(i) {\r\n return i;\r\n }\r\n lazyInit() {\r\n if (this.p === -1) {\r\n this.setup();\r\n }\r\n }\r\n setup() {\r\n this.sync(0);\r\n this.p = this.adjustSeekIndex(0);\r\n }\r\n /** Given a start and stop index, return a `List` of all tokens in\r\n * the token type `BitSet`. Return an empty array if no tokens were found. This\r\n * method looks at both on and off channel tokens.\r\n */\r\n getTokens(start, stop, types) {\r\n this.lazyInit();\r\n if (start === undefined) {\r\n assert(stop === undefined && types === undefined);\r\n return this.tokens;\r\n }\r\n else if (stop === undefined) {\r\n stop = this.tokens.length - 1;\r\n }\r\n if (start < 0 || stop >= this.tokens.length || stop < 0 || start >= this.tokens.length) {\r\n throw new RangeError(\"start \" + start + \" or stop \" + stop + \" not in 0..\" + (this.tokens.length - 1));\r\n }\r\n if (start > stop) {\r\n return [];\r\n }\r\n if (types === undefined) {\r\n return this.tokens.slice(start, stop + 1);\r\n }\r\n else if (typeof types === \"number\") {\r\n types = new Set().add(types);\r\n }\r\n let typesSet = types;\r\n // list = tokens[start:stop]:{T t, t.type in types}\r\n let filteredTokens = this.tokens.slice(start, stop + 1);\r\n filteredTokens = filteredTokens.filter((value) => typesSet.has(value.type));\r\n return filteredTokens;\r\n }\r\n /**\r\n * Given a starting index, return the index of the next token on channel.\r\n * Return `i` if `tokens[i]` is on channel. Return the index of\r\n * the EOF token if there are no tokens on channel between `i` and\r\n * EOF.\r\n */\r\n nextTokenOnChannel(i, channel) {\r\n this.sync(i);\r\n if (i >= this.size) {\r\n return this.size - 1;\r\n }\r\n let token = this.tokens[i];\r\n while (token.channel !== channel) {\r\n if (token.type === Token_1.Token.EOF) {\r\n return i;\r\n }\r\n i++;\r\n this.sync(i);\r\n token = this.tokens[i];\r\n }\r\n return i;\r\n }\r\n /**\r\n * Given a starting index, return the index of the previous token on\r\n * channel. Return `i` if `tokens[i]` is on channel. Return -1\r\n * if there are no tokens on channel between `i` and 0.\r\n *\r\n * If `i` specifies an index at or after the EOF token, the EOF token\r\n * index is returned. This is due to the fact that the EOF token is treated\r\n * as though it were on every channel.\r\n */\r\n previousTokenOnChannel(i, channel) {\r\n this.sync(i);\r\n if (i >= this.size) {\r\n // the EOF token is on every channel\r\n return this.size - 1;\r\n }\r\n while (i >= 0) {\r\n let token = this.tokens[i];\r\n if (token.type === Token_1.Token.EOF || token.channel === channel) {\r\n return i;\r\n }\r\n i--;\r\n }\r\n return i;\r\n }\r\n /** Collect all tokens on specified channel to the right of\r\n * the current token up until we see a token on {@link Lexer#DEFAULT_TOKEN_CHANNEL} or\r\n * EOF. If `channel` is `-1`, find any non default channel token.\r\n */\r\n getHiddenTokensToRight(tokenIndex, channel = -1) {\r\n this.lazyInit();\r\n if (tokenIndex < 0 || tokenIndex >= this.tokens.length) {\r\n throw new RangeError(tokenIndex + \" not in 0..\" + (this.tokens.length - 1));\r\n }\r\n let nextOnChannel = this.nextTokenOnChannel(tokenIndex + 1, Lexer_1.Lexer.DEFAULT_TOKEN_CHANNEL);\r\n let to;\r\n let from = tokenIndex + 1;\r\n // if none onchannel to right, nextOnChannel=-1 so set to = last token\r\n if (nextOnChannel === -1) {\r\n to = this.size - 1;\r\n }\r\n else {\r\n to = nextOnChannel;\r\n }\r\n return this.filterForChannel(from, to, channel);\r\n }\r\n /** Collect all tokens on specified channel to the left of\r\n * the current token up until we see a token on {@link Lexer#DEFAULT_TOKEN_CHANNEL}.\r\n * If `channel` is `-1`, find any non default channel token.\r\n */\r\n getHiddenTokensToLeft(tokenIndex, channel = -1) {\r\n this.lazyInit();\r\n if (tokenIndex < 0 || tokenIndex >= this.tokens.length) {\r\n throw new RangeError(tokenIndex + \" not in 0..\" + (this.tokens.length - 1));\r\n }\r\n if (tokenIndex === 0) {\r\n // obviously no tokens can appear before the first token\r\n return [];\r\n }\r\n let prevOnChannel = this.previousTokenOnChannel(tokenIndex - 1, Lexer_1.Lexer.DEFAULT_TOKEN_CHANNEL);\r\n if (prevOnChannel === tokenIndex - 1) {\r\n return [];\r\n }\r\n // if none onchannel to left, prevOnChannel=-1 then from=0\r\n let from = prevOnChannel + 1;\r\n let to = tokenIndex - 1;\r\n return this.filterForChannel(from, to, channel);\r\n }\r\n filterForChannel(from, to, channel) {\r\n let hidden = new Array();\r\n for (let i = from; i <= to; i++) {\r\n let t = this.tokens[i];\r\n if (channel === -1) {\r\n if (t.channel !== Lexer_1.Lexer.DEFAULT_TOKEN_CHANNEL) {\r\n hidden.push(t);\r\n }\r\n }\r\n else {\r\n if (t.channel === channel) {\r\n hidden.push(t);\r\n }\r\n }\r\n }\r\n return hidden;\r\n }\r\n get sourceName() {\r\n return this.tokenSource.sourceName;\r\n }\r\n getText(interval) {\r\n if (interval === undefined) {\r\n interval = Interval_1.Interval.of(0, this.size - 1);\r\n }\r\n else if (!(interval instanceof Interval_1.Interval)) {\r\n // Note: the more obvious check for 'instanceof RuleContext' results in a circular dependency problem\r\n interval = interval.sourceInterval;\r\n }\r\n let start = interval.a;\r\n let stop = interval.b;\r\n if (start < 0 || stop < 0) {\r\n return \"\";\r\n }\r\n this.fill();\r\n if (stop >= this.tokens.length) {\r\n stop = this.tokens.length - 1;\r\n }\r\n let buf = \"\";\r\n for (let i = start; i <= stop; i++) {\r\n let t = this.tokens[i];\r\n if (t.type === Token_1.Token.EOF) {\r\n break;\r\n }\r\n buf += t.text;\r\n }\r\n return buf.toString();\r\n }\r\n getTextFromRange(start, stop) {\r\n if (this.isToken(start) && this.isToken(stop)) {\r\n return this.getText(Interval_1.Interval.of(start.tokenIndex, stop.tokenIndex));\r\n }\r\n return \"\";\r\n }\r\n /** Get all tokens from lexer until EOF. */\r\n fill() {\r\n this.lazyInit();\r\n const blockSize = 1000;\r\n while (true) {\r\n let fetched = this.fetch(blockSize);\r\n if (fetched < blockSize) {\r\n return;\r\n }\r\n }\r\n }\r\n // TODO: Figure out a way to make this more flexible?\r\n isWritableToken(t) {\r\n return t instanceof CommonToken_1.CommonToken;\r\n }\r\n // TODO: Figure out a way to make this more flexible?\r\n isToken(t) {\r\n return t instanceof CommonToken_1.CommonToken;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], BufferedTokenStream.prototype, \"_tokenSource\", void 0);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"tokenSource\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"index\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"mark\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"release\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"seek\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"consume\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"get\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"LA\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"LT\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"sourceName\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"getText\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n Decorators_1.Override\r\n], BufferedTokenStream.prototype, \"getTextFromRange\", null);\r\nBufferedTokenStream = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], BufferedTokenStream);\r\nexports.BufferedTokenStream = BufferedTokenStream;\r\n//# sourceMappingURL=BufferedTokenStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CommonTokenStream = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:50.3953157-07:00\r\nconst BufferedTokenStream_1 = require(\"./BufferedTokenStream\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\n/**\r\n * This class extends {@link BufferedTokenStream} with functionality to filter\r\n * token streams to tokens on a particular channel (tokens where\r\n * {@link Token#getChannel} returns a particular value).\r\n *\r\n * This token stream provides access to all tokens by index or when calling\r\n * methods like {@link #getText}. The channel filtering is only used for code\r\n * accessing tokens via the lookahead methods {@link #LA}, {@link #LT}, and\r\n * {@link #LB}.\r\n *\r\n * By default, tokens are placed on the default channel\r\n * ({@link Token#DEFAULT_CHANNEL}), but may be reassigned by using the\r\n * `->channel(HIDDEN)` lexer command, or by using an embedded action to\r\n * call {@link Lexer#setChannel}.\r\n *\r\n * Note: lexer rules which use the `->skip` lexer command or call\r\n * {@link Lexer#skip} do not produce tokens at all, so input text matched by\r\n * such a rule will not be available as part of the token stream, regardless of\r\n * channel.\r\n */\r\nlet CommonTokenStream = class CommonTokenStream extends BufferedTokenStream_1.BufferedTokenStream {\r\n /**\r\n * Constructs a new {@link CommonTokenStream} using the specified token\r\n * source and filtering tokens to the specified channel. Only tokens whose\r\n * {@link Token#getChannel} matches `channel` or have the\r\n * `Token.type` equal to {@link Token#EOF} will be returned by the\r\n * token stream lookahead methods.\r\n *\r\n * @param tokenSource The token source.\r\n * @param channel The channel to use for filtering tokens.\r\n */\r\n constructor(tokenSource, channel = Token_1.Token.DEFAULT_CHANNEL) {\r\n super(tokenSource);\r\n this.channel = channel;\r\n }\r\n adjustSeekIndex(i) {\r\n return this.nextTokenOnChannel(i, this.channel);\r\n }\r\n tryLB(k) {\r\n if ((this.p - k) < 0) {\r\n return undefined;\r\n }\r\n let i = this.p;\r\n let n = 1;\r\n // find k good tokens looking backwards\r\n while (n <= k && i > 0) {\r\n // skip off-channel tokens\r\n i = this.previousTokenOnChannel(i - 1, this.channel);\r\n n++;\r\n }\r\n if (i < 0) {\r\n return undefined;\r\n }\r\n return this.tokens[i];\r\n }\r\n tryLT(k) {\r\n //System.out.println(\"enter LT(\"+k+\")\");\r\n this.lazyInit();\r\n if (k === 0) {\r\n throw new RangeError(\"0 is not a valid lookahead index\");\r\n }\r\n if (k < 0) {\r\n return this.tryLB(-k);\r\n }\r\n let i = this.p;\r\n let n = 1; // we know tokens[p] is a good one\r\n // find k good tokens\r\n while (n < k) {\r\n // skip off-channel tokens, but make sure to not look past EOF\r\n if (this.sync(i + 1)) {\r\n i = this.nextTokenOnChannel(i + 1, this.channel);\r\n }\r\n n++;\r\n }\r\n //\t\tif ( i>range ) range = i;\r\n return this.tokens[i];\r\n }\r\n /** Count EOF just once. */\r\n getNumberOfOnChannelTokens() {\r\n let n = 0;\r\n this.fill();\r\n for (let t of this.tokens) {\r\n if (t.channel === this.channel) {\r\n n++;\r\n }\r\n if (t.type === Token_1.Token.EOF) {\r\n break;\r\n }\r\n }\r\n return n;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonTokenStream.prototype, \"adjustSeekIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonTokenStream.prototype, \"tryLB\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], CommonTokenStream.prototype, \"tryLT\", null);\r\nCommonTokenStream = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], CommonTokenStream);\r\nexports.CommonTokenStream = CommonTokenStream;\r\n//# sourceMappingURL=CommonTokenStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListTokenSource = void 0;\r\nconst CommonTokenFactory_1 = require(\"./CommonTokenFactory\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\n/**\r\n * Provides an implementation of {@link TokenSource} as a wrapper around a list\r\n * of {@link Token} objects.\r\n *\r\n * If the final token in the list is an {@link Token#EOF} token, it will be used\r\n * as the EOF token for every call to {@link #nextToken} after the end of the\r\n * list is reached. Otherwise, an EOF token will be created.\r\n */\r\nlet ListTokenSource = class ListTokenSource {\r\n /**\r\n * Constructs a new {@link ListTokenSource} instance from the specified\r\n * collection of {@link Token} objects and source name.\r\n *\r\n * @param tokens The collection of {@link Token} objects to provide as a\r\n * {@link TokenSource}.\r\n * @param sourceName The name of the {@link TokenSource}. If this value is\r\n * `undefined`, {@link #getSourceName} will attempt to infer the name from\r\n * the next {@link Token} (or the previous token if the end of the input has\r\n * been reached).\r\n *\r\n * @exception NullPointerException if `tokens` is `undefined`\r\n */\r\n constructor(tokens, sourceName) {\r\n /**\r\n * The index into {@link #tokens} of token to return by the next call to\r\n * {@link #nextToken}. The end of the input is indicated by this value\r\n * being greater than or equal to the number of items in {@link #tokens}.\r\n */\r\n this.i = 0;\r\n /**\r\n * This is the backing field for {@link #getTokenFactory} and\r\n * {@link setTokenFactory}.\r\n */\r\n this._factory = CommonTokenFactory_1.CommonTokenFactory.DEFAULT;\r\n if (tokens == null) {\r\n throw new Error(\"tokens cannot be null\");\r\n }\r\n this.tokens = tokens;\r\n this._sourceName = sourceName;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n get charPositionInLine() {\r\n if (this.i < this.tokens.length) {\r\n return this.tokens[this.i].charPositionInLine;\r\n }\r\n else if (this.eofToken != null) {\r\n return this.eofToken.charPositionInLine;\r\n }\r\n else if (this.tokens.length > 0) {\r\n // have to calculate the result from the line/column of the previous\r\n // token, along with the text of the token.\r\n let lastToken = this.tokens[this.tokens.length - 1];\r\n let tokenText = lastToken.text;\r\n if (tokenText != null) {\r\n let lastNewLine = tokenText.lastIndexOf(\"\\n\");\r\n if (lastNewLine >= 0) {\r\n return tokenText.length - lastNewLine - 1;\r\n }\r\n }\r\n return lastToken.charPositionInLine + lastToken.stopIndex - lastToken.startIndex + 1;\r\n }\r\n // only reach this if tokens is empty, meaning EOF occurs at the first\r\n // position in the input\r\n return 0;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n nextToken() {\r\n if (this.i >= this.tokens.length) {\r\n if (this.eofToken == null) {\r\n let start = -1;\r\n if (this.tokens.length > 0) {\r\n let previousStop = this.tokens[this.tokens.length - 1].stopIndex;\r\n if (previousStop !== -1) {\r\n start = previousStop + 1;\r\n }\r\n }\r\n let stop = Math.max(-1, start - 1);\r\n this.eofToken = this._factory.create({ source: this, stream: this.inputStream }, Token_1.Token.EOF, \"EOF\", Token_1.Token.DEFAULT_CHANNEL, start, stop, this.line, this.charPositionInLine);\r\n }\r\n return this.eofToken;\r\n }\r\n let t = this.tokens[this.i];\r\n if (this.i === this.tokens.length - 1 && t.type === Token_1.Token.EOF) {\r\n this.eofToken = t;\r\n }\r\n this.i++;\r\n return t;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n get line() {\r\n if (this.i < this.tokens.length) {\r\n return this.tokens[this.i].line;\r\n }\r\n else if (this.eofToken != null) {\r\n return this.eofToken.line;\r\n }\r\n else if (this.tokens.length > 0) {\r\n // have to calculate the result from the line/column of the previous\r\n // token, along with the text of the token.\r\n let lastToken = this.tokens[this.tokens.length - 1];\r\n let line = lastToken.line;\r\n let tokenText = lastToken.text;\r\n if (tokenText != null) {\r\n for (let i = 0; i < tokenText.length; i++) {\r\n if (tokenText.charAt(i) === \"\\n\") {\r\n line++;\r\n }\r\n }\r\n }\r\n // if no text is available, assume the token did not contain any newline characters.\r\n return line;\r\n }\r\n // only reach this if tokens is empty, meaning EOF occurs at the first\r\n // position in the input\r\n return 1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n get inputStream() {\r\n if (this.i < this.tokens.length) {\r\n return this.tokens[this.i].inputStream;\r\n }\r\n else if (this.eofToken != null) {\r\n return this.eofToken.inputStream;\r\n }\r\n else if (this.tokens.length > 0) {\r\n return this.tokens[this.tokens.length - 1].inputStream;\r\n }\r\n // no input stream information is available\r\n return undefined;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n get sourceName() {\r\n if (this._sourceName) {\r\n return this._sourceName;\r\n }\r\n let inputStream = this.inputStream;\r\n if (inputStream != null) {\r\n return inputStream.sourceName;\r\n }\r\n return \"List\";\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n // @Override\r\n set tokenFactory(factory) {\r\n this._factory = factory;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n get tokenFactory() {\r\n return this._factory;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], ListTokenSource.prototype, \"charPositionInLine\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ListTokenSource.prototype, \"nextToken\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ListTokenSource.prototype, \"line\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ListTokenSource.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ListTokenSource.prototype, \"sourceName\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ListTokenSource.prototype, \"tokenFactory\", null);\r\nListTokenSource = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ListTokenSource);\r\nexports.ListTokenSource = ListTokenSource;\r\n//# sourceMappingURL=ListTokenSource.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MultiMap = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:42.1346951-07:00\r\nclass MultiMap extends Map {\r\n constructor() {\r\n super();\r\n }\r\n map(key, value) {\r\n let elementsForKey = super.get(key);\r\n if (!elementsForKey) {\r\n elementsForKey = [];\r\n super.set(key, elementsForKey);\r\n }\r\n elementsForKey.push(value);\r\n }\r\n getPairs() {\r\n let pairs = [];\r\n this.forEach((values, key) => {\r\n values.forEach((v) => {\r\n pairs.push([key, v]);\r\n });\r\n });\r\n return pairs;\r\n }\r\n}\r\nexports.MultiMap = MultiMap;\r\n//# sourceMappingURL=MultiMap.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleNode = void 0;\r\nclass RuleNode {\r\n}\r\nexports.RuleNode = RuleNode;\r\n//# sourceMappingURL=RuleNode.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Trees = void 0;\r\nconst ATN_1 = require(\"../atn/ATN\");\r\nconst CommonToken_1 = require(\"../CommonToken\");\r\nconst ErrorNode_1 = require(\"./ErrorNode\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Parser_1 = require(\"../Parser\");\r\nconst ParserRuleContext_1 = require(\"../ParserRuleContext\");\r\nconst RuleNode_1 = require(\"./RuleNode\");\r\nconst TerminalNode_1 = require(\"./TerminalNode\");\r\nconst Token_1 = require(\"../Token\");\r\nconst Utils = require(\"../misc/Utils\");\r\n/** A set of utility routines useful for all kinds of ANTLR trees. */\r\nclass Trees {\r\n static toStringTree(t, arg2) {\r\n let ruleNames;\r\n if (arg2 instanceof Parser_1.Parser) {\r\n ruleNames = arg2.ruleNames;\r\n }\r\n else {\r\n ruleNames = arg2;\r\n }\r\n let s = Utils.escapeWhitespace(this.getNodeText(t, ruleNames), false);\r\n if (t.childCount === 0) {\r\n return s;\r\n }\r\n let buf = \"\";\r\n buf += (\"(\");\r\n s = Utils.escapeWhitespace(this.getNodeText(t, ruleNames), false);\r\n buf += (s);\r\n buf += (\" \");\r\n for (let i = 0; i < t.childCount; i++) {\r\n if (i > 0) {\r\n buf += (\" \");\r\n }\r\n buf += (this.toStringTree(t.getChild(i), ruleNames));\r\n }\r\n buf += (\")\");\r\n return buf;\r\n }\r\n static getNodeText(t, arg2) {\r\n let ruleNames;\r\n if (arg2 instanceof Parser_1.Parser) {\r\n ruleNames = arg2.ruleNames;\r\n }\r\n else if (arg2) {\r\n ruleNames = arg2;\r\n }\r\n else {\r\n // no recog or rule names\r\n let payload = t.payload;\r\n if (typeof payload.text === \"string\") {\r\n return payload.text;\r\n }\r\n return t.payload.toString();\r\n }\r\n if (t instanceof RuleNode_1.RuleNode) {\r\n let ruleContext = t.ruleContext;\r\n let ruleIndex = ruleContext.ruleIndex;\r\n let ruleName = ruleNames[ruleIndex];\r\n let altNumber = ruleContext.altNumber;\r\n if (altNumber !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n return ruleName + \":\" + altNumber;\r\n }\r\n return ruleName;\r\n }\r\n else if (t instanceof ErrorNode_1.ErrorNode) {\r\n return t.toString();\r\n }\r\n else if (t instanceof TerminalNode_1.TerminalNode) {\r\n let symbol = t.symbol;\r\n return symbol.text || \"\";\r\n }\r\n throw new TypeError(\"Unexpected node type\");\r\n }\r\n static getChildren(t) {\r\n let kids = [];\r\n for (let i = 0; i < t.childCount; i++) {\r\n kids.push(t.getChild(i));\r\n }\r\n return kids;\r\n }\r\n static getAncestors(t) {\r\n let ancestors = [];\r\n let p = t.parent;\r\n while (p) {\r\n ancestors.unshift(p); // insert at start\r\n p = p.parent;\r\n }\r\n return ancestors;\r\n }\r\n /** Return true if t is u's parent or a node on path to root from u.\r\n * Use === not equals().\r\n *\r\n * @since 4.5.1\r\n */\r\n static isAncestorOf(t, u) {\r\n if (!t || !u || !t.parent) {\r\n return false;\r\n }\r\n let p = u.parent;\r\n while (p) {\r\n if (t === p) {\r\n return true;\r\n }\r\n p = p.parent;\r\n }\r\n return false;\r\n }\r\n static findAllTokenNodes(t, ttype) {\r\n return Trees.findAllNodes(t, ttype, true);\r\n }\r\n static findAllRuleNodes(t, ruleIndex) {\r\n return Trees.findAllNodes(t, ruleIndex, false);\r\n }\r\n static findAllNodes(t, index, findTokens) {\r\n let nodes = [];\r\n Trees._findAllNodes(t, index, findTokens, nodes);\r\n return nodes;\r\n }\r\n static _findAllNodes(t, index, findTokens, nodes) {\r\n // check this node (the root) first\r\n if (findTokens && t instanceof TerminalNode_1.TerminalNode) {\r\n if (t.symbol.type === index) {\r\n nodes.push(t);\r\n }\r\n }\r\n else if (!findTokens && t instanceof ParserRuleContext_1.ParserRuleContext) {\r\n if (t.ruleIndex === index) {\r\n nodes.push(t);\r\n }\r\n }\r\n // check children\r\n for (let i = 0; i < t.childCount; i++) {\r\n Trees._findAllNodes(t.getChild(i), index, findTokens, nodes);\r\n }\r\n }\r\n /** Get all descendents; includes t itself.\r\n *\r\n * @since 4.5.1\r\n */\r\n static getDescendants(t) {\r\n let nodes = [];\r\n function recurse(e) {\r\n nodes.push(e);\r\n const n = e.childCount;\r\n for (let i = 0; i < n; i++) {\r\n recurse(e.getChild(i));\r\n }\r\n }\r\n recurse(t);\r\n return nodes;\r\n }\r\n /** Find smallest subtree of t enclosing range startTokenIndex..stopTokenIndex\r\n * inclusively using postorder traversal. Recursive depth-first-search.\r\n *\r\n * @since 4.5\r\n */\r\n static getRootOfSubtreeEnclosingRegion(t, startTokenIndex, // inclusive\r\n stopTokenIndex) {\r\n let n = t.childCount;\r\n for (let i = 0; i < n; i++) {\r\n let child = t.getChild(i);\r\n let r = Trees.getRootOfSubtreeEnclosingRegion(child, startTokenIndex, stopTokenIndex);\r\n if (r) {\r\n return r;\r\n }\r\n }\r\n if (t instanceof ParserRuleContext_1.ParserRuleContext) {\r\n let stopToken = t.stop;\r\n if (startTokenIndex >= t.start.tokenIndex && // is range fully contained in t?\r\n (stopToken == null || stopTokenIndex <= stopToken.tokenIndex)) {\r\n // note: r.stop==null likely implies that we bailed out of parser and there's nothing to the right\r\n return t;\r\n }\r\n }\r\n return undefined;\r\n }\r\n /** Replace any subtree siblings of root that are completely to left\r\n * or right of lookahead range with a CommonToken(Token.INVALID_TYPE,\"...\")\r\n * node. The source interval for t is not altered to suit smaller range!\r\n *\r\n * WARNING: destructive to t.\r\n *\r\n * @since 4.5.1\r\n */\r\n static stripChildrenOutOfRange(t, root, startIndex, stopIndex) {\r\n if (!t) {\r\n return;\r\n }\r\n let count = t.childCount;\r\n for (let i = 0; i < count; i++) {\r\n let child = t.getChild(i);\r\n let range = child.sourceInterval;\r\n if (child instanceof ParserRuleContext_1.ParserRuleContext && (range.b < startIndex || range.a > stopIndex)) {\r\n if (Trees.isAncestorOf(child, root)) { // replace only if subtree doesn't have displayed root\r\n let abbrev = new CommonToken_1.CommonToken(Token_1.Token.INVALID_TYPE, \"...\");\r\n t.children[i] = new TerminalNode_1.TerminalNode(abbrev); // HACK access to private\r\n }\r\n }\r\n }\r\n }\r\n static findNodeSuchThat(t, pred) {\r\n // No type check needed as long as users only use one of the available overloads\r\n if (pred(t)) {\r\n return t;\r\n }\r\n let n = t.childCount;\r\n for (let i = 0; i < n; i++) {\r\n let u = Trees.findNodeSuchThat(t.getChild(i), pred);\r\n if (u !== undefined) {\r\n return u;\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Trees, \"toStringTree\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], Trees, \"getAncestors\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Trees, \"getRootOfSubtreeEnclosingRegion\", null);\r\nexports.Trees = Trees;\r\n//# sourceMappingURL=Trees.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleContext = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:57.3490837-07:00\r\nconst ATN_1 = require(\"./atn/ATN\");\r\nconst Recognizer_1 = require(\"./Recognizer\");\r\nconst RuleNode_1 = require(\"./tree/RuleNode\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Trees_1 = require(\"./tree/Trees\");\r\nconst ParserRuleContext_1 = require(\"./ParserRuleContext\");\r\n/** A rule context is a record of a single rule invocation.\r\n *\r\n * We form a stack of these context objects using the parent\r\n * pointer. A parent pointer of `undefined` indicates that the current\r\n * context is the bottom of the stack. The ParserRuleContext subclass\r\n * as a children list so that we can turn this data structure into a\r\n * tree.\r\n *\r\n * The root node always has a `undefined` pointer and invokingState of -1.\r\n *\r\n * Upon entry to parsing, the first invoked rule function creates a\r\n * context object (a subclass specialized for that rule such as\r\n * SContext) and makes it the root of a parse tree, recorded by field\r\n * Parser._ctx.\r\n *\r\n * public final SContext s() throws RecognitionException {\r\n * SContext _localctx = new SContext(_ctx, state); <-- create new node\r\n * enterRule(_localctx, 0, RULE_s); <-- push it\r\n * ...\r\n * exitRule(); <-- pop back to _localctx\r\n * return _localctx;\r\n * }\r\n *\r\n * A subsequent rule invocation of r from the start rule s pushes a\r\n * new context object for r whose parent points at s and use invoking\r\n * state is the state with r emanating as edge label.\r\n *\r\n * The invokingState fields from a context object to the root\r\n * together form a stack of rule indication states where the root\r\n * (bottom of the stack) has a -1 sentinel value. If we invoke start\r\n * symbol s then call r1, which calls r2, the would look like\r\n * this:\r\n *\r\n * SContext[-1] <- root node (bottom of the stack)\r\n * R1Context[p] <- p in rule s called r1\r\n * R2Context[q] <- q in rule r1 called r2\r\n *\r\n * So the top of the stack, _ctx, represents a call to the current\r\n * rule and it holds the return address from another rule that invoke\r\n * to this rule. To invoke a rule, we must always have a current context.\r\n *\r\n * The parent contexts are useful for computing lookahead sets and\r\n * getting error information.\r\n *\r\n * These objects are used during parsing and prediction.\r\n * For the special case of parsers, we use the subclass\r\n * ParserRuleContext.\r\n *\r\n * @see ParserRuleContext\r\n */\r\nclass RuleContext extends RuleNode_1.RuleNode {\r\n constructor(parent, invokingState) {\r\n super();\r\n this._parent = parent;\r\n this.invokingState = invokingState != null ? invokingState : -1;\r\n }\r\n static getChildContext(parent, invokingState) {\r\n return new RuleContext(parent, invokingState);\r\n }\r\n depth() {\r\n let n = 0;\r\n let p = this;\r\n while (p) {\r\n p = p._parent;\r\n n++;\r\n }\r\n return n;\r\n }\r\n /** A context is empty if there is no invoking state; meaning nobody called\r\n * current context.\r\n */\r\n get isEmpty() {\r\n return this.invokingState === -1;\r\n }\r\n // satisfy the ParseTree / SyntaxTree interface\r\n get sourceInterval() {\r\n return Interval_1.Interval.INVALID;\r\n }\r\n get ruleContext() { return this; }\r\n get parent() { return this._parent; }\r\n /** @since 4.7. {@see ParseTree#setParent} comment */\r\n setParent(parent) {\r\n this._parent = parent;\r\n }\r\n get payload() { return this; }\r\n /** Return the combined text of all child nodes. This method only considers\r\n * tokens which have been added to the parse tree.\r\n *\r\n * Since tokens on hidden channels (e.g. whitespace or comments) are not\r\n * added to the parse trees, they will not appear in the output of this\r\n * method.\r\n */\r\n get text() {\r\n if (this.childCount === 0) {\r\n return \"\";\r\n }\r\n let builder = \"\";\r\n for (let i = 0; i < this.childCount; i++) {\r\n builder += this.getChild(i).text;\r\n }\r\n return builder.toString();\r\n }\r\n get ruleIndex() { return -1; }\r\n /** For rule associated with this parse tree internal node, return\r\n * the outer alternative number used to match the input. Default\r\n * implementation does not compute nor store this alt num. Create\r\n * a subclass of ParserRuleContext with backing field and set\r\n * option contextSuperClass.\r\n * to set it.\r\n *\r\n * @since 4.5.3\r\n */\r\n get altNumber() { return ATN_1.ATN.INVALID_ALT_NUMBER; }\r\n /** Set the outer alternative number for this context node. Default\r\n * implementation does nothing to avoid backing field overhead for\r\n * trees that don't need it. Create\r\n * a subclass of ParserRuleContext with backing field and set\r\n * option contextSuperClass.\r\n *\r\n * @since 4.5.3\r\n */\r\n set altNumber(altNumber) {\r\n // intentionally ignored by the base implementation\r\n }\r\n getChild(i) {\r\n throw new RangeError(\"i must be greater than or equal to 0 and less than childCount\");\r\n }\r\n get childCount() {\r\n return 0;\r\n }\r\n accept(visitor) {\r\n return visitor.visitChildren(this);\r\n }\r\n toStringTree(recog) {\r\n return Trees_1.Trees.toStringTree(this, recog);\r\n }\r\n toString(arg1, stop) {\r\n const ruleNames = (arg1 instanceof Recognizer_1.Recognizer) ? arg1.ruleNames : arg1;\r\n stop = stop || ParserRuleContext_1.ParserRuleContext.emptyContext();\r\n let buf = \"\";\r\n let p = this;\r\n buf += (\"[\");\r\n while (p && p !== stop) {\r\n if (!ruleNames) {\r\n if (!p.isEmpty) {\r\n buf += (p.invokingState);\r\n }\r\n }\r\n else {\r\n let ruleIndex = p.ruleIndex;\r\n let ruleName = (ruleIndex >= 0 && ruleIndex < ruleNames.length)\r\n ? ruleNames[ruleIndex] : ruleIndex.toString();\r\n buf += (ruleName);\r\n }\r\n if (p._parent && (ruleNames || !p._parent.isEmpty)) {\r\n buf += (\" \");\r\n }\r\n p = p._parent;\r\n }\r\n buf += (\"]\");\r\n return buf.toString();\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"sourceInterval\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"ruleContext\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"parent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"setParent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"payload\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"getChild\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"childCount\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"accept\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContext.prototype, \"toStringTree\", null);\r\nexports.RuleContext = RuleContext;\r\n//# sourceMappingURL=RuleContext.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParserRuleContext = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:56.6285494-07:00\r\nconst ErrorNode_1 = require(\"./tree/ErrorNode\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst RuleContext_1 = require(\"./RuleContext\");\r\nconst TerminalNode_1 = require(\"./tree/TerminalNode\");\r\n/** A rule invocation record for parsing.\r\n *\r\n * Contains all of the information about the current rule not stored in the\r\n * RuleContext. It handles parse tree children list, Any ATN state\r\n * tracing, and the default values available for rule invocations:\r\n * start, stop, rule index, current alt number.\r\n *\r\n * Subclasses made for each rule and grammar track the parameters,\r\n * return values, locals, and labels specific to that rule. These\r\n * are the objects that are returned from rules.\r\n *\r\n * Note text is not an actual field of a rule return value; it is computed\r\n * from start and stop using the input stream's toString() method. I\r\n * could add a ctor to this so that we can pass in and store the input\r\n * stream, but I'm not sure we want to do that. It would seem to be undefined\r\n * to get the .text property anyway if the rule matches tokens from multiple\r\n * input streams.\r\n *\r\n * I do not use getters for fields of objects that are used simply to\r\n * group values such as this aggregate. The getters/setters are there to\r\n * satisfy the superclass interface.\r\n */\r\nclass ParserRuleContext extends RuleContext_1.RuleContext {\r\n constructor(parent, invokingStateNumber) {\r\n if (invokingStateNumber == null) {\r\n super();\r\n }\r\n else {\r\n super(parent, invokingStateNumber);\r\n }\r\n }\r\n static emptyContext() {\r\n return ParserRuleContext.EMPTY;\r\n }\r\n /**\r\n * COPY a ctx (I'm deliberately not using copy constructor) to avoid\r\n * confusion with creating node with parent. Does not copy children\r\n * (except error leaves).\r\n *\r\n * This is used in the generated parser code to flip a generic XContext\r\n * node for rule X to a YContext for alt label Y. In that sense, it is not\r\n * really a generic copy function.\r\n *\r\n * If we do an error sync() at start of a rule, we might add error nodes\r\n * to the generic XContext so this function must copy those nodes to the\r\n * YContext as well else they are lost!\r\n */\r\n copyFrom(ctx) {\r\n this._parent = ctx._parent;\r\n this.invokingState = ctx.invokingState;\r\n this._start = ctx._start;\r\n this._stop = ctx._stop;\r\n // copy any error nodes to alt label node\r\n if (ctx.children) {\r\n this.children = [];\r\n // reset parent pointer for any error nodes\r\n for (let child of ctx.children) {\r\n if (child instanceof ErrorNode_1.ErrorNode) {\r\n this.addChild(child);\r\n }\r\n }\r\n }\r\n }\r\n // Double dispatch methods for listeners\r\n enterRule(listener) {\r\n // intentionally empty\r\n }\r\n exitRule(listener) {\r\n // intentionally empty\r\n }\r\n /** Add a parse tree node to this as a child. Works for\r\n * internal and leaf nodes. Does not set parent link;\r\n * other add methods must do that. Other addChild methods\r\n * call this.\r\n *\r\n * We cannot set the parent pointer of the incoming node\r\n * because the existing interfaces do not have a setParent()\r\n * method and I don't want to break backward compatibility for this.\r\n *\r\n * @since 4.7\r\n */\r\n addAnyChild(t) {\r\n if (!this.children) {\r\n this.children = [t];\r\n }\r\n else {\r\n this.children.push(t);\r\n }\r\n return t;\r\n }\r\n addChild(t) {\r\n let result;\r\n if (t instanceof TerminalNode_1.TerminalNode) {\r\n t.setParent(this);\r\n this.addAnyChild(t);\r\n return;\r\n }\r\n else if (t instanceof RuleContext_1.RuleContext) {\r\n // Does not set parent link\r\n this.addAnyChild(t);\r\n return;\r\n }\r\n else {\r\n // Deprecated code path\r\n t = new TerminalNode_1.TerminalNode(t);\r\n this.addAnyChild(t);\r\n t.setParent(this);\r\n return t;\r\n }\r\n }\r\n addErrorNode(node) {\r\n if (node instanceof ErrorNode_1.ErrorNode) {\r\n const errorNode = node;\r\n errorNode.setParent(this);\r\n return this.addAnyChild(errorNode);\r\n }\r\n else {\r\n // deprecated path\r\n const badToken = node;\r\n let t = new ErrorNode_1.ErrorNode(badToken);\r\n this.addAnyChild(t);\r\n t.setParent(this);\r\n return t;\r\n }\r\n }\r\n //\tpublic void trace(int s) {\r\n //\t\tif ( states==null ) states = new ArrayList<Integer>();\r\n //\t\tstates.add(s);\r\n //\t}\r\n /** Used by enterOuterAlt to toss out a RuleContext previously added as\r\n * we entered a rule. If we have # label, we will need to remove\r\n * generic ruleContext object.\r\n */\r\n removeLastChild() {\r\n if (this.children) {\r\n this.children.pop();\r\n }\r\n }\r\n get parent() {\r\n let parent = super.parent;\r\n if (parent === undefined || parent instanceof ParserRuleContext) {\r\n return parent;\r\n }\r\n throw new TypeError(\"Invalid parent type for ParserRuleContext\");\r\n }\r\n // Note: in TypeScript, order or arguments reversed\r\n getChild(i, ctxType) {\r\n if (!this.children || i < 0 || i >= this.children.length) {\r\n throw new RangeError(\"index parameter must be between >= 0 and <= number of children.\");\r\n }\r\n if (ctxType == null) {\r\n return this.children[i];\r\n }\r\n let result = this.tryGetChild(i, ctxType);\r\n if (result === undefined) {\r\n throw new Error(\"The specified node does not exist\");\r\n }\r\n return result;\r\n }\r\n tryGetChild(i, ctxType) {\r\n if (!this.children || i < 0 || i >= this.children.length) {\r\n return undefined;\r\n }\r\n let j = -1; // what node with ctxType have we found?\r\n for (let o of this.children) {\r\n if (o instanceof ctxType) {\r\n j++;\r\n if (j === i) {\r\n return o;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n getToken(ttype, i) {\r\n let result = this.tryGetToken(ttype, i);\r\n if (result === undefined) {\r\n throw new Error(\"The specified token does not exist\");\r\n }\r\n return result;\r\n }\r\n tryGetToken(ttype, i) {\r\n if (!this.children || i < 0 || i >= this.children.length) {\r\n return undefined;\r\n }\r\n let j = -1; // what token with ttype have we found?\r\n for (let o of this.children) {\r\n if (o instanceof TerminalNode_1.TerminalNode) {\r\n let symbol = o.symbol;\r\n if (symbol.type === ttype) {\r\n j++;\r\n if (j === i) {\r\n return o;\r\n }\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n getTokens(ttype) {\r\n let tokens = [];\r\n if (!this.children) {\r\n return tokens;\r\n }\r\n for (let o of this.children) {\r\n if (o instanceof TerminalNode_1.TerminalNode) {\r\n let symbol = o.symbol;\r\n if (symbol.type === ttype) {\r\n tokens.push(o);\r\n }\r\n }\r\n }\r\n return tokens;\r\n }\r\n get ruleContext() {\r\n return this;\r\n }\r\n // NOTE: argument order change from Java version\r\n getRuleContext(i, ctxType) {\r\n return this.getChild(i, ctxType);\r\n }\r\n tryGetRuleContext(i, ctxType) {\r\n return this.tryGetChild(i, ctxType);\r\n }\r\n getRuleContexts(ctxType) {\r\n let contexts = [];\r\n if (!this.children) {\r\n return contexts;\r\n }\r\n for (let o of this.children) {\r\n if (o instanceof ctxType) {\r\n contexts.push(o);\r\n }\r\n }\r\n return contexts;\r\n }\r\n get childCount() {\r\n return this.children ? this.children.length : 0;\r\n }\r\n get sourceInterval() {\r\n if (!this._start) {\r\n return Interval_1.Interval.INVALID;\r\n }\r\n if (!this._stop || this._stop.tokenIndex < this._start.tokenIndex) {\r\n return Interval_1.Interval.of(this._start.tokenIndex, this._start.tokenIndex - 1); // empty\r\n }\r\n return Interval_1.Interval.of(this._start.tokenIndex, this._stop.tokenIndex);\r\n }\r\n /**\r\n * Get the initial token in this context.\r\n * Note that the range from start to stop is inclusive, so for rules that do not consume anything\r\n * (for example, zero length or error productions) this token may exceed stop.\r\n */\r\n get start() { return this._start; }\r\n /**\r\n * Get the final token in this context.\r\n * Note that the range from start to stop is inclusive, so for rules that do not consume anything\r\n * (for example, zero length or error productions) this token may precede start.\r\n */\r\n get stop() { return this._stop; }\r\n /** Used for rule context info debugging during parse-time, not so much for ATN debugging */\r\n toInfoString(recognizer) {\r\n let rules = recognizer.getRuleInvocationStack(this).reverse();\r\n return \"ParserRuleContext\" + rules + \"{\" +\r\n \"start=\" + this._start +\r\n \", stop=\" + this._stop +\r\n \"}\";\r\n }\r\n}\r\nParserRuleContext.EMPTY = new ParserRuleContext();\r\n__decorate([\r\n Decorators_1.Override\r\n], ParserRuleContext.prototype, \"parent\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ParserRuleContext.prototype, \"childCount\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ParserRuleContext.prototype, \"sourceInterval\", null);\r\nexports.ParserRuleContext = ParserRuleContext;\r\n//# sourceMappingURL=ParserRuleContext.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.InterpreterRuleContext = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:51.5898546-07:00\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst ParserRuleContext_1 = require(\"./ParserRuleContext\");\r\n/**\r\n * This class extends {@link ParserRuleContext} by allowing the value of\r\n * {@link #getRuleIndex} to be explicitly set for the context.\r\n *\r\n * {@link ParserRuleContext} does not include field storage for the rule index\r\n * since the context classes created by the code generator override the\r\n * {@link #getRuleIndex} method to return the correct value for that context.\r\n * Since the parser interpreter does not use the context classes generated for a\r\n * parser, this class (with slightly more memory overhead per node) is used to\r\n * provide equivalent functionality.\r\n */\r\nclass InterpreterRuleContext extends ParserRuleContext_1.ParserRuleContext {\r\n constructor(ruleIndex, parent, invokingStateNumber) {\r\n if (invokingStateNumber !== undefined) {\r\n super(parent, invokingStateNumber);\r\n }\r\n else {\r\n super();\r\n }\r\n this._ruleIndex = ruleIndex;\r\n }\r\n get ruleIndex() {\r\n return this._ruleIndex;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], InterpreterRuleContext.prototype, \"ruleIndex\", null);\r\nexports.InterpreterRuleContext = InterpreterRuleContext;\r\n//# sourceMappingURL=InterpreterRuleContext.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParserInterpreter = void 0;\r\nconst ATNState_1 = require(\"./atn/ATNState\");\r\nconst ATNStateType_1 = require(\"./atn/ATNStateType\");\r\nconst BitSet_1 = require(\"./misc/BitSet\");\r\nconst FailedPredicateException_1 = require(\"./FailedPredicateException\");\r\nconst InputMismatchException_1 = require(\"./InputMismatchException\");\r\nconst InterpreterRuleContext_1 = require(\"./InterpreterRuleContext\");\r\nconst LoopEndState_1 = require(\"./atn/LoopEndState\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Decorators_2 = require(\"./Decorators\");\r\nconst Parser_1 = require(\"./Parser\");\r\nconst ParserATNSimulator_1 = require(\"./atn/ParserATNSimulator\");\r\nconst RecognitionException_1 = require(\"./RecognitionException\");\r\nconst StarLoopEntryState_1 = require(\"./atn/StarLoopEntryState\");\r\nconst Token_1 = require(\"./Token\");\r\n/** A parser simulator that mimics what ANTLR's generated\r\n * parser code does. A ParserATNSimulator is used to make\r\n * predictions via adaptivePredict but this class moves a pointer through the\r\n * ATN to simulate parsing. ParserATNSimulator just\r\n * makes us efficient rather than having to backtrack, for example.\r\n *\r\n * This properly creates parse trees even for left recursive rules.\r\n *\r\n * We rely on the left recursive rule invocation and special predicate\r\n * transitions to make left recursive rules work.\r\n *\r\n * See TestParserInterpreter for examples.\r\n */\r\nlet ParserInterpreter = class ParserInterpreter extends Parser_1.Parser {\r\n constructor(grammarFileName, vocabulary, ruleNames, atn, input) {\r\n super(grammarFileName instanceof ParserInterpreter ? grammarFileName.inputStream : input);\r\n /** This stack corresponds to the _parentctx, _parentState pair of locals\r\n * that would exist on call stack frames with a recursive descent parser;\r\n * in the generated function for a left-recursive rule you'd see:\r\n *\r\n * private EContext e(int _p) {\r\n * ParserRuleContext _parentctx = _ctx; // Pair.a\r\n * int _parentState = state; // Pair.b\r\n * ...\r\n * }\r\n *\r\n * Those values are used to create new recursive rule invocation contexts\r\n * associated with left operand of an alt like \"expr '*' expr\".\r\n */\r\n this._parentContextStack = [];\r\n /** We need a map from (decision,inputIndex)->forced alt for computing ambiguous\r\n * parse trees. For now, we allow exactly one override.\r\n */\r\n this.overrideDecision = -1;\r\n this.overrideDecisionInputIndex = -1;\r\n this.overrideDecisionAlt = -1;\r\n this.overrideDecisionReached = false; // latch and only override once; error might trigger infinite loop\r\n /** What is the current context when we override a decisions? This tells\r\n * us what the root of the parse tree is when using override\r\n * for an ambiguity/lookahead check.\r\n */\r\n this._overrideDecisionRoot = undefined;\r\n if (grammarFileName instanceof ParserInterpreter) {\r\n let old = grammarFileName;\r\n this._grammarFileName = old._grammarFileName;\r\n this._atn = old._atn;\r\n this.pushRecursionContextStates = old.pushRecursionContextStates;\r\n this._ruleNames = old._ruleNames;\r\n this._vocabulary = old._vocabulary;\r\n this.interpreter = new ParserATNSimulator_1.ParserATNSimulator(this._atn, this);\r\n }\r\n else {\r\n // The second constructor requires non-null arguments\r\n vocabulary = vocabulary;\r\n ruleNames = ruleNames;\r\n atn = atn;\r\n this._grammarFileName = grammarFileName;\r\n this._atn = atn;\r\n this._ruleNames = ruleNames.slice(0);\r\n this._vocabulary = vocabulary;\r\n // identify the ATN states where pushNewRecursionContext() must be called\r\n this.pushRecursionContextStates = new BitSet_1.BitSet(atn.states.length);\r\n for (let state of atn.states) {\r\n if (!(state instanceof StarLoopEntryState_1.StarLoopEntryState)) {\r\n continue;\r\n }\r\n if (state.precedenceRuleDecision) {\r\n this.pushRecursionContextStates.set(state.stateNumber);\r\n }\r\n }\r\n // get atn simulator that knows how to do predictions\r\n this.interpreter = new ParserATNSimulator_1.ParserATNSimulator(atn, this);\r\n }\r\n }\r\n reset(resetInput) {\r\n if (resetInput === undefined) {\r\n super.reset();\r\n }\r\n else {\r\n super.reset(resetInput);\r\n }\r\n this.overrideDecisionReached = false;\r\n this._overrideDecisionRoot = undefined;\r\n }\r\n get atn() {\r\n return this._atn;\r\n }\r\n get vocabulary() {\r\n return this._vocabulary;\r\n }\r\n get ruleNames() {\r\n return this._ruleNames;\r\n }\r\n get grammarFileName() {\r\n return this._grammarFileName;\r\n }\r\n /** Begin parsing at startRuleIndex */\r\n parse(startRuleIndex) {\r\n let startRuleStartState = this._atn.ruleToStartState[startRuleIndex];\r\n this._rootContext = this.createInterpreterRuleContext(undefined, ATNState_1.ATNState.INVALID_STATE_NUMBER, startRuleIndex);\r\n if (startRuleStartState.isPrecedenceRule) {\r\n this.enterRecursionRule(this._rootContext, startRuleStartState.stateNumber, startRuleIndex, 0);\r\n }\r\n else {\r\n this.enterRule(this._rootContext, startRuleStartState.stateNumber, startRuleIndex);\r\n }\r\n while (true) {\r\n let p = this.atnState;\r\n switch (p.stateType) {\r\n case ATNStateType_1.ATNStateType.RULE_STOP:\r\n // pop; return from rule\r\n if (this._ctx.isEmpty) {\r\n if (startRuleStartState.isPrecedenceRule) {\r\n let result = this._ctx;\r\n let parentContext = this._parentContextStack.pop();\r\n this.unrollRecursionContexts(parentContext[0]);\r\n return result;\r\n }\r\n else {\r\n this.exitRule();\r\n return this._rootContext;\r\n }\r\n }\r\n this.visitRuleStopState(p);\r\n break;\r\n default:\r\n try {\r\n this.visitState(p);\r\n }\r\n catch (e) {\r\n if (e instanceof RecognitionException_1.RecognitionException) {\r\n this.state = this._atn.ruleToStopState[p.ruleIndex].stateNumber;\r\n this.context.exception = e;\r\n this.errorHandler.reportError(this, e);\r\n this.recover(e);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n enterRecursionRule(localctx, state, ruleIndex, precedence) {\r\n this._parentContextStack.push([this._ctx, localctx.invokingState]);\r\n super.enterRecursionRule(localctx, state, ruleIndex, precedence);\r\n }\r\n get atnState() {\r\n return this._atn.states[this.state];\r\n }\r\n visitState(p) {\r\n let predictedAlt = 1;\r\n if (p.numberOfTransitions > 1) {\r\n predictedAlt = this.visitDecisionState(p);\r\n }\r\n let transition = p.transition(predictedAlt - 1);\r\n switch (transition.serializationType) {\r\n case 1 /* EPSILON */:\r\n if (this.pushRecursionContextStates.get(p.stateNumber) &&\r\n !(transition.target instanceof LoopEndState_1.LoopEndState)) {\r\n // We are at the start of a left recursive rule's (...)* loop\r\n // and we're not taking the exit branch of loop.\r\n let parentContext = this._parentContextStack[this._parentContextStack.length - 1];\r\n let localctx = this.createInterpreterRuleContext(parentContext[0], parentContext[1], this._ctx.ruleIndex);\r\n this.pushNewRecursionContext(localctx, this._atn.ruleToStartState[p.ruleIndex].stateNumber, this._ctx.ruleIndex);\r\n }\r\n break;\r\n case 5 /* ATOM */:\r\n this.match(transition._label);\r\n break;\r\n case 2 /* RANGE */:\r\n case 7 /* SET */:\r\n case 8 /* NOT_SET */:\r\n if (!transition.matches(this._input.LA(1), Token_1.Token.MIN_USER_TOKEN_TYPE, 65535)) {\r\n this.recoverInline();\r\n }\r\n this.matchWildcard();\r\n break;\r\n case 9 /* WILDCARD */:\r\n this.matchWildcard();\r\n break;\r\n case 3 /* RULE */:\r\n let ruleStartState = transition.target;\r\n let ruleIndex = ruleStartState.ruleIndex;\r\n let newctx = this.createInterpreterRuleContext(this._ctx, p.stateNumber, ruleIndex);\r\n if (ruleStartState.isPrecedenceRule) {\r\n this.enterRecursionRule(newctx, ruleStartState.stateNumber, ruleIndex, transition.precedence);\r\n }\r\n else {\r\n this.enterRule(newctx, transition.target.stateNumber, ruleIndex);\r\n }\r\n break;\r\n case 4 /* PREDICATE */:\r\n let predicateTransition = transition;\r\n if (!this.sempred(this._ctx, predicateTransition.ruleIndex, predicateTransition.predIndex)) {\r\n throw new FailedPredicateException_1.FailedPredicateException(this);\r\n }\r\n break;\r\n case 6 /* ACTION */:\r\n let actionTransition = transition;\r\n this.action(this._ctx, actionTransition.ruleIndex, actionTransition.actionIndex);\r\n break;\r\n case 10 /* PRECEDENCE */:\r\n if (!this.precpred(this._ctx, transition.precedence)) {\r\n let precedence = transition.precedence;\r\n throw new FailedPredicateException_1.FailedPredicateException(this, `precpred(_ctx, ${precedence})`);\r\n }\r\n break;\r\n default:\r\n throw new Error(\"UnsupportedOperationException: Unrecognized ATN transition type.\");\r\n }\r\n this.state = transition.target.stateNumber;\r\n }\r\n /** Method visitDecisionState() is called when the interpreter reaches\r\n * a decision state (instance of DecisionState). It gives an opportunity\r\n * for subclasses to track interesting things.\r\n */\r\n visitDecisionState(p) {\r\n let predictedAlt;\r\n this.errorHandler.sync(this);\r\n let decision = p.decision;\r\n if (decision === this.overrideDecision && this._input.index === this.overrideDecisionInputIndex && !this.overrideDecisionReached) {\r\n predictedAlt = this.overrideDecisionAlt;\r\n this.overrideDecisionReached = true;\r\n }\r\n else {\r\n predictedAlt = this.interpreter.adaptivePredict(this._input, decision, this._ctx);\r\n }\r\n return predictedAlt;\r\n }\r\n /** Provide simple \"factory\" for InterpreterRuleContext's.\r\n * @since 4.5.1\r\n */\r\n createInterpreterRuleContext(parent, invokingStateNumber, ruleIndex) {\r\n return new InterpreterRuleContext_1.InterpreterRuleContext(ruleIndex, parent, invokingStateNumber);\r\n }\r\n visitRuleStopState(p) {\r\n let ruleStartState = this._atn.ruleToStartState[p.ruleIndex];\r\n if (ruleStartState.isPrecedenceRule) {\r\n let parentContext = this._parentContextStack.pop();\r\n this.unrollRecursionContexts(parentContext[0]);\r\n this.state = parentContext[1];\r\n }\r\n else {\r\n this.exitRule();\r\n }\r\n let ruleTransition = this._atn.states[this.state].transition(0);\r\n this.state = ruleTransition.followState.stateNumber;\r\n }\r\n /** Override this parser interpreters normal decision-making process\r\n * at a particular decision and input token index. Instead of\r\n * allowing the adaptive prediction mechanism to choose the\r\n * first alternative within a block that leads to a successful parse,\r\n * force it to take the alternative, 1..n for n alternatives.\r\n *\r\n * As an implementation limitation right now, you can only specify one\r\n * override. This is sufficient to allow construction of different\r\n * parse trees for ambiguous input. It means re-parsing the entire input\r\n * in general because you're never sure where an ambiguous sequence would\r\n * live in the various parse trees. For example, in one interpretation,\r\n * an ambiguous input sequence would be matched completely in expression\r\n * but in another it could match all the way back to the root.\r\n *\r\n * s : e '!'? ;\r\n * e : ID\r\n * | ID '!'\r\n * ;\r\n *\r\n * Here, x! can be matched as (s (e ID) !) or (s (e ID !)). In the first\r\n * case, the ambiguous sequence is fully contained only by the root.\r\n * In the second case, the ambiguous sequences fully contained within just\r\n * e, as in: (e ID !).\r\n *\r\n * Rather than trying to optimize this and make\r\n * some intelligent decisions for optimization purposes, I settled on\r\n * just re-parsing the whole input and then using\r\n * {link Trees#getRootOfSubtreeEnclosingRegion} to find the minimal\r\n * subtree that contains the ambiguous sequence. I originally tried to\r\n * record the call stack at the point the parser detected and ambiguity but\r\n * left recursive rules create a parse tree stack that does not reflect\r\n * the actual call stack. That impedance mismatch was enough to make\r\n * it it challenging to restart the parser at a deeply nested rule\r\n * invocation.\r\n *\r\n * Only parser interpreters can override decisions so as to avoid inserting\r\n * override checking code in the critical ALL(*) prediction execution path.\r\n *\r\n * @since 4.5\r\n */\r\n addDecisionOverride(decision, tokenIndex, forcedAlt) {\r\n this.overrideDecision = decision;\r\n this.overrideDecisionInputIndex = tokenIndex;\r\n this.overrideDecisionAlt = forcedAlt;\r\n }\r\n get overrideDecisionRoot() {\r\n return this._overrideDecisionRoot;\r\n }\r\n /** Rely on the error handler for this parser but, if no tokens are consumed\r\n * to recover, add an error node. Otherwise, nothing is seen in the parse\r\n * tree.\r\n */\r\n recover(e) {\r\n let i = this._input.index;\r\n this.errorHandler.recover(this, e);\r\n if (this._input.index === i) {\r\n // no input consumed, better add an error node\r\n let tok = e.getOffendingToken();\r\n if (!tok) {\r\n throw new Error(\"Expected exception to have an offending token\");\r\n }\r\n let source = tok.tokenSource;\r\n let stream = source !== undefined ? source.inputStream : undefined;\r\n let sourcePair = { source, stream };\r\n if (e instanceof InputMismatchException_1.InputMismatchException) {\r\n let expectedTokens = e.expectedTokens;\r\n if (expectedTokens === undefined) {\r\n throw new Error(\"Expected the exception to provide expected tokens\");\r\n }\r\n let expectedTokenType = Token_1.Token.INVALID_TYPE;\r\n if (!expectedTokens.isNil) {\r\n // get any element\r\n expectedTokenType = expectedTokens.minElement;\r\n }\r\n let errToken = this.tokenFactory.create(sourcePair, expectedTokenType, tok.text, Token_1.Token.DEFAULT_CHANNEL, -1, -1, // invalid start/stop\r\n tok.line, tok.charPositionInLine);\r\n this._ctx.addErrorNode(this.createErrorNode(this._ctx, errToken));\r\n }\r\n else { // NoViableAlt\r\n let source = tok.tokenSource;\r\n let errToken = this.tokenFactory.create(sourcePair, Token_1.Token.INVALID_TYPE, tok.text, Token_1.Token.DEFAULT_CHANNEL, -1, -1, // invalid start/stop\r\n tok.line, tok.charPositionInLine);\r\n this._ctx.addErrorNode(this.createErrorNode(this._ctx, errToken));\r\n }\r\n }\r\n }\r\n recoverInline() {\r\n return this._errHandler.recoverInline(this);\r\n }\r\n /** Return the root of the parse, which can be useful if the parser\r\n * bails out. You still can access the top node. Note that,\r\n * because of the way left recursive rules add children, it's possible\r\n * that the root will not have any children if the start rule immediately\r\n * called and left recursive rule that fails.\r\n *\r\n * @since 4.5.1\r\n */\r\n get rootContext() {\r\n return this._rootContext;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserInterpreter.prototype, \"_vocabulary\", void 0);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"reset\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"atn\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"vocabulary\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"ruleNames\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"grammarFileName\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], ParserInterpreter.prototype, \"enterRecursionRule\", null);\r\nParserInterpreter = __decorate([\r\n __param(1, Decorators_1.NotNull)\r\n], ParserInterpreter);\r\nexports.ParserInterpreter = ParserInterpreter;\r\n//# sourceMappingURL=ParserInterpreter.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParseTreeMatch = void 0;\r\nconst Decorators_1 = require(\"../../Decorators\");\r\n/**\r\n * Represents the result of matching a {@link ParseTree} against a tree pattern.\r\n */\r\nlet ParseTreeMatch = class ParseTreeMatch {\r\n /**\r\n * Constructs a new instance of {@link ParseTreeMatch} from the specified\r\n * parse tree and pattern.\r\n *\r\n * @param tree The parse tree to match against the pattern.\r\n * @param pattern The parse tree pattern.\r\n * @param labels A mapping from label names to collections of\r\n * {@link ParseTree} objects located by the tree pattern matching process.\r\n * @param mismatchedNode The first node which failed to match the tree\r\n * pattern during the matching process.\r\n *\r\n * @throws {@link Error} if `tree` is not defined\r\n * @throws {@link Error} if `pattern` is not defined\r\n * @throws {@link Error} if `labels` is not defined\r\n */\r\n constructor(tree, pattern, labels, mismatchedNode) {\r\n if (!tree) {\r\n throw new Error(\"tree cannot be null\");\r\n }\r\n if (!pattern) {\r\n throw new Error(\"pattern cannot be null\");\r\n }\r\n if (!labels) {\r\n throw new Error(\"labels cannot be null\");\r\n }\r\n this._tree = tree;\r\n this._pattern = pattern;\r\n this._labels = labels;\r\n this._mismatchedNode = mismatchedNode;\r\n }\r\n /**\r\n * Get the last node associated with a specific `label`.\r\n *\r\n * For example, for pattern `<id:ID>`, `get(\"id\")` returns the\r\n * node matched for that `ID`. If more than one node\r\n * matched the specified label, only the last is returned. If there is\r\n * no node associated with the label, this returns `undefined`.\r\n *\r\n * Pattern tags like `<ID>` and `<expr>` without labels are\r\n * considered to be labeled with `ID` and `expr`, respectively.\r\n *\r\n * @param label The label to check.\r\n *\r\n * @returns The last {@link ParseTree} to match a tag with the specified\r\n * label, or `undefined` if no parse tree matched a tag with the label.\r\n */\r\n get(label) {\r\n let parseTrees = this._labels.get(label);\r\n if (!parseTrees || parseTrees.length === 0) {\r\n return undefined;\r\n }\r\n return parseTrees[parseTrees.length - 1]; // return last if multiple\r\n }\r\n /**\r\n * Return all nodes matching a rule or token tag with the specified label.\r\n *\r\n * If the `label` is the name of a parser rule or token in the\r\n * grammar, the resulting list will contain both the parse trees matching\r\n * rule or tags explicitly labeled with the label and the complete set of\r\n * parse trees matching the labeled and unlabeled tags in the pattern for\r\n * the parser rule or token. For example, if `label` is `\"foo\"`,\r\n * the result will contain *all* of the following.\r\n *\r\n * * Parse tree nodes matching tags of the form `<foo:anyRuleName>` and\r\n * `<foo:AnyTokenName>`.\r\n * * Parse tree nodes matching tags of the form `<anyLabel:foo>`.\r\n * * Parse tree nodes matching tags of the form `<foo>`.\r\n *\r\n * @param label The label.\r\n *\r\n * @returns A collection of all {@link ParseTree} nodes matching tags with\r\n * the specified `label`. If no nodes matched the label, an empty list\r\n * is returned.\r\n */\r\n getAll(label) {\r\n const nodes = this._labels.get(label);\r\n if (!nodes) {\r\n return [];\r\n }\r\n return nodes;\r\n }\r\n /**\r\n * Return a mapping from label &rarr; [list of nodes].\r\n *\r\n * The map includes special entries corresponding to the names of rules and\r\n * tokens referenced in tags in the original pattern. For additional\r\n * information, see the description of {@link #getAll(String)}.\r\n *\r\n * @returns A mapping from labels to parse tree nodes. If the parse tree\r\n * pattern did not contain any rule or token tags, this map will be empty.\r\n */\r\n get labels() {\r\n return this._labels;\r\n }\r\n /**\r\n * Get the node at which we first detected a mismatch.\r\n *\r\n * @returns the node at which we first detected a mismatch, or `undefined`\r\n * if the match was successful.\r\n */\r\n get mismatchedNode() {\r\n return this._mismatchedNode;\r\n }\r\n /**\r\n * Gets a value indicating whether the match operation succeeded.\r\n *\r\n * @returns `true` if the match operation succeeded; otherwise,\r\n * `false`.\r\n */\r\n get succeeded() {\r\n return !this._mismatchedNode;\r\n }\r\n /**\r\n * Get the tree pattern we are matching against.\r\n *\r\n * @returns The tree pattern we are matching against.\r\n */\r\n get pattern() {\r\n return this._pattern;\r\n }\r\n /**\r\n * Get the parse tree we are trying to match to a pattern.\r\n *\r\n * @returns The {@link ParseTree} we are trying to match to a pattern.\r\n */\r\n get tree() {\r\n return this._tree;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n */\r\n toString() {\r\n return `Match ${this.succeeded ? \"succeeded\" : \"failed\"}; found ${this.labels.size} labels`;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ParseTreeMatch.prototype, \"getAll\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreeMatch.prototype, \"labels\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreeMatch.prototype, \"pattern\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreeMatch.prototype, \"tree\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ParseTreeMatch.prototype, \"toString\", null);\r\nParseTreeMatch = __decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ParseTreeMatch);\r\nexports.ParseTreeMatch = ParseTreeMatch;\r\n//# sourceMappingURL=ParseTreeMatch.js.map","\"use strict\";\r\n// Generated from XPathLexer.g4 by ANTLR 4.9.0-SNAPSHOT\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathLexer = void 0;\r\nconst ATNDeserializer_1 = require(\"../../atn/ATNDeserializer\");\r\nconst Lexer_1 = require(\"../../Lexer\");\r\nconst LexerATNSimulator_1 = require(\"../../atn/LexerATNSimulator\");\r\nconst VocabularyImpl_1 = require(\"../../VocabularyImpl\");\r\nconst Utils = require(\"../../misc/Utils\");\r\nclass XPathLexer extends Lexer_1.Lexer {\r\n // tslint:enable:no-trailing-whitespace\r\n constructor(input) {\r\n super(input);\r\n this._interp = new LexerATNSimulator_1.LexerATNSimulator(XPathLexer._ATN, this);\r\n }\r\n // @Override\r\n // @NotNull\r\n get vocabulary() {\r\n return XPathLexer.VOCABULARY;\r\n }\r\n // @Override\r\n get grammarFileName() { return \"XPathLexer.g4\"; }\r\n // @Override\r\n get ruleNames() { return XPathLexer.ruleNames; }\r\n // @Override\r\n get serializedATN() { return XPathLexer._serializedATN; }\r\n // @Override\r\n get channelNames() { return XPathLexer.channelNames; }\r\n // @Override\r\n get modeNames() { return XPathLexer.modeNames; }\r\n // @Override\r\n action(_localctx, ruleIndex, actionIndex) {\r\n switch (ruleIndex) {\r\n case 4:\r\n this.ID_action(_localctx, actionIndex);\r\n break;\r\n }\r\n }\r\n ID_action(_localctx, actionIndex) {\r\n switch (actionIndex) {\r\n case 0:\r\n let text = this.text;\r\n if (text.charAt(0) === text.charAt(0).toUpperCase()) {\r\n this.type = XPathLexer.TOKEN_REF;\r\n }\r\n else {\r\n this.type = XPathLexer.RULE_REF;\r\n }\r\n break;\r\n }\r\n }\r\n static get _ATN() {\r\n if (!XPathLexer.__ATN) {\r\n XPathLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(XPathLexer._serializedATN));\r\n }\r\n return XPathLexer.__ATN;\r\n }\r\n}\r\nexports.XPathLexer = XPathLexer;\r\nXPathLexer.TOKEN_REF = 1;\r\nXPathLexer.RULE_REF = 2;\r\nXPathLexer.ANYWHERE = 3;\r\nXPathLexer.ROOT = 4;\r\nXPathLexer.WILDCARD = 5;\r\nXPathLexer.BANG = 6;\r\nXPathLexer.ID = 7;\r\nXPathLexer.STRING = 8;\r\n// tslint:disable:no-trailing-whitespace\r\nXPathLexer.channelNames = [\r\n \"DEFAULT_TOKEN_CHANNEL\", \"HIDDEN\",\r\n];\r\n// tslint:disable:no-trailing-whitespace\r\nXPathLexer.modeNames = [\r\n \"DEFAULT_MODE\",\r\n];\r\nXPathLexer.ruleNames = [\r\n \"ANYWHERE\", \"ROOT\", \"WILDCARD\", \"BANG\", \"ID\", \"NameChar\", \"NameStartChar\",\r\n \"STRING\",\r\n];\r\nXPathLexer._LITERAL_NAMES = [\r\n undefined, undefined, undefined, \"'//'\", \"'/'\", \"'*'\", \"'!'\",\r\n];\r\nXPathLexer._SYMBOLIC_NAMES = [\r\n undefined, \"TOKEN_REF\", \"RULE_REF\", \"ANYWHERE\", \"ROOT\", \"WILDCARD\", \"BANG\",\r\n \"ID\", \"STRING\",\r\n];\r\nXPathLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(XPathLexer._LITERAL_NAMES, XPathLexer._SYMBOLIC_NAMES, []);\r\nXPathLexer._serializedATNSegments = 2;\r\nXPathLexer._serializedATNSegment0 = \"\\x03\\uC91D\\uCABA\\u058D\\uAFBA\\u4F53\\u0607\\uEA8B\\uC241\\x02\\n2\\b\\x01\\x04\" +\r\n \"\\x02\\t\\x02\\x04\\x03\\t\\x03\\x04\\x04\\t\\x04\\x04\\x05\\t\\x05\\x04\\x06\\t\\x06\\x04\" +\r\n \"\\x07\\t\\x07\\x04\\b\\t\\b\\x04\\t\\t\\t\\x03\\x02\\x03\\x02\\x03\\x02\\x03\\x03\\x03\\x03\" +\r\n \"\\x03\\x04\\x03\\x04\\x03\\x05\\x03\\x05\\x03\\x06\\x03\\x06\\x07\\x06\\x1F\\n\\x06\\f\\x06\" +\r\n \"\\x0E\\x06\\\"\\v\\x06\\x03\\x06\\x03\\x06\\x03\\x07\\x03\\x07\\x03\\b\\x03\\b\\x03\\t\\x03\" +\r\n \"\\t\\x07\\t,\\n\\t\\f\\t\\x0E\\t/\\v\\t\\x03\\t\\x03\\t\\x03-\\x02\\x02\\n\\x03\\x02\\x05\\x05\" +\r\n \"\\x02\\x06\\x07\\x02\\x07\\t\\x02\\b\\v\\x02\\t\\r\\x02\\x02\\x0F\\x02\\x02\\x11\\x02\\n\\x03\" +\r\n \"\\x02\\x02\\x04\\u02B6\\x02\\x02\\x02\\n\\x02\\x10\\x02\\x1D\\x022\\x02;\\x02C\\x02\\\\\" +\r\n \"\\x02a\\x02a\\x02c\\x02|\\x02\\x81\\x02\\xA1\\x02\\xAC\\x02\\xAC\\x02\\xAF\\x02\\xAF\\x02\" +\r\n \"\\xB7\\x02\\xB7\\x02\\xBC\\x02\\xBC\\x02\\xC2\\x02\\xD8\\x02\\xDA\\x02\\xF8\\x02\\xFA\\x02\" +\r\n \"\\u02C3\\x02\\u02C8\\x02\\u02D3\\x02\\u02E2\\x02\\u02E6\\x02\\u02EE\\x02\\u02EE\\x02\" +\r\n \"\\u02F0\\x02\\u02F0\\x02\\u0302\\x02\\u0376\\x02\\u0378\\x02\\u0379\\x02\\u037C\\x02\" +\r\n \"\\u037F\\x02\\u0381\\x02\\u0381\\x02\\u0388\\x02\\u0388\\x02\\u038A\\x02\\u038C\\x02\" +\r\n \"\\u038E\\x02\\u038E\\x02\\u0390\\x02\\u03A3\\x02\\u03A5\\x02\\u03F7\\x02\\u03F9\\x02\" +\r\n \"\\u0483\\x02\\u0485\\x02\\u0489\\x02\\u048C\\x02\\u0531\\x02\\u0533\\x02\\u0558\\x02\" +\r\n \"\\u055B\\x02\\u055B\\x02\\u0563\\x02\\u0589\\x02\\u0593\\x02\\u05BF\\x02\\u05C1\\x02\" +\r\n \"\\u05C1\\x02\\u05C3\\x02\\u05C4\\x02\\u05C6\\x02\\u05C7\\x02\\u05C9\\x02\\u05C9\\x02\" +\r\n \"\\u05D2\\x02\\u05EC\\x02\\u05F2\\x02\\u05F4\\x02\\u0602\\x02\\u0607\\x02\\u0612\\x02\" +\r\n \"\\u061C\\x02\\u061E\\x02\\u061E\\x02\\u0622\\x02\\u066B\\x02\\u0670\\x02\\u06D5\\x02\" +\r\n \"\\u06D7\\x02\\u06DF\\x02\\u06E1\\x02\\u06EA\\x02\\u06EC\\x02\\u06FE\\x02\\u0701\\x02\" +\r\n \"\\u0701\\x02\\u0711\\x02\\u074C\\x02\\u074F\\x02\\u07B3\\x02\\u07C2\\x02\\u07F7\\x02\" +\r\n \"\\u07FC\\x02\\u07FC\\x02\\u0802\\x02\\u082F\\x02\\u0842\\x02\\u085D\\x02\\u08A2\\x02\" +\r\n \"\\u08B6\\x02\\u08B8\\x02\\u08BF\\x02\\u08D6\\x02\\u0965\\x02\\u0968\\x02\\u0971\\x02\" +\r\n \"\\u0973\\x02\\u0985\\x02\\u0987\\x02\\u098E\\x02\\u0991\\x02\\u0992\\x02\\u0995\\x02\" +\r\n \"\\u09AA\\x02\\u09AC\\x02\\u09B2\\x02\\u09B4\\x02\\u09B4\\x02\\u09B8\\x02\\u09BB\\x02\" +\r\n \"\\u09BE\\x02\\u09C6\\x02\\u09C9\\x02\\u09CA\\x02\\u09CD\\x02\\u09D0\\x02\\u09D9\\x02\" +\r\n \"\\u09D9\\x02\\u09DE\\x02\\u09DF\\x02\\u09E1\\x02\\u09E5\\x02\\u09E8\\x02\\u09F3\\x02\" +\r\n \"\\u0A03\\x02\\u0A05\\x02\\u0A07\\x02\\u0A0C\\x02\\u0A11\\x02\\u0A12\\x02\\u0A15\\x02\" +\r\n \"\\u0A2A\\x02\\u0A2C\\x02\\u0A32\\x02\\u0A34\\x02\\u0A35\\x02\\u0A37\\x02\\u0A38\\x02\" +\r\n \"\\u0A3A\\x02\\u0A3B\\x02\\u0A3E\\x02\\u0A3E\\x02\\u0A40\\x02\\u0A44\\x02\\u0A49\\x02\" +\r\n \"\\u0A4A\\x02\\u0A4D\\x02\\u0A4F\\x02\\u0A53\\x02\\u0A53\\x02\\u0A5B\\x02\\u0A5E\\x02\" +\r\n \"\\u0A60\\x02\\u0A60\\x02\\u0A68\\x02\\u0A77\\x02\\u0A83\\x02\\u0A85\\x02\\u0A87\\x02\" +\r\n \"\\u0A8F\\x02\\u0A91\\x02\\u0A93\\x02\\u0A95\\x02\\u0AAA\\x02\\u0AAC\\x02\\u0AB2\\x02\" +\r\n \"\\u0AB4\\x02\\u0AB5\\x02\\u0AB7\\x02\\u0ABB\\x02\\u0ABE\\x02\\u0AC7\\x02\\u0AC9\\x02\" +\r\n \"\\u0ACB\\x02\\u0ACD\\x02\\u0ACF\\x02\\u0AD2\\x02\\u0AD2\\x02\\u0AE2\\x02\\u0AE5\\x02\" +\r\n \"\\u0AE8\\x02\\u0AF1\\x02\\u0AFB\\x02\\u0AFB\\x02\\u0B03\\x02\\u0B05\\x02\\u0B07\\x02\" +\r\n \"\\u0B0E\\x02\\u0B11\\x02\\u0B12\\x02\\u0B15\\x02\\u0B2A\\x02\\u0B2C\\x02\\u0B32\\x02\" +\r\n \"\\u0B34\\x02\\u0B35\\x02\\u0B37\\x02\\u0B3B\\x02\\u0B3E\\x02\\u0B46\\x02\\u0B49\\x02\" +\r\n \"\\u0B4A\\x02\\u0B4D\\x02\\u0B4F\\x02\\u0B58\\x02\\u0B59\\x02\\u0B5E\\x02\\u0B5F\\x02\" +\r\n \"\\u0B61\\x02\\u0B65\\x02\\u0B68\\x02\\u0B71\\x02\\u0B73\\x02\\u0B73\\x02\\u0B84\\x02\" +\r\n \"\\u0B85\\x02\\u0B87\\x02\\u0B8C\\x02\\u0B90\\x02\\u0B92\\x02\\u0B94\\x02\\u0B97\\x02\" +\r\n \"\\u0B9B\\x02\\u0B9C\\x02\\u0B9E\\x02\\u0B9E\\x02\\u0BA0\\x02\\u0BA1\\x02\\u0BA5\\x02\" +\r\n \"\\u0BA6\\x02\\u0BAA\\x02\\u0BAC\\x02\\u0BB0\\x02\\u0BBB\\x02\\u0BC0\\x02\\u0BC4\\x02\" +\r\n \"\\u0BC8\\x02\\u0BCA\\x02\\u0BCC\\x02\\u0BCF\\x02\\u0BD2\\x02\\u0BD2\\x02\\u0BD9\\x02\" +\r\n \"\\u0BD9\\x02\\u0BE8\\x02\\u0BF1\\x02\\u0C02\\x02\\u0C05\\x02\\u0C07\\x02\\u0C0E\\x02\" +\r\n \"\\u0C10\\x02\\u0C12\\x02\\u0C14\\x02\\u0C2A\\x02\\u0C2C\\x02\\u0C3B\\x02\\u0C3F\\x02\" +\r\n \"\\u0C46\\x02\\u0C48\\x02\\u0C4A\\x02\\u0C4C\\x02\\u0C4F\\x02\\u0C57\\x02\\u0C58\\x02\" +\r\n \"\\u0C5A\\x02\\u0C5C\\x02\\u0C62\\x02\\u0C65\\x02\\u0C68\\x02\\u0C71\\x02\\u0C82\\x02\" +\r\n \"\\u0C85\\x02\\u0C87\\x02\\u0C8E\\x02\\u0C90\\x02\\u0C92\\x02\\u0C94\\x02\\u0CAA\\x02\" +\r\n \"\\u0CAC\\x02\\u0CB5\\x02\\u0CB7\\x02\\u0CBB\\x02\\u0CBE\\x02\\u0CC6\\x02\\u0CC8\\x02\" +\r\n \"\\u0CCA\\x02\\u0CCC\\x02\\u0CCF\\x02\\u0CD7\\x02\\u0CD8\\x02\\u0CE0\\x02\\u0CE0\\x02\" +\r\n \"\\u0CE2\\x02\\u0CE5\\x02\\u0CE8\\x02\\u0CF1\\x02\\u0CF3\\x02\\u0CF4\\x02\\u0D03\\x02\" +\r\n \"\\u0D05\\x02\\u0D07\\x02\\u0D0E\\x02\\u0D10\\x02\\u0D12\\x02\\u0D14\\x02\\u0D3C\\x02\" +\r\n \"\\u0D3F\\x02\\u0D46\\x02\\u0D48\\x02\\u0D4A\\x02\\u0D4C\\x02\\u0D50\\x02\\u0D56\\x02\" +\r\n \"\\u0D59\\x02\\u0D61\\x02\\u0D65\\x02\\u0D68\\x02\\u0D71\\x02\\u0D7C\\x02\\u0D81\\x02\" +\r\n \"\\u0D84\\x02\\u0D85\\x02\\u0D87\\x02\\u0D98\\x02\\u0D9C\\x02\\u0DB3\\x02\\u0DB5\\x02\" +\r\n \"\\u0DBD\\x02\\u0DBF\\x02\\u0DBF\\x02\\u0DC2\\x02\\u0DC8\\x02\\u0DCC\\x02\\u0DCC\\x02\" +\r\n \"\\u0DD1\\x02\\u0DD6\\x02\\u0DD8\\x02\\u0DD8\\x02\\u0DDA\\x02\\u0DE1\\x02\\u0DE8\\x02\" +\r\n \"\\u0DF1\\x02\\u0DF4\\x02\\u0DF5\\x02\\u0E03\\x02\\u0E3C\\x02\\u0E42\\x02\\u0E50\\x02\" +\r\n \"\\u0E52\\x02\\u0E5B\\x02\\u0E83\\x02\\u0E84\\x02\\u0E86\\x02\\u0E86\\x02\\u0E89\\x02\" +\r\n \"\\u0E8A\\x02\\u0E8C\\x02\\u0E8C\\x02\\u0E8F\\x02\\u0E8F\\x02\\u0E96\\x02\\u0E99\\x02\" +\r\n \"\\u0E9B\\x02\\u0EA1\\x02\\u0EA3\\x02\\u0EA5\\x02\\u0EA7\\x02\\u0EA7\\x02\\u0EA9\\x02\" +\r\n \"\\u0EA9\\x02\\u0EAC\\x02\\u0EAD\\x02\\u0EAF\\x02\\u0EBB\\x02\\u0EBD\\x02\\u0EBF\\x02\" +\r\n \"\\u0EC2\\x02\\u0EC6\\x02\\u0EC8\\x02\\u0EC8\\x02\\u0ECA\\x02\\u0ECF\\x02\\u0ED2\\x02\" +\r\n \"\\u0EDB\\x02\\u0EDE\\x02\\u0EE1\\x02\\u0F02\\x02\\u0F02\\x02\\u0F1A\\x02\\u0F1B\\x02\" +\r\n \"\\u0F22\\x02\\u0F2B\\x02\\u0F37\\x02\\u0F37\\x02\\u0F39\\x02\\u0F39\\x02\\u0F3B\\x02\" +\r\n \"\\u0F3B\\x02\\u0F40\\x02\\u0F49\\x02\\u0F4B\\x02\\u0F6E\\x02\\u0F73\\x02\\u0F86\\x02\" +\r\n \"\\u0F88\\x02\\u0F99\\x02\\u0F9B\\x02\\u0FBE\\x02\\u0FC8\\x02\\u0FC8\\x02\\u1002\\x02\" +\r\n \"\\u104B\\x02\\u1052\\x02\\u109F\\x02\\u10A2\\x02\\u10C7\\x02\\u10C9\\x02\\u10C9\\x02\" +\r\n \"\\u10CF\\x02\\u10CF\\x02\\u10D2\\x02\\u10FC\\x02\\u10FE\\x02\\u124A\\x02\\u124C\\x02\" +\r\n \"\\u124F\\x02\\u1252\\x02\\u1258\\x02\\u125A\\x02\\u125A\\x02\\u125C\\x02\\u125F\\x02\" +\r\n \"\\u1262\\x02\\u128A\\x02\\u128C\\x02\\u128F\\x02\\u1292\\x02\\u12B2\\x02\\u12B4\\x02\" +\r\n \"\\u12B7\\x02\\u12BA\\x02\\u12C0\\x02\\u12C2\\x02\\u12C2\\x02\\u12C4\\x02\\u12C7\\x02\" +\r\n \"\\u12CA\\x02\\u12D8\\x02\\u12DA\\x02\\u1312\\x02\\u1314\\x02\\u1317\\x02\\u131A\\x02\" +\r\n \"\\u135C\\x02\\u135F\\x02\\u1361\\x02\\u1382\\x02\\u1391\\x02\\u13A2\\x02\\u13F7\\x02\" +\r\n \"\\u13FA\\x02\\u13FF\\x02\\u1403\\x02\\u166E\\x02\\u1671\\x02\\u1681\\x02\\u1683\\x02\" +\r\n \"\\u169C\\x02\\u16A2\\x02\\u16EC\\x02\\u16F0\\x02\\u16FA\\x02\\u1702\\x02\\u170E\\x02\" +\r\n \"\\u1710\\x02\\u1716\\x02\\u1722\\x02\\u1736\\x02\\u1742\\x02\\u1755\\x02\\u1762\\x02\" +\r\n \"\\u176E\\x02\\u1770\\x02\\u1772\\x02\\u1774\\x02\\u1775\\x02\\u1782\\x02\\u17D5\\x02\" +\r\n \"\\u17D9\\x02\\u17D9\\x02\\u17DE\\x02\\u17DF\\x02\\u17E2\\x02\\u17EB\\x02\\u180D\\x02\" +\r\n \"\\u1810\\x02\\u1812\\x02\\u181B\\x02\\u1822\\x02\\u1879\\x02\\u1882\\x02\\u18AC\\x02\" +\r\n \"\\u18B2\\x02\\u18F7\\x02\\u1902\\x02\\u1920\\x02\\u1922\\x02\\u192D\\x02\\u1932\\x02\" +\r\n \"\\u193D\\x02\\u1948\\x02\\u196F\\x02\\u1972\\x02\\u1976\\x02\\u1982\\x02\\u19AD\\x02\" +\r\n \"\\u19B2\\x02\\u19CB\\x02\\u19D2\\x02\\u19DB\\x02\\u1A02\\x02\\u1A1D\\x02\\u1A22\\x02\" +\r\n \"\\u1A60\\x02\\u1A62\\x02\\u1A7E\\x02\\u1A81\\x02\\u1A8B\\x02\\u1A92\\x02\\u1A9B\\x02\" +\r\n \"\\u1AA9\\x02\\u1AA9\\x02\\u1AB2\\x02\\u1ABF\\x02\\u1B02\\x02\\u1B4D\\x02\\u1B52\\x02\" +\r\n \"\\u1B5B\\x02\\u1B6D\\x02\\u1B75\\x02\\u1B82\\x02\\u1BF5\\x02\\u1C02\\x02\\u1C39\\x02\" +\r\n \"\\u1C42\\x02\\u1C4B\\x02\\u1C4F\\x02\\u1C7F\\x02\\u1C82\\x02\\u1C8A\\x02\\u1CD2\\x02\" +\r\n \"\\u1CD4\\x02\\u1CD6\\x02\\u1CF8\\x02\\u1CFA\\x02\\u1CFB\\x02\\u1D02\\x02\\u1DF7\\x02\" +\r\n \"\\u1DFD\\x02\\u1F17\\x02\\u1F1A\\x02\\u1F1F\\x02\\u1F22\\x02\\u1F47\\x02\\u1F4A\\x02\" +\r\n \"\\u1F4F\\x02\\u1F52\\x02\\u1F59\\x02\\u1F5B\\x02\\u1F5B\\x02\\u1F5D\\x02\\u1F5D\\x02\" +\r\n \"\\u1F5F\\x02\\u1F5F\\x02\\u1F61\\x02\\u1F7F\\x02\\u1F82\\x02\\u1FB6\\x02\\u1FB8\\x02\" +\r\n \"\\u1FBE\\x02\\u1FC0\\x02\\u1FC0\\x02\\u1FC4\\x02\\u1FC6\\x02\\u1FC8\\x02\\u1FCE\\x02\" +\r\n \"\\u1FD2\\x02\\u1FD5\\x02\\u1FD8\\x02\\u1FDD\\x02\\u1FE2\\x02\\u1FEE\\x02\\u1FF4\\x02\" +\r\n \"\\u1FF6\\x02\\u1FF8\\x02\\u1FFE\\x02\\u200D\\x02\\u2011\\x02\\u202C\\x02\\u2030\\x02\" +\r\n \"\\u2041\\x02\\u2042\\x02\\u2056\\x02\\u2056\\x02\\u2062\\x02\\u2066\\x02\\u2068\\x02\" +\r\n \"\\u2071\\x02\\u2073\\x02\\u2073\\x02\\u2081\\x02\\u2081\\x02\\u2092\\x02\\u209E\\x02\" +\r\n \"\\u20D2\\x02\\u20DE\\x02\\u20E3\\x02\\u20E3\\x02\\u20E7\\x02\\u20F2\\x02\\u2104\\x02\" +\r\n \"\\u2104\\x02\\u2109\\x02\\u2109\\x02\\u210C\\x02\\u2115\\x02\\u2117\\x02\\u2117\\x02\" +\r\n \"\\u211B\\x02\\u211F\\x02\\u2126\\x02\\u2126\\x02\\u2128\\x02\\u2128\\x02\\u212A\\x02\" +\r\n \"\\u212A\\x02\\u212C\\x02\\u212F\\x02\\u2131\\x02\\u213B\\x02\\u213E\\x02\\u2141\\x02\" +\r\n \"\\u2147\\x02\\u214B\\x02\\u2150\\x02\\u2150\\x02\\u2162\\x02\\u218A\\x02\\u2C02\\x02\" +\r\n \"\\u2C30\\x02\\u2C32\\x02\\u2C60\\x02\\u2C62\\x02\\u2CE6\\x02\\u2CED\\x02\\u2CF5\\x02\" +\r\n \"\\u2D02\\x02\\u2D27\\x02\\u2D29\\x02\\u2D29\\x02\\u2D2F\\x02\\u2D2F\\x02\\u2D32\\x02\" +\r\n \"\\u2D69\\x02\\u2D71\\x02\\u2D71\\x02\\u2D81\\x02\\u2D98\\x02\\u2DA2\\x02\\u2DA8\\x02\" +\r\n \"\\u2DAA\\x02\\u2DB0\\x02\\u2DB2\\x02\\u2DB8\\x02\\u2DBA\\x02\\u2DC0\\x02\\u2DC2\\x02\" +\r\n \"\\u2DC8\\x02\\u2DCA\\x02\\u2DD0\\x02\\u2DD2\\x02\\u2DD8\\x02\\u2DDA\\x02\\u2DE0\\x02\" +\r\n \"\\u2DE2\\x02\\u2E01\\x02\\u2E31\\x02\\u2E31\\x02\\u3007\\x02\\u3009\\x02\\u3023\\x02\" +\r\n \"\\u3031\\x02\\u3033\\x02\\u3037\\x02\\u303A\\x02\\u303E\\x02\\u3043\\x02\\u3098\\x02\" +\r\n \"\\u309B\\x02\\u309C\\x02\\u309F\\x02\\u30A1\\x02\\u30A3\\x02\\u30FC\\x02\\u30FE\\x02\" +\r\n \"\\u3101\\x02\\u3107\\x02\\u312F\\x02\\u3133\\x02\\u3190\\x02\\u31A2\\x02\\u31BC\\x02\" +\r\n \"\\u31F2\\x02\\u3201\\x02\\u3402\\x02\\u4DB7\\x02\\u4E02\\x02\\u9FD7\\x02\\uA002\\x02\" +\r\n \"\\uA48E\\x02\\uA4D2\\x02\\uA4FF\\x02\\uA502\\x02\\uA60E\\x02\\uA612\\x02\\uA62D\\x02\" +\r\n \"\\uA642\\x02\\uA671\\x02\\uA676\\x02\\uA67F\\x02\\uA681\\x02\\uA6F3\\x02\\uA719\\x02\" +\r\n \"\\uA721\\x02\\uA724\\x02\\uA78A\\x02\\uA78D\\x02\\uA7B0\\x02\\uA7B2\\x02\\uA7B9\\x02\" +\r\n \"\\uA7F9\\x02\\uA829\\x02\\uA842\\x02\\uA875\\x02\\uA882\\x02\\uA8C7\\x02\\uA8D2\\x02\" +\r\n \"\\uA8DB\\x02\\uA8E2\\x02\\uA8F9\\x02\\uA8FD\\x02\\uA8FD\\x02\\uA8FF\\x02\\uA8FF\\x02\" +\r\n \"\\uA902\\x02\\uA92F\\x02\\uA932\\x02\\uA955\\x02\\uA962\\x02\\uA97E\\x02\\uA982\\x02\" +\r\n \"\\uA9C2\\x02\\uA9D1\\x02\\uA9DB\\x02\\uA9E2\\x02\\uAA00\\x02\\uAA02\\x02\\uAA38\\x02\" +\r\n \"\\uAA42\\x02\\uAA4F\\x02\\uAA52\\x02\\uAA5B\\x02\\uAA62\\x02\\uAA78\\x02\\uAA7C\\x02\" +\r\n \"\\uAAC4\\x02\\uAADD\\x02\\uAADF\\x02\\uAAE2\\x02\\uAAF1\\x02\\uAAF4\\x02\\uAAF8\\x02\" +\r\n \"\\uAB03\\x02\\uAB08\\x02\\uAB0B\\x02\\uAB10\\x02\\uAB13\\x02\\uAB18\\x02\\uAB22\\x02\" +\r\n \"\\uAB28\\x02\\uAB2A\\x02\\uAB30\\x02\\uAB32\\x02\\uAB5C\\x02\\uAB5E\\x02\\uAB67\\x02\" +\r\n \"\\uAB72\\x02\\uABEC\\x02\\uABEE\\x02\\uABEF\\x02\\uABF2\\x02\\uABFB\\x02\\uAC02\\x02\" +\r\n \"\\uD7A5\\x02\\uD7B2\\x02\\uD7C8\\x02\\uD7CD\\x02\\uD7FD\\x02\\uF902\\x02\\uFA6F\\x02\" +\r\n \"\\uFA72\\x02\\uFADB\\x02\\uFB02\\x02\\uFB08\\x02\\uFB15\\x02\\uFB19\\x02\\uFB1F\\x02\" +\r\n \"\\uFB2A\\x02\\uFB2C\\x02\\uFB38\\x02\\uFB3A\\x02\\uFB3E\\x02\\uFB40\\x02\\uFB40\\x02\" +\r\n \"\\uFB42\\x02\\uFB43\\x02\\uFB45\\x02\\uFB46\\x02\\uFB48\\x02\\uFBB3\\x02\\uFBD5\\x02\" +\r\n \"\\uFD3F\\x02\\uFD52\\x02\\uFD91\\x02\\uFD94\\x02\\uFDC9\\x02\\uFDF2\\x02\\uFDFD\\x02\" +\r\n \"\\uFE02\\x02\\uFE11\\x02\\uFE22\\x02\\uFE31\\x02\\uFE35\\x02\\uFE36\\x02\\uFE4F\\x02\" +\r\n \"\\uFE51\\x02\\uFE72\\x02\\uFE76\\x02\\uFE78\\x02\\uFEFE\\x02\\uFF01\\x02\\uFF01\\x02\" +\r\n \"\\uFF12\\x02\\uFF1B\\x02\\uFF23\\x02\\uFF3C\\x02\\uFF41\\x02\\uFF41\\x02\\uFF43\\x02\" +\r\n \"\\uFF5C\\x02\\uFF68\\x02\\uFFC0\\x02\\uFFC4\\x02\\uFFC9\\x02\\uFFCC\\x02\\uFFD1\\x02\" +\r\n \"\\uFFD4\\x02\\uFFD9\\x02\\uFFDC\\x02\\uFFDE\\x02\\uFFFB\\x02\\uFFFD\\x02\\x02\\x03\\r\" +\r\n \"\\x03\\x0F\\x03(\\x03*\\x03<\\x03>\\x03?\\x03A\\x03O\\x03R\\x03_\\x03\\x82\\x03\\xFC\" +\r\n \"\\x03\\u0142\\x03\\u0176\\x03\\u01FF\\x03\\u01FF\\x03\\u0282\\x03\\u029E\\x03\\u02A2\" +\r\n \"\\x03\\u02D2\\x03\\u02E2\\x03\\u02E2\\x03\\u0302\\x03\\u0321\\x03\\u0332\\x03\\u034C\" +\r\n \"\\x03\\u0352\\x03\\u037C\\x03\\u0382\\x03\\u039F\\x03\\u03A2\\x03\\u03C5\\x03\\u03CA\" +\r\n \"\\x03\\u03D1\\x03\\u03D3\\x03\\u03D7\\x03\\u0402\\x03\\u049F\\x03\\u04A2\\x03\\u04AB\" +\r\n \"\\x03\\u04B2\\x03\\u04D5\\x03\\u04DA\\x03\\u04FD\\x03\\u0502\\x03\\u0529\\x03\\u0532\" +\r\n \"\\x03\\u0565\\x03\\u0602\\x03\\u0738\\x03\\u0742\\x03\\u0757\\x03\\u0762\\x03\\u0769\" +\r\n \"\\x03\\u0802\\x03\\u0807\\x03\\u080A\\x03\\u080A\\x03\\u080C\\x03\\u0837\\x03\\u0839\" +\r\n \"\\x03\\u083A\\x03\\u083E\\x03\\u083E\\x03\\u0841\\x03\\u0857\\x03\\u0862\\x03\\u0878\" +\r\n \"\\x03\\u0882\\x03\\u08A0\\x03\\u08E2\\x03\\u08F4\\x03\\u08F6\\x03\\u08F7\\x03\\u0902\" +\r\n \"\\x03\\u0917\\x03\\u0922\\x03\\u093B\\x03\\u0982\\x03\\u09B9\\x03\\u09C0\\x03\\u09C1\" +\r\n \"\\x03\\u0A02\\x03\\u0A05\\x03\\u0A07\\x03\\u0A08\\x03\\u0A0E\\x03\\u0A15\\x03\\u0A17\" +\r\n \"\\x03\\u0A19\\x03\\u0A1B\\x03\\u0A35\\x03\\u0A3A\\x03\\u0A3C\\x03\\u0A41\\x03\\u0A41\" +\r\n \"\\x03\\u0A62\\x03\\u0A7E\\x03\\u0A82\\x03\\u0A9E\\x03\\u0AC2\\x03\\u0AC9\\x03\\u0ACB\" +\r\n \"\\x03\\u0AE8\\x03\\u0B02\\x03\\u0B37\\x03\\u0B42\\x03\\u0B57\\x03\\u0B62\\x03\\u0B74\" +\r\n \"\\x03\\u0B82\\x03\\u0B93\\x03\\u0C02\\x03\\u0C4A\\x03\\u0C82\\x03\\u0CB4\\x03\\u0CC2\" +\r\n \"\\x03\\u0CF4\\x03\\u1002\\x03\\u1048\\x03\\u1068\\x03\\u1071\\x03\\u1081\\x03\\u10BC\" +\r\n \"\\x03\\u10BF\\x03\\u10BF\\x03\\u10D2\\x03\\u10EA\\x03\\u10F2\\x03\\u10FB\\x03\\u1102\" +\r\n \"\\x03\\u1136\\x03\\u1138\\x03\\u1141\\x03\\u1152\\x03\\u1175\\x03\\u1178\\x03\\u1178\" +\r\n \"\\x03\\u1182\\x03\\u11C6\\x03\\u11CC\\x03\\u11CE\\x03\\u11D2\\x03\\u11DC\\x03\\u11DE\" +\r\n \"\\x03\\u11DE\\x03\\u1202\\x03\\u1213\\x03\\u1215\\x03\\u1239\\x03\\u1240\\x03\\u1240\" +\r\n \"\\x03\\u1282\\x03\\u1288\\x03\\u128A\\x03\\u128A\\x03\\u128C\\x03\\u128F\\x03\\u1291\" +\r\n \"\\x03\\u129F\\x03\\u12A1\\x03\\u12AA\\x03\\u12B2\\x03\\u12EC\\x03\\u12F2\\x03\\u12FB\" +\r\n \"\\x03\\u1302\\x03\\u1305\\x03\\u1307\\x03\\u130E\\x03\\u1311\\x03\\u1312\\x03\\u1315\" +\r\n \"\\x03\\u132A\\x03\\u132C\\x03\\u1332\\x03\\u1334\\x03\\u1335\\x03\\u1337\\x03\\u133B\" +\r\n \"\\x03\\u133E\\x03\\u1346\\x03\\u1349\\x03\\u134A\\x03\\u134D\\x03\\u134F\\x03\\u1352\" +\r\n \"\\x03\\u1352\\x03\\u1359\\x03\\u1359\\x03\\u135F\\x03\\u1365\\x03\\u1368\\x03\\u136E\" +\r\n \"\\x03\\u1372\\x03\\u1376\\x03\\u1402\\x03\\u144C\\x03\\u1452\\x03\\u145B\\x03\\u1482\" +\r\n \"\\x03\\u14C7\\x03\\u14C9\\x03\\u14C9\\x03\\u14D2\\x03\\u14DB\\x03\\u1582\\x03\\u15B7\" +\r\n \"\\x03\\u15BA\\x03\\u15C2\\x03\\u15DA\\x03\\u15DF\\x03\\u1602\\x03\\u1642\\x03\\u1646\" +\r\n \"\\x03\\u1646\\x03\\u1652\\x03\\u165B\\x03\\u1682\\x03\\u16B9\\x03\\u16C2\\x03\\u16CB\" +\r\n \"\\x03\\u1702\\x03\\u171B\\x03\\u171F\\x03\\u172D\\x03\\u1732\\x03\\u173B\\x03\\u18A2\" +\r\n \"\\x03\\u18EB\\x03\\u1901\\x03\\u1901\\x03\\u1AC2\\x03\\u1AFA\\x03\\u1C02\\x03\\u1C0A\" +\r\n \"\\x03\\u1C0C\\x03\\u1C38\\x03\\u1C3A\\x03\\u1C42\\x03\\u1C52\\x03\\u1C5B\\x03\\u1C74\" +\r\n \"\\x03\\u1C91\\x03\\u1C94\\x03\\u1CA9\\x03\\u1CAB\\x03\\u1CB8\\x03\\u2002\\x03\\u239B\" +\r\n \"\\x03\\u2402\\x03\\u2470\\x03\\u2482\\x03\\u2545\\x03\\u3002\\x03\\u3430\\x03\\u4402\" +\r\n \"\\x03\\u4648\\x03\\u6802\\x03\\u6A3A\\x03\\u6A42\\x03\\u6A60\\x03\\u6A62\\x03\\u6A6B\" +\r\n \"\\x03\\u6AD2\\x03\\u6AEF\\x03\\u6AF2\\x03\\u6AF6\\x03\\u6B02\\x03\\u6B38\\x03\\u6B42\" +\r\n \"\\x03\\u6B45\\x03\\u6B52\\x03\\u6B5B\\x03\\u6B65\\x03\\u6B79\\x03\\u6B7F\\x03\\u6B91\" +\r\n \"\\x03\\u6F02\\x03\\u6F46\\x03\\u6F52\\x03\\u6F80\\x03\\u6F91\\x03\\u6FA1\\x03\\u6FE2\" +\r\n \"\\x03\\u6FE2\\x03\\u7002\\x03\\u87EE\\x03\\u8802\\x03\\u8AF4\\x03\\uB002\\x03\\uB003\" +\r\n \"\\x03\\uBC02\\x03\\uBC6C\\x03\\uBC72\\x03\\uBC7E\\x03\\uBC82\\x03\\uBC8A\\x03\\uBC92\" +\r\n \"\\x03\\uBC9B\\x03\\uBC9F\\x03\\uBCA0\\x03\\uBCA2\\x03\\uBCA5\\x03\\uD167\\x03\\uD16B\" +\r\n \"\\x03\\uD16F\\x03\\uD184\\x03\\uD187\\x03\\uD18D\\x03\\uD1AC\\x03\\uD1AF\\x03\\uD244\" +\r\n \"\\x03\\uD246\\x03\\uD402\\x03\\uD456\\x03\\uD458\\x03\\uD49E\\x03\\uD4A0\\x03\\uD4A1\" +\r\n \"\\x03\\uD4A4\\x03\\uD4A4\\x03\\uD4A7\\x03\\uD4A8\\x03\\uD4AB\\x03\\uD4AE\\x03\\uD4B0\" +\r\n \"\\x03\\uD4BB\\x03\\uD4BD\\x03\\uD4BD\\x03\\uD4BF\\x03\\uD4C5\\x03\\uD4C7\\x03\\uD507\" +\r\n \"\\x03\\uD509\\x03\\uD50C\\x03\\uD50F\\x03\\uD516\\x03\\uD518\\x03\\uD51E\\x03\\uD520\" +\r\n \"\\x03\\uD53B\\x03\\uD53D\\x03\\uD540\\x03\\uD542\\x03\\uD546\\x03\\uD548\\x03\\uD548\" +\r\n \"\\x03\\uD54C\\x03\\uD552\\x03\\uD554\\x03\\uD6A7\\x03\\uD6AA\\x03\\uD6C2\\x03\\uD6C4\" +\r\n \"\\x03\\uD6DC\\x03\\uD6DE\\x03\\uD6FC\\x03\\uD6FE\\x03\\uD716\\x03\\uD718\\x03\\uD736\" +\r\n \"\\x03\\uD738\\x03\\uD750\\x03\\uD752\\x03\\uD770\\x03\\uD772\\x03\\uD78A\\x03\\uD78C\" +\r\n \"\\x03\\uD7AA\\x03\\uD7AC\\x03\\uD7C4\\x03\\uD7C6\\x03\\uD7CD\\x03\\uD7D0\\x03\\uD801\" +\r\n \"\\x03\\uDA02\\x03\\uDA38\\x03\\uDA3D\\x03\\uDA6E\\x03\\uDA77\\x03\\uDA77\\x03\\uDA86\" +\r\n \"\\x03\\uDA86\\x03\\uDA9D\\x03\\uDAA1\\x03\\uDAA3\\x03\\uDAB1\\x03\\uE002\\x03\\uE008\" +\r\n \"\\x03\\uE00A\\x03\\uE01A\\x03\\uE01D\\x03\\uE023\\x03\\uE025\\x03\\uE026\\x03\\uE028\" +\r\n \"\\x03\\uE02C\\x03\\uE802\\x03\\uE8C6\\x03\\uE8D2\\x03\\uE8D8\\x03\\uE902\\x03\\uE94C\" +\r\n \"\\x03\\uE952\\x03\\uE95B\\x03\\uEE02\\x03\\uEE05\\x03\\uEE07\\x03\\uEE21\\x03\\uEE23\" +\r\n \"\\x03\\uEE24\\x03\\uEE26\\x03\\uEE26\\x03\\uEE29\\x03\\uEE29\\x03\\uEE2B\\x03\\uEE34\" +\r\n \"\\x03\\uEE36\\x03\\uEE39\\x03\\uEE3B\\x03\\uEE3B\\x03\\uEE3D\\x03\\uEE3D\\x03\\uEE44\" +\r\n \"\\x03\\uEE44\\x03\\uEE49\\x03\\uEE49\\x03\\uEE4B\\x03\\uEE4B\\x03\\uEE4D\\x03\\uEE4D\" +\r\n \"\\x03\\uEE4F\\x03\\uEE51\\x03\\uEE53\\x03\\uEE54\\x03\\uEE56\\x03\\uEE56\\x03\\uEE59\" +\r\n \"\\x03\\uEE59\\x03\\uEE5B\\x03\\uEE5B\\x03\\uEE5D\\x03\\uEE5D\\x03\\uEE5F\\x03\\uEE5F\" +\r\n \"\\x03\\uEE61\\x03\\uEE61\\x03\\uEE63\\x03\\uEE64\\x03\\uEE66\\x03\\uEE66\\x03\\uEE69\" +\r\n \"\\x03\\uEE6C\\x03\\uEE6E\\x03\\uEE74\\x03\\uEE76\\x03\\uEE79\\x03\\uEE7B\\x03\\uEE7E\" +\r\n \"\\x03\\uEE80\\x03\\uEE80\\x03\\uEE82\\x03\\uEE8B\\x03\\uEE8D\\x03\\uEE9D\\x03\\uEEA3\" +\r\n \"\\x03\\uEEA5\\x03\\uEEA7\\x03\\uEEAB\\x03\\uEEAD\\x03\\uEEBD\\x03\\x02\\x04\\uA6D8\\x04\" +\r\n \"\\uA702\\x04\\uB736\\x04\\uB742\\x04\\uB81F\\x04\\uB822\\x04\\uCEA3\\x04\\uF802\\x04\" +\r\n \"\\uFA1F\\x04\\x03\\x10\\x03\\x10\\\"\\x10\\x81\\x10\\u0102\\x10\\u01F1\\x10\\u0240\\x02\" +\r\n \"C\\x02\\\\\\x02c\\x02|\\x02\\xAC\\x02\\xAC\\x02\\xB7\\x02\\xB7\\x02\\xBC\\x02\\xBC\\x02\" +\r\n \"\\xC2\\x02\\xD8\\x02\\xDA\\x02\\xF8\\x02\\xFA\\x02\\u02C3\\x02\\u02C8\\x02\\u02D3\\x02\" +\r\n \"\\u02E2\\x02\\u02E6\\x02\\u02EE\\x02\\u02EE\\x02\\u02F0\\x02\\u02F0\\x02\\u0372\\x02\" +\r\n \"\\u0376\\x02\\u0378\\x02\\u0379\\x02\\u037C\\x02\\u037F\\x02\\u0381\\x02\\u0381\\x02\" +\r\n \"\\u0388\\x02\\u0388\\x02\\u038A\\x02\\u038C\\x02\\u038E\\x02\\u038E\\x02\\u0390\\x02\" +\r\n \"\\u03A3\\x02\\u03A5\\x02\\u03F7\\x02\\u03F9\\x02\\u0483\\x02\\u048C\\x02\\u0531\\x02\" +\r\n \"\\u0533\\x02\\u0558\\x02\\u055B\\x02\\u055B\\x02\\u0563\\x02\\u0589\\x02\\u05D2\\x02\" +\r\n \"\\u05EC\\x02\\u05F2\\x02\\u05F4\\x02\\u0622\\x02\\u064C\\x02\\u0670\\x02\\u0671\\x02\" +\r\n \"\\u0673\\x02\\u06D5\\x02\\u06D7\\x02\\u06D7\\x02\\u06E7\\x02\\u06E8\\x02\\u06F0\\x02\" +\r\n \"\\u06F1\\x02\\u06FC\\x02\\u06FE\\x02\\u0701\\x02\\u0701\\x02\\u0712\\x02\\u0712\\x02\" +\r\n \"\\u0714\\x02\\u0731\\x02\\u074F\\x02\\u07A7\\x02\\u07B3\\x02\\u07B3\\x02\\u07CC\\x02\" +\r\n \"\\u07EC\\x02\\u07F6\\x02\\u07F7\\x02\\u07FC\\x02\\u07FC\\x02\\u0802\\x02\\u0817\\x02\" +\r\n \"\\u081C\\x02\\u081C\\x02\\u0826\\x02\\u0826\\x02\\u082A\\x02\\u082A\\x02\\u0842\\x02\" +\r\n \"\\u085A\\x02\\u08A2\\x02\\u08B6\\x02\\u08B8\\x02\\u08BF\\x02\\u0906\\x02\\u093B\\x02\" +\r\n \"\\u093F\\x02\\u093F\\x02\\u0952\\x02\\u0952\\x02\\u095A\\x02\\u0963\\x02\\u0973\\x02\" +\r\n \"\\u0982\\x02\\u0987\\x02\\u098E\\x02\\u0991\\x02\\u0992\\x02\\u0995\\x02\\u09AA\\x02\" +\r\n \"\\u09AC\\x02\\u09B2\\x02\\u09B4\\x02\\u09B4\\x02\\u09B8\\x02\\u09BB\\x02\\u09BF\\x02\" +\r\n \"\\u09BF\\x02\\u09D0\\x02\\u09D0\\x02\\u09DE\\x02\\u09DF\\x02\\u09E1\\x02\\u09E3\\x02\" +\r\n \"\\u09F2\\x02\\u09F3\\x02\\u0A07\\x02\\u0A0C\\x02\\u0A11\\x02\\u0A12\\x02\\u0A15\\x02\" +\r\n \"\\u0A2A\\x02\\u0A2C\\x02\\u0A32\\x02\\u0A34\\x02\\u0A35\\x02\\u0A37\\x02\\u0A38\\x02\" +\r\n \"\\u0A3A\\x02\\u0A3B\\x02\\u0A5B\\x02\\u0A5E\\x02\\u0A60\\x02\\u0A60\\x02\\u0A74\\x02\" +\r\n \"\\u0A76\\x02\\u0A87\\x02\\u0A8F\\x02\\u0A91\\x02\\u0A93\\x02\\u0A95\\x02\\u0AAA\\x02\" +\r\n \"\\u0AAC\\x02\\u0AB2\\x02\\u0AB4\\x02\\u0AB5\\x02\\u0AB7\\x02\\u0ABB\\x02\\u0ABF\\x02\" +\r\n \"\\u0ABF\\x02\\u0AD2\\x02\\u0AD2\\x02\\u0AE2\\x02\\u0AE3\\x02\\u0AFB\\x02\\u0AFB\\x02\" +\r\n \"\\u0B07\\x02\\u0B0E\\x02\\u0B11\\x02\\u0B12\\x02\\u0B15\\x02\\u0B2A\\x02\\u0B2C\\x02\" +\r\n \"\\u0B32\\x02\\u0B34\\x02\\u0B35\\x02\\u0B37\\x02\\u0B3B\\x02\\u0B3F\\x02\\u0B3F\\x02\" +\r\n \"\\u0B5E\\x02\\u0B5F\\x02\\u0B61\\x02\\u0B63\\x02\\u0B73\\x02\\u0B73\\x02\\u0B85\\x02\" +\r\n \"\\u0B85\\x02\\u0B87\\x02\\u0B8C\\x02\\u0B90\\x02\\u0B92\\x02\\u0B94\\x02\\u0B97\\x02\" +\r\n \"\\u0B9B\\x02\\u0B9C\\x02\\u0B9E\\x02\\u0B9E\\x02\\u0BA0\\x02\\u0BA1\\x02\\u0BA5\\x02\" +\r\n \"\\u0BA6\\x02\\u0BAA\\x02\\u0BAC\\x02\\u0BB0\\x02\\u0BBB\\x02\\u0BD2\\x02\\u0BD2\\x02\" +\r\n \"\\u0C07\\x02\\u0C0E\\x02\\u0C10\\x02\\u0C12\\x02\\u0C14\\x02\\u0C2A\\x02\\u0C2C\\x02\" +\r\n \"\\u0C3B\\x02\\u0C3F\\x02\\u0C3F\\x02\\u0C5A\\x02\\u0C5C\\x02\\u0C62\\x02\\u0C63\\x02\" +\r\n \"\\u0C82\\x02\\u0C82\\x02\\u0C87\\x02\\u0C8E\\x02\\u0C90\\x02\\u0C92\\x02\\u0C94\\x02\" +\r\n \"\\u0CAA\\x02\\u0CAC\\x02\\u0CB5\\x02\\u0CB7\\x02\\u0CBB\\x02\\u0CBF\\x02\\u0CBF\\x02\" +\r\n \"\\u0CE0\\x02\\u0CE0\\x02\\u0CE2\\x02\\u0CE3\\x02\\u0CF3\\x02\\u0CF4\\x02\\u0D07\\x02\" +\r\n \"\\u0D0E\\x02\\u0D10\\x02\\u0D12\\x02\\u0D14\\x02\\u0D3C\\x02\\u0D3F\\x02\\u0D3F\\x02\" +\r\n \"\\u0D50\\x02\\u0D50\\x02\\u0D56\\x02\\u0D58\\x02\\u0D61\\x02\\u0D63\\x02\\u0D7C\\x02\" +\r\n \"\\u0D81\\x02\\u0D87\\x02\\u0D98\\x02\\u0D9C\\x02\\u0DB3\\x02\\u0DB5\\x02\\u0DBD\\x02\" +\r\n \"\\u0DBF\\x02\\u0DBF\\x02\\u0DC2\\x02\\u0DC8\\x02\\u0E03\\x02\\u0E32\\x02\\u0E34\\x02\" +\r\n \"\\u0E35\\x02\\u0E42\\x02\\u0E48\\x02\\u0E83\\x02\\u0E84\\x02\\u0E86\\x02\\u0E86\\x02\" +\r\n \"\\u0E89\\x02\\u0E8A\\x02\\u0E8C\\x02\\u0E8C\\x02\\u0E8F\\x02\\u0E8F\\x02\\u0E96\\x02\" +\r\n \"\\u0E99\\x02\\u0E9B\\x02\\u0EA1\\x02\\u0EA3\\x02\\u0EA5\\x02\\u0EA7\\x02\\u0EA7\\x02\" +\r\n \"\\u0EA9\\x02\\u0EA9\\x02\\u0EAC\\x02\\u0EAD\\x02\\u0EAF\\x02\\u0EB2\\x02\\u0EB4\\x02\" +\r\n \"\\u0EB5\\x02\\u0EBF\\x02\\u0EBF\\x02\\u0EC2\\x02\\u0EC6\\x02\\u0EC8\\x02\\u0EC8\\x02\" +\r\n \"\\u0EDE\\x02\\u0EE1\\x02\\u0F02\\x02\\u0F02\\x02\\u0F42\\x02\\u0F49\\x02\\u0F4B\\x02\" +\r\n \"\\u0F6E\\x02\\u0F8A\\x02\\u0F8E\\x02\\u1002\\x02\\u102C\\x02\\u1041\\x02\\u1041\\x02\" +\r\n \"\\u1052\\x02\\u1057\\x02\\u105C\\x02\\u105F\\x02\\u1063\\x02\\u1063\\x02\\u1067\\x02\" +\r\n \"\\u1068\\x02\\u1070\\x02\\u1072\\x02\\u1077\\x02\\u1083\\x02\\u1090\\x02\\u1090\\x02\" +\r\n \"\\u10A2\\x02\\u10C7\\x02\\u10C9\\x02\\u10C9\\x02\\u10CF\\x02\\u10CF\\x02\\u10D2\\x02\" +\r\n \"\\u10FC\\x02\\u10FE\\x02\\u124A\\x02\\u124C\\x02\\u124F\\x02\\u1252\\x02\\u1258\\x02\" +\r\n \"\\u125A\\x02\\u125A\\x02\\u125C\\x02\\u125F\\x02\\u1262\\x02\\u128A\\x02\\u128C\\x02\" +\r\n \"\\u128F\\x02\\u1292\\x02\\u12B2\\x02\\u12B4\\x02\\u12B7\\x02\\u12BA\\x02\\u12C0\\x02\" +\r\n \"\\u12C2\\x02\\u12C2\\x02\\u12C4\\x02\\u12C7\\x02\\u12CA\\x02\\u12D8\\x02\\u12DA\\x02\" +\r\n \"\\u1312\\x02\\u1314\\x02\\u1317\\x02\\u131A\\x02\\u135C\\x02\\u1382\\x02\\u1391\\x02\" +\r\n \"\\u13A2\\x02\\u13F7\\x02\\u13FA\\x02\\u13FF\\x02\\u1403\\x02\\u166E\\x02\\u1671\\x02\" +\r\n \"\\u1681\\x02\\u1683\\x02\\u169C\\x02\\u16A2\\x02\\u16EC\\x02\\u16F0\\x02\\u16FA\\x02\" +\r\n \"\\u1702\\x02\\u170E\\x02\\u1710\\x02\\u1713\\x02\\u1722\\x02\\u1733\\x02\\u1742\\x02\" +\r\n \"\\u1753\\x02\\u1762\\x02\\u176E\\x02\\u1770\\x02\\u1772\\x02\\u1782\\x02\\u17B5\\x02\" +\r\n \"\\u17D9\\x02\\u17D9\\x02\\u17DE\\x02\\u17DE\\x02\\u1822\\x02\\u1879\\x02\\u1882\\x02\" +\r\n \"\\u1886\\x02\\u1889\\x02\\u18AA\\x02\\u18AC\\x02\\u18AC\\x02\\u18B2\\x02\\u18F7\\x02\" +\r\n \"\\u1902\\x02\\u1920\\x02\\u1952\\x02\\u196F\\x02\\u1972\\x02\\u1976\\x02\\u1982\\x02\" +\r\n \"\\u19AD\\x02\\u19B2\\x02\\u19CB\\x02\\u1A02\\x02\\u1A18\\x02\\u1A22\\x02\\u1A56\\x02\" +\r\n \"\\u1AA9\\x02\\u1AA9\\x02\\u1B07\\x02\\u1B35\\x02\\u1B47\\x02\\u1B4D\\x02\\u1B85\\x02\" +\r\n \"\\u1BA2\\x02\\u1BB0\\x02\\u1BB1\\x02\\u1BBC\\x02\\u1BE7\\x02\\u1C02\\x02\\u1C25\\x02\" +\r\n \"\\u1C4F\\x02\\u1C51\\x02\\u1C5C\\x02\\u1C7F\\x02\\u1C82\\x02\\u1C8A\\x02\\u1CEB\\x02\" +\r\n \"\\u1CEE\\x02\\u1CF0\\x02\\u1CF3\\x02\\u1CF7\\x02\\u1CF8\\x02\\u1D02\\x02\\u1DC1\\x02\" +\r\n \"\\u1E02\\x02\\u1F17\\x02\\u1F1A\\x02\\u1F1F\\x02\\u1F22\\x02\\u1F47\\x02\\u1F4A\\x02\" +\r\n \"\\u1F4F\\x02\\u1F52\\x02\\u1F59\\x02\\u1F5B\\x02\\u1F5B\\x02\\u1F5D\\x02\\u1F5D\\x02\" +\r\n \"\\u1F5F\\x02\\u1F5F\\x02\\u1F61\\x02\\u1F7F\\x02\\u1F82\\x02\\u1FB6\\x02\\u1FB8\\x02\" +\r\n \"\\u1FBE\\x02\\u1FC0\\x02\\u1FC0\\x02\\u1FC4\\x02\\u1FC6\\x02\\u1FC8\\x02\\u1FCE\\x02\" +\r\n \"\\u1FD2\\x02\\u1FD5\\x02\\u1FD8\\x02\\u1FDD\\x02\\u1FE2\\x02\\u1FEE\\x02\\u1FF4\\x02\" +\r\n \"\\u1FF6\\x02\\u1FF8\\x02\\u1FFE\\x02\\u2073\\x02\\u2073\\x02\\u2081\\x02\\u2081\\x02\" +\r\n \"\\u2092\\x02\\u209E\\x02\\u2104\\x02\\u2104\\x02\\u2109\\x02\\u2109\\x02\\u210C\\x02\" +\r\n \"\\u2115\\x02\\u2117\\x02\\u2117\\x02\\u211B\\x02\\u211F\\x02\\u2126\\x02\\u2126\\x02\" +\r\n \"\\u2128\\x02\\u2128\\x02\\u212A\\x02\\u212A\\x02\\u212C\\x02\\u212F\\x02\\u2131\\x02\" +\r\n \"\\u213B\\x02\\u213E\\x02\\u2141\\x02\\u2147\\x02\\u214B\\x02\\u2150\\x02\\u2150\\x02\" +\r\n \"\\u2162\\x02\\u218A\\x02\\u2C02\\x02\\u2C30\\x02\\u2C32\\x02\\u2C60\\x02\\u2C62\\x02\" +\r\n \"\\u2CE6\\x02\\u2CED\\x02\\u2CF0\\x02\\u2CF4\\x02\\u2CF5\\x02\\u2D02\\x02\\u2D27\\x02\" +\r\n \"\\u2D29\\x02\\u2D29\\x02\\u2D2F\\x02\\u2D2F\\x02\\u2D32\\x02\\u2D69\\x02\\u2D71\\x02\" +\r\n \"\\u2D71\\x02\\u2D82\\x02\\u2D98\\x02\\u2DA2\\x02\\u2DA8\\x02\\u2DAA\\x02\\u2DB0\\x02\" +\r\n \"\\u2DB2\\x02\\u2DB8\\x02\\u2DBA\\x02\\u2DC0\\x02\\u2DC2\\x02\\u2DC8\\x02\\u2DCA\\x02\" +\r\n \"\\u2DD0\\x02\\u2DD2\\x02\\u2DD8\\x02\\u2DDA\\x02\\u2DE0\\x02\\u2E31\\x02\\u2E31\\x02\" +\r\n \"\\u3007\\x02\\u3009\\x02\\u3023\\x02\\u302B\\x02\\u3033\\x02\\u3037\\x02\\u303A\\x02\" +\r\n \"\\u303E\\x02\\u3043\\x02\\u3098\\x02\\u309F\\x02\\u30A1\\x02\\u30A3\\x02\\u30FC\\x02\" +\r\n \"\\u30FE\\x02\\u3101\\x02\\u3107\\x02\\u312F\\x02\\u3133\\x02\\u3190\\x02\\u31A2\\x02\" +\r\n \"\\u31BC\\x02\\u31F2\\x02\\u3201\\x02\\u3402\\x02\\u4DB7\\x02\\u4E02\\x02\\u9FD7\\x02\" +\r\n \"\\uA002\\x02\\uA48E\\x02\\uA4D2\\x02\\uA4FF\\x02\\uA502\\x02\\uA60E\\x02\\uA612\\x02\" +\r\n \"\\uA621\\x02\\uA62C\\x02\\uA62D\\x02\\uA642\\x02\\uA670\\x02\\uA681\\x02\\uA69F\\x02\" +\r\n \"\\uA6A2\\x02\\uA6F1\\x02\\uA719\\x02\\uA721\\x02\\uA724\\x02\\uA78A\\x02\\uA78D\\x02\" +\r\n \"\\uA7B0\\x02\\uA7B2\\x02\\uA7B9\\x02\\uA7F9\\x02\\uA803\\x02\\uA805\\x02\\uA807\\x02\" +\r\n \"\\uA809\\x02\\uA80C\\x02\\uA80E\\x02\\uA824\\x02\\uA842\\x02\\uA875\\x02\\uA884\\x02\" +\r\n \"\\uA8B5\\x02\\uA8F4\\x02\\uA8F9\\x02\\uA8FD\\x02\\uA8FD\\x02\\uA8FF\\x02\\uA8FF\\x02\" +\r\n \"\\uA90C\\x02\\uA927\\x02\\uA932\\x02\\uA948\\x02\\uA962\\x02\\uA97E\\x02\\uA986\\x02\" +\r\n \"\\uA9B4\\x02\\uA9D1\\x02\\uA9D1\\x02\\uA9E2\\x02\\uA9E6\\x02\\uA9E8\\x02\\uA9F1\\x02\" +\r\n \"\\uA9FC\\x02\\uAA00\\x02\\uAA02\\x02\\uAA2A\\x02\\uAA42\\x02\\uAA44\\x02\\uAA46\\x02\" +\r\n \"\\uAA4D\\x02\\uAA62\\x02\\uAA78\\x02\\uAA7C\\x02\\uAA7C\\x02\\uAA80\\x02\\uAAB1\\x02\" +\r\n \"\\uAAB3\\x02\\uAAB3\\x02\\uAAB7\\x02\\uAAB8\\x02\\uAABB\\x02\\uAABF\\x02\\uAAC2\\x02\" +\r\n \"\\uAAC2\\x02\\uAAC4\\x02\\uAAC4\\x02\\uAADD\\x02\\uAADF\\x02\\uAAE2\\x02\\uAAEC\\x02\" +\r\n \"\\uAAF4\\x02\\uAAF6\\x02\\uAB03\\x02\\uAB08\\x02\\uAB0B\\x02\\uAB10\\x02\\uAB13\\x02\" +\r\n \"\\uAB18\\x02\\uAB22\\x02\\uAB28\\x02\\uAB2A\\x02\\uAB30\\x02\\uAB32\\x02\\uAB5C\\x02\" +\r\n \"\\uAB5E\\x02\\uAB67\\x02\\uAB72\\x02\\uABE4\\x02\\uAC02\\x02\\uD7A5\\x02\\uD7B2\\x02\" +\r\n \"\\uD7C8\\x02\\uD7CD\\x02\\uD7FD\\x02\\uF902\\x02\\uFA6F\\x02\\uFA72\\x02\\uFADB\\x02\" +\r\n \"\\uFB02\\x02\\uFB08\\x02\\uFB15\\x02\\uFB19\\x02\\uFB1F\\x02\\uFB1F\\x02\\uFB21\\x02\" +\r\n \"\\uFB2A\\x02\\uFB2C\\x02\\uFB38\\x02\\uFB3A\\x02\\uFB3E\\x02\\uFB40\\x02\\uFB40\\x02\" +\r\n \"\\uFB42\\x02\\uFB43\\x02\\uFB45\\x02\\uFB46\\x02\\uFB48\\x02\\uFBB3\\x02\\uFBD5\\x02\" +\r\n \"\\uFD3F\\x02\\uFD52\\x02\\uFD91\\x02\\uFD94\\x02\\uFDC9\\x02\\uFDF2\\x02\\uFDFD\\x02\" +\r\n \"\\uFE72\\x02\\uFE76\\x02\\uFE78\\x02\\uFEFE\\x02\\uFF23\\x02\\uFF3C\\x02\\uFF43\\x02\" +\r\n \"\\uFF5C\\x02\\uFF68\\x02\\uFFC0\\x02\\uFFC4\\x02\\uFFC9\\x02\\uFFCC\\x02\\uFFD1\\x02\" +\r\n \"\\uFFD4\\x02\\uFFD9\\x02\\uFFDC\\x02\\uFFDE\\x02\\x02\\x03\\r\\x03\\x0F\\x03(\\x03*\\x03\" +\r\n \"<\\x03>\\x03?\\x03A\\x03O\\x03R\\x03_\\x03\\x82\\x03\\xFC\\x03\\u0142\\x03\\u0176\\x03\" +\r\n \"\\u0282\\x03\\u029E\\x03\\u02A2\\x03\\u02D2\\x03\\u0302\\x03\\u0321\\x03\\u0332\\x03\" +\r\n \"\\u034C\\x03\\u0352\\x03\\u0377\\x03\\u0382\\x03\\u039F\\x03\\u03A2\\x03\\u03C5\\x03\" +\r\n \"\\u03CA\\x03\\u03D1\\x03\\u03D3\\x03\\u03D7\\x03\\u0402\\x03\\u049F\\x03\\u04B2\\x03\" +\r\n \"\\u04D5\\x03\\u04DA\\x03\\u04FD\\x03\\u0502\\x03\\u0529\\x03\\u0532\\x03\\u0565\\x03\" +\r\n \"\\u0602\\x03\\u0738\\x03\\u0742\\x03\\u0757\\x03\\u0762\\x03\\u0769\\x03\\u0802\\x03\" +\r\n \"\\u0807\\x03\\u080A\\x03\\u080A\\x03\\u080C\\x03\\u0837\\x03\\u0839\\x03\\u083A\\x03\" +\r\n \"\\u083E\\x03\\u083E\\x03\\u0841\\x03\\u0857\\x03\\u0862\\x03\\u0878\\x03\\u0882\\x03\" +\r\n \"\\u08A0\\x03\\u08E2\\x03\\u08F4\\x03\\u08F6\\x03\\u08F7\\x03\\u0902\\x03\\u0917\\x03\" +\r\n \"\\u0922\\x03\\u093B\\x03\\u0982\\x03\\u09B9\\x03\\u09C0\\x03\\u09C1\\x03\\u0A02\\x03\" +\r\n \"\\u0A02\\x03\\u0A12\\x03\\u0A15\\x03\\u0A17\\x03\\u0A19\\x03\\u0A1B\\x03\\u0A35\\x03\" +\r\n \"\\u0A62\\x03\\u0A7E\\x03\\u0A82\\x03\\u0A9E\\x03\\u0AC2\\x03\\u0AC9\\x03\\u0ACB\\x03\" +\r\n \"\\u0AE6\\x03\\u0B02\\x03\\u0B37\\x03\\u0B42\\x03\\u0B57\\x03\\u0B62\\x03\\u0B74\\x03\" +\r\n \"\\u0B82\\x03\\u0B93\\x03\\u0C02\\x03\\u0C4A\\x03\\u0C82\\x03\\u0CB4\\x03\\u0CC2\\x03\" +\r\n \"\\u0CF4\\x03\\u1005\\x03\\u1039\\x03\\u1085\\x03\\u10B1\\x03\\u10D2\\x03\\u10EA\\x03\" +\r\n \"\\u1105\\x03\\u1128\\x03\\u1152\\x03\\u1174\\x03\\u1178\\x03\\u1178\\x03\\u1185\\x03\" +\r\n \"\\u11B4\\x03\\u11C3\\x03\\u11C6\\x03\\u11DC\\x03\\u11DC\\x03\\u11DE\\x03\\u11DE\\x03\" +\r\n \"\\u1202\\x03\\u1213\\x03\\u1215\\x03\\u122D\\x03\\u1282\\x03\\u1288\\x03\\u128A\\x03\" +\r\n \"\\u128A\\x03\\u128C\\x03\\u128F\\x03\\u1291\\x03\\u129F\\x03\\u12A1\\x03\\u12AA\\x03\" +\r\n \"\\u12B2\\x03\\u12E0\\x03\\u1307\\x03\\u130E\\x03\\u1311\\x03\\u1312\\x03\\u1315\\x03\" +\r\n \"\\u132A\\x03\\u132C\\x03\\u1332\\x03\\u1334\\x03\\u1335\\x03\\u1337\\x03\\u133B\\x03\" +\r\n \"\\u133F\\x03\\u133F\\x03\\u1352\\x03\\u1352\\x03\\u135F\\x03\\u1363\\x03\\u1402\\x03\" +\r\n \"\\u1436\\x03\\u1449\\x03\\u144C\\x03\\u1482\\x03\\u14B1\\x03\\u14C6\\x03\\u14C7\\x03\" +\r\n \"\\u14C9\\x03\\u14C9\\x03\\u1582\\x03\\u15B0\\x03\\u15DA\\x03\\u15DD\\x03\\u1602\\x03\" +\r\n \"\\u1631\\x03\\u1646\\x03\\u1646\\x03\\u1682\\x03\\u16AC\\x03\\u1702\\x03\\u171B\\x03\" +\r\n \"\\u18A2\\x03\\u18E1\\x03\\u1901\\x03\\u1901\\x03\\u1AC2\\x03\\u1AFA\\x03\\u1C02\\x03\" +\r\n \"\\u1C0A\\x03\\u1C0C\\x03\\u1C30\\x03\\u1C42\\x03\\u1C42\\x03\\u1C74\\x03\\u1C91\\x03\" +\r\n \"\\u2002\\x03\\u239B\\x03\\u2402\\x03\\u2470\\x03\\u2482\\x03\\u2545\\x03\\u3002\\x03\" +\r\n \"\\u3430\\x03\\u4402\\x03\\u4648\\x03\\u6802\\x03\\u6A3A\\x03\\u6A42\\x03\\u6A60\\x03\" +\r\n \"\\u6AD2\\x03\\u6AEF\\x03\\u6B02\\x03\\u6B31\\x03\\u6B42\\x03\\u6B45\\x03\\u6B65\\x03\" +\r\n \"\\u6B79\\x03\\u6B7F\\x03\\u6B91\\x03\\u6F02\\x03\\u6F46\\x03\\u6F52\\x03\\u6F52\\x03\" +\r\n \"\\u6F95\\x03\\u6FA1\\x03\\u6FE2\\x03\\u6FE2\\x03\\u7002\\x03\\u87EE\\x03\\u8802\\x03\" +\r\n \"\\u8AF4\\x03\\uB002\\x03\\uB003\\x03\\uBC02\\x03\\uBC6C\\x03\\uBC72\\x03\\uBC7E\\x03\" +\r\n \"\\uBC82\\x03\\uBC8A\\x03\\uBC92\\x03\\uBC9B\\x03\\uD402\\x03\\uD456\\x03\\uD458\\x03\" +\r\n \"\\uD49E\\x03\\uD4A0\\x03\\uD4A1\\x03\\uD4A4\\x03\\uD4A4\\x03\\uD4A7\\x03\\uD4A8\\x03\" +\r\n \"\\uD4AB\\x03\\uD4AE\\x03\\uD4B0\\x03\\uD4BB\\x03\\uD4BD\\x03\\uD4BD\\x03\\uD4BF\\x03\" +\r\n \"\\uD4C5\\x03\\uD4C7\\x03\\uD507\\x03\\uD509\\x03\\uD50C\\x03\\uD50F\\x03\\uD516\\x03\" +\r\n \"\\uD518\\x03\\uD51E\\x03\\uD520\\x03\\uD53B\\x03\\uD53D\\x03\\uD540\\x03\\uD542\\x03\" +\r\n \"\\uD546\\x03\\uD548\\x03\\uD548\";\r\nXPathLexer._serializedATNSegment1 = \"\\x03\\uD54C\\x03\\uD552\\x03\\uD554\\x03\\uD6A7\\x03\\uD6AA\\x03\\uD6C2\\x03\\uD6C4\" +\r\n \"\\x03\\uD6DC\\x03\\uD6DE\\x03\\uD6FC\\x03\\uD6FE\\x03\\uD716\\x03\\uD718\\x03\\uD736\" +\r\n \"\\x03\\uD738\\x03\\uD750\\x03\\uD752\\x03\\uD770\\x03\\uD772\\x03\\uD78A\\x03\\uD78C\" +\r\n \"\\x03\\uD7AA\\x03\\uD7AC\\x03\\uD7C4\\x03\\uD7C6\\x03\\uD7CD\\x03\\uE802\\x03\\uE8C6\" +\r\n \"\\x03\\uE902\\x03\\uE945\\x03\\uEE02\\x03\\uEE05\\x03\\uEE07\\x03\\uEE21\\x03\\uEE23\" +\r\n \"\\x03\\uEE24\\x03\\uEE26\\x03\\uEE26\\x03\\uEE29\\x03\\uEE29\\x03\\uEE2B\\x03\\uEE34\" +\r\n \"\\x03\\uEE36\\x03\\uEE39\\x03\\uEE3B\\x03\\uEE3B\\x03\\uEE3D\\x03\\uEE3D\\x03\\uEE44\" +\r\n \"\\x03\\uEE44\\x03\\uEE49\\x03\\uEE49\\x03\\uEE4B\\x03\\uEE4B\\x03\\uEE4D\\x03\\uEE4D\" +\r\n \"\\x03\\uEE4F\\x03\\uEE51\\x03\\uEE53\\x03\\uEE54\\x03\\uEE56\\x03\\uEE56\\x03\\uEE59\" +\r\n \"\\x03\\uEE59\\x03\\uEE5B\\x03\\uEE5B\\x03\\uEE5D\\x03\\uEE5D\\x03\\uEE5F\\x03\\uEE5F\" +\r\n \"\\x03\\uEE61\\x03\\uEE61\\x03\\uEE63\\x03\\uEE64\\x03\\uEE66\\x03\\uEE66\\x03\\uEE69\" +\r\n \"\\x03\\uEE6C\\x03\\uEE6E\\x03\\uEE74\\x03\\uEE76\\x03\\uEE79\\x03\\uEE7B\\x03\\uEE7E\" +\r\n \"\\x03\\uEE80\\x03\\uEE80\\x03\\uEE82\\x03\\uEE8B\\x03\\uEE8D\\x03\\uEE9D\\x03\\uEEA3\" +\r\n \"\\x03\\uEEA5\\x03\\uEEA7\\x03\\uEEAB\\x03\\uEEAD\\x03\\uEEBD\\x03\\x02\\x04\\uA6D8\\x04\" +\r\n \"\\uA702\\x04\\uB736\\x04\\uB742\\x04\\uB81F\\x04\\uB822\\x04\\uCEA3\\x04\\uF802\\x04\" +\r\n \"\\uFA1F\\x041\\x02\\x03\\x03\\x02\\x02\\x02\\x02\\x05\\x03\\x02\\x02\\x02\\x02\\x07\\x03\" +\r\n \"\\x02\\x02\\x02\\x02\\t\\x03\\x02\\x02\\x02\\x02\\v\\x03\\x02\\x02\\x02\\x02\\x11\\x03\\x02\" +\r\n \"\\x02\\x02\\x03\\x13\\x03\\x02\\x02\\x02\\x05\\x16\\x03\\x02\\x02\\x02\\x07\\x18\\x03\\x02\" +\r\n \"\\x02\\x02\\t\\x1A\\x03\\x02\\x02\\x02\\v\\x1C\\x03\\x02\\x02\\x02\\r%\\x03\\x02\\x02\\x02\" +\r\n \"\\x0F\\'\\x03\\x02\\x02\\x02\\x11)\\x03\\x02\\x02\\x02\\x13\\x14\\x071\\x02\\x02\\x14\\x15\" +\r\n \"\\x071\\x02\\x02\\x15\\x04\\x03\\x02\\x02\\x02\\x16\\x17\\x071\\x02\\x02\\x17\\x06\\x03\" +\r\n \"\\x02\\x02\\x02\\x18\\x19\\x07,\\x02\\x02\\x19\\b\\x03\\x02\\x02\\x02\\x1A\\x1B\\x07#\\x02\" +\r\n \"\\x02\\x1B\\n\\x03\\x02\\x02\\x02\\x1C \\x05\\x0F\\b\\x02\\x1D\\x1F\\x05\\r\\x07\\x02\\x1E\" +\r\n \"\\x1D\\x03\\x02\\x02\\x02\\x1F\\\"\\x03\\x02\\x02\\x02 \\x1E\\x03\\x02\\x02\\x02 !\\x03\" +\r\n \"\\x02\\x02\\x02!#\\x03\\x02\\x02\\x02\\\" \\x03\\x02\\x02\\x02#$\\b\\x06\\x02\\x02$\\f\\x03\" +\r\n \"\\x02\\x02\\x02%&\\t\\x02\\x02\\x02&\\x0E\\x03\\x02\\x02\\x02\\'(\\t\\x03\\x02\\x02(\\x10\" +\r\n \"\\x03\\x02\\x02\\x02)-\\x07)\\x02\\x02*,\\v\\x02\\x02\\x02+*\\x03\\x02\\x02\\x02,/\\x03\" +\r\n \"\\x02\\x02\\x02-.\\x03\\x02\\x02\\x02-+\\x03\\x02\\x02\\x02.0\\x03\\x02\\x02\\x02/-\\x03\" +\r\n \"\\x02\\x02\\x0201\\x07)\\x02\\x021\\x12\\x03\\x02\\x02\\x02\\x05\\x02 -\\x03\\x03\\x06\" +\r\n \"\\x02\";\r\nXPathLexer._serializedATN = Utils.join([\r\n XPathLexer._serializedATNSegment0,\r\n XPathLexer._serializedATNSegment1,\r\n], \"\");\r\n//# sourceMappingURL=XPathLexer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathLexerErrorListener = void 0;\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nclass XPathLexerErrorListener {\r\n syntaxError(recognizer, offendingSymbol, line, charPositionInLine, msg, e) {\r\n // intentionally empty\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathLexerErrorListener.prototype, \"syntaxError\", null);\r\nexports.XPathLexerErrorListener = XPathLexerErrorListener;\r\n//# sourceMappingURL=XPathLexerErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nclass XPathElement {\r\n /** Construct element like `/ID` or `ID` or `/*` etc...\r\n * op is null if just node\r\n */\r\n constructor(nodeName) {\r\n this.nodeName = nodeName;\r\n this.invert = false;\r\n }\r\n toString() {\r\n let inv = this.invert ? \"!\" : \"\";\r\n let className = Object.constructor.name;\r\n return className + \"[\" + inv + this.nodeName + \"]\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathElement.prototype, \"toString\", null);\r\nexports.XPathElement = XPathElement;\r\n//# sourceMappingURL=XPathElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathRuleAnywhereElement = void 0;\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\n/**\r\n * Either `ID` at start of path or `...//ID` in middle of path.\r\n */\r\nclass XPathRuleAnywhereElement extends XPathElement_1.XPathElement {\r\n constructor(ruleName, ruleIndex) {\r\n super(ruleName);\r\n this.ruleIndex = ruleIndex;\r\n }\r\n evaluate(t) {\r\n return Trees_1.Trees.findAllRuleNodes(t, this.ruleIndex);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathRuleAnywhereElement.prototype, \"evaluate\", null);\r\nexports.XPathRuleAnywhereElement = XPathRuleAnywhereElement;\r\n//# sourceMappingURL=XPathRuleAnywhereElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathRuleElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst ParserRuleContext_1 = require(\"../../ParserRuleContext\");\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\nclass XPathRuleElement extends XPathElement_1.XPathElement {\r\n constructor(ruleName, ruleIndex) {\r\n super(ruleName);\r\n this.ruleIndex = ruleIndex;\r\n }\r\n evaluate(t) {\r\n // return all children of t that match nodeName\r\n let nodes = [];\r\n for (let c of Trees_1.Trees.getChildren(t)) {\r\n if (c instanceof ParserRuleContext_1.ParserRuleContext) {\r\n if ((c.ruleIndex === this.ruleIndex && !this.invert) ||\r\n (c.ruleIndex !== this.ruleIndex && this.invert)) {\r\n nodes.push(c);\r\n }\r\n }\r\n }\r\n return nodes;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathRuleElement.prototype, \"evaluate\", null);\r\nexports.XPathRuleElement = XPathRuleElement;\r\n//# sourceMappingURL=XPathRuleElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathTokenAnywhereElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\nclass XPathTokenAnywhereElement extends XPathElement_1.XPathElement {\r\n constructor(tokenName, tokenType) {\r\n super(tokenName);\r\n this.tokenType = tokenType;\r\n }\r\n evaluate(t) {\r\n return Trees_1.Trees.findAllTokenNodes(t, this.tokenType);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathTokenAnywhereElement.prototype, \"evaluate\", null);\r\nexports.XPathTokenAnywhereElement = XPathTokenAnywhereElement;\r\n//# sourceMappingURL=XPathTokenAnywhereElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathTokenElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst TerminalNode_1 = require(\"../TerminalNode\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\nclass XPathTokenElement extends XPathElement_1.XPathElement {\r\n constructor(tokenName, tokenType) {\r\n super(tokenName);\r\n this.tokenType = tokenType;\r\n }\r\n evaluate(t) {\r\n // return all children of t that match nodeName\r\n let nodes = [];\r\n for (let c of Trees_1.Trees.getChildren(t)) {\r\n if (c instanceof TerminalNode_1.TerminalNode) {\r\n if ((c.symbol.type === this.tokenType && !this.invert) ||\r\n (c.symbol.type !== this.tokenType && this.invert)) {\r\n nodes.push(c);\r\n }\r\n }\r\n }\r\n return nodes;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathTokenElement.prototype, \"evaluate\", null);\r\nexports.XPathTokenElement = XPathTokenElement;\r\n//# sourceMappingURL=XPathTokenElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathWildcardAnywhereElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPath_1 = require(\"./XPath\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\nclass XPathWildcardAnywhereElement extends XPathElement_1.XPathElement {\r\n constructor() {\r\n super(XPath_1.XPath.WILDCARD);\r\n }\r\n evaluate(t) {\r\n if (this.invert) {\r\n // !* is weird but valid (empty)\r\n return [];\r\n }\r\n return Trees_1.Trees.getDescendants(t);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathWildcardAnywhereElement.prototype, \"evaluate\", null);\r\nexports.XPathWildcardAnywhereElement = XPathWildcardAnywhereElement;\r\n//# sourceMappingURL=XPathWildcardAnywhereElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPathWildcardElement = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Trees_1 = require(\"../Trees\");\r\nconst XPath_1 = require(\"./XPath\");\r\nconst XPathElement_1 = require(\"./XPathElement\");\r\nclass XPathWildcardElement extends XPathElement_1.XPathElement {\r\n constructor() {\r\n super(XPath_1.XPath.WILDCARD);\r\n }\r\n evaluate(t) {\r\n let kids = [];\r\n if (this.invert) {\r\n // !* is weird but valid (empty)\r\n return kids;\r\n }\r\n for (let c of Trees_1.Trees.getChildren(t)) {\r\n kids.push(c);\r\n }\r\n return kids;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], XPathWildcardElement.prototype, \"evaluate\", null);\r\nexports.XPathWildcardElement = XPathWildcardElement;\r\n//# sourceMappingURL=XPathWildcardElement.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.XPath = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:46.4373888-07:00\r\nconst CharStreams_1 = require(\"../../CharStreams\");\r\nconst CommonTokenStream_1 = require(\"../../CommonTokenStream\");\r\nconst LexerNoViableAltException_1 = require(\"../../LexerNoViableAltException\");\r\nconst ParserRuleContext_1 = require(\"../../ParserRuleContext\");\r\nconst Token_1 = require(\"../../Token\");\r\nconst XPathLexer_1 = require(\"./XPathLexer\");\r\nconst XPathLexerErrorListener_1 = require(\"./XPathLexerErrorListener\");\r\nconst XPathRuleAnywhereElement_1 = require(\"./XPathRuleAnywhereElement\");\r\nconst XPathRuleElement_1 = require(\"./XPathRuleElement\");\r\nconst XPathTokenAnywhereElement_1 = require(\"./XPathTokenAnywhereElement\");\r\nconst XPathTokenElement_1 = require(\"./XPathTokenElement\");\r\nconst XPathWildcardAnywhereElement_1 = require(\"./XPathWildcardAnywhereElement\");\r\nconst XPathWildcardElement_1 = require(\"./XPathWildcardElement\");\r\n/**\r\n * Represent a subset of XPath XML path syntax for use in identifying nodes in\r\n * parse trees.\r\n *\r\n * Split path into words and separators `/` and `//` via ANTLR\r\n * itself then walk path elements from left to right. At each separator-word\r\n * pair, find set of nodes. Next stage uses those as work list.\r\n *\r\n * The basic interface is\r\n * {@link XPath#findAll ParseTree.findAll}`(tree, pathString, parser)`.\r\n * But that is just shorthand for:\r\n *\r\n * ```\r\n * let p = new XPath(parser, pathString);\r\n * return p.evaluate(tree);\r\n * ```\r\n *\r\n * See `TestXPath` for descriptions. In short, this\r\n * allows operators:\r\n *\r\n * | | |\r\n * | --- | --- |\r\n * | `/` | root |\r\n * | `//` | anywhere |\r\n * | `!` | invert; this much appear directly after root or anywhere operator |\r\n *\r\n * and path elements:\r\n *\r\n * | | |\r\n * | --- | --- |\r\n * | `ID` | token name |\r\n * | `'string'` | any string literal token from the grammar |\r\n * | `expr` | rule name |\r\n * | `*` | wildcard matching any node |\r\n *\r\n * Whitespace is not allowed.\r\n */\r\nclass XPath {\r\n constructor(parser, path) {\r\n this.parser = parser;\r\n this.path = path;\r\n this.elements = this.split(path);\r\n // console.log(this.elements.toString());\r\n }\r\n // TODO: check for invalid token/rule names, bad syntax\r\n split(path) {\r\n let lexer = new XPathLexer_1.XPathLexer(CharStreams_1.CharStreams.fromString(path));\r\n lexer.recover = (e) => { throw e; };\r\n lexer.removeErrorListeners();\r\n lexer.addErrorListener(new XPathLexerErrorListener_1.XPathLexerErrorListener());\r\n let tokenStream = new CommonTokenStream_1.CommonTokenStream(lexer);\r\n try {\r\n tokenStream.fill();\r\n }\r\n catch (e) {\r\n if (e instanceof LexerNoViableAltException_1.LexerNoViableAltException) {\r\n let pos = lexer.charPositionInLine;\r\n let msg = \"Invalid tokens or characters at index \" + pos + \" in path '\" + path + \"' -- \" + e.message;\r\n throw new RangeError(msg);\r\n }\r\n throw e;\r\n }\r\n let tokens = tokenStream.getTokens();\r\n // console.log(\"path=\" + path + \"=>\" + tokens);\r\n let elements = [];\r\n let n = tokens.length;\r\n let i = 0;\r\n loop: while (i < n) {\r\n let el = tokens[i];\r\n let next;\r\n switch (el.type) {\r\n case XPathLexer_1.XPathLexer.ROOT:\r\n case XPathLexer_1.XPathLexer.ANYWHERE:\r\n let anywhere = el.type === XPathLexer_1.XPathLexer.ANYWHERE;\r\n i++;\r\n next = tokens[i];\r\n let invert = next.type === XPathLexer_1.XPathLexer.BANG;\r\n if (invert) {\r\n i++;\r\n next = tokens[i];\r\n }\r\n let pathElement = this.getXPathElement(next, anywhere);\r\n pathElement.invert = invert;\r\n elements.push(pathElement);\r\n i++;\r\n break;\r\n case XPathLexer_1.XPathLexer.TOKEN_REF:\r\n case XPathLexer_1.XPathLexer.RULE_REF:\r\n case XPathLexer_1.XPathLexer.WILDCARD:\r\n elements.push(this.getXPathElement(el, false));\r\n i++;\r\n break;\r\n case Token_1.Token.EOF:\r\n break loop;\r\n default:\r\n throw new Error(\"Unknowth path element \" + el);\r\n }\r\n }\r\n return elements;\r\n }\r\n /**\r\n * Convert word like `*` or `ID` or `expr` to a path\r\n * element. `anywhere` is `true` if `//` precedes the\r\n * word.\r\n */\r\n getXPathElement(wordToken, anywhere) {\r\n if (wordToken.type === Token_1.Token.EOF) {\r\n throw new Error(\"Missing path element at end of path\");\r\n }\r\n let word = wordToken.text;\r\n if (word == null) {\r\n throw new Error(\"Expected wordToken to have text content.\");\r\n }\r\n let ttype = this.parser.getTokenType(word);\r\n let ruleIndex = this.parser.getRuleIndex(word);\r\n switch (wordToken.type) {\r\n case XPathLexer_1.XPathLexer.WILDCARD:\r\n return anywhere ?\r\n new XPathWildcardAnywhereElement_1.XPathWildcardAnywhereElement() :\r\n new XPathWildcardElement_1.XPathWildcardElement();\r\n case XPathLexer_1.XPathLexer.TOKEN_REF:\r\n case XPathLexer_1.XPathLexer.STRING:\r\n if (ttype === Token_1.Token.INVALID_TYPE) {\r\n throw new Error(word + \" at index \" +\r\n wordToken.startIndex +\r\n \" isn't a valid token name\");\r\n }\r\n return anywhere ?\r\n new XPathTokenAnywhereElement_1.XPathTokenAnywhereElement(word, ttype) :\r\n new XPathTokenElement_1.XPathTokenElement(word, ttype);\r\n default:\r\n if (ruleIndex === -1) {\r\n throw new Error(word + \" at index \" +\r\n wordToken.startIndex +\r\n \" isn't a valid rule name\");\r\n }\r\n return anywhere ?\r\n new XPathRuleAnywhereElement_1.XPathRuleAnywhereElement(word, ruleIndex) :\r\n new XPathRuleElement_1.XPathRuleElement(word, ruleIndex);\r\n }\r\n }\r\n static findAll(tree, xpath, parser) {\r\n let p = new XPath(parser, xpath);\r\n return p.evaluate(tree);\r\n }\r\n /**\r\n * Return a list of all nodes starting at `t` as root that satisfy the\r\n * path. The root `/` is relative to the node passed to {@link evaluate}.\r\n */\r\n evaluate(t) {\r\n let dummyRoot = new ParserRuleContext_1.ParserRuleContext();\r\n dummyRoot.addChild(t);\r\n let work = new Set([dummyRoot]);\r\n let i = 0;\r\n while (i < this.elements.length) {\r\n let next = new Set();\r\n for (let node of work) {\r\n if (node.childCount > 0) {\r\n // only try to match next element if it has children\r\n // e.g., //func/*/stat might have a token node for which\r\n // we can't go looking for stat nodes.\r\n let matching = this.elements[i].evaluate(node);\r\n matching.forEach(next.add, next);\r\n }\r\n }\r\n i++;\r\n work = next;\r\n }\r\n return work;\r\n }\r\n}\r\nexports.XPath = XPath;\r\nXPath.WILDCARD = \"*\"; // word not operator/separator\r\nXPath.NOT = \"!\"; // word for invert operator\r\n//# sourceMappingURL=XPath.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParseTreePattern = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst XPath_1 = require(\"../xpath/XPath\");\r\n/**\r\n * A pattern like `<ID> = <expr>;` converted to a {@link ParseTree} by\r\n * {@link ParseTreePatternMatcher#compile(String, int)}.\r\n */\r\nlet ParseTreePattern = class ParseTreePattern {\r\n /**\r\n * Construct a new instance of the {@link ParseTreePattern} class.\r\n *\r\n * @param matcher The {@link ParseTreePatternMatcher} which created this\r\n * tree pattern.\r\n * @param pattern The tree pattern in concrete syntax form.\r\n * @param patternRuleIndex The parser rule which serves as the root of the\r\n * tree pattern.\r\n * @param patternTree The tree pattern in {@link ParseTree} form.\r\n */\r\n constructor(matcher, pattern, patternRuleIndex, patternTree) {\r\n this._matcher = matcher;\r\n this._patternRuleIndex = patternRuleIndex;\r\n this._pattern = pattern;\r\n this._patternTree = patternTree;\r\n }\r\n /**\r\n * Match a specific parse tree against this tree pattern.\r\n *\r\n * @param tree The parse tree to match against this tree pattern.\r\n * @returns A {@link ParseTreeMatch} object describing the result of the\r\n * match operation. The `ParseTreeMatch.succeeded` method can be\r\n * used to determine whether or not the match was successful.\r\n */\r\n match(tree) {\r\n return this._matcher.match(tree, this);\r\n }\r\n /**\r\n * Determine whether or not a parse tree matches this tree pattern.\r\n *\r\n * @param tree The parse tree to match against this tree pattern.\r\n * @returns `true` if `tree` is a match for the current tree\r\n * pattern; otherwise, `false`.\r\n */\r\n matches(tree) {\r\n return this._matcher.match(tree, this).succeeded;\r\n }\r\n /**\r\n * Find all nodes using XPath and then try to match those subtrees against\r\n * this tree pattern.\r\n *\r\n * @param tree The {@link ParseTree} to match against this pattern.\r\n * @param xpath An expression matching the nodes\r\n *\r\n * @returns A collection of {@link ParseTreeMatch} objects describing the\r\n * successful matches. Unsuccessful matches are omitted from the result,\r\n * regardless of the reason for the failure.\r\n */\r\n findAll(tree, xpath) {\r\n let subtrees = XPath_1.XPath.findAll(tree, xpath, this._matcher.parser);\r\n let matches = [];\r\n for (let t of subtrees) {\r\n let match = this.match(t);\r\n if (match.succeeded) {\r\n matches.push(match);\r\n }\r\n }\r\n return matches;\r\n }\r\n /**\r\n * Get the {@link ParseTreePatternMatcher} which created this tree pattern.\r\n *\r\n * @returns The {@link ParseTreePatternMatcher} which created this tree\r\n * pattern.\r\n */\r\n get matcher() {\r\n return this._matcher;\r\n }\r\n /**\r\n * Get the tree pattern in concrete syntax form.\r\n *\r\n * @returns The tree pattern in concrete syntax form.\r\n */\r\n get pattern() {\r\n return this._pattern;\r\n }\r\n /**\r\n * Get the parser rule which serves as the outermost rule for the tree\r\n * pattern.\r\n *\r\n * @returns The parser rule which serves as the outermost rule for the tree\r\n * pattern.\r\n */\r\n get patternRuleIndex() {\r\n return this._patternRuleIndex;\r\n }\r\n /**\r\n * Get the tree pattern as a {@link ParseTree}. The rule and token tags from\r\n * the pattern are present in the parse tree as terminal nodes with a symbol\r\n * of type {@link RuleTagToken} or {@link TokenTagToken}.\r\n *\r\n * @returns The tree pattern as a {@link ParseTree}.\r\n */\r\n get patternTree() {\r\n return this._patternTree;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"_pattern\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"_patternTree\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"_matcher\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ParseTreePattern.prototype, \"match\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParseTreePattern.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParseTreePattern.prototype, \"findAll\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"matcher\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"pattern\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePattern.prototype, \"patternTree\", null);\r\nParseTreePattern = __decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull)\r\n], ParseTreePattern);\r\nexports.ParseTreePattern = ParseTreePattern;\r\n//# sourceMappingURL=ParseTreePattern.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleTagToken = void 0;\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst Token_1 = require(\"../../Token\");\r\n/**\r\n * A {@link Token} object representing an entire subtree matched by a parser\r\n * rule; e.g., `<expr>`. These tokens are created for {@link TagChunk}\r\n * chunks where the tag corresponds to a parser rule.\r\n */\r\nlet RuleTagToken = class RuleTagToken {\r\n /**\r\n * Constructs a new instance of {@link RuleTagToken} with the specified rule\r\n * name, bypass token type, and label.\r\n *\r\n * @param ruleName The name of the parser rule this rule tag matches.\r\n * @param bypassTokenType The bypass token type assigned to the parser rule.\r\n * @param label The label associated with the rule tag, or `undefined` if\r\n * the rule tag is unlabeled.\r\n *\r\n * @exception IllegalArgumentException if `ruleName` is not defined\r\n * or empty.\r\n */\r\n constructor(ruleName, bypassTokenType, label) {\r\n if (ruleName == null || ruleName.length === 0) {\r\n throw new Error(\"ruleName cannot be null or empty.\");\r\n }\r\n this._ruleName = ruleName;\r\n this.bypassTokenType = bypassTokenType;\r\n this._label = label;\r\n }\r\n /**\r\n * Gets the name of the rule associated with this rule tag.\r\n *\r\n * @returns The name of the parser rule associated with this rule tag.\r\n */\r\n get ruleName() {\r\n return this._ruleName;\r\n }\r\n /**\r\n * Gets the label associated with the rule tag.\r\n *\r\n * @returns The name of the label associated with the rule tag, or\r\n * `undefined` if this is an unlabeled rule tag.\r\n */\r\n get label() {\r\n return this._label;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * Rule tag tokens are always placed on the {@link #DEFAULT_CHANNEL}.\r\n */\r\n get channel() {\r\n return Token_1.Token.DEFAULT_CHANNEL;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * This method returns the rule tag formatted with `<` and `>`\r\n * delimiters.\r\n */\r\n get text() {\r\n if (this._label != null) {\r\n return \"<\" + this._label + \":\" + this._ruleName + \">\";\r\n }\r\n return \"<\" + this._ruleName + \">\";\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * Rule tag tokens have types assigned according to the rule bypass\r\n * transitions created during ATN deserialization.\r\n */\r\n get type() {\r\n return this.bypassTokenType;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns 0.\r\n */\r\n get line() {\r\n return 0;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns -1.\r\n */\r\n get charPositionInLine() {\r\n return -1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns -1.\r\n */\r\n get tokenIndex() {\r\n return -1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns -1.\r\n */\r\n get startIndex() {\r\n return -1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns -1.\r\n */\r\n get stopIndex() {\r\n return -1;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns `undefined`.\r\n */\r\n get tokenSource() {\r\n return undefined;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} always returns `undefined`.\r\n */\r\n get inputStream() {\r\n return undefined;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link RuleTagToken} returns a string of the form\r\n * `ruleName:bypassTokenType`.\r\n */\r\n toString() {\r\n return this._ruleName + \":\" + this.bypassTokenType;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], RuleTagToken.prototype, \"ruleName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"channel\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"type\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"line\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"charPositionInLine\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"tokenIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"startIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"stopIndex\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"tokenSource\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleTagToken.prototype, \"toString\", null);\r\nRuleTagToken = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], RuleTagToken);\r\nexports.RuleTagToken = RuleTagToken;\r\n//# sourceMappingURL=RuleTagToken.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Chunk = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:45.2799060-07:00\r\n/**\r\n * A chunk is either a token tag, a rule tag, or a span of literal text within a\r\n * tree pattern.\r\n *\r\n * The method {@link ParseTreePatternMatcher#split(String)} returns a list of\r\n * chunks in preparation for creating a token stream by\r\n * {@link ParseTreePatternMatcher#tokenize(String)}. From there, we get a parse\r\n * tree from with {@link ParseTreePatternMatcher#compile(String, int)}. These\r\n * chunks are converted to {@link RuleTagToken}, {@link TokenTagToken}, or the\r\n * regular tokens of the text surrounding the tags.\r\n */\r\nclass Chunk {\r\n}\r\nexports.Chunk = Chunk;\r\n//# sourceMappingURL=Chunk.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TagChunk = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:46.1670669-07:00\r\nconst Chunk_1 = require(\"./Chunk\");\r\nconst Decorators_1 = require(\"../../Decorators\");\r\n/**\r\n * Represents a placeholder tag in a tree pattern. A tag can have any of the\r\n * following forms.\r\n *\r\n * * `expr`: An unlabeled placeholder for a parser rule `expr`.\r\n * * `ID`: An unlabeled placeholder for a token of type `ID`.\r\n * * `e:expr`: A labeled placeholder for a parser rule `expr`.\r\n * * `id:ID`: A labeled placeholder for a token of type `ID`.\r\n *\r\n * This class does not perform any validation on the tag or label names aside\r\n * from ensuring that the tag is a defined, non-empty string.\r\n */\r\nclass TagChunk extends Chunk_1.Chunk {\r\n /**\r\n * Construct a new instance of {@link TagChunk} using the specified label\r\n * and tag.\r\n *\r\n * @param label The label for the tag. If this is `undefined`, the\r\n * {@link TagChunk} represents an unlabeled tag.\r\n * @param tag The tag, which should be the name of a parser rule or token\r\n * type.\r\n *\r\n * @exception IllegalArgumentException if `tag` is not defined or\r\n * empty.\r\n */\r\n constructor(tag, label) {\r\n super();\r\n if (tag == null || tag.length === 0) {\r\n throw new Error(\"tag cannot be null or empty\");\r\n }\r\n this._tag = tag;\r\n this._label = label;\r\n }\r\n /**\r\n * Get the tag for this chunk.\r\n *\r\n * @returns The tag for the chunk.\r\n */\r\n get tag() {\r\n return this._tag;\r\n }\r\n /**\r\n * Get the label, if any, assigned to this chunk.\r\n *\r\n * @returns The label assigned to this chunk, or `undefined` if no label is\r\n * assigned to the chunk.\r\n */\r\n get label() {\r\n return this._label;\r\n }\r\n /**\r\n * This method returns a text representation of the tag chunk. Labeled tags\r\n * are returned in the form `label:tag`, and unlabeled tags are\r\n * returned as just the tag name.\r\n */\r\n toString() {\r\n if (this._label != null) {\r\n return this._label + \":\" + this._tag;\r\n }\r\n return this._tag;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], TagChunk.prototype, \"tag\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TagChunk.prototype, \"toString\", null);\r\nexports.TagChunk = TagChunk;\r\n//# sourceMappingURL=TagChunk.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TextChunk = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:46.2521448-07:00\r\nconst Chunk_1 = require(\"./Chunk\");\r\nconst Decorators_1 = require(\"../../Decorators\");\r\n/**\r\n * Represents a span of raw text (concrete syntax) between tags in a tree\r\n * pattern string.\r\n */\r\nlet TextChunk = class TextChunk extends Chunk_1.Chunk {\r\n /**\r\n * Constructs a new instance of {@link TextChunk} with the specified text.\r\n *\r\n * @param text The text of this chunk.\r\n * @exception IllegalArgumentException if `text` is not defined.\r\n */\r\n constructor(text) {\r\n super();\r\n if (text == null) {\r\n throw new Error(\"text cannot be null\");\r\n }\r\n this._text = text;\r\n }\r\n /**\r\n * Gets the raw text of this chunk.\r\n *\r\n * @returns The text of the chunk.\r\n */\r\n get text() {\r\n return this._text;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link TextChunk} returns the result of\r\n * `text` in single quotes.\r\n */\r\n toString() {\r\n return \"'\" + this._text + \"'\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], TextChunk.prototype, \"_text\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], TextChunk.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TextChunk.prototype, \"toString\", null);\r\nTextChunk = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], TextChunk);\r\nexports.TextChunk = TextChunk;\r\n//# sourceMappingURL=TextChunk.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TokenTagToken = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:46.3281988-07:00\r\nconst CommonToken_1 = require(\"../../CommonToken\");\r\nconst Decorators_1 = require(\"../../Decorators\");\r\n/**\r\n * A {@link Token} object representing a token of a particular type; e.g.,\r\n * `<ID>`. These tokens are created for {@link TagChunk} chunks where the\r\n * tag corresponds to a lexer rule or token type.\r\n */\r\nlet TokenTagToken = class TokenTagToken extends CommonToken_1.CommonToken {\r\n /**\r\n * Constructs a new instance of {@link TokenTagToken} with the specified\r\n * token name, type, and label.\r\n *\r\n * @param tokenName The token name.\r\n * @param type The token type.\r\n * @param label The label associated with the token tag, or `undefined` if\r\n * the token tag is unlabeled.\r\n */\r\n constructor(tokenName, type, label) {\r\n super(type);\r\n this._tokenName = tokenName;\r\n this._label = label;\r\n }\r\n /**\r\n * Gets the token name.\r\n * @returns The token name.\r\n */\r\n get tokenName() {\r\n return this._tokenName;\r\n }\r\n /**\r\n * Gets the label associated with the rule tag.\r\n *\r\n * @returns The name of the label associated with the rule tag, or\r\n * `undefined` if this is an unlabeled rule tag.\r\n */\r\n get label() {\r\n return this._label;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link TokenTagToken} returns the token tag\r\n * formatted with `<` and `>` delimiters.\r\n */\r\n get text() {\r\n if (this._label != null) {\r\n return \"<\" + this._label + \":\" + this._tokenName + \">\";\r\n }\r\n return \"<\" + this._tokenName + \">\";\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The implementation for {@link TokenTagToken} returns a string of the form\r\n * `tokenName:type`.\r\n */\r\n toString() {\r\n return this._tokenName + \":\" + this.type;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], TokenTagToken.prototype, \"_tokenName\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], TokenTagToken.prototype, \"tokenName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TokenTagToken.prototype, \"text\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TokenTagToken.prototype, \"toString\", null);\r\nTokenTagToken = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], TokenTagToken);\r\nexports.TokenTagToken = TokenTagToken;\r\n//# sourceMappingURL=TokenTagToken.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParseTreePatternMatcher = void 0;\r\n// CONVERSTION complete, Burt Harris 10/14/2016\r\nconst BailErrorStrategy_1 = require(\"../../BailErrorStrategy\");\r\nconst CharStreams_1 = require(\"../../CharStreams\");\r\nconst CommonTokenStream_1 = require(\"../../CommonTokenStream\");\r\nconst ListTokenSource_1 = require(\"../../ListTokenSource\");\r\nconst MultiMap_1 = require(\"../../misc/MultiMap\");\r\nconst Decorators_1 = require(\"../../Decorators\");\r\nconst ParseCancellationException_1 = require(\"../../misc/ParseCancellationException\");\r\nconst ParserInterpreter_1 = require(\"../../ParserInterpreter\");\r\nconst ParserRuleContext_1 = require(\"../../ParserRuleContext\");\r\nconst ParseTreeMatch_1 = require(\"./ParseTreeMatch\");\r\nconst ParseTreePattern_1 = require(\"./ParseTreePattern\");\r\nconst RecognitionException_1 = require(\"../../RecognitionException\");\r\nconst RuleNode_1 = require(\"../RuleNode\");\r\nconst RuleTagToken_1 = require(\"./RuleTagToken\");\r\nconst TagChunk_1 = require(\"./TagChunk\");\r\nconst TerminalNode_1 = require(\"../TerminalNode\");\r\nconst TextChunk_1 = require(\"./TextChunk\");\r\nconst Token_1 = require(\"../../Token\");\r\nconst TokenTagToken_1 = require(\"./TokenTagToken\");\r\n/**\r\n * A tree pattern matching mechanism for ANTLR {@link ParseTree}s.\r\n *\r\n * Patterns are strings of source input text with special tags representing\r\n * token or rule references such as:\r\n *\r\n * ```\r\n * <ID> = <expr>;\r\n * ```\r\n *\r\n * Given a pattern start rule such as `statement`, this object constructs\r\n * a {@link ParseTree} with placeholders for the `ID` and `expr`\r\n * subtree. Then the {@link #match} routines can compare an actual\r\n * {@link ParseTree} from a parse with this pattern. Tag `<ID>` matches\r\n * any `ID` token and tag `<expr>` references the result of the\r\n * `expr` rule (generally an instance of `ExprContext`.\r\n *\r\n * Pattern `x = 0;` is a similar pattern that matches the same pattern\r\n * except that it requires the identifier to be `x` and the expression to\r\n * be `0`.\r\n *\r\n * The {@link #matches} routines return `true` or `false` based\r\n * upon a match for the tree rooted at the parameter sent in. The\r\n * {@link #match} routines return a {@link ParseTreeMatch} object that\r\n * contains the parse tree, the parse tree pattern, and a map from tag name to\r\n * matched nodes (more below). A subtree that fails to match, returns with\r\n * {@link ParseTreeMatch#mismatchedNode} set to the first tree node that did not\r\n * match.\r\n *\r\n * For efficiency, you can compile a tree pattern in string form to a\r\n * {@link ParseTreePattern} object.\r\n *\r\n * See `TestParseTreeMatcher` for lots of examples.\r\n * {@link ParseTreePattern} has two static helper methods:\r\n * {@link ParseTreePattern#findAll} and {@link ParseTreePattern#match} that\r\n * are easy to use but not super efficient because they create new\r\n * {@link ParseTreePatternMatcher} objects each time and have to compile the\r\n * pattern in string form before using it.\r\n *\r\n * The lexer and parser that you pass into the {@link ParseTreePatternMatcher}\r\n * constructor are used to parse the pattern in string form. The lexer converts\r\n * the `<ID> = <expr>;` into a sequence of four tokens (assuming lexer\r\n * throws out whitespace or puts it on a hidden channel). Be aware that the\r\n * input stream is reset for the lexer (but not the parser; a\r\n * {@link ParserInterpreter} is created to parse the input.). Any user-defined\r\n * fields you have put into the lexer might get changed when this mechanism asks\r\n * it to scan the pattern string.\r\n *\r\n * Normally a parser does not accept token `<expr>` as a valid\r\n * `expr` but, from the parser passed in, we create a special version of\r\n * the underlying grammar representation (an {@link ATN}) that allows imaginary\r\n * tokens representing rules (`<expr>`) to match entire rules. We call\r\n * these *bypass alternatives*.\r\n *\r\n * Delimiters are `<`} and `>`}, with `\\` as the escape string\r\n * by default, but you can set them to whatever you want using\r\n * {@link #setDelimiters}. You must escape both start and stop strings\r\n * `\\<` and `\\>`.\r\n */\r\nclass ParseTreePatternMatcher {\r\n /**\r\n * Constructs a {@link ParseTreePatternMatcher} or from a {@link Lexer} and\r\n * {@link Parser} object. The lexer input stream is altered for tokenizing\r\n * the tree patterns. The parser is used as a convenient mechanism to get\r\n * the grammar name, plus token, rule names.\r\n */\r\n constructor(lexer, parser) {\r\n this.start = \"<\";\r\n this.stop = \">\";\r\n this.escape = \"\\\\\"; // e.g., \\< and \\> must escape BOTH!\r\n /**\r\n * Regular expression corresponding to escape, for global replace\r\n */\r\n this.escapeRE = /\\\\/g;\r\n this._lexer = lexer;\r\n this._parser = parser;\r\n }\r\n /**\r\n * Set the delimiters used for marking rule and token tags within concrete\r\n * syntax used by the tree pattern parser.\r\n *\r\n * @param start The start delimiter.\r\n * @param stop The stop delimiter.\r\n * @param escapeLeft The escape sequence to use for escaping a start or stop delimiter.\r\n *\r\n * @throws {@link Error} if `start` is not defined or empty.\r\n * @throws {@link Error} if `stop` is not defined or empty.\r\n */\r\n setDelimiters(start, stop, escapeLeft) {\r\n if (!start) {\r\n throw new Error(\"start cannot be null or empty\");\r\n }\r\n if (!stop) {\r\n throw new Error(\"stop cannot be null or empty\");\r\n }\r\n this.start = start;\r\n this.stop = stop;\r\n this.escape = escapeLeft;\r\n this.escapeRE = new RegExp(escapeLeft.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), \"g\");\r\n }\r\n matches(tree, pattern, patternRuleIndex = 0) {\r\n if (typeof pattern === \"string\") {\r\n let p = this.compile(pattern, patternRuleIndex);\r\n return this.matches(tree, p);\r\n }\r\n else {\r\n let labels = new MultiMap_1.MultiMap();\r\n let mismatchedNode = this.matchImpl(tree, pattern.patternTree, labels);\r\n return !mismatchedNode;\r\n }\r\n }\r\n // Implementation of match\r\n match(tree, pattern, patternRuleIndex = 0) {\r\n if (typeof pattern === \"string\") {\r\n let p = this.compile(pattern, patternRuleIndex);\r\n return this.match(tree, p);\r\n }\r\n else {\r\n let labels = new MultiMap_1.MultiMap();\r\n let mismatchedNode = this.matchImpl(tree, pattern.patternTree, labels);\r\n return new ParseTreeMatch_1.ParseTreeMatch(tree, pattern, labels, mismatchedNode);\r\n }\r\n }\r\n /**\r\n * For repeated use of a tree pattern, compile it to a\r\n * {@link ParseTreePattern} using this method.\r\n */\r\n compile(pattern, patternRuleIndex) {\r\n let tokenList = this.tokenize(pattern);\r\n let tokenSrc = new ListTokenSource_1.ListTokenSource(tokenList);\r\n let tokens = new CommonTokenStream_1.CommonTokenStream(tokenSrc);\r\n const parser = this._parser;\r\n let parserInterp = new ParserInterpreter_1.ParserInterpreter(parser.grammarFileName, parser.vocabulary, parser.ruleNames, parser.getATNWithBypassAlts(), tokens);\r\n let tree;\r\n try {\r\n parserInterp.errorHandler = new BailErrorStrategy_1.BailErrorStrategy();\r\n tree = parserInterp.parse(patternRuleIndex);\r\n //\t\t\tSystem.out.println(\"pattern tree = \"+tree.toStringTree(parserInterp));\r\n }\r\n catch (e) {\r\n if (e instanceof ParseCancellationException_1.ParseCancellationException) {\r\n throw e.getCause();\r\n }\r\n else if (e instanceof RecognitionException_1.RecognitionException) {\r\n throw e;\r\n }\r\n else if (e instanceof Error) {\r\n throw new ParseTreePatternMatcher.CannotInvokeStartRule(e);\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n // Make sure tree pattern compilation checks for a complete parse\r\n if (tokens.LA(1) !== Token_1.Token.EOF) {\r\n throw new ParseTreePatternMatcher.StartRuleDoesNotConsumeFullPattern();\r\n }\r\n return new ParseTreePattern_1.ParseTreePattern(this, pattern, patternRuleIndex, tree);\r\n }\r\n /**\r\n * Used to convert the tree pattern string into a series of tokens. The\r\n * input stream is reset.\r\n */\r\n get lexer() {\r\n return this._lexer;\r\n }\r\n /**\r\n * Used to collect to the grammar file name, token names, rule names for\r\n * used to parse the pattern into a parse tree.\r\n */\r\n get parser() {\r\n return this._parser;\r\n }\r\n // ---- SUPPORT CODE ----\r\n /**\r\n * Recursively walk `tree` against `patternTree`, filling\r\n * `match.`{@link ParseTreeMatch#labels labels}.\r\n *\r\n * @returns the first node encountered in `tree` which does not match\r\n * a corresponding node in `patternTree`, or `undefined` if the match\r\n * was successful. The specific node returned depends on the matching\r\n * algorithm used by the implementation, and may be overridden.\r\n */\r\n matchImpl(tree, patternTree, labels) {\r\n if (!tree) {\r\n throw new TypeError(\"tree cannot be null\");\r\n }\r\n if (!patternTree) {\r\n throw new TypeError(\"patternTree cannot be null\");\r\n }\r\n // x and <ID>, x and y, or x and x; or could be mismatched types\r\n if (tree instanceof TerminalNode_1.TerminalNode && patternTree instanceof TerminalNode_1.TerminalNode) {\r\n let mismatchedNode;\r\n // both are tokens and they have same type\r\n if (tree.symbol.type === patternTree.symbol.type) {\r\n if (patternTree.symbol instanceof TokenTagToken_1.TokenTagToken) { // x and <ID>\r\n let tokenTagToken = patternTree.symbol;\r\n // track label->list-of-nodes for both token name and label (if any)\r\n labels.map(tokenTagToken.tokenName, tree);\r\n const l = tokenTagToken.label;\r\n if (l) {\r\n labels.map(l, tree);\r\n }\r\n }\r\n else if (tree.text === patternTree.text) {\r\n // x and x\r\n }\r\n else {\r\n // x and y\r\n if (!mismatchedNode) {\r\n mismatchedNode = tree;\r\n }\r\n }\r\n }\r\n else {\r\n if (!mismatchedNode) {\r\n mismatchedNode = tree;\r\n }\r\n }\r\n return mismatchedNode;\r\n }\r\n if (tree instanceof ParserRuleContext_1.ParserRuleContext\r\n && patternTree instanceof ParserRuleContext_1.ParserRuleContext) {\r\n let mismatchedNode;\r\n // (expr ...) and <expr>\r\n let ruleTagToken = this.getRuleTagToken(patternTree);\r\n if (ruleTagToken) {\r\n let m;\r\n if (tree.ruleContext.ruleIndex === patternTree.ruleContext.ruleIndex) {\r\n // track label->list-of-nodes for both rule name and label (if any)\r\n labels.map(ruleTagToken.ruleName, tree);\r\n const l = ruleTagToken.label;\r\n if (l) {\r\n labels.map(l, tree);\r\n }\r\n }\r\n else {\r\n if (!mismatchedNode) {\r\n mismatchedNode = tree;\r\n }\r\n }\r\n return mismatchedNode;\r\n }\r\n // (expr ...) and (expr ...)\r\n if (tree.childCount !== patternTree.childCount) {\r\n if (!mismatchedNode) {\r\n mismatchedNode = tree;\r\n }\r\n return mismatchedNode;\r\n }\r\n let n = tree.childCount;\r\n for (let i = 0; i < n; i++) {\r\n let childMatch = this.matchImpl(tree.getChild(i), patternTree.getChild(i), labels);\r\n if (childMatch) {\r\n return childMatch;\r\n }\r\n }\r\n return mismatchedNode;\r\n }\r\n // if nodes aren't both tokens or both rule nodes, can't match\r\n return tree;\r\n }\r\n /** Is `t` `(expr <expr>)` subtree? */\r\n getRuleTagToken(t) {\r\n if (t instanceof RuleNode_1.RuleNode) {\r\n if (t.childCount === 1 && t.getChild(0) instanceof TerminalNode_1.TerminalNode) {\r\n let c = t.getChild(0);\r\n if (c.symbol instanceof RuleTagToken_1.RuleTagToken) {\r\n //\t\t\t\t\tSystem.out.println(\"rule tag subtree \"+t.toStringTree(parser));\r\n return c.symbol;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n tokenize(pattern) {\r\n // split pattern into chunks: sea (raw input) and islands (<ID>, <expr>)\r\n let chunks = this.split(pattern);\r\n // create token stream from text and tags\r\n let tokens = [];\r\n for (let chunk of chunks) {\r\n if (chunk instanceof TagChunk_1.TagChunk) {\r\n let tagChunk = chunk;\r\n const firstChar = tagChunk.tag.substr(0, 1);\r\n // add special rule token or conjure up new token from name\r\n if (firstChar === firstChar.toUpperCase()) {\r\n let ttype = this._parser.getTokenType(tagChunk.tag);\r\n if (ttype === Token_1.Token.INVALID_TYPE) {\r\n throw new Error(\"Unknown token \" + tagChunk.tag + \" in pattern: \" + pattern);\r\n }\r\n let t = new TokenTagToken_1.TokenTagToken(tagChunk.tag, ttype, tagChunk.label);\r\n tokens.push(t);\r\n }\r\n else if (firstChar === firstChar.toLowerCase()) {\r\n let ruleIndex = this._parser.getRuleIndex(tagChunk.tag);\r\n if (ruleIndex === -1) {\r\n throw new Error(\"Unknown rule \" + tagChunk.tag + \" in pattern: \" + pattern);\r\n }\r\n let ruleImaginaryTokenType = this._parser.getATNWithBypassAlts().ruleToTokenType[ruleIndex];\r\n tokens.push(new RuleTagToken_1.RuleTagToken(tagChunk.tag, ruleImaginaryTokenType, tagChunk.label));\r\n }\r\n else {\r\n throw new Error(\"invalid tag: \" + tagChunk.tag + \" in pattern: \" + pattern);\r\n }\r\n }\r\n else {\r\n let textChunk = chunk;\r\n this._lexer.inputStream = CharStreams_1.CharStreams.fromString(textChunk.text);\r\n let t = this._lexer.nextToken();\r\n while (t.type !== Token_1.Token.EOF) {\r\n tokens.push(t);\r\n t = this._lexer.nextToken();\r\n }\r\n }\r\n }\r\n //\t\tSystem.out.println(\"tokens=\"+tokens);\r\n return tokens;\r\n }\r\n /** Split `<ID> = <e:expr> ;` into 4 chunks for tokenizing by {@link #tokenize}. */\r\n split(pattern) {\r\n let p = 0;\r\n let n = pattern.length;\r\n let chunks = [];\r\n let buf;\r\n // find all start and stop indexes first, then collect\r\n let starts = [];\r\n let stops = [];\r\n while (p < n) {\r\n if (p === pattern.indexOf(this.escape + this.start, p)) {\r\n p += this.escape.length + this.start.length;\r\n }\r\n else if (p === pattern.indexOf(this.escape + this.stop, p)) {\r\n p += this.escape.length + this.stop.length;\r\n }\r\n else if (p === pattern.indexOf(this.start, p)) {\r\n starts.push(p);\r\n p += this.start.length;\r\n }\r\n else if (p === pattern.indexOf(this.stop, p)) {\r\n stops.push(p);\r\n p += this.stop.length;\r\n }\r\n else {\r\n p++;\r\n }\r\n }\r\n //\t\tSystem.out.println(\"\");\r\n //\t\tSystem.out.println(starts);\r\n //\t\tSystem.out.println(stops);\r\n if (starts.length > stops.length) {\r\n throw new Error(\"unterminated tag in pattern: \" + pattern);\r\n }\r\n if (starts.length < stops.length) {\r\n throw new Error(\"missing start tag in pattern: \" + pattern);\r\n }\r\n let ntags = starts.length;\r\n for (let i = 0; i < ntags; i++) {\r\n if (starts[i] >= stops[i]) {\r\n throw new Error(\"tag delimiters out of order in pattern: \" + pattern);\r\n }\r\n }\r\n // collect into chunks now\r\n if (ntags === 0) {\r\n let text = pattern.substring(0, n);\r\n chunks.push(new TextChunk_1.TextChunk(text));\r\n }\r\n if (ntags > 0 && starts[0] > 0) { // copy text up to first tag into chunks\r\n let text = pattern.substring(0, starts[0]);\r\n chunks.push(new TextChunk_1.TextChunk(text));\r\n }\r\n for (let i = 0; i < ntags; i++) {\r\n // copy inside of <tag>\r\n let tag = pattern.substring(starts[i] + this.start.length, stops[i]);\r\n let ruleOrToken = tag;\r\n let label;\r\n let colon = tag.indexOf(\":\");\r\n if (colon >= 0) {\r\n label = tag.substring(0, colon);\r\n ruleOrToken = tag.substring(colon + 1, tag.length);\r\n }\r\n chunks.push(new TagChunk_1.TagChunk(ruleOrToken, label));\r\n if (i + 1 < ntags) {\r\n // copy from end of <tag> to start of next\r\n let text = pattern.substring(stops[i] + this.stop.length, starts[i + 1]);\r\n chunks.push(new TextChunk_1.TextChunk(text));\r\n }\r\n }\r\n if (ntags > 0) {\r\n let afterLastTag = stops[ntags - 1] + this.stop.length;\r\n if (afterLastTag < n) { // copy text from end of last tag to end\r\n let text = pattern.substring(afterLastTag, n);\r\n chunks.push(new TextChunk_1.TextChunk(text));\r\n }\r\n }\r\n // strip out the escape sequences from text chunks but not tags\r\n for (let i = 0; i < chunks.length; i++) {\r\n let c = chunks[i];\r\n if (c instanceof TextChunk_1.TextChunk) {\r\n let unescaped = c.text.replace(this.escapeRE, \"\");\r\n if (unescaped.length < c.text.length) {\r\n chunks[i] = new TextChunk_1.TextChunk(unescaped);\r\n }\r\n }\r\n }\r\n return chunks;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(1, Decorators_1.NotNull)\r\n], ParseTreePatternMatcher.prototype, \"match\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePatternMatcher.prototype, \"lexer\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParseTreePatternMatcher.prototype, \"parser\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ParseTreePatternMatcher.prototype, \"matchImpl\", null);\r\nexports.ParseTreePatternMatcher = ParseTreePatternMatcher;\r\n(function (ParseTreePatternMatcher) {\r\n class CannotInvokeStartRule extends Error {\r\n constructor(error) {\r\n super(`CannotInvokeStartRule: ${error}`);\r\n this.error = error;\r\n }\r\n }\r\n ParseTreePatternMatcher.CannotInvokeStartRule = CannotInvokeStartRule;\r\n // Fixes https://github.com/antlr/antlr4/issues/413\r\n // \"Tree pattern compilation doesn't check for a complete parse\"\r\n class StartRuleDoesNotConsumeFullPattern extends Error {\r\n constructor() {\r\n super(\"StartRuleDoesNotConsumeFullPattern\");\r\n }\r\n }\r\n ParseTreePatternMatcher.StartRuleDoesNotConsumeFullPattern = StartRuleDoesNotConsumeFullPattern;\r\n})(ParseTreePatternMatcher = exports.ParseTreePatternMatcher || (exports.ParseTreePatternMatcher = {}));\r\n//# sourceMappingURL=ParseTreePatternMatcher.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DecisionEventInfo = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:28.2401032-07:00\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This is the base class for gathering detailed information about prediction\r\n * events which occur during parsing.\r\n *\r\n * Note that we could record the parser call stack at the time this event\r\n * occurred but in the presence of left recursive rules, the stack is kind of\r\n * meaningless. It's better to look at the individual configurations for their\r\n * individual stacks. Of course that is a {@link PredictionContext} object\r\n * not a parse tree node and so it does not have information about the extent\r\n * (start...stop) of the various subtrees. Examining the stack tops of all\r\n * configurations provide the return states for the rule invocations.\r\n * From there you can get the enclosing rule.\r\n *\r\n * @since 4.3\r\n */\r\nlet DecisionEventInfo = class DecisionEventInfo {\r\n constructor(decision, state, input, startIndex, stopIndex, fullCtx) {\r\n this.decision = decision;\r\n this.fullCtx = fullCtx;\r\n this.stopIndex = stopIndex;\r\n this.input = input;\r\n this.startIndex = startIndex;\r\n this.state = state;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], DecisionEventInfo.prototype, \"input\", void 0);\r\nDecisionEventInfo = __decorate([\r\n __param(2, Decorators_1.NotNull)\r\n], DecisionEventInfo);\r\nexports.DecisionEventInfo = DecisionEventInfo;\r\n//# sourceMappingURL=DecisionEventInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AmbiguityInfo = void 0;\r\nconst DecisionEventInfo_1 = require(\"./DecisionEventInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class represents profiling event information for an ambiguity.\r\n * Ambiguities are decisions where a particular input resulted in an SLL\r\n * conflict, followed by LL prediction also reaching a conflict state\r\n * (indicating a true ambiguity in the grammar).\r\n *\r\n * This event may be reported during SLL prediction in cases where the\r\n * conflicting SLL configuration set provides sufficient information to\r\n * determine that the SLL conflict is truly an ambiguity. For example, if none\r\n * of the ATN configurations in the conflicting SLL configuration set have\r\n * traversed a global follow transition (i.e.\r\n * {@link ATNConfig#getReachesIntoOuterContext} is `false` for all\r\n * configurations), then the result of SLL prediction for that input is known to\r\n * be equivalent to the result of LL prediction for that input.\r\n *\r\n * In some cases, the minimum represented alternative in the conflicting LL\r\n * configuration set is not equal to the minimum represented alternative in the\r\n * conflicting SLL configuration set. Grammars and inputs which result in this\r\n * scenario are unable to use {@link PredictionMode#SLL}, which in turn means\r\n * they cannot use the two-stage parsing strategy to improve parsing performance\r\n * for that input.\r\n *\r\n * @see ParserATNSimulator#reportAmbiguity\r\n * @see ParserErrorListener#reportAmbiguity\r\n *\r\n * @since 4.3\r\n */\r\nlet AmbiguityInfo = class AmbiguityInfo extends DecisionEventInfo_1.DecisionEventInfo {\r\n /**\r\n * Constructs a new instance of the {@link AmbiguityInfo} class with the\r\n * specified detailed ambiguity information.\r\n *\r\n * @param decision The decision number\r\n * @param state The final simulator state identifying the ambiguous\r\n * alternatives for the current input\r\n * @param ambigAlts The set of alternatives in the decision that lead to a valid parse.\r\n * The predicted alt is the min(ambigAlts)\r\n * @param input The input token stream\r\n * @param startIndex The start index for the current prediction\r\n * @param stopIndex The index at which the ambiguity was identified during\r\n * prediction\r\n */\r\n constructor(decision, state, ambigAlts, input, startIndex, stopIndex) {\r\n super(decision, state, input, startIndex, stopIndex, state.useContext);\r\n this.ambigAlts = ambigAlts;\r\n }\r\n /**\r\n * Gets the set of alternatives in the decision that lead to a valid parse.\r\n *\r\n * @since 4.5\r\n */\r\n get ambiguousAlternatives() {\r\n return this.ambigAlts;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], AmbiguityInfo.prototype, \"ambigAlts\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], AmbiguityInfo.prototype, \"ambiguousAlternatives\", null);\r\nAmbiguityInfo = __decorate([\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull)\r\n], AmbiguityInfo);\r\nexports.AmbiguityInfo = AmbiguityInfo;\r\n//# sourceMappingURL=AmbiguityInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ContextSensitivityInfo = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:28.1575933-07:00\r\nconst DecisionEventInfo_1 = require(\"./DecisionEventInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class represents profiling event information for a context sensitivity.\r\n * Context sensitivities are decisions where a particular input resulted in an\r\n * SLL conflict, but LL prediction produced a single unique alternative.\r\n *\r\n * In some cases, the unique alternative identified by LL prediction is not\r\n * equal to the minimum represented alternative in the conflicting SLL\r\n * configuration set. Grammars and inputs which result in this scenario are\r\n * unable to use {@link PredictionMode#SLL}, which in turn means they cannot use\r\n * the two-stage parsing strategy to improve parsing performance for that\r\n * input.\r\n *\r\n * @see ParserATNSimulator#reportContextSensitivity\r\n * @see ParserErrorListener#reportContextSensitivity\r\n *\r\n * @since 4.3\r\n */\r\nlet ContextSensitivityInfo = class ContextSensitivityInfo extends DecisionEventInfo_1.DecisionEventInfo {\r\n /**\r\n * Constructs a new instance of the {@link ContextSensitivityInfo} class\r\n * with the specified detailed context sensitivity information.\r\n *\r\n * @param decision The decision number\r\n * @param state The final simulator state containing the unique\r\n * alternative identified by full-context prediction\r\n * @param input The input token stream\r\n * @param startIndex The start index for the current prediction\r\n * @param stopIndex The index at which the context sensitivity was\r\n * identified during full-context prediction\r\n */\r\n constructor(decision, state, input, startIndex, stopIndex) {\r\n super(decision, state, input, startIndex, stopIndex, true);\r\n }\r\n};\r\nContextSensitivityInfo = __decorate([\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ContextSensitivityInfo);\r\nexports.ContextSensitivityInfo = ContextSensitivityInfo;\r\n//# sourceMappingURL=ContextSensitivityInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DecisionInfo = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class contains profiling gathered for a particular decision.\r\n *\r\n * Parsing performance in ANTLR 4 is heavily influenced by both static factors\r\n * (e.g. the form of the rules in the grammar) and dynamic factors (e.g. the\r\n * choice of input and the state of the DFA cache at the time profiling\r\n * operations are started). For best results, gather and use aggregate\r\n * statistics from a large sample of inputs representing the inputs expected in\r\n * production before using the results to make changes in the grammar.\r\n *\r\n * @since 4.3\r\n */\r\nclass DecisionInfo {\r\n /**\r\n * Constructs a new instance of the {@link DecisionInfo} class to contain\r\n * statistics for a particular decision.\r\n *\r\n * @param decision The decision number\r\n */\r\n constructor(decision) {\r\n /**\r\n * The total number of times {@link ParserATNSimulator#adaptivePredict} was\r\n * invoked for this decision.\r\n */\r\n this.invocations = 0;\r\n /**\r\n * The total time spent in {@link ParserATNSimulator#adaptivePredict} for\r\n * this decision, in nanoseconds.\r\n *\r\n * The value of this field contains the sum of differential results obtained\r\n * by {@link System#nanoTime()}, and is not adjusted to compensate for JIT\r\n * and/or garbage collection overhead. For best accuracy, use a modern JVM\r\n * implementation that provides precise results from\r\n * {@link System#nanoTime()}, and perform profiling in a separate process\r\n * which is warmed up by parsing the input prior to profiling. If desired,\r\n * call {@link ATNSimulator#clearDFA} to reset the DFA cache to its initial\r\n * state before starting the profiling measurement pass.\r\n */\r\n this.timeInPrediction = 0;\r\n /**\r\n * The sum of the lookahead required for SLL prediction for this decision.\r\n * Note that SLL prediction is used before LL prediction for performance\r\n * reasons even when {@link PredictionMode#LL} or\r\n * {@link PredictionMode#LL_EXACT_AMBIG_DETECTION} is used.\r\n */\r\n this.SLL_TotalLook = 0;\r\n /**\r\n * Gets the minimum lookahead required for any single SLL prediction to\r\n * complete for this decision, by reaching a unique prediction, reaching an\r\n * SLL conflict state, or encountering a syntax error.\r\n */\r\n this.SLL_MinLook = 0;\r\n /**\r\n * Gets the maximum lookahead required for any single SLL prediction to\r\n * complete for this decision, by reaching a unique prediction, reaching an\r\n * SLL conflict state, or encountering a syntax error.\r\n */\r\n this.SLL_MaxLook = 0;\r\n /**\r\n * The sum of the lookahead required for LL prediction for this decision.\r\n * Note that LL prediction is only used when SLL prediction reaches a\r\n * conflict state.\r\n */\r\n this.LL_TotalLook = 0;\r\n /**\r\n * Gets the minimum lookahead required for any single LL prediction to\r\n * complete for this decision. An LL prediction completes when the algorithm\r\n * reaches a unique prediction, a conflict state (for\r\n * {@link PredictionMode#LL}, an ambiguity state (for\r\n * {@link PredictionMode#LL_EXACT_AMBIG_DETECTION}, or a syntax error.\r\n */\r\n this.LL_MinLook = 0;\r\n /**\r\n * Gets the maximum lookahead required for any single LL prediction to\r\n * complete for this decision. An LL prediction completes when the algorithm\r\n * reaches a unique prediction, a conflict state (for\r\n * {@link PredictionMode#LL}, an ambiguity state (for\r\n * {@link PredictionMode#LL_EXACT_AMBIG_DETECTION}, or a syntax error.\r\n */\r\n this.LL_MaxLook = 0;\r\n /**\r\n * A collection of {@link ContextSensitivityInfo} instances describing the\r\n * context sensitivities encountered during LL prediction for this decision.\r\n *\r\n * @see ContextSensitivityInfo\r\n */\r\n this.contextSensitivities = [];\r\n /**\r\n * A collection of {@link ErrorInfo} instances describing the parse errors\r\n * identified during calls to {@link ParserATNSimulator#adaptivePredict} for\r\n * this decision.\r\n *\r\n * @see ErrorInfo\r\n */\r\n this.errors = [];\r\n /**\r\n * A collection of {@link AmbiguityInfo} instances describing the\r\n * ambiguities encountered during LL prediction for this decision.\r\n *\r\n * @see AmbiguityInfo\r\n */\r\n this.ambiguities = [];\r\n /**\r\n * A collection of {@link PredicateEvalInfo} instances describing the\r\n * results of evaluating individual predicates during prediction for this\r\n * decision.\r\n *\r\n * @see PredicateEvalInfo\r\n */\r\n this.predicateEvals = [];\r\n /**\r\n * The total number of ATN transitions required during SLL prediction for\r\n * this decision. An ATN transition is determined by the number of times the\r\n * DFA does not contain an edge that is required for prediction, resulting\r\n * in on-the-fly computation of that edge.\r\n *\r\n * If DFA caching of SLL transitions is employed by the implementation, ATN\r\n * computation may cache the computed edge for efficient lookup during\r\n * future parsing of this decision. Otherwise, the SLL parsing algorithm\r\n * will use ATN transitions exclusively.\r\n *\r\n * @see #SLL_ATNTransitions\r\n * @see ParserATNSimulator#computeTargetState\r\n * @see LexerATNSimulator#computeTargetState\r\n */\r\n this.SLL_ATNTransitions = 0;\r\n /**\r\n * The total number of DFA transitions required during SLL prediction for\r\n * this decision.\r\n *\r\n * If the ATN simulator implementation does not use DFA caching for SLL\r\n * transitions, this value will be 0.\r\n *\r\n * @see ParserATNSimulator#getExistingTargetState\r\n * @see LexerATNSimulator#getExistingTargetState\r\n */\r\n this.SLL_DFATransitions = 0;\r\n /**\r\n * Gets the total number of times SLL prediction completed in a conflict\r\n * state, resulting in fallback to LL prediction.\r\n *\r\n * Note that this value is not related to whether or not\r\n * {@link PredictionMode#SLL} may be used successfully with a particular\r\n * grammar. If the ambiguity resolution algorithm applied to the SLL\r\n * conflicts for this decision produce the same result as LL prediction for\r\n * this decision, {@link PredictionMode#SLL} would produce the same overall\r\n * parsing result as {@link PredictionMode#LL}.\r\n */\r\n this.LL_Fallback = 0;\r\n /**\r\n * The total number of ATN transitions required during LL prediction for\r\n * this decision. An ATN transition is determined by the number of times the\r\n * DFA does not contain an edge that is required for prediction, resulting\r\n * in on-the-fly computation of that edge.\r\n *\r\n * If DFA caching of LL transitions is employed by the implementation, ATN\r\n * computation may cache the computed edge for efficient lookup during\r\n * future parsing of this decision. Otherwise, the LL parsing algorithm will\r\n * use ATN transitions exclusively.\r\n *\r\n * @see #LL_DFATransitions\r\n * @see ParserATNSimulator#computeTargetState\r\n * @see LexerATNSimulator#computeTargetState\r\n */\r\n this.LL_ATNTransitions = 0;\r\n /**\r\n * The total number of DFA transitions required during LL prediction for\r\n * this decision.\r\n *\r\n * If the ATN simulator implementation does not use DFA caching for LL\r\n * transitions, this value will be 0.\r\n *\r\n * @see ParserATNSimulator#getExistingTargetState\r\n * @see LexerATNSimulator#getExistingTargetState\r\n */\r\n this.LL_DFATransitions = 0;\r\n this.decision = decision;\r\n }\r\n toString() {\r\n return \"{\" +\r\n \"decision=\" + this.decision +\r\n \", contextSensitivities=\" + this.contextSensitivities.length +\r\n \", errors=\" + this.errors.length +\r\n \", ambiguities=\" + this.ambiguities.length +\r\n \", SLL_lookahead=\" + this.SLL_TotalLook +\r\n \", SLL_ATNTransitions=\" + this.SLL_ATNTransitions +\r\n \", SLL_DFATransitions=\" + this.SLL_DFATransitions +\r\n \", LL_Fallback=\" + this.LL_Fallback +\r\n \", LL_lookahead=\" + this.LL_TotalLook +\r\n \", LL_ATNTransitions=\" + this.LL_ATNTransitions +\r\n \"}\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], DecisionInfo.prototype, \"toString\", null);\r\nexports.DecisionInfo = DecisionInfo;\r\n//# sourceMappingURL=DecisionInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ErrorInfo = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:28.7213647-07:00\r\nconst DecisionEventInfo_1 = require(\"./DecisionEventInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class represents profiling event information for a syntax error\r\n * identified during prediction. Syntax errors occur when the prediction\r\n * algorithm is unable to identify an alternative which would lead to a\r\n * successful parse.\r\n *\r\n * @see Parser#notifyErrorListeners(Token, String, RecognitionException)\r\n * @see ANTLRErrorListener#syntaxError\r\n *\r\n * @since 4.3\r\n */\r\nlet ErrorInfo = class ErrorInfo extends DecisionEventInfo_1.DecisionEventInfo {\r\n /**\r\n * Constructs a new instance of the {@link ErrorInfo} class with the\r\n * specified detailed syntax error information.\r\n *\r\n * @param decision The decision number\r\n * @param state The final simulator state reached during prediction\r\n * prior to reaching the {@link ATNSimulator#ERROR} state\r\n * @param input The input token stream\r\n * @param startIndex The start index for the current prediction\r\n * @param stopIndex The index at which the syntax error was identified\r\n */\r\n constructor(decision, state, input, startIndex, stopIndex) {\r\n super(decision, state, input, startIndex, stopIndex, state.useContext);\r\n }\r\n};\r\nErrorInfo = __decorate([\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ErrorInfo);\r\nexports.ErrorInfo = ErrorInfo;\r\n//# sourceMappingURL=ErrorInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LookaheadEventInfo = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:30.6852565-07:00\r\nconst DecisionEventInfo_1 = require(\"./DecisionEventInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class represents profiling event information for tracking the lookahead\r\n * depth required in order to make a prediction.\r\n *\r\n * @since 4.3\r\n */\r\nlet LookaheadEventInfo = class LookaheadEventInfo extends DecisionEventInfo_1.DecisionEventInfo {\r\n /**\r\n * Constructs a new instance of the {@link LookaheadEventInfo} class with\r\n * the specified detailed lookahead information.\r\n *\r\n * @param decision The decision number\r\n * @param state The final simulator state containing the necessary\r\n * information to determine the result of a prediction, or `undefined` if\r\n * the final state is not available\r\n * @param input The input token stream\r\n * @param startIndex The start index for the current prediction\r\n * @param stopIndex The index at which the prediction was finally made\r\n * @param fullCtx `true` if the current lookahead is part of an LL\r\n * prediction; otherwise, `false` if the current lookahead is part of\r\n * an SLL prediction\r\n */\r\n constructor(decision, state, predictedAlt, input, startIndex, stopIndex, fullCtx) {\r\n super(decision, state, input, startIndex, stopIndex, fullCtx);\r\n this.predictedAlt = predictedAlt;\r\n }\r\n};\r\nLookaheadEventInfo = __decorate([\r\n __param(3, Decorators_1.NotNull)\r\n], LookaheadEventInfo);\r\nexports.LookaheadEventInfo = LookaheadEventInfo;\r\n//# sourceMappingURL=LookaheadEventInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PredicateEvalInfo = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.1914305-07:00\r\nconst DecisionEventInfo_1 = require(\"./DecisionEventInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/**\r\n * This class represents profiling event information for semantic predicate\r\n * evaluations which occur during prediction.\r\n *\r\n * @see ParserATNSimulator#evalSemanticContext\r\n *\r\n * @since 4.3\r\n */\r\nlet PredicateEvalInfo = class PredicateEvalInfo extends DecisionEventInfo_1.DecisionEventInfo {\r\n /**\r\n * Constructs a new instance of the {@link PredicateEvalInfo} class with the\r\n * specified detailed predicate evaluation information.\r\n *\r\n * @param state The simulator state\r\n * @param decision The decision number\r\n * @param input The input token stream\r\n * @param startIndex The start index for the current prediction\r\n * @param stopIndex The index at which the predicate evaluation was\r\n * triggered. Note that the input stream may be reset to other positions for\r\n * the actual evaluation of individual predicates.\r\n * @param semctx The semantic context which was evaluated\r\n * @param evalResult The results of evaluating the semantic context\r\n * @param predictedAlt The alternative number for the decision which is\r\n * guarded by the semantic context `semctx`. See {@link #predictedAlt}\r\n * for more information.\r\n *\r\n * @see ParserATNSimulator#evalSemanticContext(SemanticContext, ParserRuleContext, int)\r\n * @see SemanticContext#eval(Recognizer, RuleContext)\r\n */\r\n constructor(state, decision, input, startIndex, stopIndex, semctx, evalResult, predictedAlt) {\r\n super(decision, state, input, startIndex, stopIndex, state.useContext);\r\n this.semctx = semctx;\r\n this.evalResult = evalResult;\r\n this.predictedAlt = predictedAlt;\r\n }\r\n};\r\nPredicateEvalInfo = __decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull),\r\n __param(5, Decorators_1.NotNull)\r\n], PredicateEvalInfo);\r\nexports.PredicateEvalInfo = PredicateEvalInfo;\r\n//# sourceMappingURL=PredicateEvalInfo.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SimulatorState = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst ParserRuleContext_1 = require(\"../ParserRuleContext\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nlet SimulatorState = class SimulatorState {\r\n constructor(outerContext, s0, useContext, remainingOuterContext) {\r\n this.outerContext = outerContext != null ? outerContext : ParserRuleContext_1.ParserRuleContext.emptyContext();\r\n this.s0 = s0;\r\n this.useContext = useContext;\r\n this.remainingOuterContext = remainingOuterContext;\r\n }\r\n};\r\nSimulatorState = __decorate([\r\n __param(1, Decorators_1.NotNull)\r\n], SimulatorState);\r\nexports.SimulatorState = SimulatorState;\r\n//# sourceMappingURL=SimulatorState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ProfilingATNSimulator = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:36.4188352-07:00\r\nconst AmbiguityInfo_1 = require(\"./AmbiguityInfo\");\r\nconst ATN_1 = require(\"./ATN\");\r\nconst ATNSimulator_1 = require(\"./ATNSimulator\");\r\nconst ContextSensitivityInfo_1 = require(\"./ContextSensitivityInfo\");\r\nconst DecisionInfo_1 = require(\"./DecisionInfo\");\r\nconst ErrorInfo_1 = require(\"./ErrorInfo\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst LookaheadEventInfo_1 = require(\"./LookaheadEventInfo\");\r\nconst ParserATNSimulator_1 = require(\"./ParserATNSimulator\");\r\nconst PredicateEvalInfo_1 = require(\"./PredicateEvalInfo\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\nconst SimulatorState_1 = require(\"./SimulatorState\");\r\n/**\r\n * @since 4.3\r\n */\r\nclass ProfilingATNSimulator extends ParserATNSimulator_1.ParserATNSimulator {\r\n constructor(parser) {\r\n super(parser.interpreter.atn, parser);\r\n this._startIndex = 0;\r\n this._sllStopIndex = 0;\r\n this._llStopIndex = 0;\r\n this.currentDecision = 0;\r\n /** At the point of LL failover, we record how SLL would resolve the conflict so that\r\n * we can determine whether or not a decision / input pair is context-sensitive.\r\n * If LL gives a different result than SLL's predicted alternative, we have a\r\n * context sensitivity for sure. The converse is not necessarily true, however.\r\n * It's possible that after conflict resolution chooses minimum alternatives,\r\n * SLL could get the same answer as LL. Regardless of whether or not the result indicates\r\n * an ambiguity, it is not treated as a context sensitivity because LL prediction\r\n * was not required in order to produce a correct prediction for this decision and input sequence.\r\n * It may in fact still be a context sensitivity but we don't know by looking at the\r\n * minimum alternatives for the current input.\r\n */\r\n this.conflictingAltResolvedBySLL = 0;\r\n this.optimize_ll1 = false;\r\n this.reportAmbiguities = true;\r\n this.numDecisions = this.atn.decisionToState.length;\r\n this.decisions = [];\r\n for (let i = 0; i < this.numDecisions; i++) {\r\n this.decisions.push(new DecisionInfo_1.DecisionInfo(i));\r\n }\r\n }\r\n adaptivePredict(input, decision, outerContext, useContext) {\r\n if (useContext !== undefined) {\r\n return super.adaptivePredict(input, decision, outerContext, useContext);\r\n }\r\n try {\r\n this._input = input;\r\n this._startIndex = input.index;\r\n // it's possible for SLL to reach a conflict state without consuming any input\r\n this._sllStopIndex = this._startIndex - 1;\r\n this._llStopIndex = -1;\r\n this.currentDecision = decision;\r\n this.currentState = undefined;\r\n this.conflictingAltResolvedBySLL = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n let start = process.hrtime();\r\n let alt = super.adaptivePredict(input, decision, outerContext);\r\n let stop = process.hrtime();\r\n let nanoseconds = (stop[0] - start[0]) * 1000000000;\r\n if (nanoseconds === 0) {\r\n nanoseconds = stop[1] - start[1];\r\n }\r\n else {\r\n // Add nanoseconds from start to end of that second, plus start of the end second to end\r\n nanoseconds += (1000000000 - start[1]) + stop[1];\r\n }\r\n this.decisions[decision].timeInPrediction += nanoseconds;\r\n this.decisions[decision].invocations++;\r\n let SLL_k = this._sllStopIndex - this._startIndex + 1;\r\n this.decisions[decision].SLL_TotalLook += SLL_k;\r\n this.decisions[decision].SLL_MinLook = this.decisions[decision].SLL_MinLook === 0 ? SLL_k : Math.min(this.decisions[decision].SLL_MinLook, SLL_k);\r\n if (SLL_k > this.decisions[decision].SLL_MaxLook) {\r\n this.decisions[decision].SLL_MaxLook = SLL_k;\r\n this.decisions[decision].SLL_MaxLookEvent =\r\n new LookaheadEventInfo_1.LookaheadEventInfo(decision, undefined, alt, input, this._startIndex, this._sllStopIndex, false);\r\n }\r\n if (this._llStopIndex >= 0) {\r\n let LL_k = this._llStopIndex - this._startIndex + 1;\r\n this.decisions[decision].LL_TotalLook += LL_k;\r\n this.decisions[decision].LL_MinLook = this.decisions[decision].LL_MinLook === 0 ? LL_k : Math.min(this.decisions[decision].LL_MinLook, LL_k);\r\n if (LL_k > this.decisions[decision].LL_MaxLook) {\r\n this.decisions[decision].LL_MaxLook = LL_k;\r\n this.decisions[decision].LL_MaxLookEvent =\r\n new LookaheadEventInfo_1.LookaheadEventInfo(decision, undefined, alt, input, this._startIndex, this._llStopIndex, true);\r\n }\r\n }\r\n return alt;\r\n }\r\n finally {\r\n this._input = undefined;\r\n this.currentDecision = -1;\r\n }\r\n }\r\n getStartState(dfa, input, outerContext, useContext) {\r\n let state = super.getStartState(dfa, input, outerContext, useContext);\r\n this.currentState = state;\r\n return state;\r\n }\r\n computeStartState(dfa, globalContext, useContext) {\r\n let state = super.computeStartState(dfa, globalContext, useContext);\r\n this.currentState = state;\r\n return state;\r\n }\r\n computeReachSet(dfa, previous, t, contextCache) {\r\n if (this._input === undefined) {\r\n throw new Error(\"Invalid state\");\r\n }\r\n let reachState = super.computeReachSet(dfa, previous, t, contextCache);\r\n if (reachState == null) {\r\n // no reach on current lookahead symbol. ERROR.\r\n this.decisions[this.currentDecision].errors.push(new ErrorInfo_1.ErrorInfo(this.currentDecision, previous, this._input, this._startIndex, this._input.index));\r\n }\r\n this.currentState = reachState;\r\n return reachState;\r\n }\r\n getExistingTargetState(previousD, t) {\r\n if (this.currentState === undefined || this._input === undefined) {\r\n throw new Error(\"Invalid state\");\r\n }\r\n // this method is called after each time the input position advances\r\n if (this.currentState.useContext) {\r\n this._llStopIndex = this._input.index;\r\n }\r\n else {\r\n this._sllStopIndex = this._input.index;\r\n }\r\n let existingTargetState = super.getExistingTargetState(previousD, t);\r\n if (existingTargetState != null) {\r\n // this method is directly called by execDFA; must construct a SimulatorState\r\n // to represent the current state for this case\r\n this.currentState = new SimulatorState_1.SimulatorState(this.currentState.outerContext, existingTargetState, this.currentState.useContext, this.currentState.remainingOuterContext);\r\n if (this.currentState.useContext) {\r\n this.decisions[this.currentDecision].LL_DFATransitions++;\r\n }\r\n else {\r\n this.decisions[this.currentDecision].SLL_DFATransitions++; // count only if we transition over a DFA state\r\n }\r\n if (existingTargetState === ATNSimulator_1.ATNSimulator.ERROR) {\r\n let state = new SimulatorState_1.SimulatorState(this.currentState.outerContext, previousD, this.currentState.useContext, this.currentState.remainingOuterContext);\r\n this.decisions[this.currentDecision].errors.push(new ErrorInfo_1.ErrorInfo(this.currentDecision, state, this._input, this._startIndex, this._input.index));\r\n }\r\n }\r\n return existingTargetState;\r\n }\r\n computeTargetState(dfa, s, remainingGlobalContext, t, useContext, contextCache) {\r\n let targetState = super.computeTargetState(dfa, s, remainingGlobalContext, t, useContext, contextCache);\r\n if (useContext) {\r\n this.decisions[this.currentDecision].LL_ATNTransitions++;\r\n }\r\n else {\r\n this.decisions[this.currentDecision].SLL_ATNTransitions++;\r\n }\r\n return targetState;\r\n }\r\n evalSemanticContextImpl(pred, parserCallStack, alt) {\r\n if (this.currentState === undefined || this._input === undefined) {\r\n throw new Error(\"Invalid state\");\r\n }\r\n let result = super.evalSemanticContextImpl(pred, parserCallStack, alt);\r\n if (!(pred instanceof SemanticContext_1.SemanticContext.PrecedencePredicate)) {\r\n let fullContext = this._llStopIndex >= 0;\r\n let stopIndex = fullContext ? this._llStopIndex : this._sllStopIndex;\r\n this.decisions[this.currentDecision].predicateEvals.push(new PredicateEvalInfo_1.PredicateEvalInfo(this.currentState, this.currentDecision, this._input, this._startIndex, stopIndex, pred, result, alt));\r\n }\r\n return result;\r\n }\r\n reportContextSensitivity(dfa, prediction, acceptState, startIndex, stopIndex) {\r\n if (this._input === undefined) {\r\n throw new Error(\"Invalid state\");\r\n }\r\n if (prediction !== this.conflictingAltResolvedBySLL) {\r\n this.decisions[this.currentDecision].contextSensitivities.push(new ContextSensitivityInfo_1.ContextSensitivityInfo(this.currentDecision, acceptState, this._input, startIndex, stopIndex));\r\n }\r\n super.reportContextSensitivity(dfa, prediction, acceptState, startIndex, stopIndex);\r\n }\r\n reportAttemptingFullContext(dfa, conflictingAlts, conflictState, startIndex, stopIndex) {\r\n if (conflictingAlts != null) {\r\n this.conflictingAltResolvedBySLL = conflictingAlts.nextSetBit(0);\r\n }\r\n else {\r\n this.conflictingAltResolvedBySLL = conflictState.s0.configs.getRepresentedAlternatives().nextSetBit(0);\r\n }\r\n this.decisions[this.currentDecision].LL_Fallback++;\r\n super.reportAttemptingFullContext(dfa, conflictingAlts, conflictState, startIndex, stopIndex);\r\n }\r\n reportAmbiguity(dfa, D, startIndex, stopIndex, exact, ambigAlts, configs) {\r\n if (this.currentState === undefined || this._input === undefined) {\r\n throw new Error(\"Invalid state\");\r\n }\r\n let prediction;\r\n if (ambigAlts != null) {\r\n prediction = ambigAlts.nextSetBit(0);\r\n }\r\n else {\r\n prediction = configs.getRepresentedAlternatives().nextSetBit(0);\r\n }\r\n if (this.conflictingAltResolvedBySLL !== ATN_1.ATN.INVALID_ALT_NUMBER && prediction !== this.conflictingAltResolvedBySLL) {\r\n // Even though this is an ambiguity we are reporting, we can\r\n // still detect some context sensitivities. Both SLL and LL\r\n // are showing a conflict, hence an ambiguity, but if they resolve\r\n // to different minimum alternatives we have also identified a\r\n // context sensitivity.\r\n this.decisions[this.currentDecision].contextSensitivities.push(new ContextSensitivityInfo_1.ContextSensitivityInfo(this.currentDecision, this.currentState, this._input, startIndex, stopIndex));\r\n }\r\n this.decisions[this.currentDecision].ambiguities.push(new AmbiguityInfo_1.AmbiguityInfo(this.currentDecision, this.currentState, ambigAlts, this._input, startIndex, stopIndex));\r\n super.reportAmbiguity(dfa, D, startIndex, stopIndex, exact, ambigAlts, configs);\r\n }\r\n // ---------------------------------------------------------------------\r\n getDecisionInfo() {\r\n return this.decisions;\r\n }\r\n getCurrentState() {\r\n return this.currentState;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], ProfilingATNSimulator.prototype, \"adaptivePredict\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"getStartState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"computeStartState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"computeReachSet\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"getExistingTargetState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"computeTargetState\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"evalSemanticContextImpl\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"reportContextSensitivity\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ProfilingATNSimulator.prototype, \"reportAttemptingFullContext\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull), __param(5, Decorators_1.NotNull), __param(6, Decorators_1.NotNull)\r\n], ProfilingATNSimulator.prototype, \"reportAmbiguity\", null);\r\nexports.ProfilingATNSimulator = ProfilingATNSimulator;\r\n//# sourceMappingURL=ProfilingATNSimulator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Parser = void 0;\r\nconst Utils = require(\"./misc/Utils\");\r\nconst ATNDeserializationOptions_1 = require(\"./atn/ATNDeserializationOptions\");\r\nconst ATNDeserializer_1 = require(\"./atn/ATNDeserializer\");\r\nconst DefaultErrorStrategy_1 = require(\"./DefaultErrorStrategy\");\r\nconst ErrorNode_1 = require(\"./tree/ErrorNode\");\r\nconst IntegerStack_1 = require(\"./misc/IntegerStack\");\r\nconst Lexer_1 = require(\"./Lexer\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst ParseInfo_1 = require(\"./atn/ParseInfo\");\r\nconst ParserATNSimulator_1 = require(\"./atn/ParserATNSimulator\");\r\nconst ProxyParserErrorListener_1 = require(\"./ProxyParserErrorListener\");\r\nconst Recognizer_1 = require(\"./Recognizer\");\r\nconst TerminalNode_1 = require(\"./tree/TerminalNode\");\r\nconst Token_1 = require(\"./Token\");\r\nclass TraceListener {\r\n constructor(ruleNames, tokenStream) {\r\n this.ruleNames = ruleNames;\r\n this.tokenStream = tokenStream;\r\n }\r\n enterEveryRule(ctx) {\r\n console.log(\"enter \" + this.ruleNames[ctx.ruleIndex] +\r\n \", LT(1)=\" + this.tokenStream.LT(1).text);\r\n }\r\n exitEveryRule(ctx) {\r\n console.log(\"exit \" + this.ruleNames[ctx.ruleIndex] +\r\n \", LT(1)=\" + this.tokenStream.LT(1).text);\r\n }\r\n visitErrorNode(node) {\r\n // intentionally empty\r\n }\r\n visitTerminal(node) {\r\n let parent = node.parent.ruleContext;\r\n let token = node.symbol;\r\n console.log(\"consume \" + token + \" rule \" + this.ruleNames[parent.ruleIndex]);\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], TraceListener.prototype, \"enterEveryRule\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TraceListener.prototype, \"exitEveryRule\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TraceListener.prototype, \"visitErrorNode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], TraceListener.prototype, \"visitTerminal\", null);\r\n/** This is all the parsing support code essentially; most of it is error recovery stuff. */\r\nclass Parser extends Recognizer_1.Recognizer {\r\n constructor(input) {\r\n super();\r\n /**\r\n * The error handling strategy for the parser. The default value is a new\r\n * instance of {@link DefaultErrorStrategy}.\r\n *\r\n * @see #getErrorHandler\r\n * @see #setErrorHandler\r\n */\r\n this._errHandler = new DefaultErrorStrategy_1.DefaultErrorStrategy();\r\n this._precedenceStack = new IntegerStack_1.IntegerStack();\r\n /**\r\n * Specifies whether or not the parser should construct a parse tree during\r\n * the parsing process. The default value is `true`.\r\n *\r\n * @see `buildParseTree`\r\n */\r\n this._buildParseTrees = true;\r\n /**\r\n * The list of {@link ParseTreeListener} listeners registered to receive\r\n * events during the parse.\r\n *\r\n * @see #addParseListener\r\n */\r\n this._parseListeners = [];\r\n /**\r\n * The number of syntax errors reported during parsing. This value is\r\n * incremented each time {@link #notifyErrorListeners} is called.\r\n */\r\n this._syntaxErrors = 0;\r\n /** Indicates parser has match()ed EOF token. See {@link #exitRule()}. */\r\n this.matchedEOF = false;\r\n this._precedenceStack.push(0);\r\n this.inputStream = input;\r\n }\r\n reset(resetInput) {\r\n // Note: this method executes when not parsing, so _ctx can be undefined\r\n if (resetInput === undefined || resetInput) {\r\n this.inputStream.seek(0);\r\n }\r\n this._errHandler.reset(this);\r\n this._ctx = undefined;\r\n this._syntaxErrors = 0;\r\n this.matchedEOF = false;\r\n this.isTrace = false;\r\n this._precedenceStack.clear();\r\n this._precedenceStack.push(0);\r\n let interpreter = this.interpreter;\r\n if (interpreter != null) {\r\n interpreter.reset();\r\n }\r\n }\r\n /**\r\n * Match current input symbol against `ttype`. If the symbol type\r\n * matches, {@link ANTLRErrorStrategy#reportMatch} and {@link #consume} are\r\n * called to complete the match process.\r\n *\r\n * If the symbol type does not match,\r\n * {@link ANTLRErrorStrategy#recoverInline} is called on the current error\r\n * strategy to attempt recovery. If {@link #getBuildParseTree} is\r\n * `true` and the token index of the symbol returned by\r\n * {@link ANTLRErrorStrategy#recoverInline} is -1, the symbol is added to\r\n * the parse tree by calling {@link #createErrorNode(ParserRuleContext, Token)} then\r\n * {@link ParserRuleContext#addErrorNode(ErrorNode)}.\r\n *\r\n * @param ttype the token type to match\r\n * @returns the matched symbol\r\n * @ if the current input symbol did not match\r\n * `ttype` and the error strategy could not recover from the\r\n * mismatched symbol\r\n */\r\n match(ttype) {\r\n let t = this.currentToken;\r\n if (t.type === ttype) {\r\n if (ttype === Token_1.Token.EOF) {\r\n this.matchedEOF = true;\r\n }\r\n this._errHandler.reportMatch(this);\r\n this.consume();\r\n }\r\n else {\r\n t = this._errHandler.recoverInline(this);\r\n if (this._buildParseTrees && t.tokenIndex === -1) {\r\n // we must have conjured up a new token during single token insertion\r\n // if it's not the current symbol\r\n this._ctx.addErrorNode(this.createErrorNode(this._ctx, t));\r\n }\r\n }\r\n return t;\r\n }\r\n /**\r\n * Match current input symbol as a wildcard. If the symbol type matches\r\n * (i.e. has a value greater than 0), {@link ANTLRErrorStrategy#reportMatch}\r\n * and {@link #consume} are called to complete the match process.\r\n *\r\n * If the symbol type does not match,\r\n * {@link ANTLRErrorStrategy#recoverInline} is called on the current error\r\n * strategy to attempt recovery. If {@link #getBuildParseTree} is\r\n * `true` and the token index of the symbol returned by\r\n * {@link ANTLRErrorStrategy#recoverInline} is -1, the symbol is added to\r\n * the parse tree by calling {@link Parser#createErrorNode(ParserRuleContext, Token)} then\r\n * {@link ParserRuleContext#addErrorNode(ErrorNode)}.\r\n *\r\n * @returns the matched symbol\r\n * @ if the current input symbol did not match\r\n * a wildcard and the error strategy could not recover from the mismatched\r\n * symbol\r\n */\r\n matchWildcard() {\r\n let t = this.currentToken;\r\n if (t.type > 0) {\r\n this._errHandler.reportMatch(this);\r\n this.consume();\r\n }\r\n else {\r\n t = this._errHandler.recoverInline(this);\r\n if (this._buildParseTrees && t.tokenIndex === -1) {\r\n // we must have conjured up a new token during single token insertion\r\n // if it's not the current symbol\r\n this._ctx.addErrorNode(this.createErrorNode(this._ctx, t));\r\n }\r\n }\r\n return t;\r\n }\r\n /**\r\n * Track the {@link ParserRuleContext} objects during the parse and hook\r\n * them up using the {@link ParserRuleContext#children} list so that it\r\n * forms a parse tree. The {@link ParserRuleContext} returned from the start\r\n * rule represents the root of the parse tree.\r\n *\r\n * Note that if we are not building parse trees, rule contexts only point\r\n * upwards. When a rule exits, it returns the context but that gets garbage\r\n * collected if nobody holds a reference. It points upwards but nobody\r\n * points at it.\r\n *\r\n * When we build parse trees, we are adding all of these contexts to\r\n * {@link ParserRuleContext#children} list. Contexts are then not candidates\r\n * for garbage collection.\r\n */\r\n set buildParseTree(buildParseTrees) {\r\n this._buildParseTrees = buildParseTrees;\r\n }\r\n /**\r\n * Gets whether or not a complete parse tree will be constructed while\r\n * parsing. This property is `true` for a newly constructed parser.\r\n *\r\n * @returns `true` if a complete parse tree will be constructed while\r\n * parsing, otherwise `false`\r\n */\r\n get buildParseTree() {\r\n return this._buildParseTrees;\r\n }\r\n getParseListeners() {\r\n return this._parseListeners;\r\n }\r\n /**\r\n * Registers `listener` to receive events during the parsing process.\r\n *\r\n * To support output-preserving grammar transformations (including but not\r\n * limited to left-recursion removal, automated left-factoring, and\r\n * optimized code generation), calls to listener methods during the parse\r\n * may differ substantially from calls made by\r\n * {@link ParseTreeWalker#DEFAULT} used after the parse is complete. In\r\n * particular, rule entry and exit events may occur in a different order\r\n * during the parse than after the parser. In addition, calls to certain\r\n * rule entry methods may be omitted.\r\n *\r\n * With the following specific exceptions, calls to listener events are\r\n * *deterministic*, i.e. for identical input the calls to listener\r\n * methods will be the same.\r\n *\r\n * * Alterations to the grammar used to generate code may change the\r\n * behavior of the listener calls.\r\n * * Alterations to the command line options passed to ANTLR 4 when\r\n * generating the parser may change the behavior of the listener calls.\r\n * * Changing the version of the ANTLR Tool used to generate the parser\r\n * may change the behavior of the listener calls.\r\n *\r\n * @param listener the listener to add\r\n *\r\n * @throws {@link TypeError} if `listener` is `undefined`\r\n */\r\n addParseListener(listener) {\r\n if (listener == null) {\r\n throw new TypeError(\"listener cannot be null\");\r\n }\r\n this._parseListeners.push(listener);\r\n }\r\n /**\r\n * Remove `listener` from the list of parse listeners.\r\n *\r\n * If `listener` is `undefined` or has not been added as a parse\r\n * listener, this method does nothing.\r\n *\r\n * @see #addParseListener\r\n *\r\n * @param listener the listener to remove\r\n */\r\n removeParseListener(listener) {\r\n let index = this._parseListeners.findIndex((l) => l === listener);\r\n if (index !== -1) {\r\n this._parseListeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Remove all parse listeners.\r\n *\r\n * @see #addParseListener\r\n */\r\n removeParseListeners() {\r\n this._parseListeners.length = 0;\r\n }\r\n /**\r\n * Notify any parse listeners of an enter rule event.\r\n *\r\n * @see #addParseListener\r\n */\r\n triggerEnterRuleEvent() {\r\n for (let listener of this._parseListeners) {\r\n if (listener.enterEveryRule) {\r\n listener.enterEveryRule(this._ctx);\r\n }\r\n this._ctx.enterRule(listener);\r\n }\r\n }\r\n /**\r\n * Notify any parse listeners of an exit rule event.\r\n *\r\n * @see #addParseListener\r\n */\r\n triggerExitRuleEvent() {\r\n // reverse order walk of listeners\r\n for (let i = this._parseListeners.length - 1; i >= 0; i--) {\r\n let listener = this._parseListeners[i];\r\n this._ctx.exitRule(listener);\r\n if (listener.exitEveryRule) {\r\n listener.exitEveryRule(this._ctx);\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the number of syntax errors reported during parsing. This value is\r\n * incremented each time {@link #notifyErrorListeners} is called.\r\n *\r\n * @see #notifyErrorListeners\r\n */\r\n get numberOfSyntaxErrors() {\r\n return this._syntaxErrors;\r\n }\r\n get tokenFactory() {\r\n return this._input.tokenSource.tokenFactory;\r\n }\r\n /**\r\n * The ATN with bypass alternatives is expensive to create so we create it\r\n * lazily.\r\n *\r\n * @ if the current parser does not\r\n * implement the `serializedATN` property.\r\n */\r\n getATNWithBypassAlts() {\r\n let serializedAtn = this.serializedATN;\r\n if (serializedAtn == null) {\r\n throw new Error(\"The current parser does not support an ATN with bypass alternatives.\");\r\n }\r\n let result = Parser.bypassAltsAtnCache.get(serializedAtn);\r\n if (result == null) {\r\n let deserializationOptions = new ATNDeserializationOptions_1.ATNDeserializationOptions();\r\n deserializationOptions.isGenerateRuleBypassTransitions = true;\r\n result = new ATNDeserializer_1.ATNDeserializer(deserializationOptions).deserialize(Utils.toCharArray(serializedAtn));\r\n Parser.bypassAltsAtnCache.set(serializedAtn, result);\r\n }\r\n return result;\r\n }\r\n compileParseTreePattern(pattern, patternRuleIndex, lexer) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!lexer) {\r\n if (this.inputStream) {\r\n let tokenSource = this.inputStream.tokenSource;\r\n if (tokenSource instanceof Lexer_1.Lexer) {\r\n lexer = tokenSource;\r\n }\r\n }\r\n if (!lexer) {\r\n throw new Error(\"Parser can't discover a lexer to use\");\r\n }\r\n }\r\n let currentLexer = lexer;\r\n let m = yield Promise.resolve().then(() => require(\"./tree/pattern/ParseTreePatternMatcher\"));\r\n let matcher = new m.ParseTreePatternMatcher(currentLexer, this);\r\n return matcher.compile(pattern, patternRuleIndex);\r\n });\r\n }\r\n get errorHandler() {\r\n return this._errHandler;\r\n }\r\n set errorHandler(handler) {\r\n this._errHandler = handler;\r\n }\r\n get inputStream() {\r\n return this._input;\r\n }\r\n /** Set the token stream and reset the parser. */\r\n set inputStream(input) {\r\n this.reset(false);\r\n this._input = input;\r\n }\r\n /** Match needs to return the current input symbol, which gets put\r\n * into the label for the associated token ref; e.g., x=ID.\r\n */\r\n get currentToken() {\r\n return this._input.LT(1);\r\n }\r\n notifyErrorListeners(msg, offendingToken, e) {\r\n if (offendingToken === undefined) {\r\n offendingToken = this.currentToken;\r\n }\r\n else if (offendingToken === null) {\r\n offendingToken = undefined;\r\n }\r\n this._syntaxErrors++;\r\n let line = -1;\r\n let charPositionInLine = -1;\r\n if (offendingToken != null) {\r\n line = offendingToken.line;\r\n charPositionInLine = offendingToken.charPositionInLine;\r\n }\r\n let listener = this.getErrorListenerDispatch();\r\n if (listener.syntaxError) {\r\n listener.syntaxError(this, offendingToken, line, charPositionInLine, msg, e);\r\n }\r\n }\r\n /**\r\n * Consume and return the [current symbol](`currentToken`).\r\n *\r\n * E.g., given the following input with `A` being the current\r\n * lookahead symbol, this function moves the cursor to `B` and returns\r\n * `A`.\r\n *\r\n * ```\r\n * A B\r\n * ^\r\n * ```\r\n *\r\n * If the parser is not in error recovery mode, the consumed symbol is added\r\n * to the parse tree using {@link ParserRuleContext#addChild(TerminalNode)}, and\r\n * {@link ParseTreeListener#visitTerminal} is called on any parse listeners.\r\n * If the parser *is* in error recovery mode, the consumed symbol is\r\n * added to the parse tree using {@link #createErrorNode(ParserRuleContext, Token)} then\r\n * {@link ParserRuleContext#addErrorNode(ErrorNode)} and\r\n * {@link ParseTreeListener#visitErrorNode} is called on any parse\r\n * listeners.\r\n */\r\n consume() {\r\n let o = this.currentToken;\r\n if (o.type !== Parser.EOF) {\r\n this.inputStream.consume();\r\n }\r\n let hasListener = this._parseListeners.length !== 0;\r\n if (this._buildParseTrees || hasListener) {\r\n if (this._errHandler.inErrorRecoveryMode(this)) {\r\n let node = this._ctx.addErrorNode(this.createErrorNode(this._ctx, o));\r\n if (hasListener) {\r\n for (let listener of this._parseListeners) {\r\n if (listener.visitErrorNode) {\r\n listener.visitErrorNode(node);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n let node = this.createTerminalNode(this._ctx, o);\r\n this._ctx.addChild(node);\r\n if (hasListener) {\r\n for (let listener of this._parseListeners) {\r\n if (listener.visitTerminal) {\r\n listener.visitTerminal(node);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return o;\r\n }\r\n /**\r\n * How to create a token leaf node associated with a parent.\r\n * Typically, the terminal node to create is not a function of the parent.\r\n *\r\n * @since 4.7\r\n */\r\n createTerminalNode(parent, t) {\r\n return new TerminalNode_1.TerminalNode(t);\r\n }\r\n /**\r\n * How to create an error node, given a token, associated with a parent.\r\n * Typically, the error node to create is not a function of the parent.\r\n *\r\n * @since 4.7\r\n */\r\n createErrorNode(parent, t) {\r\n return new ErrorNode_1.ErrorNode(t);\r\n }\r\n addContextToParseTree() {\r\n let parent = this._ctx._parent;\r\n // add current context to parent if we have a parent\r\n if (parent != null) {\r\n parent.addChild(this._ctx);\r\n }\r\n }\r\n /**\r\n * Always called by generated parsers upon entry to a rule. Access field\r\n * {@link #_ctx} get the current context.\r\n */\r\n enterRule(localctx, state, ruleIndex) {\r\n this.state = state;\r\n this._ctx = localctx;\r\n this._ctx._start = this._input.LT(1);\r\n if (this._buildParseTrees) {\r\n this.addContextToParseTree();\r\n }\r\n this.triggerEnterRuleEvent();\r\n }\r\n enterLeftFactoredRule(localctx, state, ruleIndex) {\r\n this.state = state;\r\n if (this._buildParseTrees) {\r\n let factoredContext = this._ctx.getChild(this._ctx.childCount - 1);\r\n this._ctx.removeLastChild();\r\n factoredContext._parent = localctx;\r\n localctx.addChild(factoredContext);\r\n }\r\n this._ctx = localctx;\r\n this._ctx._start = this._input.LT(1);\r\n if (this._buildParseTrees) {\r\n this.addContextToParseTree();\r\n }\r\n this.triggerEnterRuleEvent();\r\n }\r\n exitRule() {\r\n if (this.matchedEOF) {\r\n // if we have matched EOF, it cannot consume past EOF so we use LT(1) here\r\n this._ctx._stop = this._input.LT(1); // LT(1) will be end of file\r\n }\r\n else {\r\n this._ctx._stop = this._input.tryLT(-1); // stop node is what we just matched\r\n }\r\n // trigger event on _ctx, before it reverts to parent\r\n this.triggerExitRuleEvent();\r\n this.state = this._ctx.invokingState;\r\n this._ctx = this._ctx._parent;\r\n }\r\n enterOuterAlt(localctx, altNum) {\r\n localctx.altNumber = altNum;\r\n // if we have new localctx, make sure we replace existing ctx\r\n // that is previous child of parse tree\r\n if (this._buildParseTrees && this._ctx !== localctx) {\r\n let parent = this._ctx._parent;\r\n if (parent != null) {\r\n parent.removeLastChild();\r\n parent.addChild(localctx);\r\n }\r\n }\r\n this._ctx = localctx;\r\n }\r\n /**\r\n * Get the precedence level for the top-most precedence rule.\r\n *\r\n * @returns The precedence level for the top-most precedence rule, or -1 if\r\n * the parser context is not nested within a precedence rule.\r\n */\r\n get precedence() {\r\n if (this._precedenceStack.isEmpty) {\r\n return -1;\r\n }\r\n return this._precedenceStack.peek();\r\n }\r\n enterRecursionRule(localctx, state, ruleIndex, precedence) {\r\n this.state = state;\r\n this._precedenceStack.push(precedence);\r\n this._ctx = localctx;\r\n this._ctx._start = this._input.LT(1);\r\n this.triggerEnterRuleEvent(); // simulates rule entry for left-recursive rules\r\n }\r\n /** Like {@link #enterRule} but for recursive rules.\r\n * Make the current context the child of the incoming localctx.\r\n */\r\n pushNewRecursionContext(localctx, state, ruleIndex) {\r\n let previous = this._ctx;\r\n previous._parent = localctx;\r\n previous.invokingState = state;\r\n previous._stop = this._input.tryLT(-1);\r\n this._ctx = localctx;\r\n this._ctx._start = previous._start;\r\n if (this._buildParseTrees) {\r\n this._ctx.addChild(previous);\r\n }\r\n this.triggerEnterRuleEvent(); // simulates rule entry for left-recursive rules\r\n }\r\n unrollRecursionContexts(_parentctx) {\r\n this._precedenceStack.pop();\r\n this._ctx._stop = this._input.tryLT(-1);\r\n let retctx = this._ctx; // save current ctx (return value)\r\n // unroll so _ctx is as it was before call to recursive method\r\n if (this._parseListeners.length > 0) {\r\n while (this._ctx !== _parentctx) {\r\n this.triggerExitRuleEvent();\r\n this._ctx = this._ctx._parent;\r\n }\r\n }\r\n else {\r\n this._ctx = _parentctx;\r\n }\r\n // hook into tree\r\n retctx._parent = _parentctx;\r\n if (this._buildParseTrees && _parentctx != null) {\r\n // add return ctx into invoking rule's tree\r\n _parentctx.addChild(retctx);\r\n }\r\n }\r\n getInvokingContext(ruleIndex) {\r\n let p = this._ctx;\r\n while (p && p.ruleIndex !== ruleIndex) {\r\n p = p._parent;\r\n }\r\n return p;\r\n }\r\n get context() {\r\n return this._ctx;\r\n }\r\n set context(ctx) {\r\n this._ctx = ctx;\r\n }\r\n precpred(localctx, precedence) {\r\n return precedence >= this._precedenceStack.peek();\r\n }\r\n getErrorListenerDispatch() {\r\n return new ProxyParserErrorListener_1.ProxyParserErrorListener(this.getErrorListeners());\r\n }\r\n inContext(context) {\r\n // TODO: useful in parser?\r\n return false;\r\n }\r\n /**\r\n * Checks whether or not `symbol` can follow the current state in the\r\n * ATN. The behavior of this method is equivalent to the following, but is\r\n * implemented such that the complete context-sensitive follow set does not\r\n * need to be explicitly constructed.\r\n *\r\n * ```\r\n * return getExpectedTokens().contains(symbol);\r\n * ```\r\n *\r\n * @param symbol the symbol type to check\r\n * @returns `true` if `symbol` can follow the current state in\r\n * the ATN, otherwise `false`.\r\n */\r\n isExpectedToken(symbol) {\r\n // \t\treturn interpreter.atn.nextTokens(_ctx);\r\n let atn = this.interpreter.atn;\r\n let ctx = this._ctx;\r\n let s = atn.states[this.state];\r\n let following = atn.nextTokens(s);\r\n if (following.contains(symbol)) {\r\n return true;\r\n }\r\n // System.out.println(\"following \"+s+\"=\"+following);\r\n if (!following.contains(Token_1.Token.EPSILON)) {\r\n return false;\r\n }\r\n while (ctx != null && ctx.invokingState >= 0 && following.contains(Token_1.Token.EPSILON)) {\r\n let invokingState = atn.states[ctx.invokingState];\r\n let rt = invokingState.transition(0);\r\n following = atn.nextTokens(rt.followState);\r\n if (following.contains(symbol)) {\r\n return true;\r\n }\r\n ctx = ctx._parent;\r\n }\r\n if (following.contains(Token_1.Token.EPSILON) && symbol === Token_1.Token.EOF) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n get isMatchedEOF() {\r\n return this.matchedEOF;\r\n }\r\n /**\r\n * Computes the set of input symbols which could follow the current parser\r\n * state and context, as given by {@link #getState} and {@link #getContext},\r\n * respectively.\r\n *\r\n * @see ATN#getExpectedTokens(int, RuleContext)\r\n */\r\n getExpectedTokens() {\r\n return this.atn.getExpectedTokens(this.state, this.context);\r\n }\r\n getExpectedTokensWithinCurrentRule() {\r\n let atn = this.interpreter.atn;\r\n let s = atn.states[this.state];\r\n return atn.nextTokens(s);\r\n }\r\n /** Get a rule's index (i.e., `RULE_ruleName` field) or -1 if not found. */\r\n getRuleIndex(ruleName) {\r\n let ruleIndex = this.getRuleIndexMap().get(ruleName);\r\n if (ruleIndex != null) {\r\n return ruleIndex;\r\n }\r\n return -1;\r\n }\r\n get ruleContext() { return this._ctx; }\r\n /** Return List&lt;String&gt; of the rule names in your parser instance\r\n * leading up to a call to the current rule. You could override if\r\n * you want more details such as the file/line info of where\r\n * in the ATN a rule is invoked.\r\n *\r\n * This is very useful for error messages.\r\n */\r\n getRuleInvocationStack(ctx = this._ctx) {\r\n let p = ctx; // Workaround for Microsoft/TypeScript#14487\r\n let ruleNames = this.ruleNames;\r\n let stack = [];\r\n while (p != null) {\r\n // compute what follows who invoked us\r\n let ruleIndex = p.ruleIndex;\r\n if (ruleIndex < 0) {\r\n stack.push(\"n/a\");\r\n }\r\n else {\r\n stack.push(ruleNames[ruleIndex]);\r\n }\r\n p = p._parent;\r\n }\r\n return stack;\r\n }\r\n /** For debugging and other purposes. */\r\n getDFAStrings() {\r\n let s = [];\r\n for (let dfa of this._interp.atn.decisionToDFA) {\r\n s.push(dfa.toString(this.vocabulary, this.ruleNames));\r\n }\r\n return s;\r\n }\r\n /** For debugging and other purposes. */\r\n dumpDFA() {\r\n let seenOne = false;\r\n for (let dfa of this._interp.atn.decisionToDFA) {\r\n if (!dfa.isEmpty) {\r\n if (seenOne) {\r\n console.log();\r\n }\r\n console.log(\"Decision \" + dfa.decision + \":\");\r\n process.stdout.write(dfa.toString(this.vocabulary, this.ruleNames));\r\n seenOne = true;\r\n }\r\n }\r\n }\r\n get sourceName() {\r\n return this._input.sourceName;\r\n }\r\n get parseInfo() {\r\n return Promise.resolve().then(() => require(\"./atn/ProfilingATNSimulator\")).then((m) => {\r\n let interp = this.interpreter;\r\n if (interp instanceof m.ProfilingATNSimulator) {\r\n return new ParseInfo_1.ParseInfo(interp);\r\n }\r\n return undefined;\r\n });\r\n }\r\n /**\r\n * @since 4.3\r\n */\r\n setProfile(profile) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let m = yield Promise.resolve().then(() => require(\"./atn/ProfilingATNSimulator\"));\r\n let interp = this.interpreter;\r\n if (profile) {\r\n if (!(interp instanceof m.ProfilingATNSimulator)) {\r\n this.interpreter = new m.ProfilingATNSimulator(this);\r\n }\r\n }\r\n else if (interp instanceof m.ProfilingATNSimulator) {\r\n this.interpreter = new ParserATNSimulator_1.ParserATNSimulator(this.atn, this);\r\n }\r\n this.interpreter.setPredictionMode(interp.getPredictionMode());\r\n });\r\n }\r\n /** During a parse is sometimes useful to listen in on the rule entry and exit\r\n * events as well as token matches. This is for quick and dirty debugging.\r\n */\r\n set isTrace(trace) {\r\n if (!trace) {\r\n if (this._tracer) {\r\n this.removeParseListener(this._tracer);\r\n this._tracer = undefined;\r\n }\r\n }\r\n else {\r\n if (this._tracer) {\r\n this.removeParseListener(this._tracer);\r\n }\r\n else {\r\n this._tracer = new TraceListener(this.ruleNames, this._input);\r\n }\r\n this.addParseListener(this._tracer);\r\n }\r\n }\r\n /**\r\n * Gets whether a {@link TraceListener} is registered as a parse listener\r\n * for the parser.\r\n */\r\n get isTrace() {\r\n return this._tracer != null;\r\n }\r\n}\r\n/**\r\n * This field maps from the serialized ATN string to the deserialized {@link ATN} with\r\n * bypass alternatives.\r\n *\r\n * @see ATNDeserializationOptions.isGenerateRuleBypassTransitions\r\n */\r\nParser.bypassAltsAtnCache = new Map();\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"_errHandler\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"match\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"matchWildcard\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"getParseListeners\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Parser.prototype, \"addParseListener\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"getATNWithBypassAlts\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], Parser.prototype, \"errorHandler\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Parser.prototype, \"inputStream\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"currentToken\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], Parser.prototype, \"enterRule\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.Nullable)\r\n], Parser.prototype, \"precpred\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Parser.prototype, \"getErrorListenerDispatch\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"getExpectedTokens\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], Parser.prototype, \"getExpectedTokensWithinCurrentRule\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], Parser.prototype, \"parseInfo\", null);\r\nexports.Parser = Parser;\r\n//# sourceMappingURL=Parser.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NoViableAltException = void 0;\r\nconst Parser_1 = require(\"./Parser\");\r\nconst RecognitionException_1 = require(\"./RecognitionException\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\n/** Indicates that the parser could not decide which of two or more paths\r\n * to take based upon the remaining input. It tracks the starting token\r\n * of the offending input and also knows where the parser was\r\n * in the various paths when the error. Reported by reportNoViableAlternative()\r\n */\r\nclass NoViableAltException extends RecognitionException_1.RecognitionException {\r\n constructor(recognizer, input, startToken, offendingToken, deadEndConfigs, ctx) {\r\n if (recognizer instanceof Parser_1.Parser) {\r\n if (input === undefined) {\r\n input = recognizer.inputStream;\r\n }\r\n if (startToken === undefined) {\r\n startToken = recognizer.currentToken;\r\n }\r\n if (offendingToken === undefined) {\r\n offendingToken = recognizer.currentToken;\r\n }\r\n if (ctx === undefined) {\r\n ctx = recognizer.context;\r\n }\r\n }\r\n super(recognizer, input, ctx);\r\n this._deadEndConfigs = deadEndConfigs;\r\n this._startToken = startToken;\r\n this.setOffendingToken(recognizer, offendingToken);\r\n }\r\n get startToken() {\r\n return this._startToken;\r\n }\r\n get deadEndConfigs() {\r\n return this._deadEndConfigs;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.NotNull\r\n], NoViableAltException.prototype, \"_startToken\", void 0);\r\nexports.NoViableAltException = NoViableAltException;\r\n//# sourceMappingURL=NoViableAltException.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PredictionMode = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:36.2673893-07:00\r\nconst Array2DHashMap_1 = require(\"../misc/Array2DHashMap\");\r\nconst MurmurHash_1 = require(\"../misc/MurmurHash\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst RuleStopState_1 = require(\"./RuleStopState\");\r\n/**\r\n * This enumeration defines the prediction modes available in ANTLR 4 along with\r\n * utility methods for analyzing configuration sets for conflicts and/or\r\n * ambiguities.\r\n */\r\nvar PredictionMode;\r\n(function (PredictionMode) {\r\n /**\r\n * The SLL(*) prediction mode. This prediction mode ignores the current\r\n * parser context when making predictions. This is the fastest prediction\r\n * mode, and provides correct results for many grammars. This prediction\r\n * mode is more powerful than the prediction mode provided by ANTLR 3, but\r\n * may result in syntax errors for grammar and input combinations which are\r\n * not SLL.\r\n *\r\n * When using this prediction mode, the parser will either return a correct\r\n * parse tree (i.e. the same parse tree that would be returned with the\r\n * {@link #LL} prediction mode), or it will report a syntax error. If a\r\n * syntax error is encountered when using the {@link #SLL} prediction mode,\r\n * it may be due to either an actual syntax error in the input or indicate\r\n * that the particular combination of grammar and input requires the more\r\n * powerful {@link #LL} prediction abilities to complete successfully.\r\n *\r\n * This prediction mode does not provide any guarantees for prediction\r\n * behavior for syntactically-incorrect inputs.\r\n */\r\n PredictionMode[PredictionMode[\"SLL\"] = 0] = \"SLL\";\r\n /**\r\n * The LL(*) prediction mode. This prediction mode allows the current parser\r\n * context to be used for resolving SLL conflicts that occur during\r\n * prediction. This is the fastest prediction mode that guarantees correct\r\n * parse results for all combinations of grammars with syntactically correct\r\n * inputs.\r\n *\r\n * When using this prediction mode, the parser will make correct decisions\r\n * for all syntactically-correct grammar and input combinations. However, in\r\n * cases where the grammar is truly ambiguous this prediction mode might not\r\n * report a precise answer for *exactly which* alternatives are\r\n * ambiguous.\r\n *\r\n * This prediction mode does not provide any guarantees for prediction\r\n * behavior for syntactically-incorrect inputs.\r\n */\r\n PredictionMode[PredictionMode[\"LL\"] = 1] = \"LL\";\r\n /**\r\n * The LL(*) prediction mode with exact ambiguity detection. In addition to\r\n * the correctness guarantees provided by the {@link #LL} prediction mode,\r\n * this prediction mode instructs the prediction algorithm to determine the\r\n * complete and exact set of ambiguous alternatives for every ambiguous\r\n * decision encountered while parsing.\r\n *\r\n * This prediction mode may be used for diagnosing ambiguities during\r\n * grammar development. Due to the performance overhead of calculating sets\r\n * of ambiguous alternatives, this prediction mode should be avoided when\r\n * the exact results are not necessary.\r\n *\r\n * This prediction mode does not provide any guarantees for prediction\r\n * behavior for syntactically-incorrect inputs.\r\n */\r\n PredictionMode[PredictionMode[\"LL_EXACT_AMBIG_DETECTION\"] = 2] = \"LL_EXACT_AMBIG_DETECTION\";\r\n})(PredictionMode = exports.PredictionMode || (exports.PredictionMode = {}));\r\n(function (PredictionMode) {\r\n /** A Map that uses just the state and the stack context as the key. */\r\n // NOTE: Base type used to be FlexibleHashMap<ATNConfig, BitSet>\r\n class AltAndContextMap extends Array2DHashMap_1.Array2DHashMap {\r\n constructor() {\r\n super(AltAndContextConfigEqualityComparator.INSTANCE);\r\n }\r\n }\r\n class AltAndContextConfigEqualityComparator {\r\n AltAndContextConfigEqualityComparator() {\r\n // intentionally empty\r\n }\r\n /**\r\n * The hash code is only a function of the {@link ATNState#stateNumber}\r\n * and {@link ATNConfig#context}.\r\n */\r\n hashCode(o) {\r\n let hashCode = MurmurHash_1.MurmurHash.initialize(7);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, o.state.stateNumber);\r\n hashCode = MurmurHash_1.MurmurHash.update(hashCode, o.context);\r\n hashCode = MurmurHash_1.MurmurHash.finish(hashCode, 2);\r\n return hashCode;\r\n }\r\n equals(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a == null || b == null) {\r\n return false;\r\n }\r\n return a.state.stateNumber === b.state.stateNumber\r\n && a.context.equals(b.context);\r\n }\r\n }\r\n AltAndContextConfigEqualityComparator.INSTANCE = new AltAndContextConfigEqualityComparator();\r\n __decorate([\r\n Decorators_1.Override\r\n ], AltAndContextConfigEqualityComparator.prototype, \"hashCode\", null);\r\n __decorate([\r\n Decorators_1.Override\r\n ], AltAndContextConfigEqualityComparator.prototype, \"equals\", null);\r\n /**\r\n * Checks if any configuration in `configs` is in a\r\n * {@link RuleStopState}. Configurations meeting this condition have reached\r\n * the end of the decision rule (local context) or end of start rule (full\r\n * context).\r\n *\r\n * @param configs the configuration set to test\r\n * @returns `true` if any configuration in `configs` is in a\r\n * {@link RuleStopState}, otherwise `false`\r\n */\r\n function hasConfigInRuleStopState(configs) {\r\n for (let c of configs) {\r\n if (c.state instanceof RuleStopState_1.RuleStopState) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n PredictionMode.hasConfigInRuleStopState = hasConfigInRuleStopState;\r\n /**\r\n * Checks if all configurations in `configs` are in a\r\n * {@link RuleStopState}. Configurations meeting this condition have reached\r\n * the end of the decision rule (local context) or end of start rule (full\r\n * context).\r\n *\r\n * @param configs the configuration set to test\r\n * @returns `true` if all configurations in `configs` are in a\r\n * {@link RuleStopState}, otherwise `false`\r\n */\r\n function allConfigsInRuleStopStates(/*@NotNull*/ configs) {\r\n for (let config of configs) {\r\n if (!(config.state instanceof RuleStopState_1.RuleStopState)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n PredictionMode.allConfigsInRuleStopStates = allConfigsInRuleStopStates;\r\n})(PredictionMode = exports.PredictionMode || (exports.PredictionMode = {}));\r\n//# sourceMappingURL=PredictionMode.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ParserATNSimulator = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:31.1989835-07:00\r\nconst AcceptStateInfo_1 = require(\"../dfa/AcceptStateInfo\");\r\nconst ActionTransition_1 = require(\"./ActionTransition\");\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst Arrays_1 = require(\"../misc/Arrays\");\r\nconst ATN_1 = require(\"./ATN\");\r\nconst ATNConfig_1 = require(\"./ATNConfig\");\r\nconst ATNConfigSet_1 = require(\"./ATNConfigSet\");\r\nconst ATNSimulator_1 = require(\"./ATNSimulator\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst AtomTransition_1 = require(\"./AtomTransition\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst ConflictInfo_1 = require(\"./ConflictInfo\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst DFAState_1 = require(\"../dfa/DFAState\");\r\nconst IntegerList_1 = require(\"../misc/IntegerList\");\r\nconst Interval_1 = require(\"../misc/Interval\");\r\nconst IntStream_1 = require(\"../IntStream\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst NotSetTransition_1 = require(\"./NotSetTransition\");\r\nconst NoViableAltException_1 = require(\"../NoViableAltException\");\r\nconst ObjectEqualityComparator_1 = require(\"../misc/ObjectEqualityComparator\");\r\nconst ParserRuleContext_1 = require(\"../ParserRuleContext\");\r\nconst PredictionContext_1 = require(\"./PredictionContext\");\r\nconst PredictionContextCache_1 = require(\"./PredictionContextCache\");\r\nconst PredictionMode_1 = require(\"./PredictionMode\");\r\nconst RuleStopState_1 = require(\"./RuleStopState\");\r\nconst RuleTransition_1 = require(\"./RuleTransition\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\nconst SetTransition_1 = require(\"./SetTransition\");\r\nconst SimulatorState_1 = require(\"./SimulatorState\");\r\nconst Token_1 = require(\"../Token\");\r\nconst VocabularyImpl_1 = require(\"../VocabularyImpl\");\r\nconst assert = require(\"assert\");\r\nconst MAX_SHORT_VALUE = 0xFFFF;\r\nconst MIN_INTEGER_VALUE = -((1 << 31) >>> 0);\r\n/**\r\n * The embodiment of the adaptive LL(*), ALL(*), parsing strategy.\r\n *\r\n * The basic complexity of the adaptive strategy makes it harder to understand.\r\n * We begin with ATN simulation to build paths in a DFA. Subsequent prediction\r\n * requests go through the DFA first. If they reach a state without an edge for\r\n * the current symbol, the algorithm fails over to the ATN simulation to\r\n * complete the DFA path for the current input (until it finds a conflict state\r\n * or uniquely predicting state).\r\n *\r\n * All of that is done without using the outer context because we want to create\r\n * a DFA that is not dependent upon the rule invocation stack when we do a\r\n * prediction. One DFA works in all contexts. We avoid using context not\r\n * necessarily because it's slower, although it can be, but because of the DFA\r\n * caching problem. The closure routine only considers the rule invocation stack\r\n * created during prediction beginning in the decision rule. For example, if\r\n * prediction occurs without invoking another rule's ATN, there are no context\r\n * stacks in the configurations. When lack of context leads to a conflict, we\r\n * don't know if it's an ambiguity or a weakness in the strong LL(*) parsing\r\n * strategy (versus full LL(*)).\r\n *\r\n * When SLL yields a configuration set with conflict, we rewind the input and\r\n * retry the ATN simulation, this time using full outer context without adding\r\n * to the DFA. Configuration context stacks will be the full invocation stacks\r\n * from the start rule. If we get a conflict using full context, then we can\r\n * definitively say we have a true ambiguity for that input sequence. If we\r\n * don't get a conflict, it implies that the decision is sensitive to the outer\r\n * context. (It is not context-sensitive in the sense of context-sensitive\r\n * grammars.)\r\n *\r\n * The next time we reach this DFA state with an SLL conflict, through DFA\r\n * simulation, we will again retry the ATN simulation using full context mode.\r\n * This is slow because we can't save the results and have to \"interpret\" the\r\n * ATN each time we get that input.\r\n *\r\n * **CACHING FULL CONTEXT PREDICTIONS**\r\n *\r\n * We could cache results from full context to predicted alternative easily and\r\n * that saves a lot of time but doesn't work in presence of predicates. The set\r\n * of visible predicates from the ATN start state changes depending on the\r\n * context, because closure can fall off the end of a rule. I tried to cache\r\n * tuples (stack context, semantic context, predicted alt) but it was slower\r\n * than interpreting and much more complicated. Also required a huge amount of\r\n * memory. The goal is not to create the world's fastest parser anyway. I'd like\r\n * to keep this algorithm simple. By launching multiple threads, we can improve\r\n * the speed of parsing across a large number of files.\r\n *\r\n * There is no strict ordering between the amount of input used by SLL vs LL,\r\n * which makes it really hard to build a cache for full context. Let's say that\r\n * we have input A B C that leads to an SLL conflict with full context X. That\r\n * implies that using X we might only use A B but we could also use A B C D to\r\n * resolve conflict. Input A B C D could predict alternative 1 in one position\r\n * in the input and A B C E could predict alternative 2 in another position in\r\n * input. The conflicting SLL configurations could still be non-unique in the\r\n * full context prediction, which would lead us to requiring more input than the\r\n * original A B C.\tTo make a\tprediction cache work, we have to track\tthe exact\r\n * input\tused during the previous prediction. That amounts to a cache that maps\r\n * X to a specific DFA for that context.\r\n *\r\n * Something should be done for left-recursive expression predictions. They are\r\n * likely LL(1) + pred eval. Easier to do the whole SLL unless error and retry\r\n * with full LL thing Sam does.\r\n *\r\n * **AVOIDING FULL CONTEXT PREDICTION**\r\n *\r\n * We avoid doing full context retry when the outer context is empty, we did not\r\n * dip into the outer context by falling off the end of the decision state rule,\r\n * or when we force SLL mode.\r\n *\r\n * As an example of the not dip into outer context case, consider as super\r\n * constructor calls versus function calls. One grammar might look like\r\n * this:\r\n *\r\n * ```antlr\r\n * ctorBody\r\n * : '{' superCall? stat* '}'\r\n * ;\r\n * ```\r\n *\r\n * Or, you might see something like\r\n *\r\n * ```antlr\r\n * stat\r\n * : superCall ';'\r\n * | expression ';'\r\n * | ...\r\n * ;\r\n * ```\r\n *\r\n * In both cases I believe that no closure operations will dip into the outer\r\n * context. In the first case ctorBody in the worst case will stop at the '}'.\r\n * In the 2nd case it should stop at the ';'. Both cases should stay within the\r\n * entry rule and not dip into the outer context.\r\n *\r\n * **PREDICATES**\r\n *\r\n * Predicates are always evaluated if present in either SLL or LL both. SLL and\r\n * LL simulation deals with predicates differently. SLL collects predicates as\r\n * it performs closure operations like ANTLR v3 did. It delays predicate\r\n * evaluation until it reaches and accept state. This allows us to cache the SLL\r\n * ATN simulation whereas, if we had evaluated predicates on-the-fly during\r\n * closure, the DFA state configuration sets would be different and we couldn't\r\n * build up a suitable DFA.\r\n *\r\n * When building a DFA accept state during ATN simulation, we evaluate any\r\n * predicates and return the sole semantically valid alternative. If there is\r\n * more than 1 alternative, we report an ambiguity. If there are 0 alternatives,\r\n * we throw an exception. Alternatives without predicates act like they have\r\n * true predicates. The simple way to think about it is to strip away all\r\n * alternatives with false predicates and choose the minimum alternative that\r\n * remains.\r\n *\r\n * When we start in the DFA and reach an accept state that's predicated, we test\r\n * those and return the minimum semantically viable alternative. If no\r\n * alternatives are viable, we throw an exception.\r\n *\r\n * During full LL ATN simulation, closure always evaluates predicates and\r\n * on-the-fly. This is crucial to reducing the configuration set size during\r\n * closure. It hits a landmine when parsing with the Java grammar, for example,\r\n * without this on-the-fly evaluation.\r\n *\r\n * **SHARING DFA**\r\n *\r\n * All instances of the same parser share the same decision DFAs through a\r\n * static field. Each instance gets its own ATN simulator but they share the\r\n * same {@link ATN#decisionToDFA} field. They also share a\r\n * {@link PredictionContextCache} object that makes sure that all\r\n * {@link PredictionContext} objects are shared among the DFA states. This makes\r\n * a big size difference.\r\n *\r\n * **THREAD SAFETY**\r\n *\r\n * The {@link ParserATNSimulator} locks on the {@link ATN#decisionToDFA} field when\r\n * it adds a new DFA object to that array. {@link #addDFAEdge}\r\n * locks on the DFA for the current decision when setting the\r\n * {@link DFAState#edges} field. {@link #addDFAState} locks on\r\n * the DFA for the current decision when looking up a DFA state to see if it\r\n * already exists. We must make sure that all requests to add DFA states that\r\n * are equivalent result in the same shared DFA object. This is because lots of\r\n * threads will be trying to update the DFA at once. The\r\n * {@link #addDFAState} method also locks inside the DFA lock\r\n * but this time on the shared context cache when it rebuilds the\r\n * configurations' {@link PredictionContext} objects using cached\r\n * subgraphs/nodes. No other locking occurs, even during DFA simulation. This is\r\n * safe as long as we can guarantee that all threads referencing\r\n * `s.edge[t]` get the same physical target {@link DFAState}, or\r\n * `undefined`. Once into the DFA, the DFA simulation does not reference the\r\n * {@link DFA#states} map. It follows the {@link DFAState#edges} field to new\r\n * targets. The DFA simulator will either find {@link DFAState#edges} to be\r\n * `undefined`, to be non-`undefined` and `dfa.edges[t]` undefined, or\r\n * `dfa.edges[t]` to be non-undefined. The\r\n * {@link #addDFAEdge} method could be racing to set the field\r\n * but in either case the DFA simulator works; if `undefined`, and requests ATN\r\n * simulation. It could also race trying to get `dfa.edges[t]`, but either\r\n * way it will work because it's not doing a test and set operation.\r\n *\r\n * **Starting with SLL then failing to combined SLL/LL (Two-Stage\r\n * Parsing)**\r\n *\r\n * Sam pointed out that if SLL does not give a syntax error, then there is no\r\n * point in doing full LL, which is slower. We only have to try LL if we get a\r\n * syntax error. For maximum speed, Sam starts the parser set to pure SLL\r\n * mode with the {@link BailErrorStrategy}:\r\n *\r\n * ```\r\n * parser.interpreter.{@link #setPredictionMode setPredictionMode}`(`{@link PredictionMode#SLL}`)`;\r\n * parser.{@link Parser#setErrorHandler setErrorHandler}(new {@link BailErrorStrategy}());\r\n * ```\r\n *\r\n * If it does not get a syntax error, then we're done. If it does get a syntax\r\n * error, we need to retry with the combined SLL/LL strategy.\r\n *\r\n * The reason this works is as follows. If there are no SLL conflicts, then the\r\n * grammar is SLL (at least for that input set). If there is an SLL conflict,\r\n * the full LL analysis must yield a set of viable alternatives which is a\r\n * subset of the alternatives reported by SLL. If the LL set is a singleton,\r\n * then the grammar is LL but not SLL. If the LL set is the same size as the SLL\r\n * set, the decision is SLL. If the LL set has size &gt; 1, then that decision\r\n * is truly ambiguous on the current input. If the LL set is smaller, then the\r\n * SLL conflict resolution might choose an alternative that the full LL would\r\n * rule out as a possibility based upon better context information. If that's\r\n * the case, then the SLL parse will definitely get an error because the full LL\r\n * analysis says it's not viable. If SLL conflict resolution chooses an\r\n * alternative within the LL set, them both SLL and LL would choose the same\r\n * alternative because they both choose the minimum of multiple conflicting\r\n * alternatives.\r\n *\r\n * Let's say we have a set of SLL conflicting alternatives `{1, 2, 3}` and\r\n * a smaller LL set called *s*. If *s* is `{2, 3}`, then SLL\r\n * parsing will get an error because SLL will pursue alternative 1. If\r\n * *s* is `{1, 2}` or `{1, 3}` then both SLL and LL will\r\n * choose the same alternative because alternative one is the minimum of either\r\n * set. If *s* is `{2}` or `{3}` then SLL will get a syntax\r\n * error. If *s* is `{1}` then SLL will succeed.\r\n *\r\n * Of course, if the input is invalid, then we will get an error for sure in\r\n * both SLL and LL parsing. Erroneous input will therefore require 2 passes over\r\n * the input.\r\n */\r\nlet ParserATNSimulator = class ParserATNSimulator extends ATNSimulator_1.ATNSimulator {\r\n constructor(atn, parser) {\r\n super(atn);\r\n this.predictionMode = PredictionMode_1.PredictionMode.LL;\r\n this.force_global_context = false;\r\n this.always_try_local_context = true;\r\n /**\r\n * Determines whether the DFA is used for full-context predictions. When\r\n * `true`, the DFA stores transition information for both full-context\r\n * and SLL parsing; otherwise, the DFA only stores SLL transition\r\n * information.\r\n *\r\n * For some grammars, enabling the full-context DFA can result in a\r\n * substantial performance improvement. However, this improvement typically\r\n * comes at the expense of memory used for storing the cached DFA states,\r\n * configuration sets, and prediction contexts.\r\n *\r\n * The default value is `false`.\r\n */\r\n this.enable_global_context_dfa = false;\r\n this.optimize_unique_closure = true;\r\n this.optimize_ll1 = true;\r\n this.optimize_tail_calls = true;\r\n this.tail_call_preserves_sll = true;\r\n this.treat_sllk1_conflict_as_ambiguity = false;\r\n /**\r\n * When `true`, ambiguous alternatives are reported when they are\r\n * encountered within {@link #execATN}. When `false`, these messages\r\n * are suppressed. The default is `false`.\r\n *\r\n * When messages about ambiguous alternatives are not required, setting this\r\n * to `false` enables additional internal optimizations which may lose\r\n * this information.\r\n */\r\n this.reportAmbiguities = false;\r\n /** By default we do full context-sensitive LL(*) parsing not\r\n * Strong LL(*) parsing. If we fail with Strong LL(*) we\r\n * try full LL(*). That means we rewind and use context information\r\n * when closure operations fall off the end of the rule that\r\n * holds the decision were evaluating.\r\n */\r\n this.userWantsCtxSensitive = true;\r\n this._parser = parser;\r\n }\r\n getPredictionMode() {\r\n return this.predictionMode;\r\n }\r\n setPredictionMode(predictionMode) {\r\n this.predictionMode = predictionMode;\r\n }\r\n reset() {\r\n // intentionally empty\r\n }\r\n adaptivePredict(input, decision, outerContext, useContext) {\r\n if (useContext === undefined) {\r\n useContext = false;\r\n }\r\n let dfa = this.atn.decisionToDFA[decision];\r\n assert(dfa != null);\r\n if (this.optimize_ll1 && !dfa.isPrecedenceDfa && !dfa.isEmpty) {\r\n let ll_1 = input.LA(1);\r\n if (ll_1 >= 0 && ll_1 <= 0xFFFF) {\r\n let key = ((decision << 16) >>> 0) + ll_1;\r\n let alt = this.atn.LL1Table.get(key);\r\n if (alt != null) {\r\n return alt;\r\n }\r\n }\r\n }\r\n this.dfa = dfa;\r\n if (this.force_global_context) {\r\n useContext = true;\r\n }\r\n else if (!this.always_try_local_context) {\r\n useContext = useContext || dfa.isContextSensitive;\r\n }\r\n this.userWantsCtxSensitive = useContext || (this.predictionMode !== PredictionMode_1.PredictionMode.SLL && outerContext != null && !this.atn.decisionToState[decision].sll);\r\n if (outerContext == null) {\r\n outerContext = ParserRuleContext_1.ParserRuleContext.emptyContext();\r\n }\r\n let state;\r\n if (!dfa.isEmpty) {\r\n state = this.getStartState(dfa, input, outerContext, useContext);\r\n }\r\n if (state == null) {\r\n if (outerContext == null) {\r\n outerContext = ParserRuleContext_1.ParserRuleContext.emptyContext();\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"ATN decision \" + dfa.decision +\r\n \" exec LA(1)==\" + this.getLookaheadName(input) +\r\n \", outerContext=\" + outerContext.toString(this._parser));\r\n }\r\n state = this.computeStartState(dfa, outerContext, useContext);\r\n }\r\n let m = input.mark();\r\n let index = input.index;\r\n try {\r\n let alt = this.execDFA(dfa, input, index, state);\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"DFA after predictATN: \" + dfa.toString(this._parser.vocabulary, this._parser.ruleNames));\r\n }\r\n return alt;\r\n }\r\n finally {\r\n this.dfa = undefined;\r\n input.seek(index);\r\n input.release(m);\r\n }\r\n }\r\n getStartState(dfa, input, outerContext, useContext) {\r\n if (!useContext) {\r\n if (dfa.isPrecedenceDfa) {\r\n // the start state for a precedence DFA depends on the current\r\n // parser precedence, and is provided by a DFA method.\r\n let state = dfa.getPrecedenceStartState(this._parser.precedence, false);\r\n if (state == null) {\r\n return undefined;\r\n }\r\n return new SimulatorState_1.SimulatorState(outerContext, state, false, outerContext);\r\n }\r\n else {\r\n if (dfa.s0 == null) {\r\n return undefined;\r\n }\r\n return new SimulatorState_1.SimulatorState(outerContext, dfa.s0, false, outerContext);\r\n }\r\n }\r\n if (!this.enable_global_context_dfa) {\r\n return undefined;\r\n }\r\n let remainingContext = outerContext;\r\n assert(outerContext != null);\r\n let s0;\r\n if (dfa.isPrecedenceDfa) {\r\n s0 = dfa.getPrecedenceStartState(this._parser.precedence, true);\r\n }\r\n else {\r\n s0 = dfa.s0full;\r\n }\r\n while (remainingContext != null && s0 != null && s0.isContextSensitive) {\r\n remainingContext = this.skipTailCalls(remainingContext);\r\n s0 = s0.getContextTarget(this.getReturnState(remainingContext));\r\n if (remainingContext.isEmpty) {\r\n assert(s0 == null || !s0.isContextSensitive);\r\n }\r\n else {\r\n remainingContext = remainingContext.parent;\r\n }\r\n }\r\n if (s0 == null) {\r\n return undefined;\r\n }\r\n return new SimulatorState_1.SimulatorState(outerContext, s0, useContext, remainingContext);\r\n }\r\n execDFA(dfa, input, startIndex, state) {\r\n let outerContext = state.outerContext;\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"DFA decision \" + dfa.decision +\r\n \" exec LA(1)==\" + this.getLookaheadName(input) +\r\n \", outerContext=\" + outerContext.toString(this._parser));\r\n }\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(dfa.toString(this._parser.vocabulary, this._parser.ruleNames));\r\n }\r\n let s = state.s0;\r\n let t = input.LA(1);\r\n let remainingOuterContext = state.remainingOuterContext;\r\n while (true) {\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"DFA state \" + s.stateNumber + \" LA(1)==\" + this.getLookaheadName(input));\r\n }\r\n if (state.useContext) {\r\n while (s.isContextSymbol(t)) {\r\n let next;\r\n if (remainingOuterContext != null) {\r\n remainingOuterContext = this.skipTailCalls(remainingOuterContext);\r\n next = s.getContextTarget(this.getReturnState(remainingOuterContext));\r\n }\r\n if (next == null) {\r\n // fail over to ATN\r\n let initialState = new SimulatorState_1.SimulatorState(state.outerContext, s, state.useContext, remainingOuterContext);\r\n return this.execATN(dfa, input, startIndex, initialState);\r\n }\r\n assert(remainingOuterContext != null);\r\n remainingOuterContext = remainingOuterContext.parent;\r\n s = next;\r\n }\r\n }\r\n if (this.isAcceptState(s, state.useContext)) {\r\n if (s.predicates != null) {\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"accept \" + s);\r\n }\r\n }\r\n else {\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"accept; predict \" + s.prediction + \" in state \" + s.stateNumber);\r\n }\r\n }\r\n // keep going unless we're at EOF or state only has one alt number\r\n // mentioned in configs; check if something else could match\r\n // TODO: don't we always stop? only lexer would keep going\r\n // TODO: v3 dfa don't do this.\r\n break;\r\n }\r\n // t is not updated if one of these states is reached\r\n assert(!this.isAcceptState(s, state.useContext));\r\n // if no edge, pop over to ATN interpreter, update DFA and return\r\n let target = this.getExistingTargetState(s, t);\r\n if (target == null) {\r\n if (ParserATNSimulator.dfa_debug && t >= 0) {\r\n console.log(\"no edge for \" + this._parser.vocabulary.getDisplayName(t));\r\n }\r\n let alt;\r\n if (ParserATNSimulator.dfa_debug) {\r\n let interval = Interval_1.Interval.of(startIndex, this._parser.inputStream.index);\r\n console.log(\"ATN exec upon \" +\r\n this._parser.inputStream.getText(interval) +\r\n \" at DFA state \" + s.stateNumber);\r\n }\r\n let initialState = new SimulatorState_1.SimulatorState(outerContext, s, state.useContext, remainingOuterContext);\r\n alt = this.execATN(dfa, input, startIndex, initialState);\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"back from DFA update, alt=\" + alt + \", dfa=\\n\" + dfa.toString(this._parser.vocabulary, this._parser.ruleNames));\r\n //dump(dfa);\r\n }\r\n // action already executed\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"DFA decision \" + dfa.decision +\r\n \" predicts \" + alt);\r\n }\r\n return alt; // we've updated DFA, exec'd action, and have our deepest answer\r\n }\r\n else if (target === ATNSimulator_1.ATNSimulator.ERROR) {\r\n let errorState = new SimulatorState_1.SimulatorState(outerContext, s, state.useContext, remainingOuterContext);\r\n return this.handleNoViableAlt(input, startIndex, errorState);\r\n }\r\n s = target;\r\n if (!this.isAcceptState(s, state.useContext) && t !== IntStream_1.IntStream.EOF) {\r\n input.consume();\r\n t = input.LA(1);\r\n }\r\n }\r\n //\t\tif ( acceptState==null ) {\r\n //\t\t\tif ( debug ) System.out.println(\"!!! no viable alt in dfa\");\r\n //\t\t\treturn -1;\r\n //\t\t}\r\n if (!state.useContext && s.configs.conflictInfo != null) {\r\n if (dfa.atnStartState instanceof DecisionState_1.DecisionState) {\r\n if (!this.userWantsCtxSensitive ||\r\n (!s.configs.dipsIntoOuterContext && s.configs.isExactConflict) ||\r\n (this.treat_sllk1_conflict_as_ambiguity && input.index === startIndex)) {\r\n // we don't report the ambiguity again\r\n //if ( !this.acceptState.configset.hasSemanticContext ) {\r\n // \tthis.reportAmbiguity(dfa, acceptState, startIndex, input.index, acceptState.configset.conflictingAlts, acceptState.configset);\r\n //}\r\n }\r\n else {\r\n assert(!state.useContext);\r\n // Before attempting full context prediction, check to see if there are\r\n // disambiguating or validating predicates to evaluate which allow an\r\n // immediate decision\r\n let conflictingAlts;\r\n let predicates = s.predicates;\r\n if (predicates != null) {\r\n let conflictIndex = input.index;\r\n if (conflictIndex !== startIndex) {\r\n input.seek(startIndex);\r\n }\r\n conflictingAlts = this.evalSemanticContext(predicates, outerContext, true);\r\n if (conflictingAlts.cardinality() === 1) {\r\n return conflictingAlts.nextSetBit(0);\r\n }\r\n if (conflictIndex !== startIndex) {\r\n // restore the index so reporting the fallback to full\r\n // context occurs with the index at the correct spot\r\n input.seek(conflictIndex);\r\n }\r\n }\r\n if (this.reportAmbiguities) {\r\n let conflictState = new SimulatorState_1.SimulatorState(outerContext, s, state.useContext, remainingOuterContext);\r\n this.reportAttemptingFullContext(dfa, conflictingAlts, conflictState, startIndex, input.index);\r\n }\r\n input.seek(startIndex);\r\n return this.adaptivePredict(input, dfa.decision, outerContext, true);\r\n }\r\n }\r\n }\r\n // Before jumping to prediction, check to see if there are\r\n // disambiguating or validating predicates to evaluate\r\n let predicates = s.predicates;\r\n if (predicates != null) {\r\n let stopIndex = input.index;\r\n if (startIndex !== stopIndex) {\r\n input.seek(startIndex);\r\n }\r\n let alts = this.evalSemanticContext(predicates, outerContext, this.reportAmbiguities && this.predictionMode === PredictionMode_1.PredictionMode.LL_EXACT_AMBIG_DETECTION);\r\n switch (alts.cardinality()) {\r\n case 0:\r\n throw this.noViableAlt(input, outerContext, s.configs, startIndex);\r\n case 1:\r\n return alts.nextSetBit(0);\r\n default:\r\n // report ambiguity after predicate evaluation to make sure the correct\r\n // set of ambig alts is reported.\r\n if (startIndex !== stopIndex) {\r\n input.seek(stopIndex);\r\n }\r\n this.reportAmbiguity(dfa, s, startIndex, stopIndex, s.configs.isExactConflict, alts, s.configs);\r\n return alts.nextSetBit(0);\r\n }\r\n }\r\n if (ParserATNSimulator.dfa_debug) {\r\n console.log(\"DFA decision \" + dfa.decision +\r\n \" predicts \" + s.prediction);\r\n }\r\n return s.prediction;\r\n }\r\n /**\r\n * Determines if a particular DFA state should be treated as an accept state\r\n * for the current prediction mode. In addition to the `useContext`\r\n * parameter, the {@link #getPredictionMode()} method provides the\r\n * prediction mode controlling the prediction algorithm as a whole.\r\n *\r\n * The default implementation simply returns the value of\r\n * `DFAState.isAcceptState` except for conflict states when\r\n * `useContext` is `true` and {@link #getPredictionMode()} is\r\n * {@link PredictionMode#LL_EXACT_AMBIG_DETECTION}. In that case, only\r\n * conflict states where {@link ATNConfigSet#isExactConflict} is\r\n * `true` are considered accept states.\r\n *\r\n * @param state The DFA state to check.\r\n * @param useContext `true` if the prediction algorithm is currently\r\n * considering the full parser context; otherwise, `false` if the\r\n * algorithm is currently performing a local context prediction.\r\n *\r\n * @returns `true` if the specified `state` is an accept state;\r\n * otherwise, `false`.\r\n */\r\n isAcceptState(state, useContext) {\r\n if (!state.isAcceptState) {\r\n return false;\r\n }\r\n if (state.configs.conflictingAlts == null) {\r\n // unambiguous\r\n return true;\r\n }\r\n // More picky when we need exact conflicts\r\n if (useContext && this.predictionMode === PredictionMode_1.PredictionMode.LL_EXACT_AMBIG_DETECTION) {\r\n return state.configs.isExactConflict;\r\n }\r\n return true;\r\n }\r\n /** Performs ATN simulation to compute a predicted alternative based\r\n * upon the remaining input, but also updates the DFA cache to avoid\r\n * having to traverse the ATN again for the same input sequence.\r\n *\r\n * There are some key conditions we're looking for after computing a new\r\n * set of ATN configs (proposed DFA state):\r\n *\r\n * * if the set is empty, there is no viable alternative for current symbol\r\n * * does the state uniquely predict an alternative?\r\n * * does the state have a conflict that would prevent us from\r\n * putting it on the work list?\r\n * * if in non-greedy decision is there a config at a rule stop state?\r\n *\r\n * We also have some key operations to do:\r\n *\r\n * * add an edge from previous DFA state to potentially new DFA state, D,\r\n * upon current symbol but only if adding to work list, which means in all\r\n * cases except no viable alternative (and possibly non-greedy decisions?)\r\n * * collecting predicates and adding semantic context to DFA accept states\r\n * * adding rule context to context-sensitive DFA accept states\r\n * * consuming an input symbol\r\n * * reporting a conflict\r\n * * reporting an ambiguity\r\n * * reporting a context sensitivity\r\n * * reporting insufficient predicates\r\n *\r\n * We should isolate those operations, which are side-effecting, to the\r\n * main work loop. We can isolate lots of code into other functions, but\r\n * they should be side effect free. They can return package that\r\n * indicates whether we should report something, whether we need to add a\r\n * DFA edge, whether we need to augment accept state with semantic\r\n * context or rule invocation context. Actually, it seems like we always\r\n * add predicates if they exist, so that can simply be done in the main\r\n * loop for any accept state creation or modification request.\r\n *\r\n * cover these cases:\r\n * dead end\r\n * single alt\r\n * single alt + preds\r\n * conflict\r\n * conflict + preds\r\n *\r\n * TODO: greedy + those\r\n */\r\n execATN(dfa, input, startIndex, initialState) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"execATN decision \" + dfa.decision + \" exec LA(1)==\" + this.getLookaheadName(input));\r\n }\r\n let outerContext = initialState.outerContext;\r\n let useContext = initialState.useContext;\r\n let t = input.LA(1);\r\n let previous = initialState;\r\n let contextCache = new PredictionContextCache_1.PredictionContextCache();\r\n while (true) { // while more work\r\n let nextState = this.computeReachSet(dfa, previous, t, contextCache);\r\n if (nextState == null) {\r\n this.setDFAEdge(previous.s0, input.LA(1), ATNSimulator_1.ATNSimulator.ERROR);\r\n return this.handleNoViableAlt(input, startIndex, previous);\r\n }\r\n let D = nextState.s0;\r\n // predicted alt => accept state\r\n assert(D.isAcceptState || D.prediction === ATN_1.ATN.INVALID_ALT_NUMBER);\r\n // conflicted => accept state\r\n assert(D.isAcceptState || D.configs.conflictInfo == null);\r\n if (this.isAcceptState(D, useContext)) {\r\n let conflictingAlts = D.configs.conflictingAlts;\r\n let predictedAlt = conflictingAlts == null ? D.prediction : ATN_1.ATN.INVALID_ALT_NUMBER;\r\n if (predictedAlt !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n if (this.optimize_ll1\r\n && input.index === startIndex\r\n && !dfa.isPrecedenceDfa\r\n && nextState.outerContext === nextState.remainingOuterContext\r\n && dfa.decision >= 0\r\n && !D.configs.hasSemanticContext) {\r\n if (t >= 0 && t <= MAX_SHORT_VALUE) {\r\n let key = ((dfa.decision << 16) >>> 0) + t;\r\n this.atn.LL1Table.set(key, predictedAlt);\r\n }\r\n }\r\n if (useContext && this.always_try_local_context) {\r\n this.reportContextSensitivity(dfa, predictedAlt, nextState, startIndex, input.index);\r\n }\r\n }\r\n predictedAlt = D.prediction;\r\n //\t\t\t\tint k = input.index - startIndex + 1; // how much input we used\r\n //\t\t\t\tSystem.out.println(\"used k=\"+k);\r\n let attemptFullContext = conflictingAlts != null && this.userWantsCtxSensitive;\r\n if (attemptFullContext) {\r\n // Only exact conflicts are known to be ambiguous when local\r\n // prediction does not step out of the decision rule.\r\n attemptFullContext = !useContext\r\n && (D.configs.dipsIntoOuterContext || !D.configs.isExactConflict)\r\n && (!this.treat_sllk1_conflict_as_ambiguity || input.index !== startIndex);\r\n }\r\n if (D.configs.hasSemanticContext) {\r\n let predPredictions = D.predicates;\r\n if (predPredictions != null) {\r\n let conflictIndex = input.index;\r\n if (conflictIndex !== startIndex) {\r\n input.seek(startIndex);\r\n }\r\n // use complete evaluation here if we'll want to retry with full context if still ambiguous\r\n conflictingAlts = this.evalSemanticContext(predPredictions, outerContext, attemptFullContext || this.reportAmbiguities);\r\n switch (conflictingAlts.cardinality()) {\r\n case 0:\r\n throw this.noViableAlt(input, outerContext, D.configs, startIndex);\r\n case 1:\r\n return conflictingAlts.nextSetBit(0);\r\n default:\r\n break;\r\n }\r\n if (conflictIndex !== startIndex) {\r\n // restore the index so reporting the fallback to full\r\n // context occurs with the index at the correct spot\r\n input.seek(conflictIndex);\r\n }\r\n }\r\n }\r\n if (!attemptFullContext) {\r\n if (conflictingAlts != null) {\r\n if (this.reportAmbiguities && conflictingAlts.cardinality() > 1) {\r\n this.reportAmbiguity(dfa, D, startIndex, input.index, D.configs.isExactConflict, conflictingAlts, D.configs);\r\n }\r\n predictedAlt = conflictingAlts.nextSetBit(0);\r\n }\r\n return predictedAlt;\r\n }\r\n else {\r\n assert(!useContext);\r\n assert(this.isAcceptState(D, false));\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"RETRY with outerContext=\" + outerContext);\r\n }\r\n let fullContextState = this.computeStartState(dfa, outerContext, true);\r\n if (this.reportAmbiguities) {\r\n this.reportAttemptingFullContext(dfa, conflictingAlts, nextState, startIndex, input.index);\r\n }\r\n input.seek(startIndex);\r\n return this.execATN(dfa, input, startIndex, fullContextState);\r\n }\r\n }\r\n previous = nextState;\r\n if (t !== IntStream_1.IntStream.EOF) {\r\n input.consume();\r\n t = input.LA(1);\r\n }\r\n }\r\n }\r\n /**\r\n * This method is used to improve the localization of error messages by\r\n * choosing an alternative rather than throwing a\r\n * {@link NoViableAltException} in particular prediction scenarios where the\r\n * {@link #ERROR} state was reached during ATN simulation.\r\n *\r\n * The default implementation of this method uses the following\r\n * algorithm to identify an ATN configuration which successfully parsed the\r\n * decision entry rule. Choosing such an alternative ensures that the\r\n * {@link ParserRuleContext} returned by the calling rule will be complete\r\n * and valid, and the syntax error will be reported later at a more\r\n * localized location.\r\n *\r\n * * If no configuration in `configs` reached the end of the\r\n * decision rule, return {@link ATN#INVALID_ALT_NUMBER}.\r\n * * If all configurations in `configs` which reached the end of the\r\n * decision rule predict the same alternative, return that alternative.\r\n * * If the configurations in `configs` which reached the end of the\r\n * decision rule predict multiple alternatives (call this *S*),\r\n * choose an alternative in the following order.\r\n *\r\n * 1. Filter the configurations in `configs` to only those\r\n * configurations which remain viable after evaluating semantic predicates.\r\n * If the set of these filtered configurations which also reached the end of\r\n * the decision rule is not empty, return the minimum alternative\r\n * represented in this set.\r\n * 1. Otherwise, choose the minimum alternative in *S*.\r\n *\r\n * In some scenarios, the algorithm described above could predict an\r\n * alternative which will result in a {@link FailedPredicateException} in\r\n * parser. Specifically, this could occur if the *only* configuration\r\n * capable of successfully parsing to the end of the decision rule is\r\n * blocked by a semantic predicate. By choosing this alternative within\r\n * {@link #adaptivePredict} instead of throwing a\r\n * {@link NoViableAltException}, the resulting\r\n * {@link FailedPredicateException} in the parser will identify the specific\r\n * predicate which is preventing the parser from successfully parsing the\r\n * decision rule, which helps developers identify and correct logic errors\r\n * in semantic predicates.\r\n *\r\n * @param input The input {@link TokenStream}\r\n * @param startIndex The start index for the current prediction, which is\r\n * the input index where any semantic context in `configs` should be\r\n * evaluated\r\n * @param previous The ATN simulation state immediately before the\r\n * {@link #ERROR} state was reached\r\n *\r\n * @returns The value to return from {@link #adaptivePredict}, or\r\n * {@link ATN#INVALID_ALT_NUMBER} if a suitable alternative was not\r\n * identified and {@link #adaptivePredict} should report an error instead.\r\n */\r\n handleNoViableAlt(input, startIndex, previous) {\r\n if (previous.s0 != null) {\r\n let alts = new BitSet_1.BitSet();\r\n let maxAlt = 0;\r\n for (let config of previous.s0.configs) {\r\n if (config.reachesIntoOuterContext || config.state instanceof RuleStopState_1.RuleStopState) {\r\n alts.set(config.alt);\r\n maxAlt = Math.max(maxAlt, config.alt);\r\n }\r\n }\r\n switch (alts.cardinality()) {\r\n case 0:\r\n break;\r\n case 1:\r\n return alts.nextSetBit(0);\r\n default:\r\n if (!previous.s0.configs.hasSemanticContext) {\r\n // configs doesn't contain any predicates, so the predicate\r\n // filtering code below would be pointless\r\n return alts.nextSetBit(0);\r\n }\r\n /*\r\n * Try to find a configuration set that not only dipped into the outer\r\n * context, but also isn't eliminated by a predicate.\r\n */\r\n let filteredConfigs = new ATNConfigSet_1.ATNConfigSet();\r\n for (let config of previous.s0.configs) {\r\n if (config.reachesIntoOuterContext || config.state instanceof RuleStopState_1.RuleStopState) {\r\n filteredConfigs.add(config);\r\n }\r\n }\r\n /* The following code blocks are adapted from predicateDFAState with\r\n * the following key changes.\r\n *\r\n * 1. The code operates on an ATNConfigSet rather than a DFAState.\r\n * 2. Predicates are collected for all alternatives represented in\r\n * filteredConfigs, rather than restricting the evaluation to\r\n * conflicting and/or unique configurations.\r\n */\r\n let altToPred = this.getPredsForAmbigAlts(alts, filteredConfigs, maxAlt);\r\n if (altToPred != null) {\r\n let predicates = this.getPredicatePredictions(alts, altToPred);\r\n if (predicates != null) {\r\n let stopIndex = input.index;\r\n try {\r\n input.seek(startIndex);\r\n let filteredAlts = this.evalSemanticContext(predicates, previous.outerContext, false);\r\n if (!filteredAlts.isEmpty) {\r\n return filteredAlts.nextSetBit(0);\r\n }\r\n }\r\n finally {\r\n input.seek(stopIndex);\r\n }\r\n }\r\n }\r\n return alts.nextSetBit(0);\r\n }\r\n }\r\n throw this.noViableAlt(input, previous.outerContext, previous.s0.configs, startIndex);\r\n }\r\n computeReachSet(dfa, previous, t, contextCache) {\r\n let useContext = previous.useContext;\r\n let remainingGlobalContext = previous.remainingOuterContext;\r\n let s = previous.s0;\r\n if (useContext) {\r\n while (s.isContextSymbol(t)) {\r\n let next;\r\n if (remainingGlobalContext != null) {\r\n remainingGlobalContext = this.skipTailCalls(remainingGlobalContext);\r\n next = s.getContextTarget(this.getReturnState(remainingGlobalContext));\r\n }\r\n if (next == null) {\r\n break;\r\n }\r\n assert(remainingGlobalContext != null);\r\n remainingGlobalContext = remainingGlobalContext.parent;\r\n s = next;\r\n }\r\n }\r\n assert(!this.isAcceptState(s, useContext));\r\n if (this.isAcceptState(s, useContext)) {\r\n return new SimulatorState_1.SimulatorState(previous.outerContext, s, useContext, remainingGlobalContext);\r\n }\r\n let s0 = s;\r\n let target = this.getExistingTargetState(s0, t);\r\n if (target == null) {\r\n let result = this.computeTargetState(dfa, s0, remainingGlobalContext, t, useContext, contextCache);\r\n target = result[0];\r\n remainingGlobalContext = result[1];\r\n }\r\n if (target === ATNSimulator_1.ATNSimulator.ERROR) {\r\n return undefined;\r\n }\r\n assert(!useContext || !target.configs.dipsIntoOuterContext);\r\n return new SimulatorState_1.SimulatorState(previous.outerContext, target, useContext, remainingGlobalContext);\r\n }\r\n /**\r\n * Get an existing target state for an edge in the DFA. If the target state\r\n * for the edge has not yet been computed or is otherwise not available,\r\n * this method returns `undefined`.\r\n *\r\n * @param s The current DFA state\r\n * @param t The next input symbol\r\n * @returns The existing target DFA state for the given input symbol\r\n * `t`, or `undefined` if the target state for this edge is not\r\n * already cached\r\n */\r\n getExistingTargetState(s, t) {\r\n return s.getTarget(t);\r\n }\r\n /**\r\n * Compute a target state for an edge in the DFA, and attempt to add the\r\n * computed state and corresponding edge to the DFA.\r\n *\r\n * @param dfa\r\n * @param s The current DFA state\r\n * @param remainingGlobalContext\r\n * @param t The next input symbol\r\n * @param useContext\r\n * @param contextCache\r\n *\r\n * @returns The computed target DFA state for the given input symbol\r\n * `t`. If `t` does not lead to a valid DFA state, this method\r\n * returns {@link #ERROR}.\r\n */\r\n computeTargetState(dfa, s, remainingGlobalContext, t, useContext, contextCache) {\r\n let closureConfigs = s.configs.toArray();\r\n let contextElements;\r\n let reach = new ATNConfigSet_1.ATNConfigSet();\r\n let stepIntoGlobal;\r\n do {\r\n let hasMoreContext = !useContext || remainingGlobalContext != null;\r\n if (!hasMoreContext) {\r\n reach.isOutermostConfigSet = true;\r\n }\r\n let reachIntermediate = new ATNConfigSet_1.ATNConfigSet();\r\n /* Configurations already in a rule stop state indicate reaching the end\r\n * of the decision rule (local context) or end of the start rule (full\r\n * context). Once reached, these configurations are never updated by a\r\n * closure operation, so they are handled separately for the performance\r\n * advantage of having a smaller intermediate set when calling closure.\r\n *\r\n * For full-context reach operations, separate handling is required to\r\n * ensure that the alternative matching the longest overall sequence is\r\n * chosen when multiple such configurations can match the input.\r\n */\r\n let skippedStopStates;\r\n for (let c of closureConfigs) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"testing \" + this.getTokenName(t) + \" at \" + c.toString());\r\n }\r\n if (c.state instanceof RuleStopState_1.RuleStopState) {\r\n assert(c.context.isEmpty);\r\n if (useContext && !c.reachesIntoOuterContext || t === IntStream_1.IntStream.EOF) {\r\n if (skippedStopStates == null) {\r\n skippedStopStates = [];\r\n }\r\n skippedStopStates.push(c);\r\n }\r\n continue;\r\n }\r\n let n = c.state.numberOfOptimizedTransitions;\r\n for (let ti = 0; ti < n; ti++) { // for each optimized transition\r\n let trans = c.state.getOptimizedTransition(ti);\r\n let target = this.getReachableTarget(c, trans, t);\r\n if (target != null) {\r\n reachIntermediate.add(c.transform(target, false), contextCache);\r\n }\r\n }\r\n }\r\n /* This block optimizes the reach operation for intermediate sets which\r\n * trivially indicate a termination state for the overall\r\n * adaptivePredict operation.\r\n *\r\n * The conditions assume that intermediate\r\n * contains all configurations relevant to the reach set, but this\r\n * condition is not true when one or more configurations have been\r\n * withheld in skippedStopStates, or when the current symbol is EOF.\r\n */\r\n if (this.optimize_unique_closure && skippedStopStates == null && t !== Token_1.Token.EOF && reachIntermediate.uniqueAlt !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n reachIntermediate.isOutermostConfigSet = reach.isOutermostConfigSet;\r\n reach = reachIntermediate;\r\n break;\r\n }\r\n /* If the reach set could not be trivially determined, perform a closure\r\n * operation on the intermediate set to compute its initial value.\r\n */\r\n let collectPredicates = false;\r\n let treatEofAsEpsilon = t === Token_1.Token.EOF;\r\n this.closure(reachIntermediate, reach, collectPredicates, hasMoreContext, contextCache, treatEofAsEpsilon);\r\n stepIntoGlobal = reach.dipsIntoOuterContext;\r\n if (t === IntStream_1.IntStream.EOF) {\r\n /* After consuming EOF no additional input is possible, so we are\r\n * only interested in configurations which reached the end of the\r\n * decision rule (local context) or end of the start rule (full\r\n * context). Update reach to contain only these configurations. This\r\n * handles both explicit EOF transitions in the grammar and implicit\r\n * EOF transitions following the end of the decision or start rule.\r\n *\r\n * This is handled before the configurations in skippedStopStates,\r\n * because any configurations potentially added from that list are\r\n * already guaranteed to meet this condition whether or not it's\r\n * required.\r\n */\r\n reach = this.removeAllConfigsNotInRuleStopState(reach, contextCache);\r\n }\r\n /* If skippedStopStates is not undefined, then it contains at least one\r\n * configuration. For full-context reach operations, these\r\n * configurations reached the end of the start rule, in which case we\r\n * only add them back to reach if no configuration during the current\r\n * closure operation reached such a state. This ensures adaptivePredict\r\n * chooses an alternative matching the longest overall sequence when\r\n * multiple alternatives are viable.\r\n */\r\n if (skippedStopStates != null && (!useContext || !PredictionMode_1.PredictionMode.hasConfigInRuleStopState(reach))) {\r\n assert(skippedStopStates.length > 0);\r\n for (let c of skippedStopStates) {\r\n reach.add(c, contextCache);\r\n }\r\n }\r\n if (useContext && stepIntoGlobal) {\r\n reach.clear();\r\n // We know remainingGlobalContext is not undefined at this point (why?)\r\n remainingGlobalContext = remainingGlobalContext;\r\n remainingGlobalContext = this.skipTailCalls(remainingGlobalContext);\r\n let nextContextElement = this.getReturnState(remainingGlobalContext);\r\n if (contextElements == null) {\r\n contextElements = new IntegerList_1.IntegerList();\r\n }\r\n if (remainingGlobalContext.isEmpty) {\r\n remainingGlobalContext = undefined;\r\n }\r\n else {\r\n remainingGlobalContext = remainingGlobalContext.parent;\r\n }\r\n contextElements.add(nextContextElement);\r\n if (nextContextElement !== PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n for (let i = 0; i < closureConfigs.length; i++) {\r\n closureConfigs[i] = closureConfigs[i].appendContext(nextContextElement, contextCache);\r\n }\r\n }\r\n }\r\n } while (useContext && stepIntoGlobal);\r\n if (reach.isEmpty) {\r\n this.setDFAEdge(s, t, ATNSimulator_1.ATNSimulator.ERROR);\r\n return [ATNSimulator_1.ATNSimulator.ERROR, remainingGlobalContext];\r\n }\r\n let result = this.addDFAEdge(dfa, s, t, contextElements, reach, contextCache);\r\n return [result, remainingGlobalContext];\r\n }\r\n /**\r\n * Return a configuration set containing only the configurations from\r\n * `configs` which are in a {@link RuleStopState}. If all\r\n * configurations in `configs` are already in a rule stop state, this\r\n * method simply returns `configs`.\r\n *\r\n * @param configs the configuration set to update\r\n * @param contextCache the {@link PredictionContext} cache\r\n *\r\n * @returns `configs` if all configurations in `configs` are in a\r\n * rule stop state, otherwise return a new configuration set containing only\r\n * the configurations from `configs` which are in a rule stop state\r\n */\r\n removeAllConfigsNotInRuleStopState(configs, contextCache) {\r\n if (PredictionMode_1.PredictionMode.allConfigsInRuleStopStates(configs)) {\r\n return configs;\r\n }\r\n let result = new ATNConfigSet_1.ATNConfigSet();\r\n for (let config of configs) {\r\n if (!(config.state instanceof RuleStopState_1.RuleStopState)) {\r\n continue;\r\n }\r\n result.add(config, contextCache);\r\n }\r\n return result;\r\n }\r\n computeStartState(dfa, globalContext, useContext) {\r\n let s0 = dfa.isPrecedenceDfa ? dfa.getPrecedenceStartState(this._parser.precedence, useContext) :\r\n useContext ? dfa.s0full :\r\n dfa.s0;\r\n if (s0 != null) {\r\n if (!useContext) {\r\n return new SimulatorState_1.SimulatorState(globalContext, s0, useContext, globalContext);\r\n }\r\n s0.setContextSensitive(this.atn);\r\n }\r\n let decision = dfa.decision;\r\n // @NotNull\r\n let p = dfa.atnStartState;\r\n let previousContext = 0;\r\n let remainingGlobalContext = globalContext;\r\n let initialContext = useContext ? PredictionContext_1.PredictionContext.EMPTY_FULL : PredictionContext_1.PredictionContext.EMPTY_LOCAL; // always at least the implicit call to start rule\r\n let contextCache = new PredictionContextCache_1.PredictionContextCache();\r\n if (useContext) {\r\n if (!this.enable_global_context_dfa) {\r\n while (remainingGlobalContext != null) {\r\n if (remainingGlobalContext.isEmpty) {\r\n previousContext = PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY;\r\n remainingGlobalContext = undefined;\r\n }\r\n else {\r\n previousContext = this.getReturnState(remainingGlobalContext);\r\n initialContext = initialContext.appendSingleContext(previousContext, contextCache);\r\n remainingGlobalContext = remainingGlobalContext.parent;\r\n }\r\n }\r\n }\r\n while (s0 != null && s0.isContextSensitive && remainingGlobalContext != null) {\r\n let next;\r\n remainingGlobalContext = this.skipTailCalls(remainingGlobalContext);\r\n if (remainingGlobalContext.isEmpty) {\r\n next = s0.getContextTarget(PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY);\r\n previousContext = PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY;\r\n remainingGlobalContext = undefined;\r\n }\r\n else {\r\n previousContext = this.getReturnState(remainingGlobalContext);\r\n next = s0.getContextTarget(previousContext);\r\n initialContext = initialContext.appendSingleContext(previousContext, contextCache);\r\n remainingGlobalContext = remainingGlobalContext.parent;\r\n }\r\n if (next == null) {\r\n break;\r\n }\r\n s0 = next;\r\n }\r\n }\r\n if (s0 != null && !s0.isContextSensitive) {\r\n return new SimulatorState_1.SimulatorState(globalContext, s0, useContext, remainingGlobalContext);\r\n }\r\n let configs = new ATNConfigSet_1.ATNConfigSet();\r\n while (true) {\r\n let reachIntermediate = new ATNConfigSet_1.ATNConfigSet();\r\n let n = p.numberOfTransitions;\r\n for (let ti = 0; ti < n; ti++) {\r\n // for each transition\r\n let target = p.transition(ti).target;\r\n reachIntermediate.add(ATNConfig_1.ATNConfig.create(target, ti + 1, initialContext));\r\n }\r\n let hasMoreContext = remainingGlobalContext != null;\r\n if (!hasMoreContext) {\r\n configs.isOutermostConfigSet = true;\r\n }\r\n let collectPredicates = true;\r\n this.closure(reachIntermediate, configs, collectPredicates, hasMoreContext, contextCache, false);\r\n let stepIntoGlobal = configs.dipsIntoOuterContext;\r\n let next;\r\n if (useContext && !this.enable_global_context_dfa) {\r\n s0 = this.addDFAState(dfa, configs, contextCache);\r\n break;\r\n }\r\n else if (s0 == null) {\r\n if (!dfa.isPrecedenceDfa) {\r\n next = this.addDFAState(dfa, configs, contextCache);\r\n if (useContext) {\r\n if (!dfa.s0full) {\r\n dfa.s0full = next;\r\n }\r\n else {\r\n next = dfa.s0full;\r\n }\r\n }\r\n else {\r\n if (!dfa.s0) {\r\n dfa.s0 = next;\r\n }\r\n else {\r\n next = dfa.s0;\r\n }\r\n }\r\n }\r\n else {\r\n /* If this is a precedence DFA, we use applyPrecedenceFilter\r\n * to convert the computed start state to a precedence start\r\n * state. We then use DFA.setPrecedenceStartState to set the\r\n * appropriate start state for the precedence level rather\r\n * than simply setting DFA.s0.\r\n */\r\n configs = this.applyPrecedenceFilter(configs, globalContext, contextCache);\r\n next = this.addDFAState(dfa, configs, contextCache);\r\n dfa.setPrecedenceStartState(this._parser.precedence, useContext, next);\r\n }\r\n }\r\n else {\r\n if (dfa.isPrecedenceDfa) {\r\n configs = this.applyPrecedenceFilter(configs, globalContext, contextCache);\r\n }\r\n next = this.addDFAState(dfa, configs, contextCache);\r\n s0.setContextTarget(previousContext, next);\r\n }\r\n s0 = next;\r\n if (!useContext || !stepIntoGlobal) {\r\n break;\r\n }\r\n // TODO: make sure it distinguishes empty stack states\r\n next.setContextSensitive(this.atn);\r\n // We know remainingGlobalContext is not undefined at this point (why?)\r\n remainingGlobalContext = remainingGlobalContext;\r\n configs.clear();\r\n remainingGlobalContext = this.skipTailCalls(remainingGlobalContext);\r\n let nextContextElement = this.getReturnState(remainingGlobalContext);\r\n if (remainingGlobalContext.isEmpty) {\r\n remainingGlobalContext = undefined;\r\n }\r\n else {\r\n remainingGlobalContext = remainingGlobalContext.parent;\r\n }\r\n if (nextContextElement !== PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n initialContext = initialContext.appendSingleContext(nextContextElement, contextCache);\r\n }\r\n previousContext = nextContextElement;\r\n }\r\n return new SimulatorState_1.SimulatorState(globalContext, s0, useContext, remainingGlobalContext);\r\n }\r\n /**\r\n * This method transforms the start state computed by\r\n * {@link #computeStartState} to the special start state used by a\r\n * precedence DFA for a particular precedence value. The transformation\r\n * process applies the following changes to the start state's configuration\r\n * set.\r\n *\r\n * 1. Evaluate the precedence predicates for each configuration using\r\n * {@link SemanticContext#evalPrecedence}.\r\n * 1. When {@link ATNConfig#isPrecedenceFilterSuppressed} is `false`,\r\n * remove all configurations which predict an alternative greater than 1,\r\n * for which another configuration that predicts alternative 1 is in the\r\n * same ATN state with the same prediction context. This transformation is\r\n * valid for the following reasons:\r\n *\r\n * * The closure block cannot contain any epsilon transitions which bypass\r\n * the body of the closure, so all states reachable via alternative 1 are\r\n * part of the precedence alternatives of the transformed left-recursive\r\n * rule.\r\n * * The \"primary\" portion of a left recursive rule cannot contain an\r\n * epsilon transition, so the only way an alternative other than 1 can exist\r\n * in a state that is also reachable via alternative 1 is by nesting calls\r\n * to the left-recursive rule, with the outer calls not being at the\r\n * preferred precedence level. The\r\n * {@link ATNConfig#isPrecedenceFilterSuppressed} property marks ATN\r\n * configurations which do not meet this condition, and therefore are not\r\n * eligible for elimination during the filtering process.\r\n *\r\n * The prediction context must be considered by this filter to address\r\n * situations like the following.\r\n *\r\n * ```antlr\r\n * grammar TA;\r\n * prog: statement* EOF;\r\n * statement: letterA | statement letterA 'b' ;\r\n * letterA: 'a';\r\n * ```\r\n *\r\n * If the above grammar, the ATN state immediately before the token\r\n * reference `'a'` in `letterA` is reachable from the left edge\r\n * of both the primary and closure blocks of the left-recursive rule\r\n * `statement`. The prediction context associated with each of these\r\n * configurations distinguishes between them, and prevents the alternative\r\n * which stepped out to `prog` (and then back in to `statement`\r\n * from being eliminated by the filter.\r\n *\r\n * @param configs The configuration set computed by\r\n * {@link #computeStartState} as the start state for the DFA.\r\n * @returns The transformed configuration set representing the start state\r\n * for a precedence DFA at a particular precedence level (determined by\r\n * calling {@link Parser#getPrecedence}).\r\n */\r\n applyPrecedenceFilter(configs, globalContext, contextCache) {\r\n let statesFromAlt1 = new Map();\r\n let configSet = new ATNConfigSet_1.ATNConfigSet();\r\n for (let config of configs) {\r\n // handle alt 1 first\r\n if (config.alt !== 1) {\r\n continue;\r\n }\r\n let updatedContext = config.semanticContext.evalPrecedence(this._parser, globalContext);\r\n if (updatedContext == null) {\r\n // the configuration was eliminated\r\n continue;\r\n }\r\n statesFromAlt1.set(config.state.stateNumber, config.context);\r\n if (updatedContext !== config.semanticContext) {\r\n configSet.add(config.transform(config.state, false, updatedContext), contextCache);\r\n }\r\n else {\r\n configSet.add(config, contextCache);\r\n }\r\n }\r\n for (let config of configs) {\r\n if (config.alt === 1) {\r\n // already handled\r\n continue;\r\n }\r\n if (!config.isPrecedenceFilterSuppressed) {\r\n /* In the future, this elimination step could be updated to also\r\n * filter the prediction context for alternatives predicting alt>1\r\n * (basically a graph subtraction algorithm).\r\n */\r\n let context = statesFromAlt1.get(config.state.stateNumber);\r\n if (context != null && context.equals(config.context)) {\r\n // eliminated\r\n continue;\r\n }\r\n }\r\n configSet.add(config, contextCache);\r\n }\r\n return configSet;\r\n }\r\n getReachableTarget(source, trans, ttype) {\r\n if (trans.matches(ttype, 0, this.atn.maxTokenType)) {\r\n return trans.target;\r\n }\r\n return undefined;\r\n }\r\n /** collect and set D's semantic context */\r\n predicateDFAState(D, configs, nalts) {\r\n let conflictingAlts = this.getConflictingAltsFromConfigSet(configs);\r\n if (!conflictingAlts) {\r\n throw new Error(\"This unhandled scenario is intended to be unreachable, but I'm currently not sure of why we know that's the case.\");\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"predicateDFAState \" + D);\r\n }\r\n let altToPred = this.getPredsForAmbigAlts(conflictingAlts, configs, nalts);\r\n // altToPred[uniqueAlt] is now our validating predicate (if any)\r\n let predPredictions;\r\n if (altToPred != null) {\r\n // we have a validating predicate; test it\r\n // Update DFA so reach becomes accept state with predicate\r\n predPredictions = this.getPredicatePredictions(conflictingAlts, altToPred);\r\n D.predicates = predPredictions;\r\n }\r\n return predPredictions;\r\n }\r\n getPredsForAmbigAlts(ambigAlts, configs, nalts) {\r\n // REACH=[1|1|[]|0:0, 1|2|[]|0:1]\r\n /* altToPred starts as an array of all undefined contexts. The entry at index i\r\n * corresponds to alternative i. altToPred[i] may have one of three values:\r\n * 1. undefined: no ATNConfig c is found such that c.alt===i\r\n * 2. SemanticContext.NONE: At least one ATNConfig c exists such that\r\n * c.alt===i and c.semanticContext===SemanticContext.NONE. In other words,\r\n * alt i has at least one unpredicated config.\r\n * 3. Non-NONE Semantic Context: There exists at least one, and for all\r\n * ATNConfig c such that c.alt===i, c.semanticContext!==SemanticContext.NONE.\r\n *\r\n * From this, it is clear that NONE||anything==NONE.\r\n */\r\n let altToPred = new Array(nalts + 1);\r\n let n = altToPred.length;\r\n for (let c of configs) {\r\n if (ambigAlts.get(c.alt)) {\r\n altToPred[c.alt] = SemanticContext_1.SemanticContext.or(altToPred[c.alt], c.semanticContext);\r\n }\r\n }\r\n let nPredAlts = 0;\r\n for (let i = 0; i < n; i++) {\r\n if (altToPred[i] == null) {\r\n altToPred[i] = SemanticContext_1.SemanticContext.NONE;\r\n }\r\n else if (altToPred[i] !== SemanticContext_1.SemanticContext.NONE) {\r\n nPredAlts++;\r\n }\r\n }\r\n // At this point we know `altToPred` doesn't contain any undefined entries\r\n let result = altToPred;\r\n // nonambig alts are undefined in result\r\n if (nPredAlts === 0) {\r\n result = undefined;\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"getPredsForAmbigAlts result \" + (result ? Arrays_1.Arrays.toString(result) : \"undefined\"));\r\n }\r\n return result;\r\n }\r\n getPredicatePredictions(ambigAlts, altToPred) {\r\n let pairs = [];\r\n let containsPredicate = false;\r\n for (let i = 1; i < altToPred.length; i++) {\r\n let pred = altToPred[i];\r\n // unpredicated is indicated by SemanticContext.NONE\r\n assert(pred != null);\r\n // find first unpredicated but ambig alternative, if any.\r\n // Only ambiguous alternatives will have SemanticContext.NONE.\r\n // Any unambig alts or ambig naked alts after first ambig naked are ignored\r\n // (undefined, i) means alt i is the default prediction\r\n // if no (undefined, i), then no default prediction.\r\n if (ambigAlts != null && ambigAlts.get(i) && pred === SemanticContext_1.SemanticContext.NONE) {\r\n pairs.push(new DFAState_1.DFAState.PredPrediction(pred, i));\r\n }\r\n else if (pred !== SemanticContext_1.SemanticContext.NONE) {\r\n containsPredicate = true;\r\n pairs.push(new DFAState_1.DFAState.PredPrediction(pred, i));\r\n }\r\n }\r\n if (!containsPredicate) {\r\n return undefined;\r\n }\r\n //\t\tSystem.out.println(Arrays.toString(altToPred)+\"->\"+pairs);\r\n return pairs;\r\n }\r\n /** Look through a list of predicate/alt pairs, returning alts for the\r\n * pairs that win. An `undefined` predicate indicates an alt containing an\r\n * unpredicated config which behaves as \"always true.\"\r\n */\r\n evalSemanticContext(predPredictions, outerContext, complete) {\r\n let predictions = new BitSet_1.BitSet();\r\n for (let pair of predPredictions) {\r\n if (pair.pred === SemanticContext_1.SemanticContext.NONE) {\r\n predictions.set(pair.alt);\r\n if (!complete) {\r\n break;\r\n }\r\n continue;\r\n }\r\n let evaluatedResult = this.evalSemanticContextImpl(pair.pred, outerContext, pair.alt);\r\n if (ParserATNSimulator.debug || ParserATNSimulator.dfa_debug) {\r\n console.log(\"eval pred \" + pair + \"=\" + evaluatedResult);\r\n }\r\n if (evaluatedResult) {\r\n if (ParserATNSimulator.debug || ParserATNSimulator.dfa_debug) {\r\n console.log(\"PREDICT \" + pair.alt);\r\n }\r\n predictions.set(pair.alt);\r\n if (!complete) {\r\n break;\r\n }\r\n }\r\n }\r\n return predictions;\r\n }\r\n /**\r\n * Evaluate a semantic context within a specific parser context.\r\n *\r\n * This method might not be called for every semantic context evaluated\r\n * during the prediction process. In particular, we currently do not\r\n * evaluate the following but it may change in the future:\r\n *\r\n * * Precedence predicates (represented by\r\n * {@link SemanticContext.PrecedencePredicate}) are not currently evaluated\r\n * through this method.\r\n * * Operator predicates (represented by {@link SemanticContext.AND} and\r\n * {@link SemanticContext.OR}) are evaluated as a single semantic\r\n * context, rather than evaluating the operands individually.\r\n * Implementations which require evaluation results from individual\r\n * predicates should override this method to explicitly handle evaluation of\r\n * the operands within operator predicates.\r\n *\r\n * @param pred The semantic context to evaluate\r\n * @param parserCallStack The parser context in which to evaluate the\r\n * semantic context\r\n * @param alt The alternative which is guarded by `pred`\r\n *\r\n * @since 4.3\r\n */\r\n evalSemanticContextImpl(pred, parserCallStack, alt) {\r\n return pred.eval(this._parser, parserCallStack);\r\n }\r\n /* TODO: If we are doing predicates, there is no point in pursuing\r\n closure operations if we reach a DFA state that uniquely predicts\r\n alternative. We will not be caching that DFA state and it is a\r\n waste to pursue the closure. Might have to advance when we do\r\n ambig detection thought :(\r\n */\r\n closure(sourceConfigs, configs, collectPredicates, hasMoreContext, contextCache, treatEofAsEpsilon) {\r\n if (contextCache == null) {\r\n contextCache = PredictionContextCache_1.PredictionContextCache.UNCACHED;\r\n }\r\n let currentConfigs = sourceConfigs;\r\n let closureBusy = new Array2DHashSet_1.Array2DHashSet(ObjectEqualityComparator_1.ObjectEqualityComparator.INSTANCE);\r\n while (currentConfigs.size > 0) {\r\n let intermediate = new ATNConfigSet_1.ATNConfigSet();\r\n for (let config of currentConfigs) {\r\n this.closureImpl(config, configs, intermediate, closureBusy, collectPredicates, hasMoreContext, contextCache, 0, treatEofAsEpsilon);\r\n }\r\n currentConfigs = intermediate;\r\n }\r\n }\r\n closureImpl(config, configs, intermediate, closureBusy, collectPredicates, hasMoreContexts, contextCache, depth, treatEofAsEpsilon) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"closure(\" + config.toString(this._parser, true) + \")\");\r\n }\r\n if (config.state instanceof RuleStopState_1.RuleStopState) {\r\n // We hit rule end. If we have context info, use it\r\n if (!config.context.isEmpty) {\r\n let hasEmpty = config.context.hasEmpty;\r\n let nonEmptySize = config.context.size - (hasEmpty ? 1 : 0);\r\n for (let i = 0; i < nonEmptySize; i++) {\r\n let newContext = config.context.getParent(i); // \"pop\" return state\r\n let returnState = this.atn.states[config.context.getReturnState(i)];\r\n let c = ATNConfig_1.ATNConfig.create(returnState, config.alt, newContext, config.semanticContext);\r\n // While we have context to pop back from, we may have\r\n // gotten that context AFTER having fallen off a rule.\r\n // Make sure we track that we are now out of context.\r\n c.outerContextDepth = config.outerContextDepth;\r\n c.isPrecedenceFilterSuppressed = config.isPrecedenceFilterSuppressed;\r\n assert(depth > MIN_INTEGER_VALUE);\r\n this.closureImpl(c, configs, intermediate, closureBusy, collectPredicates, hasMoreContexts, contextCache, depth - 1, treatEofAsEpsilon);\r\n }\r\n if (!hasEmpty || !hasMoreContexts) {\r\n return;\r\n }\r\n config = config.transform(config.state, false, PredictionContext_1.PredictionContext.EMPTY_LOCAL);\r\n }\r\n else if (!hasMoreContexts) {\r\n configs.add(config, contextCache);\r\n return;\r\n }\r\n else {\r\n // else if we have no context info, just chase follow links (if greedy)\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"FALLING off rule \" +\r\n this.getRuleName(config.state.ruleIndex));\r\n }\r\n if (config.context === PredictionContext_1.PredictionContext.EMPTY_FULL) {\r\n // no need to keep full context overhead when we step out\r\n config = config.transform(config.state, false, PredictionContext_1.PredictionContext.EMPTY_LOCAL);\r\n }\r\n else if (!config.reachesIntoOuterContext && PredictionContext_1.PredictionContext.isEmptyLocal(config.context)) {\r\n // add stop state when leaving decision rule for the first time\r\n configs.add(config, contextCache);\r\n }\r\n }\r\n }\r\n let p = config.state;\r\n // optimization\r\n if (!p.onlyHasEpsilonTransitions) {\r\n configs.add(config, contextCache);\r\n // make sure to not return here, because EOF transitions can act as\r\n // both epsilon transitions and non-epsilon transitions.\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"added config \" + configs);\r\n }\r\n }\r\n for (let i = 0; i < p.numberOfOptimizedTransitions; i++) {\r\n // This block implements first-edge elimination of ambiguous LR\r\n // alternatives as part of dynamic disambiguation during prediction.\r\n // See antlr/antlr4#1398.\r\n if (i === 0\r\n && p.stateType === ATNStateType_1.ATNStateType.STAR_LOOP_ENTRY\r\n && p.precedenceRuleDecision\r\n && !config.context.hasEmpty) {\r\n let precedenceDecision = p;\r\n // When suppress is true, it means the outgoing edge i==0 is\r\n // ambiguous with the outgoing edge i==1, and thus the closure\r\n // operation can dynamically disambiguate by suppressing this\r\n // edge during the closure operation.\r\n let suppress = true;\r\n for (let j = 0; j < config.context.size; j++) {\r\n if (!precedenceDecision.precedenceLoopbackStates.get(config.context.getReturnState(j))) {\r\n suppress = false;\r\n break;\r\n }\r\n }\r\n if (suppress) {\r\n continue;\r\n }\r\n }\r\n let t = p.getOptimizedTransition(i);\r\n let continueCollecting = !(t instanceof ActionTransition_1.ActionTransition) && collectPredicates;\r\n let c = this.getEpsilonTarget(config, t, continueCollecting, depth === 0, contextCache, treatEofAsEpsilon);\r\n if (c != null) {\r\n if (t instanceof RuleTransition_1.RuleTransition) {\r\n if (intermediate != null && !collectPredicates) {\r\n intermediate.add(c, contextCache);\r\n continue;\r\n }\r\n }\r\n let newDepth = depth;\r\n if (config.state instanceof RuleStopState_1.RuleStopState) {\r\n // target fell off end of rule; mark resulting c as having dipped into outer context\r\n // We can't get here if incoming config was rule stop and we had context\r\n // track how far we dip into outer context. Might\r\n // come in handy and we avoid evaluating context dependent\r\n // preds if this is > 0.\r\n if (this.dfa != null && this.dfa.isPrecedenceDfa) {\r\n let outermostPrecedenceReturn = t.outermostPrecedenceReturn;\r\n if (outermostPrecedenceReturn === this.dfa.atnStartState.ruleIndex) {\r\n c.isPrecedenceFilterSuppressed = true;\r\n }\r\n }\r\n c.outerContextDepth = c.outerContextDepth + 1;\r\n if (!closureBusy.add(c)) {\r\n // avoid infinite recursion for right-recursive rules\r\n continue;\r\n }\r\n assert(newDepth > MIN_INTEGER_VALUE);\r\n newDepth--;\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"dips into outer ctx: \" + c);\r\n }\r\n }\r\n else if (t instanceof RuleTransition_1.RuleTransition) {\r\n if (this.optimize_tail_calls && t.optimizedTailCall && (!this.tail_call_preserves_sll || !PredictionContext_1.PredictionContext.isEmptyLocal(config.context))) {\r\n assert(c.context === config.context);\r\n if (newDepth === 0) {\r\n // the pop/push of a tail call would keep the depth\r\n // constant, except we latch if it goes negative\r\n newDepth--;\r\n if (!this.tail_call_preserves_sll && PredictionContext_1.PredictionContext.isEmptyLocal(config.context)) {\r\n // make sure the SLL config \"dips into the outer context\" or prediction may not fall back to LL on conflict\r\n c.outerContextDepth = c.outerContextDepth + 1;\r\n }\r\n }\r\n }\r\n else {\r\n // latch when newDepth goes negative - once we step out of the entry context we can't return\r\n if (newDepth >= 0) {\r\n newDepth++;\r\n }\r\n }\r\n }\r\n else {\r\n if (!t.isEpsilon && !closureBusy.add(c)) {\r\n // avoid infinite recursion for EOF* and EOF+\r\n continue;\r\n }\r\n }\r\n this.closureImpl(c, configs, intermediate, closureBusy, continueCollecting, hasMoreContexts, contextCache, newDepth, treatEofAsEpsilon);\r\n }\r\n }\r\n }\r\n getRuleName(index) {\r\n if (this._parser != null && index >= 0) {\r\n return this._parser.ruleNames[index];\r\n }\r\n return \"<rule \" + index + \">\";\r\n }\r\n getEpsilonTarget(config, t, collectPredicates, inContext, contextCache, treatEofAsEpsilon) {\r\n switch (t.serializationType) {\r\n case 3 /* RULE */:\r\n return this.ruleTransition(config, t, contextCache);\r\n case 10 /* PRECEDENCE */:\r\n return this.precedenceTransition(config, t, collectPredicates, inContext);\r\n case 4 /* PREDICATE */:\r\n return this.predTransition(config, t, collectPredicates, inContext);\r\n case 6 /* ACTION */:\r\n return this.actionTransition(config, t);\r\n case 1 /* EPSILON */:\r\n return config.transform(t.target, false);\r\n case 5 /* ATOM */:\r\n case 2 /* RANGE */:\r\n case 7 /* SET */:\r\n // EOF transitions act like epsilon transitions after the first EOF\r\n // transition is traversed\r\n if (treatEofAsEpsilon) {\r\n if (t.matches(Token_1.Token.EOF, 0, 1)) {\r\n return config.transform(t.target, false);\r\n }\r\n }\r\n return undefined;\r\n default:\r\n return undefined;\r\n }\r\n }\r\n actionTransition(config, t) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"ACTION edge \" + t.ruleIndex + \":\" + t.actionIndex);\r\n }\r\n return config.transform(t.target, false);\r\n }\r\n precedenceTransition(config, pt, collectPredicates, inContext) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"PRED (collectPredicates=\" + collectPredicates + \") \" +\r\n pt.precedence + \">=_p\" +\r\n \", ctx dependent=true\");\r\n if (this._parser != null) {\r\n console.log(\"context surrounding pred is \" +\r\n this._parser.getRuleInvocationStack());\r\n }\r\n }\r\n let c;\r\n if (collectPredicates && inContext) {\r\n let newSemCtx = SemanticContext_1.SemanticContext.and(config.semanticContext, pt.predicate);\r\n c = config.transform(pt.target, false, newSemCtx);\r\n }\r\n else {\r\n c = config.transform(pt.target, false);\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"config from pred transition=\" + c);\r\n }\r\n return c;\r\n }\r\n predTransition(config, pt, collectPredicates, inContext) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"PRED (collectPredicates=\" + collectPredicates + \") \" +\r\n pt.ruleIndex + \":\" + pt.predIndex +\r\n \", ctx dependent=\" + pt.isCtxDependent);\r\n if (this._parser != null) {\r\n console.log(\"context surrounding pred is \" +\r\n this._parser.getRuleInvocationStack());\r\n }\r\n }\r\n let c;\r\n if (collectPredicates &&\r\n (!pt.isCtxDependent || (pt.isCtxDependent && inContext))) {\r\n let newSemCtx = SemanticContext_1.SemanticContext.and(config.semanticContext, pt.predicate);\r\n c = config.transform(pt.target, false, newSemCtx);\r\n }\r\n else {\r\n c = config.transform(pt.target, false);\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"config from pred transition=\" + c);\r\n }\r\n return c;\r\n }\r\n ruleTransition(config, t, contextCache) {\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"CALL rule \" + this.getRuleName(t.target.ruleIndex) +\r\n \", ctx=\" + config.context);\r\n }\r\n let returnState = t.followState;\r\n let newContext;\r\n if (this.optimize_tail_calls && t.optimizedTailCall && (!this.tail_call_preserves_sll || !PredictionContext_1.PredictionContext.isEmptyLocal(config.context))) {\r\n newContext = config.context;\r\n }\r\n else if (contextCache != null) {\r\n newContext = contextCache.getChild(config.context, returnState.stateNumber);\r\n }\r\n else {\r\n newContext = config.context.getChild(returnState.stateNumber);\r\n }\r\n return config.transform(t.target, false, newContext);\r\n }\r\n isConflicted(configset, contextCache) {\r\n if (configset.uniqueAlt !== ATN_1.ATN.INVALID_ALT_NUMBER || configset.size <= 1) {\r\n return undefined;\r\n }\r\n let configs = configset.toArray();\r\n configs.sort(ParserATNSimulator.STATE_ALT_SORT_COMPARATOR);\r\n let exact = !configset.dipsIntoOuterContext;\r\n let alts = new BitSet_1.BitSet();\r\n let minAlt = configs[0].alt;\r\n alts.set(minAlt);\r\n /* Quick checks come first (single pass, no context joining):\r\n * 1. Make sure first config in the sorted list predicts the minimum\r\n * represented alternative.\r\n * 2. Make sure every represented state has at least one configuration\r\n * which predicts the minimum represented alternative.\r\n * 3. (exact only) make sure every represented state has at least one\r\n * configuration which predicts each represented alternative.\r\n */\r\n // quick check 1 & 2 => if we assume #1 holds and check #2 against the\r\n // minAlt from the first state, #2 will fail if the assumption was\r\n // incorrect\r\n let currentState = configs[0].state.nonStopStateNumber;\r\n for (let config of configs) {\r\n let stateNumber = config.state.nonStopStateNumber;\r\n if (stateNumber !== currentState) {\r\n if (config.alt !== minAlt) {\r\n return undefined;\r\n }\r\n currentState = stateNumber;\r\n }\r\n }\r\n let representedAlts;\r\n if (exact) {\r\n currentState = configs[0].state.nonStopStateNumber;\r\n // get the represented alternatives of the first state\r\n representedAlts = new BitSet_1.BitSet();\r\n let maxAlt = minAlt;\r\n for (let config of configs) {\r\n if (config.state.nonStopStateNumber !== currentState) {\r\n break;\r\n }\r\n let alt = config.alt;\r\n representedAlts.set(alt);\r\n maxAlt = alt;\r\n }\r\n // quick check #3:\r\n currentState = configs[0].state.nonStopStateNumber;\r\n let currentAlt = minAlt;\r\n for (let config of configs) {\r\n let stateNumber = config.state.nonStopStateNumber;\r\n let alt = config.alt;\r\n if (stateNumber !== currentState) {\r\n if (currentAlt !== maxAlt) {\r\n exact = false;\r\n break;\r\n }\r\n currentState = stateNumber;\r\n currentAlt = minAlt;\r\n }\r\n else if (alt !== currentAlt) {\r\n if (alt !== representedAlts.nextSetBit(currentAlt + 1)) {\r\n exact = false;\r\n break;\r\n }\r\n currentAlt = alt;\r\n }\r\n }\r\n }\r\n currentState = configs[0].state.nonStopStateNumber;\r\n let firstIndexCurrentState = 0;\r\n let lastIndexCurrentStateMinAlt = 0;\r\n let joinedCheckContext = configs[0].context;\r\n for (let i = 1; i < configs.length; i++) {\r\n let config = configs[i];\r\n if (config.alt !== minAlt) {\r\n break;\r\n }\r\n if (config.state.nonStopStateNumber !== currentState) {\r\n break;\r\n }\r\n lastIndexCurrentStateMinAlt = i;\r\n joinedCheckContext = contextCache.join(joinedCheckContext, configs[i].context);\r\n }\r\n for (let i = lastIndexCurrentStateMinAlt + 1; i < configs.length; i++) {\r\n let config = configs[i];\r\n let state = config.state;\r\n alts.set(config.alt);\r\n if (state.nonStopStateNumber !== currentState) {\r\n currentState = state.nonStopStateNumber;\r\n firstIndexCurrentState = i;\r\n lastIndexCurrentStateMinAlt = i;\r\n joinedCheckContext = config.context;\r\n for (let j = firstIndexCurrentState + 1; j < configs.length; j++) {\r\n let config2 = configs[j];\r\n if (config2.alt !== minAlt) {\r\n break;\r\n }\r\n if (config2.state.nonStopStateNumber !== currentState) {\r\n break;\r\n }\r\n lastIndexCurrentStateMinAlt = j;\r\n joinedCheckContext = contextCache.join(joinedCheckContext, config2.context);\r\n }\r\n i = lastIndexCurrentStateMinAlt;\r\n continue;\r\n }\r\n let joinedCheckContext2 = config.context;\r\n let currentAlt = config.alt;\r\n let lastIndexCurrentStateCurrentAlt = i;\r\n for (let j = lastIndexCurrentStateCurrentAlt + 1; j < configs.length; j++) {\r\n let config2 = configs[j];\r\n if (config2.alt !== currentAlt) {\r\n break;\r\n }\r\n if (config2.state.nonStopStateNumber !== currentState) {\r\n break;\r\n }\r\n lastIndexCurrentStateCurrentAlt = j;\r\n joinedCheckContext2 = contextCache.join(joinedCheckContext2, config2.context);\r\n }\r\n i = lastIndexCurrentStateCurrentAlt;\r\n let check = contextCache.join(joinedCheckContext, joinedCheckContext2);\r\n if (!joinedCheckContext.equals(check)) {\r\n return undefined;\r\n }\r\n // update exact if necessary\r\n exact = exact && joinedCheckContext.equals(joinedCheckContext2);\r\n }\r\n return new ConflictInfo_1.ConflictInfo(alts, exact);\r\n }\r\n getConflictingAltsFromConfigSet(configs) {\r\n let conflictingAlts = configs.conflictingAlts;\r\n if (conflictingAlts == null && configs.uniqueAlt !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n conflictingAlts = new BitSet_1.BitSet();\r\n conflictingAlts.set(configs.uniqueAlt);\r\n }\r\n return conflictingAlts;\r\n }\r\n getTokenName(t) {\r\n if (t === Token_1.Token.EOF) {\r\n return \"EOF\";\r\n }\r\n let vocabulary = this._parser != null ? this._parser.vocabulary : VocabularyImpl_1.VocabularyImpl.EMPTY_VOCABULARY;\r\n let displayName = vocabulary.getDisplayName(t);\r\n if (displayName === String(t)) {\r\n return displayName;\r\n }\r\n return displayName + \"<\" + t + \">\";\r\n }\r\n getLookaheadName(input) {\r\n return this.getTokenName(input.LA(1));\r\n }\r\n dumpDeadEndConfigs(nvae) {\r\n console.log(\"dead end configs: \");\r\n let deadEndConfigs = nvae.deadEndConfigs;\r\n if (!deadEndConfigs) {\r\n return;\r\n }\r\n for (let c of deadEndConfigs) {\r\n let trans = \"no edges\";\r\n if (c.state.numberOfOptimizedTransitions > 0) {\r\n let t = c.state.getOptimizedTransition(0);\r\n if (t instanceof AtomTransition_1.AtomTransition) {\r\n trans = \"Atom \" + this.getTokenName(t._label);\r\n }\r\n else if (t instanceof SetTransition_1.SetTransition) {\r\n let not = t instanceof NotSetTransition_1.NotSetTransition;\r\n trans = (not ? \"~\" : \"\") + \"Set \" + t.set.toString();\r\n }\r\n }\r\n console.log(c.toString(this._parser, true) + \":\" + trans);\r\n }\r\n }\r\n noViableAlt(input, outerContext, configs, startIndex) {\r\n return new NoViableAltException_1.NoViableAltException(this._parser, input, input.get(startIndex), input.LT(1), configs, outerContext);\r\n }\r\n getUniqueAlt(configs) {\r\n let alt = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n for (let c of configs) {\r\n if (alt === ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n alt = c.alt; // found first alt\r\n }\r\n else if (c.alt !== alt) {\r\n return ATN_1.ATN.INVALID_ALT_NUMBER;\r\n }\r\n }\r\n return alt;\r\n }\r\n configWithAltAtStopState(configs, alt) {\r\n for (let c of configs) {\r\n if (c.alt === alt) {\r\n if (c.state instanceof RuleStopState_1.RuleStopState) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n addDFAEdge(dfa, fromState, t, contextTransitions, toConfigs, contextCache) {\r\n assert(contextTransitions == null || contextTransitions.isEmpty || dfa.isContextSensitive);\r\n let from = fromState;\r\n let to = this.addDFAState(dfa, toConfigs, contextCache);\r\n if (contextTransitions != null) {\r\n for (let context of contextTransitions.toArray()) {\r\n if (context === PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n if (from.configs.isOutermostConfigSet) {\r\n continue;\r\n }\r\n }\r\n from.setContextSensitive(this.atn);\r\n from.setContextSymbol(t);\r\n let next = from.getContextTarget(context);\r\n if (next != null) {\r\n from = next;\r\n continue;\r\n }\r\n next = this.addDFAContextState(dfa, from.configs, context, contextCache);\r\n assert(context !== PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY || next.configs.isOutermostConfigSet);\r\n from.setContextTarget(context, next);\r\n from = next;\r\n }\r\n }\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"EDGE \" + from + \" -> \" + to + \" upon \" + this.getTokenName(t));\r\n }\r\n this.setDFAEdge(from, t, to);\r\n if (ParserATNSimulator.debug) {\r\n console.log(\"DFA=\\n\" + dfa.toString(this._parser != null ? this._parser.vocabulary : VocabularyImpl_1.VocabularyImpl.EMPTY_VOCABULARY, this._parser != null ? this._parser.ruleNames : undefined));\r\n }\r\n return to;\r\n }\r\n setDFAEdge(p, t, q) {\r\n if (p != null) {\r\n p.setTarget(t, q);\r\n }\r\n }\r\n /** See comment on LexerInterpreter.addDFAState. */\r\n addDFAContextState(dfa, configs, returnContext, contextCache) {\r\n if (returnContext !== PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY) {\r\n let contextConfigs = new ATNConfigSet_1.ATNConfigSet();\r\n for (let config of configs) {\r\n contextConfigs.add(config.appendContext(returnContext, contextCache));\r\n }\r\n return this.addDFAState(dfa, contextConfigs, contextCache);\r\n }\r\n else {\r\n assert(!configs.isOutermostConfigSet, \"Shouldn't be adding a duplicate edge.\");\r\n configs = configs.clone(true);\r\n configs.isOutermostConfigSet = true;\r\n return this.addDFAState(dfa, configs, contextCache);\r\n }\r\n }\r\n /** See comment on LexerInterpreter.addDFAState. */\r\n addDFAState(dfa, configs, contextCache) {\r\n let enableDfa = this.enable_global_context_dfa || !configs.isOutermostConfigSet;\r\n if (enableDfa) {\r\n if (!configs.isReadOnly) {\r\n configs.optimizeConfigs(this);\r\n }\r\n let proposed = this.createDFAState(dfa, configs);\r\n let existing = dfa.states.get(proposed);\r\n if (existing != null) {\r\n return existing;\r\n }\r\n }\r\n if (!configs.isReadOnly) {\r\n if (configs.conflictInfo == null) {\r\n configs.conflictInfo = this.isConflicted(configs, contextCache);\r\n }\r\n }\r\n let newState = this.createDFAState(dfa, configs.clone(true));\r\n // getDecisionState won't return undefined when we request a known valid decision\r\n let decisionState = this.atn.getDecisionState(dfa.decision);\r\n let predictedAlt = this.getUniqueAlt(configs);\r\n if (predictedAlt !== ATN_1.ATN.INVALID_ALT_NUMBER) {\r\n newState.acceptStateInfo = new AcceptStateInfo_1.AcceptStateInfo(predictedAlt);\r\n }\r\n else if (configs.conflictingAlts != null) {\r\n let conflictingAlts = configs.conflictingAlts;\r\n if (conflictingAlts) {\r\n newState.acceptStateInfo = new AcceptStateInfo_1.AcceptStateInfo(conflictingAlts.nextSetBit(0));\r\n }\r\n }\r\n if (newState.isAcceptState && configs.hasSemanticContext) {\r\n this.predicateDFAState(newState, configs, decisionState.numberOfTransitions);\r\n }\r\n if (!enableDfa) {\r\n return newState;\r\n }\r\n let added = dfa.addState(newState);\r\n if (ParserATNSimulator.debug && added === newState) {\r\n console.log(\"adding new DFA state: \" + newState);\r\n }\r\n return added;\r\n }\r\n createDFAState(dfa, configs) {\r\n return new DFAState_1.DFAState(configs);\r\n }\r\n reportAttemptingFullContext(dfa, conflictingAlts, conflictState, startIndex, stopIndex) {\r\n if (ParserATNSimulator.debug || ParserATNSimulator.retry_debug) {\r\n let interval = Interval_1.Interval.of(startIndex, stopIndex);\r\n console.log(\"reportAttemptingFullContext decision=\" + dfa.decision + \":\" + conflictState.s0.configs +\r\n \", input=\" + this._parser.inputStream.getText(interval));\r\n }\r\n if (this._parser != null) {\r\n let listener = this._parser.getErrorListenerDispatch();\r\n if (listener.reportAttemptingFullContext) {\r\n listener.reportAttemptingFullContext(this._parser, dfa, startIndex, stopIndex, conflictingAlts, conflictState);\r\n }\r\n }\r\n }\r\n reportContextSensitivity(dfa, prediction, acceptState, startIndex, stopIndex) {\r\n if (ParserATNSimulator.debug || ParserATNSimulator.retry_debug) {\r\n let interval = Interval_1.Interval.of(startIndex, stopIndex);\r\n console.log(\"reportContextSensitivity decision=\" + dfa.decision + \":\" + acceptState.s0.configs +\r\n \", input=\" + this._parser.inputStream.getText(interval));\r\n }\r\n if (this._parser != null) {\r\n let listener = this._parser.getErrorListenerDispatch();\r\n if (listener.reportContextSensitivity) {\r\n listener.reportContextSensitivity(this._parser, dfa, startIndex, stopIndex, prediction, acceptState);\r\n }\r\n }\r\n }\r\n /** If context sensitive parsing, we know it's ambiguity not conflict */\r\n reportAmbiguity(dfa, D, // the DFA state from execATN(): void that had SLL conflicts\r\n startIndex, stopIndex, exact, ambigAlts, configs) {\r\n if (ParserATNSimulator.debug || ParserATNSimulator.retry_debug) {\r\n let interval = Interval_1.Interval.of(startIndex, stopIndex);\r\n console.log(\"reportAmbiguity \" +\r\n ambigAlts + \":\" + configs +\r\n \", input=\" + this._parser.inputStream.getText(interval));\r\n }\r\n if (this._parser != null) {\r\n let listener = this._parser.getErrorListenerDispatch();\r\n if (listener.reportAmbiguity) {\r\n listener.reportAmbiguity(this._parser, dfa, startIndex, stopIndex, exact, ambigAlts, configs);\r\n }\r\n }\r\n }\r\n getReturnState(context) {\r\n if (context.isEmpty) {\r\n return PredictionContext_1.PredictionContext.EMPTY_FULL_STATE_KEY;\r\n }\r\n let state = this.atn.states[context.invokingState];\r\n let transition = state.transition(0);\r\n return transition.followState.stateNumber;\r\n }\r\n skipTailCalls(context) {\r\n if (!this.optimize_tail_calls) {\r\n return context;\r\n }\r\n while (!context.isEmpty) {\r\n let state = this.atn.states[context.invokingState];\r\n assert(state.numberOfTransitions === 1 && state.transition(0).serializationType === 3 /* RULE */);\r\n let transition = state.transition(0);\r\n if (!transition.tailCall) {\r\n break;\r\n }\r\n // This method requires that the root ancestor of the ParserRuleContext be empty. If we make it to this\r\n // line, we know the current node is not empty, which means it does have a parent.\r\n context = context.parent;\r\n }\r\n return context;\r\n }\r\n /**\r\n * @since 4.3\r\n */\r\n get parser() {\r\n return this._parser;\r\n }\r\n};\r\nParserATNSimulator.debug = false;\r\nParserATNSimulator.dfa_debug = false;\r\nParserATNSimulator.retry_debug = false;\r\nParserATNSimulator.STATE_ALT_SORT_COMPARATOR = (o1, o2) => {\r\n let diff = o1.state.nonStopStateNumber - o2.state.nonStopStateNumber;\r\n if (diff !== 0) {\r\n return diff;\r\n }\r\n diff = o1.alt - o2.alt;\r\n if (diff !== 0) {\r\n return diff;\r\n }\r\n return 0;\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserATNSimulator.prototype, \"predictionMode\", void 0);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserATNSimulator.prototype, \"getPredictionMode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"setPredictionMode\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ParserATNSimulator.prototype, \"reset\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"adaptivePredict\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getStartState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"execDFA\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(3, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"execATN\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"handleNoViableAlt\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getExistingTargetState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"computeTargetState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"removeAllConfigsNotInRuleStopState\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserATNSimulator.prototype, \"computeStartState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"applyPrecedenceFilter\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getReachableTarget\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getPredsForAmbigAlts\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"evalSemanticContext\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"evalSemanticContextImpl\", null);\r\n__decorate([\r\n __param(1, Decorators_1.NotNull),\r\n __param(4, Decorators_1.Nullable)\r\n], ParserATNSimulator.prototype, \"closure\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.Nullable),\r\n __param(3, Decorators_1.NotNull),\r\n __param(6, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"closureImpl\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserATNSimulator.prototype, \"getRuleName\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getEpsilonTarget\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"actionTransition\", null);\r\n__decorate([\r\n Decorators_1.Nullable,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"precedenceTransition\", null);\r\n__decorate([\r\n Decorators_1.Nullable,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"predTransition\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull), __param(2, Decorators_1.Nullable)\r\n], ParserATNSimulator.prototype, \"ruleTransition\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"isConflicted\", null);\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ParserATNSimulator.prototype, \"getTokenName\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"dumpDeadEndConfigs\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(2, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"noViableAlt\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"getUniqueAlt\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"configWithAltAtStopState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(4, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"addDFAEdge\", null);\r\n__decorate([\r\n __param(0, Decorators_1.Nullable), __param(2, Decorators_1.Nullable)\r\n], ParserATNSimulator.prototype, \"setDFAEdge\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"addDFAContextState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"addDFAState\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull), __param(1, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"createDFAState\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"reportAttemptingFullContext\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull), __param(2, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"reportContextSensitivity\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(5, Decorators_1.NotNull),\r\n __param(6, Decorators_1.NotNull)\r\n], ParserATNSimulator.prototype, \"reportAmbiguity\", null);\r\nParserATNSimulator = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ParserATNSimulator);\r\nexports.ParserATNSimulator = ParserATNSimulator;\r\n//# sourceMappingURL=ParserATNSimulator.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlusBlockStartState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:34.9572142-07:00\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst BlockStartState_1 = require(\"./BlockStartState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** Start of `(A|B|...)+` loop. Technically a decision state, but\r\n * we don't use for code generation; somebody might need it, so I'm defining\r\n * it for completeness. In reality, the {@link PlusLoopbackState} node is the\r\n * real decision-making note for `A+`.\r\n */\r\nclass PlusBlockStartState extends BlockStartState_1.BlockStartState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.PLUS_BLOCK_START;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], PlusBlockStartState.prototype, \"stateType\", null);\r\nexports.PlusBlockStartState = PlusBlockStartState;\r\n//# sourceMappingURL=PlusBlockStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PlusLoopbackState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.0257730-07:00\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** Decision state for `A+` and `(A|B)+`. It has two transitions:\r\n * one to the loop back to start of the block and one to exit.\r\n */\r\nclass PlusLoopbackState extends DecisionState_1.DecisionState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.PLUS_LOOP_BACK;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], PlusLoopbackState.prototype, \"stateType\", null);\r\nexports.PlusLoopbackState = PlusLoopbackState;\r\n//# sourceMappingURL=PlusLoopbackState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PrecedencePredicateTransition = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:35.0994191-07:00\r\nconst AbstractPredicateTransition_1 = require(\"./AbstractPredicateTransition\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst SemanticContext_1 = require(\"./SemanticContext\");\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nlet PrecedencePredicateTransition = class PrecedencePredicateTransition extends AbstractPredicateTransition_1.AbstractPredicateTransition {\r\n constructor(target, precedence) {\r\n super(target);\r\n this.precedence = precedence;\r\n }\r\n get serializationType() {\r\n return 10 /* PRECEDENCE */;\r\n }\r\n get isEpsilon() {\r\n return true;\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return false;\r\n }\r\n get predicate() {\r\n return new SemanticContext_1.SemanticContext.PrecedencePredicate(this.precedence);\r\n }\r\n toString() {\r\n return this.precedence + \" >= _p\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], PrecedencePredicateTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], PrecedencePredicateTransition.prototype, \"isEpsilon\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], PrecedencePredicateTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], PrecedencePredicateTransition.prototype, \"toString\", null);\r\nPrecedencePredicateTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], PrecedencePredicateTransition);\r\nexports.PrecedencePredicateTransition = PrecedencePredicateTransition;\r\n//# sourceMappingURL=PrecedencePredicateTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RangeTransition = void 0;\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst Transition_1 = require(\"./Transition\");\r\nlet RangeTransition = class RangeTransition extends Transition_1.Transition {\r\n constructor(target, from, to) {\r\n super(target);\r\n this.from = from;\r\n this.to = to;\r\n }\r\n get serializationType() {\r\n return 2 /* RANGE */;\r\n }\r\n get label() {\r\n return IntervalSet_1.IntervalSet.of(this.from, this.to);\r\n }\r\n matches(symbol, minVocabSymbol, maxVocabSymbol) {\r\n return symbol >= this.from && symbol <= this.to;\r\n }\r\n toString() {\r\n return \"'\" + String.fromCodePoint(this.from) + \"'..'\" + String.fromCodePoint(this.to) + \"'\";\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.Override\r\n], RangeTransition.prototype, \"serializationType\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], RangeTransition.prototype, \"label\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], RangeTransition.prototype, \"matches\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n Decorators_1.NotNull\r\n], RangeTransition.prototype, \"toString\", null);\r\nRangeTransition = __decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], RangeTransition);\r\nexports.RangeTransition = RangeTransition;\r\n//# sourceMappingURL=RangeTransition.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleStartState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:36.6806851-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nclass RuleStartState extends ATNState_1.ATNState {\r\n constructor() {\r\n super(...arguments);\r\n this.isPrecedenceRule = false;\r\n this.leftFactored = false;\r\n }\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.RULE_START;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleStartState.prototype, \"stateType\", null);\r\nexports.RuleStartState = RuleStartState;\r\n//# sourceMappingURL=RuleStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StarBlockStartState = void 0;\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst BlockStartState_1 = require(\"./BlockStartState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** The block that begins a closure loop. */\r\nclass StarBlockStartState extends BlockStartState_1.BlockStartState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.STAR_BLOCK_START;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], StarBlockStartState.prototype, \"stateType\", null);\r\nexports.StarBlockStartState = StarBlockStartState;\r\n//# sourceMappingURL=StarBlockStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StarLoopbackState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:37.6368726-07:00\r\nconst ATNState_1 = require(\"./ATNState\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nclass StarLoopbackState extends ATNState_1.ATNState {\r\n get loopEntryState() {\r\n return this.transition(0).target;\r\n }\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.STAR_LOOP_BACK;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], StarLoopbackState.prototype, \"stateType\", null);\r\nexports.StarLoopbackState = StarLoopbackState;\r\n//# sourceMappingURL=StarLoopbackState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.TokensStartState = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:37.7814046-07:00\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\n/** The Tokens rule start state linking to each lexer rule start state */\r\nclass TokensStartState extends DecisionState_1.DecisionState {\r\n get stateType() {\r\n return ATNStateType_1.ATNStateType.TOKEN_START;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], TokensStartState.prototype, \"stateType\", null);\r\nexports.TokensStartState = TokensStartState;\r\n//# sourceMappingURL=TokensStartState.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UUID = void 0;\r\nconst MurmurHash_1 = require(\"./MurmurHash\");\r\nclass UUID {\r\n constructor(mostSigBits, moreSigBits, lessSigBits, leastSigBits) {\r\n this.data = new Uint32Array(4);\r\n this.data[0] = mostSigBits;\r\n this.data[1] = moreSigBits;\r\n this.data[2] = lessSigBits;\r\n this.data[3] = leastSigBits;\r\n }\r\n static fromString(data) {\r\n if (!/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/.test(data)) {\r\n throw new Error(\"Incorrectly formatted UUID\");\r\n }\r\n let segments = data.split(\"-\");\r\n let mostSigBits = parseInt(segments[0], 16);\r\n let moreSigBits = ((parseInt(segments[1], 16) << 16) >>> 0) + parseInt(segments[2], 16);\r\n let lessSigBits = ((parseInt(segments[3], 16) << 16) >>> 0) + parseInt(segments[4].substr(0, 4), 16);\r\n let leastSigBits = parseInt(segments[4].substr(-8), 16);\r\n return new UUID(mostSigBits, moreSigBits, lessSigBits, leastSigBits);\r\n }\r\n hashCode() {\r\n return MurmurHash_1.MurmurHash.hashCode([this.data[0], this.data[1], this.data[2], this.data[3]]);\r\n }\r\n equals(obj) {\r\n if (obj === this) {\r\n return true;\r\n }\r\n else if (!(obj instanceof UUID)) {\r\n return false;\r\n }\r\n return this.data[0] === obj.data[0]\r\n && this.data[1] === obj.data[1]\r\n && this.data[2] === obj.data[2]\r\n && this.data[3] === obj.data[3];\r\n }\r\n toString() {\r\n return (\"00000000\" + this.data[0].toString(16)).substr(-8)\r\n + \"-\" + (\"0000\" + (this.data[1] >>> 16).toString(16)).substr(-4)\r\n + \"-\" + (\"0000\" + this.data[1].toString(16)).substr(-4)\r\n + \"-\" + (\"0000\" + (this.data[2] >>> 16).toString(16)).substr(-4)\r\n + \"-\" + (\"0000\" + this.data[2].toString(16)).substr(-4)\r\n + (\"00000000\" + this.data[3].toString(16)).substr(-8);\r\n }\r\n}\r\nexports.UUID = UUID;\r\n//# sourceMappingURL=UUID.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ATNDeserializer = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:25.9683447-07:00\r\nconst ActionTransition_1 = require(\"./ActionTransition\");\r\nconst Array2DHashSet_1 = require(\"../misc/Array2DHashSet\");\r\nconst ATN_1 = require(\"./ATN\");\r\nconst ATNDeserializationOptions_1 = require(\"./ATNDeserializationOptions\");\r\nconst ATNStateType_1 = require(\"./ATNStateType\");\r\nconst AtomTransition_1 = require(\"./AtomTransition\");\r\nconst BasicBlockStartState_1 = require(\"./BasicBlockStartState\");\r\nconst BasicState_1 = require(\"./BasicState\");\r\nconst BitSet_1 = require(\"../misc/BitSet\");\r\nconst BlockEndState_1 = require(\"./BlockEndState\");\r\nconst BlockStartState_1 = require(\"./BlockStartState\");\r\nconst DecisionState_1 = require(\"./DecisionState\");\r\nconst DFA_1 = require(\"../dfa/DFA\");\r\nconst EpsilonTransition_1 = require(\"./EpsilonTransition\");\r\nconst IntervalSet_1 = require(\"../misc/IntervalSet\");\r\nconst InvalidState_1 = require(\"./InvalidState\");\r\nconst LexerChannelAction_1 = require(\"./LexerChannelAction\");\r\nconst LexerCustomAction_1 = require(\"./LexerCustomAction\");\r\nconst LexerModeAction_1 = require(\"./LexerModeAction\");\r\nconst LexerMoreAction_1 = require(\"./LexerMoreAction\");\r\nconst LexerPopModeAction_1 = require(\"./LexerPopModeAction\");\r\nconst LexerPushModeAction_1 = require(\"./LexerPushModeAction\");\r\nconst LexerSkipAction_1 = require(\"./LexerSkipAction\");\r\nconst LexerTypeAction_1 = require(\"./LexerTypeAction\");\r\nconst LoopEndState_1 = require(\"./LoopEndState\");\r\nconst Decorators_1 = require(\"../Decorators\");\r\nconst NotSetTransition_1 = require(\"./NotSetTransition\");\r\nconst ParserATNSimulator_1 = require(\"./ParserATNSimulator\");\r\nconst PlusBlockStartState_1 = require(\"./PlusBlockStartState\");\r\nconst PlusLoopbackState_1 = require(\"./PlusLoopbackState\");\r\nconst PrecedencePredicateTransition_1 = require(\"./PrecedencePredicateTransition\");\r\nconst PredicateTransition_1 = require(\"./PredicateTransition\");\r\nconst RangeTransition_1 = require(\"./RangeTransition\");\r\nconst RuleStartState_1 = require(\"./RuleStartState\");\r\nconst RuleStopState_1 = require(\"./RuleStopState\");\r\nconst RuleTransition_1 = require(\"./RuleTransition\");\r\nconst SetTransition_1 = require(\"./SetTransition\");\r\nconst StarBlockStartState_1 = require(\"./StarBlockStartState\");\r\nconst StarLoopbackState_1 = require(\"./StarLoopbackState\");\r\nconst StarLoopEntryState_1 = require(\"./StarLoopEntryState\");\r\nconst Token_1 = require(\"../Token\");\r\nconst TokensStartState_1 = require(\"./TokensStartState\");\r\nconst UUID_1 = require(\"../misc/UUID\");\r\nconst WildcardTransition_1 = require(\"./WildcardTransition\");\r\nvar UnicodeDeserializingMode;\r\n(function (UnicodeDeserializingMode) {\r\n UnicodeDeserializingMode[UnicodeDeserializingMode[\"UNICODE_BMP\"] = 0] = \"UNICODE_BMP\";\r\n UnicodeDeserializingMode[UnicodeDeserializingMode[\"UNICODE_SMP\"] = 1] = \"UNICODE_SMP\";\r\n})(UnicodeDeserializingMode || (UnicodeDeserializingMode = {}));\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass ATNDeserializer {\r\n constructor(deserializationOptions) {\r\n if (deserializationOptions === undefined) {\r\n deserializationOptions = ATNDeserializationOptions_1.ATNDeserializationOptions.defaultOptions;\r\n }\r\n this.deserializationOptions = deserializationOptions;\r\n }\r\n static get SERIALIZED_VERSION() {\r\n /* This value should never change. Updates following this version are\r\n * reflected as change in the unique ID SERIALIZED_UUID.\r\n */\r\n return 3;\r\n }\r\n /**\r\n * Determines if a particular serialized representation of an ATN supports\r\n * a particular feature, identified by the {@link UUID} used for serializing\r\n * the ATN at the time the feature was first introduced.\r\n *\r\n * @param feature The {@link UUID} marking the first time the feature was\r\n * supported in the serialized ATN.\r\n * @param actualUuid The {@link UUID} of the actual serialized ATN which is\r\n * currently being deserialized.\r\n * @returns `true` if the `actualUuid` value represents a\r\n * serialized ATN at or after the feature identified by `feature` was\r\n * introduced; otherwise, `false`.\r\n */\r\n static isFeatureSupported(feature, actualUuid) {\r\n let featureIndex = ATNDeserializer.SUPPORTED_UUIDS.findIndex((e) => e.equals(feature));\r\n if (featureIndex < 0) {\r\n return false;\r\n }\r\n return ATNDeserializer.SUPPORTED_UUIDS.findIndex((e) => e.equals(actualUuid)) >= featureIndex;\r\n }\r\n static getUnicodeDeserializer(mode) {\r\n if (mode === 0 /* UNICODE_BMP */) {\r\n return {\r\n readUnicode: (data, p) => {\r\n return ATNDeserializer.toInt(data[p]);\r\n },\r\n size: 1,\r\n };\r\n }\r\n else {\r\n return {\r\n readUnicode: (data, p) => {\r\n return ATNDeserializer.toInt32(data, p);\r\n },\r\n size: 2,\r\n };\r\n }\r\n }\r\n deserialize(data) {\r\n data = data.slice(0);\r\n // Each Uint16 value in data is shifted by +2 at the entry to this method. This is an encoding optimization\r\n // targeting the serialized values 0 and -1 (serialized to 0xFFFF), each of which are very common in the\r\n // serialized form of the ATN. In the modified UTF-8 that Java uses for compiled string literals, these two\r\n // character values have multi-byte forms. By shifting each value by +2, they become characters 2 and 1 prior to\r\n // writing the string, each of which have single-byte representations. Since the shift occurs in the tool during\r\n // ATN serialization, each target is responsible for adjusting the values during deserialization.\r\n //\r\n // As a special case, note that the first element of data is not adjusted because it contains the major version\r\n // number of the serialized ATN, which was fixed at 3 at the time the value shifting was implemented.\r\n for (let i = 1; i < data.length; i++) {\r\n data[i] = (data[i] - 2) & 0xFFFF;\r\n }\r\n let p = 0;\r\n let version = ATNDeserializer.toInt(data[p++]);\r\n if (version !== ATNDeserializer.SERIALIZED_VERSION) {\r\n let reason = `Could not deserialize ATN with version ${version} (expected ${ATNDeserializer.SERIALIZED_VERSION}).`;\r\n throw new Error(reason);\r\n }\r\n let uuid = ATNDeserializer.toUUID(data, p);\r\n p += 8;\r\n if (ATNDeserializer.SUPPORTED_UUIDS.findIndex((e) => e.equals(uuid)) < 0) {\r\n let reason = `Could not deserialize ATN with UUID ${uuid} (expected ${ATNDeserializer.SERIALIZED_UUID} or a legacy UUID).`;\r\n throw new Error(reason);\r\n }\r\n let supportsLexerActions = ATNDeserializer.isFeatureSupported(ATNDeserializer.ADDED_LEXER_ACTIONS, uuid);\r\n let grammarType = ATNDeserializer.toInt(data[p++]);\r\n let maxTokenType = ATNDeserializer.toInt(data[p++]);\r\n let atn = new ATN_1.ATN(grammarType, maxTokenType);\r\n //\r\n // STATES\r\n //\r\n let loopBackStateNumbers = [];\r\n let endStateNumbers = [];\r\n let nstates = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < nstates; i++) {\r\n let stype = ATNDeserializer.toInt(data[p++]);\r\n // ignore bad type of states\r\n if (stype === ATNStateType_1.ATNStateType.INVALID_TYPE) {\r\n atn.addState(new InvalidState_1.InvalidState());\r\n continue;\r\n }\r\n let ruleIndex = ATNDeserializer.toInt(data[p++]);\r\n if (ruleIndex === 0xFFFF) {\r\n ruleIndex = -1;\r\n }\r\n let s = this.stateFactory(stype, ruleIndex);\r\n if (stype === ATNStateType_1.ATNStateType.LOOP_END) { // special case\r\n let loopBackStateNumber = ATNDeserializer.toInt(data[p++]);\r\n loopBackStateNumbers.push([s, loopBackStateNumber]);\r\n }\r\n else if (s instanceof BlockStartState_1.BlockStartState) {\r\n let endStateNumber = ATNDeserializer.toInt(data[p++]);\r\n endStateNumbers.push([s, endStateNumber]);\r\n }\r\n atn.addState(s);\r\n }\r\n // delay the assignment of loop back and end states until we know all the state instances have been initialized\r\n for (let pair of loopBackStateNumbers) {\r\n pair[0].loopBackState = atn.states[pair[1]];\r\n }\r\n for (let pair of endStateNumbers) {\r\n pair[0].endState = atn.states[pair[1]];\r\n }\r\n let numNonGreedyStates = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < numNonGreedyStates; i++) {\r\n let stateNumber = ATNDeserializer.toInt(data[p++]);\r\n atn.states[stateNumber].nonGreedy = true;\r\n }\r\n let numSllDecisions = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < numSllDecisions; i++) {\r\n let stateNumber = ATNDeserializer.toInt(data[p++]);\r\n atn.states[stateNumber].sll = true;\r\n }\r\n let numPrecedenceStates = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < numPrecedenceStates; i++) {\r\n let stateNumber = ATNDeserializer.toInt(data[p++]);\r\n atn.states[stateNumber].isPrecedenceRule = true;\r\n }\r\n //\r\n // RULES\r\n //\r\n let nrules = ATNDeserializer.toInt(data[p++]);\r\n if (atn.grammarType === 0 /* LEXER */) {\r\n atn.ruleToTokenType = new Int32Array(nrules);\r\n }\r\n atn.ruleToStartState = new Array(nrules);\r\n for (let i = 0; i < nrules; i++) {\r\n let s = ATNDeserializer.toInt(data[p++]);\r\n let startState = atn.states[s];\r\n startState.leftFactored = ATNDeserializer.toInt(data[p++]) !== 0;\r\n atn.ruleToStartState[i] = startState;\r\n if (atn.grammarType === 0 /* LEXER */) {\r\n let tokenType = ATNDeserializer.toInt(data[p++]);\r\n if (tokenType === 0xFFFF) {\r\n tokenType = Token_1.Token.EOF;\r\n }\r\n atn.ruleToTokenType[i] = tokenType;\r\n if (!ATNDeserializer.isFeatureSupported(ATNDeserializer.ADDED_LEXER_ACTIONS, uuid)) {\r\n // this piece of unused metadata was serialized prior to the\r\n // addition of LexerAction\r\n let actionIndexIgnored = ATNDeserializer.toInt(data[p++]);\r\n if (actionIndexIgnored === 0xFFFF) {\r\n actionIndexIgnored = -1;\r\n }\r\n }\r\n }\r\n }\r\n atn.ruleToStopState = new Array(nrules);\r\n for (let state of atn.states) {\r\n if (!(state instanceof RuleStopState_1.RuleStopState)) {\r\n continue;\r\n }\r\n atn.ruleToStopState[state.ruleIndex] = state;\r\n atn.ruleToStartState[state.ruleIndex].stopState = state;\r\n }\r\n //\r\n // MODES\r\n //\r\n let nmodes = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < nmodes; i++) {\r\n let s = ATNDeserializer.toInt(data[p++]);\r\n atn.modeToStartState.push(atn.states[s]);\r\n }\r\n atn.modeToDFA = new Array(nmodes);\r\n for (let i = 0; i < nmodes; i++) {\r\n atn.modeToDFA[i] = new DFA_1.DFA(atn.modeToStartState[i]);\r\n }\r\n //\r\n // SETS\r\n //\r\n let sets = [];\r\n // First, read all sets with 16-bit Unicode code points <= U+FFFF.\r\n p = this.deserializeSets(data, p, sets, ATNDeserializer.getUnicodeDeserializer(0 /* UNICODE_BMP */));\r\n // Next, if the ATN was serialized with the Unicode SMP feature,\r\n // deserialize sets with 32-bit arguments <= U+10FFFF.\r\n if (ATNDeserializer.isFeatureSupported(ATNDeserializer.ADDED_UNICODE_SMP, uuid)) {\r\n p = this.deserializeSets(data, p, sets, ATNDeserializer.getUnicodeDeserializer(1 /* UNICODE_SMP */));\r\n }\r\n //\r\n // EDGES\r\n //\r\n let nedges = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < nedges; i++) {\r\n let src = ATNDeserializer.toInt(data[p]);\r\n let trg = ATNDeserializer.toInt(data[p + 1]);\r\n let ttype = ATNDeserializer.toInt(data[p + 2]);\r\n let arg1 = ATNDeserializer.toInt(data[p + 3]);\r\n let arg2 = ATNDeserializer.toInt(data[p + 4]);\r\n let arg3 = ATNDeserializer.toInt(data[p + 5]);\r\n let trans = this.edgeFactory(atn, ttype, src, trg, arg1, arg2, arg3, sets);\r\n // console.log(`EDGE ${trans.constructor.name} ${src}->${trg} ${Transition.serializationNames[ttype]} ${arg1},${arg2},${arg3}`);\r\n let srcState = atn.states[src];\r\n srcState.addTransition(trans);\r\n p += 6;\r\n }\r\n let returnTransitionsSet = new Array2DHashSet_1.Array2DHashSet({\r\n hashCode: (o) => o.stopState ^ o.returnState ^ o.outermostPrecedenceReturn,\r\n equals: (a, b) => {\r\n return a.stopState === b.stopState\r\n && a.returnState === b.returnState\r\n && a.outermostPrecedenceReturn === b.outermostPrecedenceReturn;\r\n },\r\n });\r\n let returnTransitions = [];\r\n for (let state of atn.states) {\r\n let returningToLeftFactored = state.ruleIndex >= 0 && atn.ruleToStartState[state.ruleIndex].leftFactored;\r\n for (let i = 0; i < state.numberOfTransitions; i++) {\r\n let t = state.transition(i);\r\n if (!(t instanceof RuleTransition_1.RuleTransition)) {\r\n continue;\r\n }\r\n let ruleTransition = t;\r\n let returningFromLeftFactored = atn.ruleToStartState[ruleTransition.target.ruleIndex].leftFactored;\r\n if (!returningFromLeftFactored && returningToLeftFactored) {\r\n continue;\r\n }\r\n let outermostPrecedenceReturn = -1;\r\n if (atn.ruleToStartState[ruleTransition.target.ruleIndex].isPrecedenceRule) {\r\n if (ruleTransition.precedence === 0) {\r\n outermostPrecedenceReturn = ruleTransition.target.ruleIndex;\r\n }\r\n }\r\n let current = { stopState: ruleTransition.target.ruleIndex, returnState: ruleTransition.followState.stateNumber, outermostPrecedenceReturn };\r\n if (returnTransitionsSet.add(current)) {\r\n returnTransitions.push(current);\r\n }\r\n }\r\n }\r\n // Add all elements from returnTransitions to the ATN\r\n for (let returnTransition of returnTransitions) {\r\n let transition = new EpsilonTransition_1.EpsilonTransition(atn.states[returnTransition.returnState], returnTransition.outermostPrecedenceReturn);\r\n atn.ruleToStopState[returnTransition.stopState].addTransition(transition);\r\n }\r\n for (let state of atn.states) {\r\n if (state instanceof BlockStartState_1.BlockStartState) {\r\n // we need to know the end state to set its start state\r\n if (state.endState === undefined) {\r\n throw new Error(\"IllegalStateException\");\r\n }\r\n // block end states can only be associated to a single block start state\r\n if (state.endState.startState !== undefined) {\r\n throw new Error(\"IllegalStateException\");\r\n }\r\n state.endState.startState = state;\r\n }\r\n if (state instanceof PlusLoopbackState_1.PlusLoopbackState) {\r\n let loopbackState = state;\r\n for (let i = 0; i < loopbackState.numberOfTransitions; i++) {\r\n let target = loopbackState.transition(i).target;\r\n if (target instanceof PlusBlockStartState_1.PlusBlockStartState) {\r\n target.loopBackState = loopbackState;\r\n }\r\n }\r\n }\r\n else if (state instanceof StarLoopbackState_1.StarLoopbackState) {\r\n let loopbackState = state;\r\n for (let i = 0; i < loopbackState.numberOfTransitions; i++) {\r\n let target = loopbackState.transition(i).target;\r\n if (target instanceof StarLoopEntryState_1.StarLoopEntryState) {\r\n target.loopBackState = loopbackState;\r\n }\r\n }\r\n }\r\n }\r\n //\r\n // DECISIONS\r\n //\r\n let ndecisions = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 1; i <= ndecisions; i++) {\r\n let s = ATNDeserializer.toInt(data[p++]);\r\n let decState = atn.states[s];\r\n atn.decisionToState.push(decState);\r\n decState.decision = i - 1;\r\n }\r\n //\r\n // LEXER ACTIONS\r\n //\r\n if (atn.grammarType === 0 /* LEXER */) {\r\n if (supportsLexerActions) {\r\n atn.lexerActions = new Array(ATNDeserializer.toInt(data[p++]));\r\n for (let i = 0; i < atn.lexerActions.length; i++) {\r\n let actionType = ATNDeserializer.toInt(data[p++]);\r\n let data1 = ATNDeserializer.toInt(data[p++]);\r\n if (data1 === 0xFFFF) {\r\n data1 = -1;\r\n }\r\n let data2 = ATNDeserializer.toInt(data[p++]);\r\n if (data2 === 0xFFFF) {\r\n data2 = -1;\r\n }\r\n let lexerAction = this.lexerActionFactory(actionType, data1, data2);\r\n atn.lexerActions[i] = lexerAction;\r\n }\r\n }\r\n else {\r\n // for compatibility with older serialized ATNs, convert the old\r\n // serialized action index for action transitions to the new\r\n // form, which is the index of a LexerCustomAction\r\n let legacyLexerActions = [];\r\n for (let state of atn.states) {\r\n for (let i = 0; i < state.numberOfTransitions; i++) {\r\n let transition = state.transition(i);\r\n if (!(transition instanceof ActionTransition_1.ActionTransition)) {\r\n continue;\r\n }\r\n let ruleIndex = transition.ruleIndex;\r\n let actionIndex = transition.actionIndex;\r\n let lexerAction = new LexerCustomAction_1.LexerCustomAction(ruleIndex, actionIndex);\r\n state.setTransition(i, new ActionTransition_1.ActionTransition(transition.target, ruleIndex, legacyLexerActions.length, false));\r\n legacyLexerActions.push(lexerAction);\r\n }\r\n }\r\n atn.lexerActions = legacyLexerActions;\r\n }\r\n }\r\n this.markPrecedenceDecisions(atn);\r\n atn.decisionToDFA = new Array(ndecisions);\r\n for (let i = 0; i < ndecisions; i++) {\r\n atn.decisionToDFA[i] = new DFA_1.DFA(atn.decisionToState[i], i);\r\n }\r\n if (this.deserializationOptions.isVerifyATN) {\r\n this.verifyATN(atn);\r\n }\r\n if (this.deserializationOptions.isGenerateRuleBypassTransitions && atn.grammarType === 1 /* PARSER */) {\r\n atn.ruleToTokenType = new Int32Array(atn.ruleToStartState.length);\r\n for (let i = 0; i < atn.ruleToStartState.length; i++) {\r\n atn.ruleToTokenType[i] = atn.maxTokenType + i + 1;\r\n }\r\n for (let i = 0; i < atn.ruleToStartState.length; i++) {\r\n let bypassStart = new BasicBlockStartState_1.BasicBlockStartState();\r\n bypassStart.ruleIndex = i;\r\n atn.addState(bypassStart);\r\n let bypassStop = new BlockEndState_1.BlockEndState();\r\n bypassStop.ruleIndex = i;\r\n atn.addState(bypassStop);\r\n bypassStart.endState = bypassStop;\r\n atn.defineDecisionState(bypassStart);\r\n bypassStop.startState = bypassStart;\r\n let endState;\r\n let excludeTransition;\r\n if (atn.ruleToStartState[i].isPrecedenceRule) {\r\n // wrap from the beginning of the rule to the StarLoopEntryState\r\n endState = undefined;\r\n for (let state of atn.states) {\r\n if (state.ruleIndex !== i) {\r\n continue;\r\n }\r\n if (!(state instanceof StarLoopEntryState_1.StarLoopEntryState)) {\r\n continue;\r\n }\r\n let maybeLoopEndState = state.transition(state.numberOfTransitions - 1).target;\r\n if (!(maybeLoopEndState instanceof LoopEndState_1.LoopEndState)) {\r\n continue;\r\n }\r\n if (maybeLoopEndState.epsilonOnlyTransitions && maybeLoopEndState.transition(0).target instanceof RuleStopState_1.RuleStopState) {\r\n endState = state;\r\n break;\r\n }\r\n }\r\n if (!endState) {\r\n throw new Error(\"Couldn't identify final state of the precedence rule prefix section.\");\r\n }\r\n excludeTransition = endState.loopBackState.transition(0);\r\n }\r\n else {\r\n endState = atn.ruleToStopState[i];\r\n }\r\n // all non-excluded transitions that currently target end state need to target blockEnd instead\r\n for (let state of atn.states) {\r\n for (let i = 0; i < state.numberOfTransitions; i++) {\r\n let transition = state.transition(i);\r\n if (transition === excludeTransition) {\r\n continue;\r\n }\r\n if (transition.target === endState) {\r\n transition.target = bypassStop;\r\n }\r\n }\r\n }\r\n // all transitions leaving the rule start state need to leave blockStart instead\r\n while (atn.ruleToStartState[i].numberOfTransitions > 0) {\r\n let transition = atn.ruleToStartState[i].removeTransition(atn.ruleToStartState[i].numberOfTransitions - 1);\r\n bypassStart.addTransition(transition);\r\n }\r\n // link the new states\r\n atn.ruleToStartState[i].addTransition(new EpsilonTransition_1.EpsilonTransition(bypassStart));\r\n bypassStop.addTransition(new EpsilonTransition_1.EpsilonTransition(endState));\r\n let matchState = new BasicState_1.BasicState();\r\n atn.addState(matchState);\r\n matchState.addTransition(new AtomTransition_1.AtomTransition(bypassStop, atn.ruleToTokenType[i]));\r\n bypassStart.addTransition(new EpsilonTransition_1.EpsilonTransition(matchState));\r\n }\r\n if (this.deserializationOptions.isVerifyATN) {\r\n // reverify after modification\r\n this.verifyATN(atn);\r\n }\r\n }\r\n if (this.deserializationOptions.isOptimize) {\r\n while (true) {\r\n let optimizationCount = 0;\r\n optimizationCount += ATNDeserializer.inlineSetRules(atn);\r\n optimizationCount += ATNDeserializer.combineChainedEpsilons(atn);\r\n let preserveOrder = atn.grammarType === 0 /* LEXER */;\r\n optimizationCount += ATNDeserializer.optimizeSets(atn, preserveOrder);\r\n if (optimizationCount === 0) {\r\n break;\r\n }\r\n }\r\n if (this.deserializationOptions.isVerifyATN) {\r\n // reverify after modification\r\n this.verifyATN(atn);\r\n }\r\n }\r\n ATNDeserializer.identifyTailCalls(atn);\r\n return atn;\r\n }\r\n deserializeSets(data, p, sets, unicodeDeserializer) {\r\n let nsets = ATNDeserializer.toInt(data[p++]);\r\n for (let i = 0; i < nsets; i++) {\r\n let nintervals = ATNDeserializer.toInt(data[p]);\r\n p++;\r\n let set = new IntervalSet_1.IntervalSet();\r\n sets.push(set);\r\n let containsEof = ATNDeserializer.toInt(data[p++]) !== 0;\r\n if (containsEof) {\r\n set.add(-1);\r\n }\r\n for (let j = 0; j < nintervals; j++) {\r\n let a = unicodeDeserializer.readUnicode(data, p);\r\n p += unicodeDeserializer.size;\r\n let b = unicodeDeserializer.readUnicode(data, p);\r\n p += unicodeDeserializer.size;\r\n set.add(a, b);\r\n }\r\n }\r\n return p;\r\n }\r\n /**\r\n * Analyze the {@link StarLoopEntryState} states in the specified ATN to set\r\n * the {@link StarLoopEntryState#precedenceRuleDecision} field to the\r\n * correct value.\r\n *\r\n * @param atn The ATN.\r\n */\r\n markPrecedenceDecisions(atn) {\r\n // Map rule index -> precedence decision for that rule\r\n let rulePrecedenceDecisions = new Map();\r\n for (let state of atn.states) {\r\n if (!(state instanceof StarLoopEntryState_1.StarLoopEntryState)) {\r\n continue;\r\n }\r\n /* We analyze the ATN to determine if this ATN decision state is the\r\n * decision for the closure block that determines whether a\r\n * precedence rule should continue or complete.\r\n */\r\n if (atn.ruleToStartState[state.ruleIndex].isPrecedenceRule) {\r\n let maybeLoopEndState = state.transition(state.numberOfTransitions - 1).target;\r\n if (maybeLoopEndState instanceof LoopEndState_1.LoopEndState) {\r\n if (maybeLoopEndState.epsilonOnlyTransitions && maybeLoopEndState.transition(0).target instanceof RuleStopState_1.RuleStopState) {\r\n rulePrecedenceDecisions.set(state.ruleIndex, state);\r\n state.precedenceRuleDecision = true;\r\n state.precedenceLoopbackStates = new BitSet_1.BitSet(atn.states.length);\r\n }\r\n }\r\n }\r\n }\r\n // After marking precedence decisions, we go back through and fill in\r\n // StarLoopEntryState.precedenceLoopbackStates.\r\n for (let precedenceDecision of rulePrecedenceDecisions) {\r\n for (let transition of atn.ruleToStopState[precedenceDecision[0]].getTransitions()) {\r\n if (transition.serializationType !== 1 /* EPSILON */) {\r\n continue;\r\n }\r\n let epsilonTransition = transition;\r\n if (epsilonTransition.outermostPrecedenceReturn !== -1) {\r\n continue;\r\n }\r\n precedenceDecision[1].precedenceLoopbackStates.set(transition.target.stateNumber);\r\n }\r\n }\r\n }\r\n verifyATN(atn) {\r\n // verify assumptions\r\n for (let state of atn.states) {\r\n this.checkCondition(state !== undefined, \"ATN states should not be undefined.\");\r\n if (state.stateType === ATNStateType_1.ATNStateType.INVALID_TYPE) {\r\n continue;\r\n }\r\n this.checkCondition(state.onlyHasEpsilonTransitions || state.numberOfTransitions <= 1);\r\n if (state instanceof PlusBlockStartState_1.PlusBlockStartState) {\r\n this.checkCondition(state.loopBackState !== undefined);\r\n }\r\n if (state instanceof StarLoopEntryState_1.StarLoopEntryState) {\r\n let starLoopEntryState = state;\r\n this.checkCondition(starLoopEntryState.loopBackState !== undefined);\r\n this.checkCondition(starLoopEntryState.numberOfTransitions === 2);\r\n if (starLoopEntryState.transition(0).target instanceof StarBlockStartState_1.StarBlockStartState) {\r\n this.checkCondition(starLoopEntryState.transition(1).target instanceof LoopEndState_1.LoopEndState);\r\n this.checkCondition(!starLoopEntryState.nonGreedy);\r\n }\r\n else if (starLoopEntryState.transition(0).target instanceof LoopEndState_1.LoopEndState) {\r\n this.checkCondition(starLoopEntryState.transition(1).target instanceof StarBlockStartState_1.StarBlockStartState);\r\n this.checkCondition(starLoopEntryState.nonGreedy);\r\n }\r\n else {\r\n throw new Error(\"IllegalStateException\");\r\n }\r\n }\r\n if (state instanceof StarLoopbackState_1.StarLoopbackState) {\r\n this.checkCondition(state.numberOfTransitions === 1);\r\n this.checkCondition(state.transition(0).target instanceof StarLoopEntryState_1.StarLoopEntryState);\r\n }\r\n if (state instanceof LoopEndState_1.LoopEndState) {\r\n this.checkCondition(state.loopBackState !== undefined);\r\n }\r\n if (state instanceof RuleStartState_1.RuleStartState) {\r\n this.checkCondition(state.stopState !== undefined);\r\n }\r\n if (state instanceof BlockStartState_1.BlockStartState) {\r\n this.checkCondition(state.endState !== undefined);\r\n }\r\n if (state instanceof BlockEndState_1.BlockEndState) {\r\n this.checkCondition(state.startState !== undefined);\r\n }\r\n if (state instanceof DecisionState_1.DecisionState) {\r\n let decisionState = state;\r\n this.checkCondition(decisionState.numberOfTransitions <= 1 || decisionState.decision >= 0);\r\n }\r\n else {\r\n this.checkCondition(state.numberOfTransitions <= 1 || state instanceof RuleStopState_1.RuleStopState);\r\n }\r\n }\r\n }\r\n checkCondition(condition, message) {\r\n if (!condition) {\r\n throw new Error(\"IllegalStateException: \" + message);\r\n }\r\n }\r\n static inlineSetRules(atn) {\r\n let inlinedCalls = 0;\r\n let ruleToInlineTransition = new Array(atn.ruleToStartState.length);\r\n for (let i = 0; i < atn.ruleToStartState.length; i++) {\r\n let startState = atn.ruleToStartState[i];\r\n let middleState = startState;\r\n while (middleState.onlyHasEpsilonTransitions\r\n && middleState.numberOfOptimizedTransitions === 1\r\n && middleState.getOptimizedTransition(0).serializationType === 1 /* EPSILON */) {\r\n middleState = middleState.getOptimizedTransition(0).target;\r\n }\r\n if (middleState.numberOfOptimizedTransitions !== 1) {\r\n continue;\r\n }\r\n let matchTransition = middleState.getOptimizedTransition(0);\r\n let matchTarget = matchTransition.target;\r\n if (matchTransition.isEpsilon\r\n || !matchTarget.onlyHasEpsilonTransitions\r\n || matchTarget.numberOfOptimizedTransitions !== 1\r\n || !(matchTarget.getOptimizedTransition(0).target instanceof RuleStopState_1.RuleStopState)) {\r\n continue;\r\n }\r\n switch (matchTransition.serializationType) {\r\n case 5 /* ATOM */:\r\n case 2 /* RANGE */:\r\n case 7 /* SET */:\r\n ruleToInlineTransition[i] = matchTransition;\r\n break;\r\n case 8 /* NOT_SET */:\r\n case 9 /* WILDCARD */:\r\n // not implemented yet\r\n continue;\r\n default:\r\n continue;\r\n }\r\n }\r\n for (let state of atn.states) {\r\n if (state.ruleIndex < 0) {\r\n continue;\r\n }\r\n let optimizedTransitions;\r\n for (let i = 0; i < state.numberOfOptimizedTransitions; i++) {\r\n let transition = state.getOptimizedTransition(i);\r\n if (!(transition instanceof RuleTransition_1.RuleTransition)) {\r\n if (optimizedTransitions !== undefined) {\r\n optimizedTransitions.push(transition);\r\n }\r\n continue;\r\n }\r\n let ruleTransition = transition;\r\n let effective = ruleToInlineTransition[ruleTransition.target.ruleIndex];\r\n if (effective === undefined) {\r\n if (optimizedTransitions !== undefined) {\r\n optimizedTransitions.push(transition);\r\n }\r\n continue;\r\n }\r\n if (optimizedTransitions === undefined) {\r\n optimizedTransitions = [];\r\n for (let j = 0; j < i; j++) {\r\n optimizedTransitions.push(state.getOptimizedTransition(i));\r\n }\r\n }\r\n inlinedCalls++;\r\n let target = ruleTransition.followState;\r\n let intermediateState = new BasicState_1.BasicState();\r\n intermediateState.setRuleIndex(target.ruleIndex);\r\n atn.addState(intermediateState);\r\n optimizedTransitions.push(new EpsilonTransition_1.EpsilonTransition(intermediateState));\r\n switch (effective.serializationType) {\r\n case 5 /* ATOM */:\r\n intermediateState.addTransition(new AtomTransition_1.AtomTransition(target, effective._label));\r\n break;\r\n case 2 /* RANGE */:\r\n intermediateState.addTransition(new RangeTransition_1.RangeTransition(target, effective.from, effective.to));\r\n break;\r\n case 7 /* SET */:\r\n intermediateState.addTransition(new SetTransition_1.SetTransition(target, effective.label));\r\n break;\r\n default:\r\n throw new Error(\"UnsupportedOperationException\");\r\n }\r\n }\r\n if (optimizedTransitions !== undefined) {\r\n if (state.isOptimized) {\r\n while (state.numberOfOptimizedTransitions > 0) {\r\n state.removeOptimizedTransition(state.numberOfOptimizedTransitions - 1);\r\n }\r\n }\r\n for (let transition of optimizedTransitions) {\r\n state.addOptimizedTransition(transition);\r\n }\r\n }\r\n }\r\n if (ParserATNSimulator_1.ParserATNSimulator.debug) {\r\n console.log(\"ATN runtime optimizer removed \" + inlinedCalls + \" rule invocations by inlining sets.\");\r\n }\r\n return inlinedCalls;\r\n }\r\n static combineChainedEpsilons(atn) {\r\n let removedEdges = 0;\r\n for (let state of atn.states) {\r\n if (!state.onlyHasEpsilonTransitions || state instanceof RuleStopState_1.RuleStopState) {\r\n continue;\r\n }\r\n let optimizedTransitions;\r\n nextTransition: for (let i = 0; i < state.numberOfOptimizedTransitions; i++) {\r\n let transition = state.getOptimizedTransition(i);\r\n let intermediate = transition.target;\r\n if (transition.serializationType !== 1 /* EPSILON */\r\n || transition.outermostPrecedenceReturn !== -1\r\n || intermediate.stateType !== ATNStateType_1.ATNStateType.BASIC\r\n || !intermediate.onlyHasEpsilonTransitions) {\r\n if (optimizedTransitions !== undefined) {\r\n optimizedTransitions.push(transition);\r\n }\r\n continue nextTransition;\r\n }\r\n for (let j = 0; j < intermediate.numberOfOptimizedTransitions; j++) {\r\n if (intermediate.getOptimizedTransition(j).serializationType !== 1 /* EPSILON */\r\n || intermediate.getOptimizedTransition(j).outermostPrecedenceReturn !== -1) {\r\n if (optimizedTransitions !== undefined) {\r\n optimizedTransitions.push(transition);\r\n }\r\n continue nextTransition;\r\n }\r\n }\r\n removedEdges++;\r\n if (optimizedTransitions === undefined) {\r\n optimizedTransitions = [];\r\n for (let j = 0; j < i; j++) {\r\n optimizedTransitions.push(state.getOptimizedTransition(j));\r\n }\r\n }\r\n for (let j = 0; j < intermediate.numberOfOptimizedTransitions; j++) {\r\n let target = intermediate.getOptimizedTransition(j).target;\r\n optimizedTransitions.push(new EpsilonTransition_1.EpsilonTransition(target));\r\n }\r\n }\r\n if (optimizedTransitions !== undefined) {\r\n if (state.isOptimized) {\r\n while (state.numberOfOptimizedTransitions > 0) {\r\n state.removeOptimizedTransition(state.numberOfOptimizedTransitions - 1);\r\n }\r\n }\r\n for (let transition of optimizedTransitions) {\r\n state.addOptimizedTransition(transition);\r\n }\r\n }\r\n }\r\n if (ParserATNSimulator_1.ParserATNSimulator.debug) {\r\n console.log(\"ATN runtime optimizer removed \" + removedEdges + \" transitions by combining chained epsilon transitions.\");\r\n }\r\n return removedEdges;\r\n }\r\n static optimizeSets(atn, preserveOrder) {\r\n if (preserveOrder) {\r\n // this optimization currently doesn't preserve edge order.\r\n return 0;\r\n }\r\n let removedPaths = 0;\r\n let decisions = atn.decisionToState;\r\n for (let decision of decisions) {\r\n let setTransitions = new IntervalSet_1.IntervalSet();\r\n for (let i = 0; i < decision.numberOfOptimizedTransitions; i++) {\r\n let epsTransition = decision.getOptimizedTransition(i);\r\n if (!(epsTransition instanceof EpsilonTransition_1.EpsilonTransition)) {\r\n continue;\r\n }\r\n if (epsTransition.target.numberOfOptimizedTransitions !== 1) {\r\n continue;\r\n }\r\n let transition = epsTransition.target.getOptimizedTransition(0);\r\n if (!(transition.target instanceof BlockEndState_1.BlockEndState)) {\r\n continue;\r\n }\r\n if (transition instanceof NotSetTransition_1.NotSetTransition) {\r\n // TODO: not yet implemented\r\n continue;\r\n }\r\n if (transition instanceof AtomTransition_1.AtomTransition\r\n || transition instanceof RangeTransition_1.RangeTransition\r\n || transition instanceof SetTransition_1.SetTransition) {\r\n setTransitions.add(i);\r\n }\r\n }\r\n if (setTransitions.size <= 1) {\r\n continue;\r\n }\r\n let optimizedTransitions = [];\r\n for (let i = 0; i < decision.numberOfOptimizedTransitions; i++) {\r\n if (!setTransitions.contains(i)) {\r\n optimizedTransitions.push(decision.getOptimizedTransition(i));\r\n }\r\n }\r\n let blockEndState = decision.getOptimizedTransition(setTransitions.minElement).target.getOptimizedTransition(0).target;\r\n let matchSet = new IntervalSet_1.IntervalSet();\r\n for (let interval of setTransitions.intervals) {\r\n for (let j = interval.a; j <= interval.b; j++) {\r\n let matchTransition = decision.getOptimizedTransition(j).target.getOptimizedTransition(0);\r\n if (matchTransition instanceof NotSetTransition_1.NotSetTransition) {\r\n throw new Error(\"Not yet implemented.\");\r\n }\r\n else {\r\n matchSet.addAll(matchTransition.label);\r\n }\r\n }\r\n }\r\n let newTransition;\r\n if (matchSet.intervals.length === 1) {\r\n if (matchSet.size === 1) {\r\n newTransition = new AtomTransition_1.AtomTransition(blockEndState, matchSet.minElement);\r\n }\r\n else {\r\n let matchInterval = matchSet.intervals[0];\r\n newTransition = new RangeTransition_1.RangeTransition(blockEndState, matchInterval.a, matchInterval.b);\r\n }\r\n }\r\n else {\r\n newTransition = new SetTransition_1.SetTransition(blockEndState, matchSet);\r\n }\r\n let setOptimizedState = new BasicState_1.BasicState();\r\n setOptimizedState.setRuleIndex(decision.ruleIndex);\r\n atn.addState(setOptimizedState);\r\n setOptimizedState.addTransition(newTransition);\r\n optimizedTransitions.push(new EpsilonTransition_1.EpsilonTransition(setOptimizedState));\r\n removedPaths += decision.numberOfOptimizedTransitions - optimizedTransitions.length;\r\n if (decision.isOptimized) {\r\n while (decision.numberOfOptimizedTransitions > 0) {\r\n decision.removeOptimizedTransition(decision.numberOfOptimizedTransitions - 1);\r\n }\r\n }\r\n for (let transition of optimizedTransitions) {\r\n decision.addOptimizedTransition(transition);\r\n }\r\n }\r\n if (ParserATNSimulator_1.ParserATNSimulator.debug) {\r\n console.log(\"ATN runtime optimizer removed \" + removedPaths + \" paths by collapsing sets.\");\r\n }\r\n return removedPaths;\r\n }\r\n static identifyTailCalls(atn) {\r\n for (let state of atn.states) {\r\n for (let i = 0; i < state.numberOfTransitions; i++) {\r\n let transition = state.transition(i);\r\n if (!(transition instanceof RuleTransition_1.RuleTransition)) {\r\n continue;\r\n }\r\n transition.tailCall = this.testTailCall(atn, transition, false);\r\n transition.optimizedTailCall = this.testTailCall(atn, transition, true);\r\n }\r\n if (!state.isOptimized) {\r\n continue;\r\n }\r\n for (let i = 0; i < state.numberOfOptimizedTransitions; i++) {\r\n let transition = state.getOptimizedTransition(i);\r\n if (!(transition instanceof RuleTransition_1.RuleTransition)) {\r\n continue;\r\n }\r\n transition.tailCall = this.testTailCall(atn, transition, false);\r\n transition.optimizedTailCall = this.testTailCall(atn, transition, true);\r\n }\r\n }\r\n }\r\n static testTailCall(atn, transition, optimizedPath) {\r\n if (!optimizedPath && transition.tailCall) {\r\n return true;\r\n }\r\n if (optimizedPath && transition.optimizedTailCall) {\r\n return true;\r\n }\r\n let reachable = new BitSet_1.BitSet(atn.states.length);\r\n let worklist = [];\r\n worklist.push(transition.followState);\r\n while (true) {\r\n let state = worklist.pop();\r\n if (!state) {\r\n break;\r\n }\r\n if (reachable.get(state.stateNumber)) {\r\n continue;\r\n }\r\n if (state instanceof RuleStopState_1.RuleStopState) {\r\n continue;\r\n }\r\n if (!state.onlyHasEpsilonTransitions) {\r\n return false;\r\n }\r\n let transitionCount = optimizedPath ? state.numberOfOptimizedTransitions : state.numberOfTransitions;\r\n for (let i = 0; i < transitionCount; i++) {\r\n let t = optimizedPath ? state.getOptimizedTransition(i) : state.transition(i);\r\n if (t.serializationType !== 1 /* EPSILON */) {\r\n return false;\r\n }\r\n worklist.push(t.target);\r\n }\r\n }\r\n return true;\r\n }\r\n static toInt(c) {\r\n return c;\r\n }\r\n static toInt32(data, offset) {\r\n return (data[offset] | (data[offset + 1] << 16)) >>> 0;\r\n }\r\n static toUUID(data, offset) {\r\n let leastSigBits = ATNDeserializer.toInt32(data, offset);\r\n let lessSigBits = ATNDeserializer.toInt32(data, offset + 2);\r\n let moreSigBits = ATNDeserializer.toInt32(data, offset + 4);\r\n let mostSigBits = ATNDeserializer.toInt32(data, offset + 6);\r\n return new UUID_1.UUID(mostSigBits, moreSigBits, lessSigBits, leastSigBits);\r\n }\r\n edgeFactory(atn, type, src, trg, arg1, arg2, arg3, sets) {\r\n let target = atn.states[trg];\r\n switch (type) {\r\n case 1 /* EPSILON */: return new EpsilonTransition_1.EpsilonTransition(target);\r\n case 2 /* RANGE */:\r\n if (arg3 !== 0) {\r\n return new RangeTransition_1.RangeTransition(target, Token_1.Token.EOF, arg2);\r\n }\r\n else {\r\n return new RangeTransition_1.RangeTransition(target, arg1, arg2);\r\n }\r\n case 3 /* RULE */:\r\n let rt = new RuleTransition_1.RuleTransition(atn.states[arg1], arg2, arg3, target);\r\n return rt;\r\n case 4 /* PREDICATE */:\r\n let pt = new PredicateTransition_1.PredicateTransition(target, arg1, arg2, arg3 !== 0);\r\n return pt;\r\n case 10 /* PRECEDENCE */:\r\n return new PrecedencePredicateTransition_1.PrecedencePredicateTransition(target, arg1);\r\n case 5 /* ATOM */:\r\n if (arg3 !== 0) {\r\n return new AtomTransition_1.AtomTransition(target, Token_1.Token.EOF);\r\n }\r\n else {\r\n return new AtomTransition_1.AtomTransition(target, arg1);\r\n }\r\n case 6 /* ACTION */:\r\n let a = new ActionTransition_1.ActionTransition(target, arg1, arg2, arg3 !== 0);\r\n return a;\r\n case 7 /* SET */: return new SetTransition_1.SetTransition(target, sets[arg1]);\r\n case 8 /* NOT_SET */: return new NotSetTransition_1.NotSetTransition(target, sets[arg1]);\r\n case 9 /* WILDCARD */: return new WildcardTransition_1.WildcardTransition(target);\r\n }\r\n throw new Error(\"The specified transition type is not valid.\");\r\n }\r\n stateFactory(type, ruleIndex) {\r\n let s;\r\n switch (type) {\r\n case ATNStateType_1.ATNStateType.INVALID_TYPE: return new InvalidState_1.InvalidState();\r\n case ATNStateType_1.ATNStateType.BASIC:\r\n s = new BasicState_1.BasicState();\r\n break;\r\n case ATNStateType_1.ATNStateType.RULE_START:\r\n s = new RuleStartState_1.RuleStartState();\r\n break;\r\n case ATNStateType_1.ATNStateType.BLOCK_START:\r\n s = new BasicBlockStartState_1.BasicBlockStartState();\r\n break;\r\n case ATNStateType_1.ATNStateType.PLUS_BLOCK_START:\r\n s = new PlusBlockStartState_1.PlusBlockStartState();\r\n break;\r\n case ATNStateType_1.ATNStateType.STAR_BLOCK_START:\r\n s = new StarBlockStartState_1.StarBlockStartState();\r\n break;\r\n case ATNStateType_1.ATNStateType.TOKEN_START:\r\n s = new TokensStartState_1.TokensStartState();\r\n break;\r\n case ATNStateType_1.ATNStateType.RULE_STOP:\r\n s = new RuleStopState_1.RuleStopState();\r\n break;\r\n case ATNStateType_1.ATNStateType.BLOCK_END:\r\n s = new BlockEndState_1.BlockEndState();\r\n break;\r\n case ATNStateType_1.ATNStateType.STAR_LOOP_BACK:\r\n s = new StarLoopbackState_1.StarLoopbackState();\r\n break;\r\n case ATNStateType_1.ATNStateType.STAR_LOOP_ENTRY:\r\n s = new StarLoopEntryState_1.StarLoopEntryState();\r\n break;\r\n case ATNStateType_1.ATNStateType.PLUS_LOOP_BACK:\r\n s = new PlusLoopbackState_1.PlusLoopbackState();\r\n break;\r\n case ATNStateType_1.ATNStateType.LOOP_END:\r\n s = new LoopEndState_1.LoopEndState();\r\n break;\r\n default:\r\n let message = `The specified state type ${type} is not valid.`;\r\n throw new Error(message);\r\n }\r\n s.ruleIndex = ruleIndex;\r\n return s;\r\n }\r\n lexerActionFactory(type, data1, data2) {\r\n switch (type) {\r\n case 0 /* CHANNEL */:\r\n return new LexerChannelAction_1.LexerChannelAction(data1);\r\n case 1 /* CUSTOM */:\r\n return new LexerCustomAction_1.LexerCustomAction(data1, data2);\r\n case 2 /* MODE */:\r\n return new LexerModeAction_1.LexerModeAction(data1);\r\n case 3 /* MORE */:\r\n return LexerMoreAction_1.LexerMoreAction.INSTANCE;\r\n case 4 /* POP_MODE */:\r\n return LexerPopModeAction_1.LexerPopModeAction.INSTANCE;\r\n case 5 /* PUSH_MODE */:\r\n return new LexerPushModeAction_1.LexerPushModeAction(data1);\r\n case 6 /* SKIP */:\r\n return LexerSkipAction_1.LexerSkipAction.INSTANCE;\r\n case 7 /* TYPE */:\r\n return new LexerTypeAction_1.LexerTypeAction(data1);\r\n default:\r\n let message = `The specified lexer action type ${type} is not valid.`;\r\n throw new Error(message);\r\n }\r\n }\r\n}\r\n/* WARNING: DO NOT MERGE THESE LINES. If UUIDs differ during a merge,\r\n * resolve the conflict by generating a new ID!\r\n */\r\n/**\r\n * This is the earliest supported serialized UUID.\r\n */\r\nATNDeserializer.BASE_SERIALIZED_UUID = UUID_1.UUID.fromString(\"E4178468-DF95-44D0-AD87-F22A5D5FB6D3\");\r\n/**\r\n * This UUID indicates an extension of {@link #ADDED_PRECEDENCE_TRANSITIONS}\r\n * for the addition of lexer actions encoded as a sequence of\r\n * {@link LexerAction} instances.\r\n */\r\nATNDeserializer.ADDED_LEXER_ACTIONS = UUID_1.UUID.fromString(\"AB35191A-1603-487E-B75A-479B831EAF6D\");\r\n/**\r\n * This UUID indicates the serialized ATN contains two sets of\r\n * IntervalSets, where the second set's values are encoded as\r\n * 32-bit integers to support the full Unicode SMP range up to U+10FFFF.\r\n */\r\nATNDeserializer.ADDED_UNICODE_SMP = UUID_1.UUID.fromString(\"C23FEA89-0605-4f51-AFB8-058BCAB8C91B\");\r\n/**\r\n * This list contains all of the currently supported UUIDs, ordered by when\r\n * the feature first appeared in this branch.\r\n */\r\nATNDeserializer.SUPPORTED_UUIDS = [\r\n ATNDeserializer.BASE_SERIALIZED_UUID,\r\n ATNDeserializer.ADDED_LEXER_ACTIONS,\r\n ATNDeserializer.ADDED_UNICODE_SMP,\r\n];\r\n/**\r\n * This is the current serialized UUID.\r\n */\r\nATNDeserializer.SERIALIZED_UUID = ATNDeserializer.ADDED_UNICODE_SMP;\r\n__decorate([\r\n Decorators_1.NotNull\r\n], ATNDeserializer.prototype, \"deserializationOptions\", void 0);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATNDeserializer.prototype, \"deserialize\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], ATNDeserializer.prototype, \"markPrecedenceDecisions\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(0, Decorators_1.NotNull)\r\n], ATNDeserializer.prototype, \"edgeFactory\", null);\r\nexports.ATNDeserializer = ATNDeserializer;\r\n//# sourceMappingURL=ATNDeserializer.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AbstractParseTreeVisitor = void 0;\r\nconst Decorators_1 = require(\"../Decorators\");\r\nclass AbstractParseTreeVisitor {\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation calls {@link ParseTree#accept} on the\r\n * specified tree.\r\n */\r\n visit(tree) {\r\n return tree.accept(this);\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation initializes the aggregate result to\r\n * {@link #defaultResult defaultResult()}. Before visiting each child, it\r\n * calls {@link #shouldVisitNextChild shouldVisitNextChild}; if the result\r\n * is `false` no more children are visited and the current aggregate\r\n * result is returned. After visiting a child, the aggregate result is\r\n * updated by calling {@link #aggregateResult aggregateResult} with the\r\n * previous aggregate result and the result of visiting the child.\r\n *\r\n * The default implementation is not safe for use in visitors that modify\r\n * the tree structure. Visitors that modify the tree should override this\r\n * method to behave properly in respect to the specific algorithm in use.\r\n */\r\n visitChildren(node) {\r\n let result = this.defaultResult();\r\n let n = node.childCount;\r\n for (let i = 0; i < n; i++) {\r\n if (!this.shouldVisitNextChild(node, result)) {\r\n break;\r\n }\r\n let c = node.getChild(i);\r\n let childResult = c.accept(this);\r\n result = this.aggregateResult(result, childResult);\r\n }\r\n return result;\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation returns the result of\r\n * {@link #defaultResult defaultResult}.\r\n */\r\n visitTerminal(node) {\r\n return this.defaultResult();\r\n }\r\n /**\r\n * {@inheritDoc}\r\n *\r\n * The default implementation returns the result of\r\n * {@link #defaultResult defaultResult}.\r\n */\r\n visitErrorNode(node) {\r\n return this.defaultResult();\r\n }\r\n /**\r\n * Aggregates the results of visiting multiple children of a node. After\r\n * either all children are visited or {@link #shouldVisitNextChild} returns\r\n * `false`, the aggregate value is returned as the result of\r\n * {@link #visitChildren}.\r\n *\r\n * The default implementation returns `nextResult`, meaning\r\n * {@link #visitChildren} will return the result of the last child visited\r\n * (or return the initial value if the node has no children).\r\n *\r\n * @param aggregate The previous aggregate value. In the default\r\n * implementation, the aggregate value is initialized to\r\n * {@link #defaultResult}, which is passed as the `aggregate` argument\r\n * to this method after the first child node is visited.\r\n * @param nextResult The result of the immediately preceeding call to visit\r\n * a child node.\r\n *\r\n * @returns The updated aggregate result.\r\n */\r\n aggregateResult(aggregate, nextResult) {\r\n return nextResult;\r\n }\r\n /**\r\n * This method is called after visiting each child in\r\n * {@link #visitChildren}. This method is first called before the first\r\n * child is visited; at that point `currentResult` will be the initial\r\n * value (in the default implementation, the initial value is returned by a\r\n * call to {@link #defaultResult}. This method is not called after the last\r\n * child is visited.\r\n *\r\n * The default implementation always returns `true`, indicating that\r\n * `visitChildren` should only return after all children are visited.\r\n * One reason to override this method is to provide a \"short circuit\"\r\n * evaluation option for situations where the result of visiting a single\r\n * child has the potential to determine the result of the visit operation as\r\n * a whole.\r\n *\r\n * @param node The {@link RuleNode} whose children are currently being\r\n * visited.\r\n * @param currentResult The current aggregate result of the children visited\r\n * to the current point.\r\n *\r\n * @returns `true` to continue visiting children. Otherwise return\r\n * `false` to stop visiting children and immediately return the\r\n * current aggregate result from {@link #visitChildren}.\r\n */\r\n shouldVisitNextChild(node, currentResult) {\r\n return true;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], AbstractParseTreeVisitor.prototype, \"visit\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], AbstractParseTreeVisitor.prototype, \"visitChildren\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], AbstractParseTreeVisitor.prototype, \"visitTerminal\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull)\r\n], AbstractParseTreeVisitor.prototype, \"visitErrorNode\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull)\r\n], AbstractParseTreeVisitor.prototype, \"shouldVisitNextChild\", null);\r\nexports.AbstractParseTreeVisitor = AbstractParseTreeVisitor;\r\n//# sourceMappingURL=AbstractParseTreeVisitor.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=ANTLRErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=ANTLRErrorStrategy.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\n// ConvertTo-TS run at 2016-10-04T11:26:49.0828748-07:00\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ANTLRInputStream = void 0;\r\nconst assert = require(\"assert\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst IntStream_1 = require(\"./IntStream\");\r\nconst READ_BUFFER_SIZE = 1024;\r\nconst INITIAL_BUFFER_SIZE = 1024;\r\n/**\r\n * Vacuum all input from a {@link Reader}/{@link InputStream} and then treat it\r\n * like a `char[]` buffer. Can also pass in a {@link String} or\r\n * `char[]` to use.\r\n *\r\n * If you need encoding, pass in stream/reader with correct encoding.\r\n *\r\n * @deprecated as of 4.7, please use `CharStreams` interface.\r\n */\r\nclass ANTLRInputStream {\r\n /** Copy data in string to a local char array */\r\n constructor(input) {\r\n /** 0..n-1 index into string of next char */\r\n this.p = 0;\r\n this.data = input;\r\n this.n = input.length;\r\n }\r\n /** Reset the stream so that it's in the same state it was\r\n * when the object was created *except* the data array is not\r\n * touched.\r\n */\r\n reset() {\r\n this.p = 0;\r\n }\r\n consume() {\r\n if (this.p >= this.n) {\r\n assert(this.LA(1) === IntStream_1.IntStream.EOF);\r\n throw new Error(\"cannot consume EOF\");\r\n }\r\n //System.out.println(\"prev p=\"+p+\", c=\"+(char)data[p]);\r\n if (this.p < this.n) {\r\n this.p++;\r\n //System.out.println(\"p moves to \"+p+\" (c='\"+(char)data[p]+\"')\");\r\n }\r\n }\r\n LA(i) {\r\n if (i === 0) {\r\n return 0; // undefined\r\n }\r\n if (i < 0) {\r\n i++; // e.g., translate LA(-1) to use offset i=0; then data[p+0-1]\r\n if ((this.p + i - 1) < 0) {\r\n return IntStream_1.IntStream.EOF; // invalid; no char before first char\r\n }\r\n }\r\n if ((this.p + i - 1) >= this.n) {\r\n //System.out.println(\"char LA(\"+i+\")=EOF; p=\"+p);\r\n return IntStream_1.IntStream.EOF;\r\n }\r\n //System.out.println(\"char LA(\"+i+\")=\"+(char)data[p+i-1]+\"; p=\"+p);\r\n //System.out.println(\"LA(\"+i+\"); p=\"+p+\" n=\"+n+\" data.length=\"+data.length);\r\n return this.data.charCodeAt(this.p + i - 1);\r\n }\r\n LT(i) {\r\n return this.LA(i);\r\n }\r\n /** Return the current input symbol index 0..n where n indicates the\r\n * last symbol has been read. The index is the index of char to\r\n * be returned from LA(1).\r\n */\r\n get index() {\r\n return this.p;\r\n }\r\n get size() {\r\n return this.n;\r\n }\r\n /** mark/release do nothing; we have entire buffer */\r\n mark() {\r\n return -1;\r\n }\r\n release(marker) {\r\n // No default implementation since this stream buffers the entire input\r\n }\r\n /** consume() ahead until p==index; can't just set p=index as we must\r\n * update line and charPositionInLine. If we seek backwards, just set p\r\n */\r\n seek(index) {\r\n if (index <= this.p) {\r\n this.p = index; // just jump; don't update stream state (line, ...)\r\n return;\r\n }\r\n // seek forward, consume until p hits index or n (whichever comes first)\r\n index = Math.min(index, this.n);\r\n while (this.p < index) {\r\n this.consume();\r\n }\r\n }\r\n getText(interval) {\r\n let start = interval.a;\r\n let stop = interval.b;\r\n if (stop >= this.n) {\r\n stop = this.n - 1;\r\n }\r\n let count = stop - start + 1;\r\n if (start >= this.n) {\r\n return \"\";\r\n }\r\n // System.err.println(\"data: \"+Arrays.toString(data)+\", n=\"+n+\r\n // \t\t\t\t \", start=\"+start+\r\n // \t\t\t\t \", stop=\"+stop);\r\n return this.data.substr(start, count);\r\n }\r\n get sourceName() {\r\n if (!this.name) {\r\n return IntStream_1.IntStream.UNKNOWN_SOURCE_NAME;\r\n }\r\n return this.name;\r\n }\r\n toString() { return this.data; }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"consume\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"LA\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"index\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"size\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"mark\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"release\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"seek\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"getText\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"sourceName\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ANTLRInputStream.prototype, \"toString\", null);\r\nexports.ANTLRInputStream = ANTLRInputStream;\r\n//# sourceMappingURL=ANTLRInputStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=CharStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Dependents = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:51.1349829-07:00\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nvar Dependents;\r\n(function (Dependents) {\r\n /**\r\n * The element is dependent upon the specified rule.\r\n */\r\n Dependents[Dependents[\"SELF\"] = 0] = \"SELF\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's parents\r\n * (rules which directly reference it).\r\n */\r\n Dependents[Dependents[\"PARENTS\"] = 1] = \"PARENTS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's children\r\n * (rules which it directly references).\r\n */\r\n Dependents[Dependents[\"CHILDREN\"] = 2] = \"CHILDREN\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's ancestors\r\n * (the transitive closure of `PARENTS` rules).\r\n */\r\n Dependents[Dependents[\"ANCESTORS\"] = 3] = \"ANCESTORS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's descendants\r\n * (the transitive closure of `CHILDREN` rules).\r\n */\r\n Dependents[Dependents[\"DESCENDANTS\"] = 4] = \"DESCENDANTS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's siblings\r\n * (the union of `CHILDREN` of its `PARENTS`).\r\n */\r\n Dependents[Dependents[\"SIBLINGS\"] = 5] = \"SIBLINGS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's preceeding\r\n * siblings (the union of `CHILDREN` of its `PARENTS` which\r\n * appear before a reference to the rule).\r\n */\r\n Dependents[Dependents[\"PRECEEDING_SIBLINGS\"] = 6] = \"PRECEEDING_SIBLINGS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's following\r\n * siblings (the union of `CHILDREN` of its `PARENTS` which\r\n * appear after a reference to the rule).\r\n */\r\n Dependents[Dependents[\"FOLLOWING_SIBLINGS\"] = 7] = \"FOLLOWING_SIBLINGS\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's preceeding\r\n * elements (rules which might end before the start of the specified rule\r\n * while parsing). This is calculated by taking the\r\n * `PRECEEDING_SIBLINGS` of the rule and each of its\r\n * `ANCESTORS`, along with the `DESCENDANTS` of those\r\n * elements.\r\n */\r\n Dependents[Dependents[\"PRECEEDING\"] = 8] = \"PRECEEDING\";\r\n /**\r\n * The element is dependent upon the set of the specified rule's following\r\n * elements (rules which might start after the end of the specified rule\r\n * while parsing). This is calculated by taking the\r\n * `FOLLOWING_SIBLINGS` of the rule and each of its\r\n * `ANCESTORS`, along with the `DESCENDANTS` of those\r\n * elements.\r\n */\r\n Dependents[Dependents[\"FOLLOWING\"] = 9] = \"FOLLOWING\";\r\n})(Dependents = exports.Dependents || (exports.Dependents = {}));\r\n//# sourceMappingURL=Dependents.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DiagnosticErrorListener = void 0;\r\nconst BitSet_1 = require(\"./misc/BitSet\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Interval_1 = require(\"./misc/Interval\");\r\n/**\r\n * This implementation of {@link ANTLRErrorListener} can be used to identify\r\n * certain potential correctness and performance problems in grammars. \"Reports\"\r\n * are made by calling {@link Parser#notifyErrorListeners} with the appropriate\r\n * message.\r\n *\r\n * * **Ambiguities**: These are cases where more than one path through the\r\n * grammar can match the input.\r\n * * **Weak context sensitivity**: These are cases where full-context\r\n * prediction resolved an SLL conflict to a unique alternative which equaled the\r\n * minimum alternative of the SLL conflict.\r\n * * **Strong (forced) context sensitivity**: These are cases where the\r\n * full-context prediction resolved an SLL conflict to a unique alternative,\r\n * *and* the minimum alternative of the SLL conflict was found to not be\r\n * a truly viable alternative. Two-stage parsing cannot be used for inputs where\r\n * this situation occurs.\r\n *\r\n * @author Sam Harwell\r\n */\r\nclass DiagnosticErrorListener {\r\n /**\r\n * Initializes a new instance of {@link DiagnosticErrorListener}, specifying\r\n * whether all ambiguities or only exact ambiguities are reported.\r\n *\r\n * @param exactOnly `true` to report only exact ambiguities, otherwise\r\n * `false` to report all ambiguities. Defaults to true.\r\n */\r\n constructor(exactOnly = true) {\r\n this.exactOnly = exactOnly;\r\n this.exactOnly = exactOnly;\r\n }\r\n syntaxError(\r\n /*@NotNull*/\r\n recognizer, offendingSymbol, line, charPositionInLine, \r\n /*@NotNull*/\r\n msg, e) {\r\n // intentionally empty\r\n }\r\n reportAmbiguity(recognizer, dfa, startIndex, stopIndex, exact, ambigAlts, configs) {\r\n if (this.exactOnly && !exact) {\r\n return;\r\n }\r\n let decision = this.getDecisionDescription(recognizer, dfa);\r\n let conflictingAlts = this.getConflictingAlts(ambigAlts, configs);\r\n let text = recognizer.inputStream.getText(Interval_1.Interval.of(startIndex, stopIndex));\r\n let message = `reportAmbiguity d=${decision}: ambigAlts=${conflictingAlts}, input='${text}'`;\r\n recognizer.notifyErrorListeners(message);\r\n }\r\n reportAttemptingFullContext(recognizer, dfa, startIndex, stopIndex, conflictingAlts, conflictState) {\r\n let format = \"reportAttemptingFullContext d=%s, input='%s'\";\r\n let decision = this.getDecisionDescription(recognizer, dfa);\r\n let text = recognizer.inputStream.getText(Interval_1.Interval.of(startIndex, stopIndex));\r\n let message = `reportAttemptingFullContext d=${decision}, input='${text}'`;\r\n recognizer.notifyErrorListeners(message);\r\n }\r\n reportContextSensitivity(recognizer, dfa, startIndex, stopIndex, prediction, acceptState) {\r\n let format = \"reportContextSensitivity d=%s, input='%s'\";\r\n let decision = this.getDecisionDescription(recognizer, dfa);\r\n let text = recognizer.inputStream.getText(Interval_1.Interval.of(startIndex, stopIndex));\r\n let message = `reportContextSensitivity d=${decision}, input='${text}'`;\r\n recognizer.notifyErrorListeners(message);\r\n }\r\n getDecisionDescription(recognizer, dfa) {\r\n let decision = dfa.decision;\r\n let ruleIndex = dfa.atnStartState.ruleIndex;\r\n let ruleNames = recognizer.ruleNames;\r\n if (ruleIndex < 0 || ruleIndex >= ruleNames.length) {\r\n return decision.toString();\r\n }\r\n let ruleName = ruleNames[ruleIndex];\r\n if (!ruleName) {\r\n return decision.toString();\r\n }\r\n return `${decision} (${ruleName})`;\r\n }\r\n /**\r\n * Computes the set of conflicting or ambiguous alternatives from a\r\n * configuration set, if that information was not already provided by the\r\n * parser.\r\n *\r\n * @param reportedAlts The set of conflicting or ambiguous alternatives, as\r\n * reported by the parser.\r\n * @param configs The conflicting or ambiguous configuration set.\r\n * @returns Returns `reportedAlts` if it is not `undefined`, otherwise\r\n * returns the set of alternatives represented in `configs`.\r\n */\r\n getConflictingAlts(reportedAlts, configs) {\r\n if (reportedAlts != null) {\r\n return reportedAlts;\r\n }\r\n let result = new BitSet_1.BitSet();\r\n for (let config of configs) {\r\n result.set(config.alt);\r\n }\r\n return result;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], DiagnosticErrorListener.prototype, \"syntaxError\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(6, Decorators_1.NotNull)\r\n], DiagnosticErrorListener.prototype, \"reportAmbiguity\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(5, Decorators_1.NotNull)\r\n], DiagnosticErrorListener.prototype, \"reportAttemptingFullContext\", null);\r\n__decorate([\r\n Decorators_1.Override,\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull),\r\n __param(5, Decorators_1.NotNull)\r\n], DiagnosticErrorListener.prototype, \"reportContextSensitivity\", null);\r\n__decorate([\r\n __param(0, Decorators_1.NotNull),\r\n __param(1, Decorators_1.NotNull)\r\n], DiagnosticErrorListener.prototype, \"getDecisionDescription\", null);\r\n__decorate([\r\n Decorators_1.NotNull,\r\n __param(1, Decorators_1.NotNull)\r\n], DiagnosticErrorListener.prototype, \"getConflictingAlts\", null);\r\nexports.DiagnosticErrorListener = DiagnosticErrorListener;\r\n//# sourceMappingURL=DiagnosticErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LexerInterpreter = void 0;\r\nconst Lexer_1 = require(\"./Lexer\");\r\nconst LexerATNSimulator_1 = require(\"./atn/LexerATNSimulator\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Decorators_2 = require(\"./Decorators\");\r\nlet LexerInterpreter = class LexerInterpreter extends Lexer_1.Lexer {\r\n constructor(grammarFileName, vocabulary, ruleNames, channelNames, modeNames, atn, input) {\r\n super(input);\r\n if (atn.grammarType !== 0 /* LEXER */) {\r\n throw new Error(\"IllegalArgumentException: The ATN must be a lexer ATN.\");\r\n }\r\n this._grammarFileName = grammarFileName;\r\n this._atn = atn;\r\n this._ruleNames = ruleNames.slice(0);\r\n this._channelNames = channelNames.slice(0);\r\n this._modeNames = modeNames.slice(0);\r\n this._vocabulary = vocabulary;\r\n this._interp = new LexerATNSimulator_1.LexerATNSimulator(atn, this);\r\n }\r\n get atn() {\r\n return this._atn;\r\n }\r\n get grammarFileName() {\r\n return this._grammarFileName;\r\n }\r\n get ruleNames() {\r\n return this._ruleNames;\r\n }\r\n get channelNames() {\r\n return this._channelNames;\r\n }\r\n get modeNames() {\r\n return this._modeNames;\r\n }\r\n get vocabulary() {\r\n return this._vocabulary;\r\n }\r\n};\r\n__decorate([\r\n Decorators_1.NotNull\r\n], LexerInterpreter.prototype, \"_vocabulary\", void 0);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"atn\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"grammarFileName\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"ruleNames\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"channelNames\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"modeNames\", null);\r\n__decorate([\r\n Decorators_2.Override\r\n], LexerInterpreter.prototype, \"vocabulary\", null);\r\nLexerInterpreter = __decorate([\r\n __param(1, Decorators_1.NotNull)\r\n], LexerInterpreter);\r\nexports.LexerInterpreter = LexerInterpreter;\r\n//# sourceMappingURL=LexerInterpreter.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=ParserErrorListener.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleContextWithAltNum = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:57.4741196-07:00\r\nconst ATN_1 = require(\"./atn/ATN\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst ParserRuleContext_1 = require(\"./ParserRuleContext\");\r\n/** A handy class for use with\r\n *\r\n * options {contextSuperClass=org.antlr.v4.runtime.RuleContextWithAltNum;}\r\n *\r\n * that provides a backing field / impl for the outer alternative number\r\n * matched for an internal parse tree node.\r\n *\r\n * I'm only putting into Java runtime as I'm certain I'm the only one that\r\n * will really every use this.\r\n */\r\nclass RuleContextWithAltNum extends ParserRuleContext_1.ParserRuleContext {\r\n constructor(parent, invokingStateNumber) {\r\n if (invokingStateNumber !== undefined) {\r\n super(parent, invokingStateNumber);\r\n }\r\n else {\r\n super();\r\n }\r\n this._altNumber = ATN_1.ATN.INVALID_ALT_NUMBER;\r\n }\r\n get altNumber() {\r\n return this._altNumber;\r\n }\r\n // @Override\r\n set altNumber(altNum) {\r\n this._altNumber = altNum;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], RuleContextWithAltNum.prototype, \"altNumber\", null);\r\nexports.RuleContextWithAltNum = RuleContextWithAltNum;\r\n//# sourceMappingURL=RuleContextWithAltNum.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleDependency = void 0;\r\n/**\r\n * Declares a dependency upon a grammar rule, along with a set of zero or more dependent rules.\r\n *\r\n * Version numbers within a grammar should be assigned on a monotonically increasing basis to allow for accurate\r\n * tracking of dependent rules.\r\n *\r\n * @author Sam Harwell\r\n */\r\nfunction RuleDependency(dependency) {\r\n return (target, propertyKey, propertyDescriptor) => {\r\n // intentionally empty\r\n };\r\n}\r\nexports.RuleDependency = RuleDependency;\r\n//# sourceMappingURL=RuleDependency.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RuleVersion = void 0;\r\n/**\r\n *\r\n * @author Sam Harwell\r\n */\r\nfunction RuleVersion(version) {\r\n return (target, propertyKey, propertyDescriptor) => {\r\n // intentionally empty\r\n };\r\n}\r\nexports.RuleVersion = RuleVersion;\r\n//# sourceMappingURL=RuleVersion.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=TokenFactory.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=TokenSource.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=TokenStream.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RewriteOperation = exports.TokenStreamRewriter = void 0;\r\n// ConvertTo-TS run at 2016-10-04T11:26:58.1768850-07:00\r\nconst Interval_1 = require(\"./misc/Interval\");\r\nconst Decorators_1 = require(\"./Decorators\");\r\nconst Token_1 = require(\"./Token\");\r\n/**\r\n * Useful for rewriting out a buffered input token stream after doing some\r\n * augmentation or other manipulations on it.\r\n *\r\n * You can insert stuff, replace, and delete chunks. Note that the operations\r\n * are done lazily--only if you convert the buffer to a {@link String} with\r\n * {@link TokenStream#getText()}. This is very efficient because you are not\r\n * moving data around all the time. As the buffer of tokens is converted to\r\n * strings, the {@link #getText()} method(s) scan the input token stream and\r\n * check to see if there is an operation at the current index. If so, the\r\n * operation is done and then normal {@link String} rendering continues on the\r\n * buffer. This is like having multiple Turing machine instruction streams\r\n * (programs) operating on a single input tape. :)\r\n *\r\n * This rewriter makes no modifications to the token stream. It does not ask the\r\n * stream to fill itself up nor does it advance the input cursor. The token\r\n * stream `TokenStream.index` will return the same value before and\r\n * after any {@link #getText()} call.\r\n *\r\n * The rewriter only works on tokens that you have in the buffer and ignores the\r\n * current input cursor. If you are buffering tokens on-demand, calling\r\n * {@link #getText()} halfway through the input will only do rewrites for those\r\n * tokens in the first half of the file.\r\n *\r\n * Since the operations are done lazily at {@link #getText}-time, operations do\r\n * not screw up the token index values. That is, an insert operation at token\r\n * index `i` does not change the index values for tokens\r\n * `i`+1..n-1.\r\n *\r\n * Because operations never actually alter the buffer, you may always get the\r\n * original token stream back without undoing anything. Since the instructions\r\n * are queued up, you can easily simulate transactions and roll back any changes\r\n * if there is an error just by removing instructions. For example,\r\n *\r\n * ```\r\n * CharStream input = new ANTLRFileStream(\"input\");\r\n * TLexer lex = new TLexer(input);\r\n * CommonTokenStream tokens = new CommonTokenStream(lex);\r\n * T parser = new T(tokens);\r\n * TokenStreamRewriter rewriter = new TokenStreamRewriter(tokens);\r\n * parser.startRule();\r\n * ```\r\n *\r\n * Then in the rules, you can execute (assuming rewriter is visible):\r\n *\r\n * ```\r\n * Token t,u;\r\n * ...\r\n * rewriter.insertAfter(t, \"text to put after t\");}\r\n * rewriter.insertAfter(u, \"text after u\");}\r\n * System.out.println(rewriter.getText());\r\n * ```\r\n *\r\n * You can also have multiple \"instruction streams\" and get multiple rewrites\r\n * from a single pass over the input. Just name the instruction streams and use\r\n * that name again when printing the buffer. This could be useful for generating\r\n * a C file and also its header file--all from the same buffer:\r\n *\r\n * ```\r\n * rewriter.insertAfter(\"pass1\", t, \"text to put after t\");}\r\n * rewriter.insertAfter(\"pass2\", u, \"text after u\");}\r\n * System.out.println(rewriter.getText(\"pass1\"));\r\n * System.out.println(rewriter.getText(\"pass2\"));\r\n * ```\r\n *\r\n * If you don't use named rewrite streams, a \"default\" stream is used as the\r\n * first example shows.\r\n */\r\nclass TokenStreamRewriter {\r\n constructor(tokens) {\r\n this.tokens = tokens;\r\n this.programs = new Map();\r\n this.programs.set(TokenStreamRewriter.DEFAULT_PROGRAM_NAME, []);\r\n this.lastRewriteTokenIndexes = new Map();\r\n }\r\n getTokenStream() {\r\n return this.tokens;\r\n }\r\n rollback(instructionIndex, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n let is = this.programs.get(programName);\r\n if (is != null) {\r\n this.programs.set(programName, is.slice(TokenStreamRewriter.MIN_TOKEN_INDEX, instructionIndex));\r\n }\r\n }\r\n deleteProgram(programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n this.rollback(TokenStreamRewriter.MIN_TOKEN_INDEX, programName);\r\n }\r\n insertAfter(tokenOrIndex, text, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n let index;\r\n if (typeof tokenOrIndex === \"number\") {\r\n index = tokenOrIndex;\r\n }\r\n else {\r\n index = tokenOrIndex.tokenIndex;\r\n }\r\n // to insert after, just insert before next index (even if past end)\r\n let rewrites = this.getProgram(programName);\r\n let op = new InsertAfterOp(this.tokens, index, rewrites.length, text);\r\n rewrites.push(op);\r\n }\r\n insertBefore(tokenOrIndex, text, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n let index;\r\n if (typeof tokenOrIndex === \"number\") {\r\n index = tokenOrIndex;\r\n }\r\n else {\r\n index = tokenOrIndex.tokenIndex;\r\n }\r\n let rewrites = this.getProgram(programName);\r\n let op = new InsertBeforeOp(this.tokens, index, rewrites.length, text);\r\n rewrites.push(op);\r\n }\r\n replaceSingle(index, text) {\r\n if (typeof index === \"number\") {\r\n this.replace(index, index, text);\r\n }\r\n else {\r\n this.replace(index, index, text);\r\n }\r\n }\r\n replace(from, to, text, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n if (typeof from !== \"number\") {\r\n from = from.tokenIndex;\r\n }\r\n if (typeof to !== \"number\") {\r\n to = to.tokenIndex;\r\n }\r\n if (from > to || from < 0 || to < 0 || to >= this.tokens.size) {\r\n throw new RangeError(`replace: range invalid: ${from}..${to}(size=${this.tokens.size})`);\r\n }\r\n let rewrites = this.getProgram(programName);\r\n let op = new ReplaceOp(this.tokens, from, to, rewrites.length, text);\r\n rewrites.push(op);\r\n }\r\n delete(from, to, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n if (to === undefined) {\r\n to = from;\r\n }\r\n if (typeof from === \"number\") {\r\n this.replace(from, to, \"\", programName);\r\n }\r\n else {\r\n this.replace(from, to, \"\", programName);\r\n }\r\n }\r\n getLastRewriteTokenIndex(programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n let I = this.lastRewriteTokenIndexes.get(programName);\r\n if (I == null) {\r\n return -1;\r\n }\r\n return I;\r\n }\r\n setLastRewriteTokenIndex(programName, i) {\r\n this.lastRewriteTokenIndexes.set(programName, i);\r\n }\r\n getProgram(name) {\r\n let is = this.programs.get(name);\r\n if (is == null) {\r\n is = this.initializeProgram(name);\r\n }\r\n return is;\r\n }\r\n initializeProgram(name) {\r\n let is = [];\r\n this.programs.set(name, is);\r\n return is;\r\n }\r\n getText(intervalOrProgram, programName = TokenStreamRewriter.DEFAULT_PROGRAM_NAME) {\r\n let interval;\r\n if (intervalOrProgram instanceof Interval_1.Interval) {\r\n interval = intervalOrProgram;\r\n }\r\n else {\r\n interval = Interval_1.Interval.of(0, this.tokens.size - 1);\r\n }\r\n if (typeof intervalOrProgram === \"string\") {\r\n programName = intervalOrProgram;\r\n }\r\n let rewrites = this.programs.get(programName);\r\n let start = interval.a;\r\n let stop = interval.b;\r\n // ensure start/end are in range\r\n if (stop > this.tokens.size - 1) {\r\n stop = this.tokens.size - 1;\r\n }\r\n if (start < 0) {\r\n start = 0;\r\n }\r\n if (rewrites == null || rewrites.length === 0) {\r\n return this.tokens.getText(interval); // no instructions to execute\r\n }\r\n let buf = [];\r\n // First, optimize instruction stream\r\n let indexToOp = this.reduceToSingleOperationPerIndex(rewrites);\r\n // Walk buffer, executing instructions and emitting tokens\r\n let i = start;\r\n while (i <= stop && i < this.tokens.size) {\r\n let op = indexToOp.get(i);\r\n indexToOp.delete(i); // remove so any left have index size-1\r\n let t = this.tokens.get(i);\r\n if (op == null) {\r\n // no operation at that index, just dump token\r\n if (t.type !== Token_1.Token.EOF) {\r\n buf.push(String(t.text));\r\n }\r\n i++; // move to next token\r\n }\r\n else {\r\n i = op.execute(buf); // execute operation and skip\r\n }\r\n }\r\n // include stuff after end if it's last index in buffer\r\n // So, if they did an insertAfter(lastValidIndex, \"foo\"), include\r\n // foo if end==lastValidIndex.\r\n if (stop === this.tokens.size - 1) {\r\n // Scan any remaining operations after last token\r\n // should be included (they will be inserts).\r\n for (let op of indexToOp.values()) {\r\n if (op.index >= this.tokens.size - 1) {\r\n buf.push(op.text.toString());\r\n }\r\n }\r\n }\r\n return buf.join(\"\");\r\n }\r\n /** We need to combine operations and report invalid operations (like\r\n * overlapping replaces that are not completed nested). Inserts to\r\n * same index need to be combined etc... Here are the cases:\r\n *\r\n * I.i.u I.j.v\t\t\t\t\t\t\t\tleave alone, nonoverlapping\r\n * I.i.u I.i.v\t\t\t\t\t\t\t\tcombine: Iivu\r\n *\r\n * R.i-j.u R.x-y.v\t| i-j in x-y\t\t\tdelete first R\r\n * R.i-j.u R.i-j.v\t\t\t\t\t\t\tdelete first R\r\n * R.i-j.u R.x-y.v\t| x-y in i-j\t\t\tERROR\r\n * R.i-j.u R.x-y.v\t| boundaries overlap\tERROR\r\n *\r\n * Delete special case of replace (text==undefined):\r\n * D.i-j.u D.x-y.v\t| boundaries overlap\tcombine to max(min)..max(right)\r\n *\r\n * I.i.u R.x-y.v | i in (x+1)-y\t\t\tdelete I (since insert before\r\n * \t\t\t\t\t\t\t\t\t\t\twe're not deleting i)\r\n * I.i.u R.x-y.v | i not in (x+1)-y\t\tleave alone, nonoverlapping\r\n * R.x-y.v I.i.u | i in x-y\t\t\t\tERROR\r\n * R.x-y.v I.x.u \t\t\t\t\t\t\tR.x-y.uv (combine, delete I)\r\n * R.x-y.v I.i.u | i not in x-y\t\t\tleave alone, nonoverlapping\r\n *\r\n * I.i.u = insert u before op @ index i\r\n * R.x-y.u = replace x-y indexed tokens with u\r\n *\r\n * First we need to examine replaces. For any replace op:\r\n *\r\n * \t\t1. wipe out any insertions before op within that range.\r\n * \t\t2. Drop any replace op before that is contained completely within\r\n * \t that range.\r\n * \t\t3. Throw exception upon boundary overlap with any previous replace.\r\n *\r\n * Then we can deal with inserts:\r\n *\r\n * \t\t1. for any inserts to same index, combine even if not adjacent.\r\n * \t\t2. for any prior replace with same left boundary, combine this\r\n * \t insert with replace and delete this replace.\r\n * \t\t3. throw exception if index in same range as previous replace\r\n *\r\n * Don't actually delete; make op undefined in list. Easier to walk list.\r\n * Later we can throw as we add to index &rarr; op map.\r\n *\r\n * Note that I.2 R.2-2 will wipe out I.2 even though, technically, the\r\n * inserted stuff would be before the replace range. But, if you\r\n * add tokens in front of a method body '{' and then delete the method\r\n * body, I think the stuff before the '{' you added should disappear too.\r\n *\r\n * Return a map from token index to operation.\r\n */\r\n reduceToSingleOperationPerIndex(rewrites) {\r\n // console.log(`rewrites=[${Utils.join(rewrites, \", \")}]`);\r\n // WALK REPLACES\r\n for (let i = 0; i < rewrites.length; i++) {\r\n let op = rewrites[i];\r\n if (op == null) {\r\n continue;\r\n }\r\n if (!(op instanceof ReplaceOp)) {\r\n continue;\r\n }\r\n let rop = op;\r\n // Wipe prior inserts within range\r\n let inserts = this.getKindOfOps(rewrites, InsertBeforeOp, i);\r\n for (let iop of inserts) {\r\n if (iop.index === rop.index) {\r\n // E.g., insert before 2, delete 2..2; update replace\r\n // text to include insert before, kill insert\r\n rewrites[iop.instructionIndex] = undefined;\r\n rop.text = iop.text.toString() + (rop.text != null ? rop.text.toString() : \"\");\r\n }\r\n else if (iop.index > rop.index && iop.index <= rop.lastIndex) {\r\n // delete insert as it's a no-op.\r\n rewrites[iop.instructionIndex] = undefined;\r\n }\r\n }\r\n // Drop any prior replaces contained within\r\n let prevReplaces = this.getKindOfOps(rewrites, ReplaceOp, i);\r\n for (let prevRop of prevReplaces) {\r\n if (prevRop.index >= rop.index && prevRop.lastIndex <= rop.lastIndex) {\r\n // delete replace as it's a no-op.\r\n rewrites[prevRop.instructionIndex] = undefined;\r\n continue;\r\n }\r\n // throw exception unless disjoint or identical\r\n let disjoint = prevRop.lastIndex < rop.index || prevRop.index > rop.lastIndex;\r\n // Delete special case of replace (text==null):\r\n // D.i-j.u D.x-y.v\t| boundaries overlap\tcombine to max(min)..max(right)\r\n if (prevRop.text == null && rop.text == null && !disjoint) {\r\n // console.log(`overlapping deletes: ${prevRop}, ${rop}`);\r\n rewrites[prevRop.instructionIndex] = undefined; // kill first delete\r\n rop.index = Math.min(prevRop.index, rop.index);\r\n rop.lastIndex = Math.max(prevRop.lastIndex, rop.lastIndex);\r\n // console.log(`new rop ${rop}`);\r\n }\r\n else if (!disjoint) {\r\n throw new Error(`replace op boundaries of ${rop} overlap with previous ${prevRop}`);\r\n }\r\n }\r\n }\r\n // WALK INSERTS\r\n for (let i = 0; i < rewrites.length; i++) {\r\n let op = rewrites[i];\r\n if (op == null) {\r\n continue;\r\n }\r\n if (!(op instanceof InsertBeforeOp)) {\r\n continue;\r\n }\r\n let iop = op;\r\n // combine current insert with prior if any at same index\r\n let prevInserts = this.getKindOfOps(rewrites, InsertBeforeOp, i);\r\n for (let prevIop of prevInserts) {\r\n if (prevIop.index === iop.index) {\r\n if (prevIop instanceof InsertAfterOp) {\r\n iop.text = this.catOpText(prevIop.text, iop.text);\r\n rewrites[prevIop.instructionIndex] = undefined;\r\n }\r\n else if (prevIop instanceof InsertBeforeOp) { // combine objects\r\n // convert to strings...we're in process of toString'ing\r\n // whole token buffer so no lazy eval issue with any templates\r\n iop.text = this.catOpText(iop.text, prevIop.text);\r\n // delete redundant prior insert\r\n rewrites[prevIop.instructionIndex] = undefined;\r\n }\r\n }\r\n }\r\n // look for replaces where iop.index is in range; error\r\n let prevReplaces = this.getKindOfOps(rewrites, ReplaceOp, i);\r\n for (let rop of prevReplaces) {\r\n if (iop.index === rop.index) {\r\n rop.text = this.catOpText(iop.text, rop.text);\r\n rewrites[i] = undefined; // delete current insert\r\n continue;\r\n }\r\n if (iop.index >= rop.index && iop.index <= rop.lastIndex) {\r\n throw new Error(`insert op ${iop} within boundaries of previous ${rop}`);\r\n }\r\n }\r\n }\r\n // console.log(`rewrites after=[${Utils.join(rewrites, \", \")}]`);\r\n let m = new Map();\r\n for (let op of rewrites) {\r\n if (op == null) {\r\n // ignore deleted ops\r\n continue;\r\n }\r\n if (m.get(op.index) != null) {\r\n throw new Error(\"should only be one op per index\");\r\n }\r\n m.set(op.index, op);\r\n }\r\n // console.log(`index to op: ${m}`);\r\n return m;\r\n }\r\n catOpText(a, b) {\r\n let x = \"\";\r\n let y = \"\";\r\n if (a != null) {\r\n x = a.toString();\r\n }\r\n if (b != null) {\r\n y = b.toString();\r\n }\r\n return x + y;\r\n }\r\n /** Get all operations before an index of a particular kind */\r\n getKindOfOps(rewrites, kind, before) {\r\n let ops = [];\r\n for (let i = 0; i < before && i < rewrites.length; i++) {\r\n let op = rewrites[i];\r\n if (op == null) {\r\n // ignore deleted\r\n continue;\r\n }\r\n if (op instanceof kind) {\r\n ops.push(op);\r\n }\r\n }\r\n return ops;\r\n }\r\n}\r\nexports.TokenStreamRewriter = TokenStreamRewriter;\r\nTokenStreamRewriter.DEFAULT_PROGRAM_NAME = \"default\";\r\nTokenStreamRewriter.PROGRAM_INIT_SIZE = 100;\r\nTokenStreamRewriter.MIN_TOKEN_INDEX = 0;\r\n// Define the rewrite operation hierarchy\r\nclass RewriteOperation {\r\n constructor(tokens, index, instructionIndex, text) {\r\n this.tokens = tokens;\r\n this.instructionIndex = instructionIndex;\r\n this.index = index;\r\n this.text = text === undefined ? \"\" : text;\r\n }\r\n /** Execute the rewrite operation by possibly adding to the buffer.\r\n * Return the index of the next token to operate on.\r\n */\r\n execute(buf) {\r\n return this.index;\r\n }\r\n toString() {\r\n let opName = this.constructor.name;\r\n let $index = opName.indexOf(\"$\");\r\n opName = opName.substring($index + 1, opName.length);\r\n return \"<\" + opName + \"@\" + this.tokens.get(this.index) +\r\n \":\\\"\" + this.text + \"\\\">\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], RewriteOperation.prototype, \"toString\", null);\r\nexports.RewriteOperation = RewriteOperation;\r\nclass InsertBeforeOp extends RewriteOperation {\r\n constructor(tokens, index, instructionIndex, text) {\r\n super(tokens, index, instructionIndex, text);\r\n }\r\n execute(buf) {\r\n buf.push(this.text.toString());\r\n if (this.tokens.get(this.index).type !== Token_1.Token.EOF) {\r\n buf.push(String(this.tokens.get(this.index).text));\r\n }\r\n return this.index + 1;\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], InsertBeforeOp.prototype, \"execute\", null);\r\n/** Distinguish between insert after/before to do the \"insert afters\"\r\n * first and then the \"insert befores\" at same index. Implementation\r\n * of \"insert after\" is \"insert before index+1\".\r\n */\r\nclass InsertAfterOp extends InsertBeforeOp {\r\n constructor(tokens, index, instructionIndex, text) {\r\n super(tokens, index + 1, instructionIndex, text); // insert after is insert before index+1\r\n }\r\n}\r\n/** I'm going to try replacing range from x..y with (y-x)+1 ReplaceOp\r\n * instructions.\r\n */\r\nclass ReplaceOp extends RewriteOperation {\r\n constructor(tokens, from, to, instructionIndex, text) {\r\n super(tokens, from, instructionIndex, text);\r\n this.lastIndex = to;\r\n }\r\n execute(buf) {\r\n if (this.text != null) {\r\n buf.push(this.text.toString());\r\n }\r\n return this.lastIndex + 1;\r\n }\r\n toString() {\r\n if (this.text == null) {\r\n return \"<DeleteOp@\" + this.tokens.get(this.index) +\r\n \"..\" + this.tokens.get(this.lastIndex) + \">\";\r\n }\r\n return \"<ReplaceOp@\" + this.tokens.get(this.index) +\r\n \"..\" + this.tokens.get(this.lastIndex) + \":\\\"\" + this.text + \"\\\">\";\r\n }\r\n}\r\n__decorate([\r\n Decorators_1.Override\r\n], ReplaceOp.prototype, \"execute\", null);\r\n__decorate([\r\n Decorators_1.Override\r\n], ReplaceOp.prototype, \"toString\", null);\r\n//# sourceMappingURL=TokenStreamRewriter.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=Vocabulary.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceMappingURL=WritableToken.js.map","\"use strict\";\r\n/*!\r\n * Copyright 2016 The ANTLR Project. All rights reserved.\r\n * Licensed under the BSD-3-Clause license. See LICENSE file in the project root for license information.\r\n */\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./ANTLRErrorListener\"), exports);\r\n__exportStar(require(\"./ANTLRErrorStrategy\"), exports);\r\n// export * from \"./ANTLRFileStream\";\r\n__exportStar(require(\"./ANTLRInputStream\"), exports);\r\n__exportStar(require(\"./BailErrorStrategy\"), exports);\r\n__exportStar(require(\"./BufferedTokenStream\"), exports);\r\n__exportStar(require(\"./CharStream\"), exports);\r\n__exportStar(require(\"./CharStreams\"), exports);\r\n__exportStar(require(\"./CodePointBuffer\"), exports);\r\n__exportStar(require(\"./CodePointCharStream\"), exports);\r\n__exportStar(require(\"./CommonToken\"), exports);\r\n__exportStar(require(\"./CommonTokenFactory\"), exports);\r\n__exportStar(require(\"./CommonTokenStream\"), exports);\r\n__exportStar(require(\"./ConsoleErrorListener\"), exports);\r\n__exportStar(require(\"./DefaultErrorStrategy\"), exports);\r\n__exportStar(require(\"./Dependents\"), exports);\r\n__exportStar(require(\"./DiagnosticErrorListener\"), exports);\r\n__exportStar(require(\"./FailedPredicateException\"), exports);\r\n__exportStar(require(\"./InputMismatchException\"), exports);\r\n__exportStar(require(\"./InterpreterRuleContext\"), exports);\r\n__exportStar(require(\"./IntStream\"), exports);\r\n__exportStar(require(\"./Lexer\"), exports);\r\n__exportStar(require(\"./LexerInterpreter\"), exports);\r\n__exportStar(require(\"./LexerNoViableAltException\"), exports);\r\n__exportStar(require(\"./ListTokenSource\"), exports);\r\n__exportStar(require(\"./NoViableAltException\"), exports);\r\n__exportStar(require(\"./Parser\"), exports);\r\n__exportStar(require(\"./ParserErrorListener\"), exports);\r\n__exportStar(require(\"./ParserInterpreter\"), exports);\r\n__exportStar(require(\"./ParserRuleContext\"), exports);\r\n__exportStar(require(\"./ProxyErrorListener\"), exports);\r\n__exportStar(require(\"./ProxyParserErrorListener\"), exports);\r\n__exportStar(require(\"./RecognitionException\"), exports);\r\n__exportStar(require(\"./Recognizer\"), exports);\r\n__exportStar(require(\"./RuleContext\"), exports);\r\n__exportStar(require(\"./RuleContextWithAltNum\"), exports);\r\n__exportStar(require(\"./RuleDependency\"), exports);\r\n__exportStar(require(\"./RuleVersion\"), exports);\r\n__exportStar(require(\"./Token\"), exports);\r\n__exportStar(require(\"./TokenFactory\"), exports);\r\n__exportStar(require(\"./TokenSource\"), exports);\r\n__exportStar(require(\"./TokenStream\"), exports);\r\n__exportStar(require(\"./TokenStreamRewriter\"), exports);\r\n// export * from \"./UnbufferedCharStream\";\r\n// export * from \"./UnbufferedTokenStream\";\r\n__exportStar(require(\"./Vocabulary\"), exports);\r\n__exportStar(require(\"./VocabularyImpl\"), exports);\r\n__exportStar(require(\"./WritableToken\"), exports);\r\n//# sourceMappingURL=index.js.map"],"names":["this","Transition_1","require$$0","Transition","ActionTransition_1","require$$1","ActionTransition","ObjectEqualityComparator_1","ObjectEqualityComparator","DefaultEqualityComparator_1","require$$2","DefaultEqualityComparator","Array2DHashSet_1","require$$3","Array2DHashSet","Array2DHashMap_1","Array2DHashMap","ArrayEqualityComparator_1","ArrayEqualityComparator","ATNState","DecisionState_1","DecisionState","require$$4","PredictionContextCache","require$$5","require$$6","PredictionContext","SemanticContext","ATNConfig_1","require$$7","ATNConfig","BitSet_1","BitSet","ATNConfigSet_1","require$$8","require$$9","require$$10","require$$11","require$$12","ATNConfigSet","DFAState","ATNSimulator","ConsoleErrorListener_1","ConsoleErrorListener","ProxyErrorListener_1","ProxyErrorListener","Recognizer_1","Recognizer","VocabularyImpl_1","VocabularyImpl","DFASerializer_1","DFASerializer","LexerDFASerializer_1","LexerDFASerializer","StarLoopEntryState_1","StarLoopEntryState","DFA_1","DFA","IntegerList_1","IntegerList","Interval_1","Interval","CommonToken_1","CommonToken","CommonTokenFactory","IntegerStack_1","IntegerStack","AcceptStateInfo_1","AcceptStateInfo","LexerIndexedCustomAction_1","LexerIndexedCustomAction","LexerActionExecutor_1","LexerActionExecutor","RecognitionException_1","RecognitionException","LexerNoViableAltException_1","LexerNoViableAltException","OrderedATNConfigSet_1","OrderedATNConfigSet","RuleStopState_1","RuleStopState","require$$13","require$$14","require$$15","require$$16","LexerATNSimulator","Lexer_1","Lexer","IntervalSet_1","IntervalSet","BasicState_1","BasicState","InvalidState_1","InvalidState","AbstractPredicateTransition_1","AbstractPredicateTransition","SetTransition_1","SetTransition","NotSetTransition_1","NotSetTransition","RuleTransition_1","RuleTransition","WildcardTransition_1","WildcardTransition","LL1Analyzer_1","LL1Analyzer","ATN","ATNDeserializationOptions_1","ATNDeserializationOptions","AtomTransition_1","AtomTransition","BlockStartState_1","BlockStartState","BasicBlockStartState_1","BasicBlockStartState","BlockEndState_1","BlockEndState","EpsilonTransition_1","EpsilonTransition","LexerChannelAction_1","LexerChannelAction","LexerCustomAction_1","LexerCustomAction","LexerModeAction_1","LexerModeAction","LexerMoreAction","LexerPopModeAction","LexerPushModeAction_1","LexerPushModeAction","LexerSkipAction","LexerTypeAction_1","LexerTypeAction","LoopEndState_1","LoopEndState","ConflictInfo_1","ConflictInfo","PredicateTransition_1","PredicateTransition","FailedPredicateException_1","FailedPredicateException","InputMismatchException_1","InputMismatchException","DefaultErrorStrategy_1","DefaultErrorStrategy","TerminalNode_1","TerminalNode","ErrorNode_1","ErrorNode","ParseInfo_1","ParseInfo","ProxyParserErrorListener_1","ProxyParserErrorListener","ParseCancellationException_1","ParseCancellationException","BailErrorStrategy_1","BailErrorStrategy","CodePointCharStream_1","CodePointCharStream","BufferedTokenStream_1","BufferedTokenStream","CommonTokenStream_1","CommonTokenStream","ListTokenSource_1","ListTokenSource","MultiMap_1","MultiMap","RuleNode_1","RuleNode","Trees_1","Trees","RuleContext_1","RuleContext","ParserRuleContext_1","ParserRuleContext","InterpreterRuleContext_1","InterpreterRuleContext","ParserInterpreter_1","ParserInterpreter","ParseTreeMatch_1","ParseTreeMatch","XPathLexer_1","XPathLexer","XPathLexerErrorListener_1","XPathLexerErrorListener","XPathElement_1","XPathElement","XPathRuleAnywhereElement_1","XPathRuleAnywhereElement","XPathRuleElement_1","XPathRuleElement","XPathTokenAnywhereElement_1","XPathTokenAnywhereElement","XPathTokenElement_1","XPathTokenElement","XPathWildcardAnywhereElement_1","XPathWildcardAnywhereElement","XPathWildcardElement_1","XPathWildcardElement","XPath_1","XPath","ParseTreePattern_1","ParseTreePattern","RuleTagToken_1","RuleTagToken","Chunk_1","Chunk","TagChunk_1","TagChunk","TextChunk_1","TextChunk","TokenTagToken_1","TokenTagToken","require$$17","require$$18","ParseTreePatternMatcher","DecisionEventInfo_1","DecisionEventInfo","AmbiguityInfo_1","AmbiguityInfo","ContextSensitivityInfo_1","ContextSensitivityInfo","DecisionInfo_1","DecisionInfo","ErrorInfo_1","ErrorInfo","LookaheadEventInfo_1","LookaheadEventInfo","PredicateEvalInfo_1","PredicateEvalInfo","SimulatorState_1","SimulatorState","ProfilingATNSimulator_1","ProfilingATNSimulator","Parser_1","Parser","NoViableAltException_1","NoViableAltException","ParserATNSimulator_1","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","ParserATNSimulator","PlusBlockStartState_1","PlusBlockStartState","PlusLoopbackState_1","PlusLoopbackState","PrecedencePredicateTransition_1","PrecedencePredicateTransition","RangeTransition_1","RangeTransition","RuleStartState_1","RuleStartState","StarBlockStartState_1","StarBlockStartState","StarLoopbackState_1","StarLoopbackState","TokensStartState_1","TokensStartState","UUID_1","UUID","ATNDeserializer_1","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","require$$42","require$$43","ATNDeserializer","AbstractParseTreeVisitor_1","AbstractParseTreeVisitor","ANTLRInputStream_1","ANTLRInputStream","DiagnosticErrorListener_1","DiagnosticErrorListener","LexerInterpreter_1","LexerInterpreter","RuleContextWithAltNum_1","RuleContextWithAltNum","RuleDependency_1","RuleDependency","RuleVersion_1","RuleVersion","TokenStreamRewriter_1","TokenStreamRewriter","require$$44"],"mappings":"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KAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,KAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,KAAI,KAAK,IAAI,OAAO,IAAI,UAAU,EAAE;SAC5B,IAAI,KAAK,EAAE;aACP,KAAK,GAAG,KAAK,CAAC;UACjB;cACI;aACD,GAAG,IAAI,SAAS,CAAC;UACpB;SACD,GAAG,IAAI,OAAO,CAAC;MAClB;KACD,OAAO,GAAG,CAAC;EACd;AACD,CAAY,KAAA,CAAA,IAAA,GAAG,IAAI,CAAC;AACpB,CAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,KAAI,IAAI,CAAC,KAAK,CAAC,EAAE;SACT,OAAO,IAAI,CAAC;MACf;KACD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE;SACpC,OAAO,KAAK,CAAC;MAChB;AACL,KAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACtB;AACD,CAAc,KAAA,CAAA,MAAA,GAAG,MAAM,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,KAAK,CAAC,IAAI,EAAE;AACrB,KAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,C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AC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,uEAAuE;AAC3E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,0EAA0E;AAC9E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,uEAAuE;AAC3E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,0EAA0E;AAC9E,KAAI,yEAAyE;AAC7E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,KAAI,wEAAwE;AAC5E,K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AAC,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,IAAIC,oBAAkB,GAAG,MAAM,kBAAkB,SAAS,cAAc,CAAC,YAAY,CAAC;AACtF,KAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE;AAC7B,SAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;SACX,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;AACjE,SAAQ,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;AAC1C,SAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;AAC/C,SAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;AAC5C,SAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACjC,SAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,SAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,C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AACnD,CAAuBZ,eAAA,CAAA,eAAA,GAAGY,iBAAe,CAAC;AAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155]}