UNPKG

eo-lsp-server

Version:

Language Server for a syntax highlighter for the EO Language

1,193 lines (1,164 loc) 1.79 MB
#!/usr/bin/env node /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 4267: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; // SPDX-FileCopyrightText: Copyright (c) 2024-2025 Objectionary.com // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.IndentationLexer = void 0; const antlr4ts_1 = __nccwpck_require__(2968); const EoLexer_1 = __nccwpck_require__(8774); const EoParser_1 = __nccwpck_require__(5001); /** * Custom lexer that wraps EoLexer to handle indentation-based TAB/UNTAB tokens * Modeled after the Java EoIndentLexer implementation */ class IndentationLexer extends antlr4ts_1.Lexer { constructor(input) { super(input); this.tokens = []; this.indent = []; this.spaces = []; this.wrapped = new EoLexer_1.EoLexer(input); this.indent.push(0); } /** * Returns the part of the string that comes after the first newline character. * If no newline is found, returns the entire string. * @param text - Input string (typically an EOL token) * @returns The substring after the first '\n', or the original string if '\n' is absent. */ static textSpaces(text) { const afterNewline = text.slice(text.indexOf("\n") + 1); return afterNewline; } /** * Emits TAB tokens to increase indentation by the specified number of levels. * @param shift - Number of indentation levels to add * @returns Void */ emitIndent(shift) { for (let i = 0; i < shift; i++) { this.emitToken(IndentationLexer.TAB); } } /** * Emits UNTAB tokens to decrease indentation by the specified number of levels. * @param shift - Number of indentation levels to remove * @returns Void */ emitDedent(shift) { for (let i = 0; i < shift; i++) { this.emitToken(IndentationLexer.UNTAB); } } /** * Creates and emits a new TAB or UNTAB token at the start of the next line. * The token's text is set to "TAB" or "UNTAB" based on its type. * @param type - Token type (must be IndentationLexer.TAB or IndentationLexer.UNTAB) * @returns Void */ emitToken(type) { const tkn = new antlr4ts_1.CommonToken(type, type === IndentationLexer.TAB ? "TAB" : "UNTAB"); tkn.line = this.wrapped.line; tkn.charPositionInLine = 0; this.tokens.push(tkn); } /** * Adjusts indentation levels and emits TAB/UNTAB tokens based on the difference between * the current and previous indentation. Also appends the next token to the token stream. * @param tabs - Current indentation level (e.g., number of leading spaces in the new line). * @param next - The next token to be processed (e.g., the first token after indentation). * @returns Void */ handleTabs(tabs, next) { const last = this.indent[this.indent.length - 1]; const shift = tabs - last; if (shift < 0) { let dedentCount = 0; while (this.indent.length > 1 && this.indent[this.indent.length - 1] > tabs) { this.indent.pop(); dedentCount++; } this.emitDedent(dedentCount); if (this.indent[this.indent.length - 1] < tabs) { this.indent.push(tabs); this.emitIndent(1); } } else if (shift > 0) { this.emitIndent(shift); this.indent.push(tabs); } this.tokens.push(next); } /** * Processes indentation by analyzing line breaks (`EOL`) and leading whitespace. * - Tracks spaces after each `EOL` to determine indentation levels. * - Emits `TAB`/`UNTAB` tokens when indentation increases/decreases. * - Closes all open indents at the end (e.g., for unclosed blocks). * * Logic: * 1. For consecutive `EOL` tokens, stores their leading spaces but doesn't change indentation. * 2. When a non-`EOL` token follows `EOL`, calculates indentation shift and emits tokens. * 3. Finalizes by dedenting remaining levels and appending the last token (usually EOF). * @returns Void */ lookAhead() { let current = null; let next = this.wrapped.nextToken(); while (next.type !== antlr4ts_1.Token.EOF) { if ((current === null || current.type !== EoLexer_1.EoLexer.EOL) && next.type === EoLexer_1.EoLexer.EOL) { this.spaces.push(IndentationLexer.textSpaces(next.text || "")); this.tokens.push(next); } else if (current !== null && current.type === EoLexer_1.EoLexer.EOL && next.type === EoLexer_1.EoLexer.EOL) { this.spaces.push(IndentationLexer.textSpaces(next.text || "")); this.handleTabs(Math.floor(this.spaces[this.spaces.length - 1].length / 2), next); } else if (current !== null && current.type === EoLexer_1.EoLexer.EOL && next.type !== EoLexer_1.EoLexer.EOL) { const spaceText = this.spaces.pop() || ""; this.handleTabs(Math.floor(spaceText.length / 2), next); } else { this.tokens.push(next); } current = next; next = this.wrapped.nextToken(); } if (current !== null) { if (current.type === EoLexer_1.EoLexer.EOL) { const spaceText = this.spaces.pop() || ""; this.handleTabs(Math.floor(spaceText.length / 2), next); } else { this.tokens.push(current); } } while (this.indent.length > 1) { this.indent.pop(); this.emitDedent(1); } this.tokens.push(next); } /** * Overrides nextToken to provide indentation-aware tokens * @returns Next token */ nextToken() { if (this.tokens.length === 0) { this.lookAhead(); } return this.tokens.shift(); } /** * Removes all error listeners from both this lexer and the wrapped lexer * @returns void */ removeErrorListeners() { super.removeErrorListeners(); this.wrapped.removeErrorListeners(); } get channelNames() { return this.wrapped.channelNames; } get grammarFileName() { return this.wrapped.grammarFileName; } get modeNames() { return this.wrapped.modeNames; } get ruleNames() { return this.wrapped.ruleNames; } get serializedATN() { return this.wrapped.serializedATN; } get vocabulary() { return this.wrapped.vocabulary; } } exports.IndentationLexer = IndentationLexer; IndentationLexer.TAB = EoParser_1.EoParser.TAB; IndentationLexer.UNTAB = EoParser_1.EoParser.UNTAB; //# sourceMappingURL=IndentationLexer.js.map /***/ }), /***/ 7346: /***/ ((__unused_webpack_module, exports) => { "use strict"; // SPDX-FileCopyrightText: Copyright (c) 2024-2025 Objectionary.com // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Capabilities = void 0; class Capabilities { constructor() { this.configuration = false; this.workspace = false; this.diagnostics = false; this.tokens = true; } initialize(capabilities) { this.configuration = !!(capabilities.workspace?.configuration); this.workspace = !!(capabilities.workspace?.workspaceFolders); this.diagnostics = !!(capabilities.textDocument?.publishDiagnostics?.relatedInformation); this.tokens = !!(capabilities.textDocument?.semanticTokens); } } exports.Capabilities = Capabilities; //# sourceMappingURL=capabilities.js.map /***/ }), /***/ 2013: /***/ ((__unused_webpack_module, exports) => { "use strict"; // SPDX-FileCopyrightText: Copyright (c) 2024-2025 Objectionary.com // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.EoVersion = void 0; /** * The version of EO syntax. * * The value of this const is updated by the Makefile. */ exports.EoVersion = "0.0.0"; //# sourceMappingURL=eo-version.js.map /***/ }), /***/ 584: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; // SPDX-FileCopyrightText: Copyright (c) 2024-2025 Objectionary.com // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ErrorListener = void 0; const parserError_1 = __nccwpck_require__(1997); class ErrorListener { constructor() { /** * Array of errors detected during the parsing */ this.errors = []; } syntaxError(recognizer, symbol, line, position, msg, e) { this.errors.push(new parserError_1.ParserError(line, position, msg)); } } exports.ErrorListener = ErrorListener; //# sourceMappingURL=errorListener.js.map /***/ }), /***/ 6523: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; // SPDX-FileCopyrightText: Copyright (c) 2024-2025 Objectionary.com // SPDX-License-Identifier: MIT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.buildTokenSetAndMap = buildTokenSetAndMap; exports.resetTokenCache = resetTokenCache; exports.antlrTypeNumToString = antlrTypeNumToString; exports.getTokenTypes = getTokenTypes; exports.tokenize = tokenize; exports.getParserErrors = getParserErrors; const fs = __nccwpck_require__(9896); const path = __nccwpck_require__(6928); const processor_1 = __nccwpck_require__(4214); const errorListener_1 = __nccwpck_require__(584); /** * Set of the token types present in the EO's grammar file */ let types = null; /** * Maps the token numbers returned by the parser to the token type names * present in the EO's grammar file */ let mapper = null; /** * the correct path to EoLexer.tokens file */ const location = __nccwpck_require__.ab + "EoLexer.tokens"; /** * Builds the token type set and token number to token type map using the ANTLR4 * tokens file, if any of these has not been built yet. * @param locationPath expect to see the path to EoLexer.tokens file * @returns {void} */ function buildTokenSetAndMap(locationPath) { if (!types || !mapper) { types = new Set(); mapper = new Map(); try { const text = fs.readFileSync(locationPath, { encoding: "utf-8" }); text.split("\n").forEach(elem => { if (elem[0] !== "'") { const pair = elem.split("="); if (pair.length === 2) { types.add(pair[0]); mapper.set(Number(pair[1]), pair[0]); } } }); } catch (e) { throw new Error("EoLexer.tokens file missing"); } } } /** * Resets the values of the `types` and `mapper` module variables to null. * * For testing purposes only * @returns Void */ function resetTokenCache() { types = null; mapper = null; } /** * Converts a type number into textual token type like "META", since antlr lexer * returns token types as numbers * @param num - Number of the token type returned by the parser * @returns - Name of the token type defined by EO's grammar */ function antlrTypeNumToString(num) { buildTokenSetAndMap(__nccwpck_require__.ab + "EoLexer.tokens"); return mapper.get(num); } /** * Retrieves all token type names as defined in EO's grammar * @returns - Set of all the token type names define in EO's grammar */ function getTokenTypes() { buildTokenSetAndMap(__nccwpck_require__.ab + "EoLexer.tokens"); return types; } /** * Tokenizes an input text using the ANTLR4 tokenizer * @param input - Text to be tokenized * @returns - Array of AntlrTokens containing the tokens in the text */ function tokenize(input) { const processor = new processor_1.Processor(input); processor.tokens.fill(); return processor.tokens.getTokens(); } /** * Parses the input text and returns the parsing errors detected * @param input - Text to be parsed * @returns - Array of parsing errors detected during the parsing */ function getParserErrors(input) { const processor = new processor_1.Processor(input); const listener = new errorListener_1.ErrorListener(); processor.lexer.removeErrorListeners(); processor.parser.removeErrorListeners(); processor.parser.addErrorListener(listener); processor.parser.program(); return listener.errors; } //# sourceMappingURL=parser.js.map /***/ }), /***/ 8774: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; // Generated from Eo.g4 by ANTLR 4.9.0-SNAPSHOT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.EoLexer = void 0; const ATNDeserializer_1 = __nccwpck_require__(3264); const Lexer_1 = __nccwpck_require__(2066); const LexerATNSimulator_1 = __nccwpck_require__(1861); const VocabularyImpl_1 = __nccwpck_require__(9496); const Utils = __nccwpck_require__(556); class EoLexer extends Lexer_1.Lexer { // @Override // @NotNull get vocabulary() { return EoLexer.VOCABULARY; } // tslint:enable:no-trailing-whitespace constructor(input) { super(input); this._interp = new LexerATNSimulator_1.LexerATNSimulator(EoLexer._ATN, this); } // @Override get grammarFileName() { return "Eo.g4"; } // @Override get ruleNames() { return EoLexer.ruleNames; } // @Override get serializedATN() { return EoLexer._serializedATN; } // @Override get channelNames() { return EoLexer.channelNames; } // @Override get modeNames() { return EoLexer.modeNames; } static get _ATN() { if (!EoLexer.__ATN) { EoLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(EoLexer._serializedATN)); } return EoLexer.__ATN; } } exports.EoLexer = EoLexer; EoLexer.COMMENTARY = 1; EoLexer.META = 2; EoLexer.ROOT = 3; EoLexer.HOME = 4; EoLexer.STAR = 5; EoLexer.CONST = 6; EoLexer.COLON = 7; EoLexer.ARROW = 8; EoLexer.XI = 9; EoLexer.PLUS = 10; EoLexer.MINUS = 11; EoLexer.QUESTION = 12; EoLexer.SPACE = 13; EoLexer.DOT = 14; EoLexer.LSQ = 15; EoLexer.RSQ = 16; EoLexer.LB = 17; EoLexer.RB = 18; EoLexer.PHI = 19; EoLexer.RHO = 20; EoLexer.HASH = 21; EoLexer.TILDE = 22; EoLexer.APOSTROPHE = 23; EoLexer.EOL = 24; EoLexer.BYTES = 25; EoLexer.STRING = 26; EoLexer.INT = 27; EoLexer.FLOAT = 28; EoLexer.HEX = 29; EoLexer.NAME = 30; EoLexer.TEXT = 31; // tslint:disable:no-trailing-whitespace EoLexer.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN", ]; // tslint:disable:no-trailing-whitespace EoLexer.modeNames = [ "DEFAULT_MODE", ]; EoLexer.ruleNames = [ "COMMENTARY", "META", "ROOT", "HOME", "STAR", "CONST", "COLON", "ARROW", "XI", "PLUS", "MINUS", "QUESTION", "SPACE", "DOT", "LSQ", "RSQ", "LB", "RB", "PHI", "RHO", "HASH", "TILDE", "APOSTROPHE", "INDENT", "LINEBREAK", "EOL", "BYTE", "EMPTY_BYTES", "LINE_BYTES", "BYTES", "ESCAPE_SEQUENCE", "STRING", "ZERO", "INT", "EXPONENT", "FLOAT", "HEX", "NAME", "TEXT_MARK", "TEXT", ]; EoLexer._LITERAL_NAMES = [ undefined, undefined, undefined, "'Q'", "'QQ'", "'*'", "'!'", "':'", "'>'", "'$'", "'+'", "'-'", "'?'", "' '", "'.'", "'['", "']'", "'('", "')'", "'@'", "'^'", "'#'", "'~'", "'''", ]; EoLexer._SYMBOLIC_NAMES = [ undefined, "COMMENTARY", "META", "ROOT", "HOME", "STAR", "CONST", "COLON", "ARROW", "XI", "PLUS", "MINUS", "QUESTION", "SPACE", "DOT", "LSQ", "RSQ", "LB", "RB", "PHI", "RHO", "HASH", "TILDE", "APOSTROPHE", "EOL", "BYTES", "STRING", "INT", "FLOAT", "HEX", "NAME", "TEXT", ]; EoLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(EoLexer._LITERAL_NAMES, EoLexer._SYMBOLIC_NAMES, []); EoLexer._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02!\u0134\b\x01" + "\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" + "\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" + "\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" + "\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" + "\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t" + "\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t" + "\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x03\x02\x03" + "\x02\x03\x02\x07\x02W\n\x02\f\x02\x0E\x02Z\v\x02\x03\x02\x03\x02\x05\x02" + "^\n\x02\x03\x03\x03\x03\x03\x03\x03\x03\x06\x03d\n\x03\r\x03\x0E\x03e" + "\x07\x03h\n\x03\f\x03\x0E\x03k\v\x03\x03\x04\x03\x04\x03\x05\x03\x05\x03" + "\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03\t\x03\t\x03\n\x03" + "\n\x03\v\x03\v\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0F\x03\x0F" + "\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13\x03\x14" + "\x03\x14\x03\x15\x03\x15\x03\x16\x03\x16\x03\x17\x03\x17\x03\x18\x03\x18" + "\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x05\x1A\x9E\n\x1A\x03" + "\x1B\x03\x1B\x07\x1B\xA2\n\x1B\f\x1B\x0E\x1B\xA5\v\x1B\x03\x1C\x03\x1C" + "\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x06\x1E" + "\xB1\n\x1E\r\x1E\x0E\x1E\xB2\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03" + "\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\xBE\n\x1F\f\x1F\x0E\x1F\xC1\v\x1F" + "\x05\x1F\xC3\n\x1F\x03 \x03 \x03 \x03 \x05 \xC9\n \x03 \x05 \xCC\n \x03" + " \x03 \x03 \x06 \xD1\n \r \x0E \xD2\x03 \x03 \x03 \x05 \xD8\n \x03!\x03" + "!\x03!\x07!\xDD\n!\f!\x0E!\xE0\v!\x03!\x03!\x03\"\x03\"\x03#\x03#\x05" + "#\xE8\n#\x03#\x03#\x05#\xEC\n#\x03#\x03#\x07#\xF0\n#\f#\x0E#\xF3\v#\x05" + "#\xF5\n#\x03$\x03$\x03$\x05$\xFA\n$\x03$\x06$\xFD\n$\r$\x0E$\xFE\x03%" + "\x03%\x05%\u0103\n%\x03%\x06%\u0106\n%\r%\x0E%\u0107\x03%\x03%\x06%\u010C" + "\n%\r%\x0E%\u010D\x03%\x05%\u0111\n%\x03&\x03&\x03&\x03&\x06&\u0117\n" + "&\r&\x0E&\u0118\x03\'\x03\'\x07\'\u011D\n\'\f\'\x0E\'\u0120\v\'\x03(\x03" + "(\x03(\x03(\x03)\x03)\x03)\x03)\x05)\u012A\n)\x03)\x03)\x07)\u012E\n)" + "\f)\x0E)\u0131\v)\x03)\x03)\x03\u012F\x02\x02*\x03\x02\x03\x05\x02\x04" + "\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v" + "\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11!" + "\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02\x19" + "1\x02\x023\x02\x025\x02\x1A7\x02\x029\x02\x02;\x02\x02=\x02\x1B?\x02\x02" + "A\x02\x1CC\x02\x02E\x02\x1DG\x02\x02I\x02\x1EK\x02\x1FM\x02 O\x02\x02" + "Q\x02!\x03\x02\x0F\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F\"\"\x04\x02" + "2;CH\n\x02$$))^^ddhhppttvv\x03\x0225\x03\x0229\x06\x02\f\f\x0F\x0F$$^" + "^\x03\x023;\x03\x022;\x04\x02GGgg\x05\x022;CHch\x03\x02c|\x03\x02^^\x03" + "\x0E\x02\v\x02\f\x02\x0F\x02\x0F\x02\"\x02#\x02)\x02+\x02.\x02.\x020\x02" + "0\x02<\x02=\x02A\x02A\x02]\x02]\x02_\x02_\x02}\x02\x7F\x02\uF337\x03\uF337" + "\x03\u014D\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03" + "\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02" + "\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02" + "\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02" + "\x02\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02" + "\x02\x02\x02!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02" + "\x02\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-" + "\x03\x02\x02\x02\x02/\x03\x02\x02\x02\x025\x03\x02\x02\x02\x02=\x03\x02" + "\x02\x02\x02A\x03\x02\x02\x02\x02E\x03\x02\x02\x02\x02I\x03\x02\x02\x02" + "\x02K\x03\x02\x02\x02\x02M\x03\x02\x02\x02\x02Q\x03\x02\x02\x02\x03]\x03" + "\x02\x02\x02\x05_\x03\x02\x02\x02\x07l\x03\x02\x02\x02\tn\x03\x02\x02" + "\x02\vq\x03\x02\x02\x02\rs\x03\x02\x02\x02\x0Fu\x03\x02\x02\x02\x11w\x03" + "\x02\x02\x02\x13y\x03\x02\x02\x02\x15{\x03\x02\x02\x02\x17}\x03\x02\x02" + "\x02\x19\x7F\x03\x02\x02\x02\x1B\x81\x03\x02\x02\x02\x1D\x83\x03\x02\x02" + "\x02\x1F\x85\x03\x02\x02\x02!\x87\x03\x02\x02\x02#\x89\x03\x02\x02\x02" + "%\x8B\x03\x02\x02\x02\'\x8D\x03\x02\x02\x02)\x8F\x03\x02\x02\x02+\x91" + "\x03\x02\x02\x02-\x93\x03\x02\x02\x02/\x95\x03\x02\x02\x021\x97\x03\x02" + "\x02\x023\x9D\x03\x02\x02\x025\x9F\x03\x02\x02\x027\xA6\x03\x02\x02\x02" + "9\xA9\x03\x02\x02\x02;\xAC\x03\x02\x02\x02=\xC2\x03\x02\x02\x02?\xD7\x03" + "\x02\x02\x02A\xD9\x03\x02\x02\x02C\xE3\x03\x02\x02\x02E\xE7\x03\x02\x02" + "\x02G\xF6\x03\x02\x02\x02I\u0102\x03\x02\x02\x02K\u0112\x03\x02\x02\x02" + "M\u011A\x03\x02\x02\x02O\u0121\x03\x02\x02\x02Q\u0125\x03\x02\x02\x02" + "S^\x05+\x16\x02TX\x05+\x16\x02UW\n\x02\x02\x02VU\x03\x02\x02\x02WZ\x03" + "\x02\x02\x02XV\x03\x02\x02\x02XY\x03\x02\x02\x02Y[\x03\x02\x02\x02ZX\x03" + "\x02\x02\x02[\\\n\x03\x02\x02\\^\x03\x02\x02\x02]S\x03\x02\x02\x02]T\x03" + "\x02\x02\x02^\x04\x03\x02\x02\x02_`\x05\x15\v\x02`i\x05M\'\x02ac\x05\x1B" + "\x0E\x02bd\n\x03\x02\x02cb\x03\x02\x02\x02de\x03\x02\x02\x02ec\x03\x02" + "\x02\x02ef\x03\x02\x02\x02fh\x03\x02\x02\x02ga\x03\x02\x02\x02hk\x03\x02" + "\x02\x02ig\x03\x02\x02\x02ij\x03\x02\x02\x02j\x06\x03\x02\x02\x02ki\x03" + "\x02\x02\x02lm\x07S\x02\x02m\b\x03\x02\x02\x02no\x07S\x02\x02op\x07S\x02" + "\x02p\n\x03\x02\x02\x02qr\x07,\x02\x02r\f\x03\x02\x02\x02st\x07#\x02\x02" + "t\x0E\x03\x02\x02\x02uv\x07<\x02\x02v\x10\x03\x02\x02\x02wx\x07@\x02\x02" + "x\x12\x03\x02\x02\x02yz\x07&\x02\x02z\x14\x03\x02\x02\x02{|\x07-\x02\x02" + "|\x16\x03\x02\x02\x02}~\x07/\x02\x02~\x18\x03\x02\x02\x02\x7F\x80\x07" + "A\x02\x02\x80\x1A\x03\x02\x02\x02\x81\x82\x07\"\x02\x02\x82\x1C\x03\x02" + "\x02\x02\x83\x84\x070\x02\x02\x84\x1E\x03\x02\x02\x02\x85\x86\x07]\x02" + "\x02\x86 \x03\x02\x02\x02\x87\x88\x07_\x02\x02\x88\"\x03\x02\x02\x02\x89" + "\x8A\x07*\x02\x02\x8A$\x03\x02\x02\x02\x8B\x8C\x07+\x02\x02\x8C&\x03\x02" + "\x02\x02\x8D\x8E\x07B\x02\x02\x8E(\x03\x02\x02\x02\x8F\x90\x07`\x02\x02" + "\x90*\x03\x02\x02\x02\x91\x92\x07%\x02\x02\x92,\x03\x02\x02\x02\x93\x94" + "\x07\x80\x02\x02\x94.\x03\x02\x02\x02\x95\x96\x07)\x02\x02\x960\x03\x02" + "\x02\x02\x97\x98\x05\x1B\x0E\x02\x98\x99\x05\x1B\x0E\x02\x992\x03\x02" + "\x02\x02\x9A\x9E\x07\f\x02\x02\x9B\x9C\x07\x0F\x02\x02\x9C\x9E\x07\f\x02" + "\x02\x9D\x9A\x03\x02\x02\x02\x9D\x9B\x03\x02\x02\x02\x9E4\x03\x02\x02" + "\x02\x9F\xA3\x053\x1A\x02\xA0\xA2\x051\x19\x02\xA1\xA0\x03\x02\x02\x02" + "\xA2\xA5\x03\x02\x02\x02\xA3\xA1\x03\x02\x02\x02\xA3\xA4\x03\x02\x02\x02" + "\xA46\x03\x02\x02\x02\xA5\xA3\x03\x02\x02\x02\xA6\xA7\t\x04\x02\x02\xA7" + "\xA8\t\x04\x02\x02\xA88\x03\x02\x02\x02\xA9\xAA\x05\x17\f\x02\xAA\xAB" + "\x05\x17\f\x02\xAB:\x03\x02\x02\x02\xAC\xB0\x057\x1C\x02\xAD\xAE\x05\x17" + "\f\x02\xAE\xAF\x057\x1C\x02\xAF\xB1\x03\x02\x02\x02\xB0\xAD\x03\x02\x02" + "\x02\xB1\xB2\x03\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB2\xB3\x03\x02\x02" + "\x02\xB3<\x03\x02\x02\x02\xB4\xC3\x059\x1D\x02\xB5\xB6\x057\x1C\x02\xB6" + "\xB7\x05\x17\f\x02\xB7\xC3\x03\x02\x02\x02\xB8\xBF\x05;\x1E\x02\xB9\xBA" + "\x05\x17\f\x02\xBA\xBB\x055\x1B\x02\xBB\xBC\x05;\x1E\x02\xBC\xBE\x03\x02" + "\x02\x02\xBD\xB9\x03\x02\x02\x02\xBE\xC1\x03\x02\x02\x02\xBF\xBD\x03\x02" + "\x02\x02\xBF\xC0\x03\x02\x02\x02\xC0\xC3\x03\x02\x02\x02\xC1\xBF\x03\x02" + "\x02\x02\xC2\xB4\x03\x02\x02\x02\xC2\xB5\x03\x02\x02\x02\xC2\xB8\x03\x02" + "\x02\x02\xC3>\x03\x02\x02\x02\xC4\xC5\x07^\x02\x02\xC5\xD8\t\x05\x02\x02" + "\xC6\xCB\x07^\x02\x02\xC7\xC9\t\x06\x02\x02\xC8\xC7\x03\x02\x02\x02\xC8" + "\xC9\x03\x02\x02\x02\xC9\xCA\x03\x02\x02\x02\xCA\xCC\t\x07\x02\x02\xCB" + "\xC8\x03\x02\x02\x02\xCB\xCC\x03\x02\x02\x02\xCC\xCD\x03\x02\x02\x02\xCD" + "\xD8\t\x07\x02\x02\xCE\xD0\x07^\x02\x02\xCF\xD1\x07w\x02\x02\xD0\xCF\x03" + "\x02\x02\x02\xD1\xD2\x03\x02\x02\x02\xD2\xD0\x03\x02\x02\x02\xD2\xD3\x03" + "\x02\x02\x02\xD3\xD4\x03\x02\x02\x02\xD4\xD5\x057\x1C\x02\xD5\xD6\x05" + "7\x1C\x02\xD6\xD8\x03\x02\x02\x02\xD7\xC4\x03\x02\x02\x02\xD7\xC6\x03" + "\x02\x02\x02\xD7\xCE\x03\x02\x02\x02\xD8@\x03\x02\x02\x02\xD9\xDE\x07" + "$\x02\x02\xDA\xDD\n\b\x02\x02\xDB\xDD\x05? \x02\xDC\xDA\x03\x02\x02\x02" + "\xDC\xDB\x03\x02\x02\x02\xDD\xE0\x03\x02\x02\x02\xDE\xDC\x03\x02\x02\x02" + "\xDE\xDF\x03\x02\x02\x02\xDF\xE1\x03\x02\x02\x02\xE0\xDE\x03\x02\x02\x02" + "\xE1\xE2\x07$\x02\x02\xE2B\x03\x02\x02\x02\xE3\xE4\x072\x02\x02\xE4D\x03" + "\x02\x02\x02\xE5\xE8\x05\x15\v\x02\xE6\xE8\x05\x17\f\x02\xE7\xE5\x03\x02" + "\x02\x02\xE7\xE6\x03\x02\x02\x02\xE7\xE8\x03\x02\x02\x02\xE8\xF4\x03\x02" + "\x02\x02\xE9\xF5\x05C\"\x02\xEA\xEC\x05C\"\x02\xEB\xEA\x03\x02\x02\x02" + "\xEB\xEC\x03\x02\x02\x02\xEC\xED\x03\x02\x02\x02\xED\xF1\t\t\x02\x02\xEE" + "\xF0\t\n\x02\x02\xEF\xEE\x03\x02\x02\x02\xF0\xF3\x03\x02\x02\x02\xF1\xEF" + "\x03\x02\x02\x02\xF1\xF2\x03\x02\x02\x02\xF2\xF5\x03\x02\x02\x02\xF3\xF1" + "\x03\x02\x02\x02\xF4\xE9\x03\x02\x02\x02\xF4\xEB\x03\x02\x02\x02\xF5F" + "\x03\x02\x02\x02\xF6\xF9\t\v\x02\x02\xF7\xFA\x05\x15\v\x02\xF8\xFA\x05" + "\x17\f\x02\xF9\xF7\x03\x02\x02\x02\xF9\xF8\x03\x02\x02\x02\xF9\xFA\x03" + "\x02\x02\x02\xFA\xFC\x03\x02\x02\x02\xFB\xFD\x042;\x02\xFC\xFB\x03\x02" + "\x02\x02\xFD\xFE\x03\x02\x02\x02\xFE\xFC\x03\x02\x02\x02\xFE\xFF\x03\x02" + "\x02\x02\xFFH\x03\x02\x02\x02\u0100\u0103\x05\x15\v\x02\u0101\u0103\x05" + "\x17\f\x02\u0102\u0100\x03\x02\x02\x02\u0102\u0101\x03\x02\x02\x02\u0102" + "\u0103\x03\x02\x02\x02\u0103\u0105\x03\x02\x02\x02\u0104\u0106\t\n\x02" + "\x02\u0105\u0104\x03\x02\x02\x02\u0106\u0107\x03\x02\x02\x02\u0107\u0105" + "\x03\x02\x02\x02\u0107\u0108\x03\x02\x02\x02\u0108\u0109\x03\x02\x02\x02" + "\u0109\u010B\x05\x1D\x0F\x02\u010A\u010C\t\n\x02\x02\u010B\u010A\x03\x02" + "\x02\x02\u010C\u010D\x03\x02\x02\x02\u010D\u010B\x03\x02\x02\x02\u010D" + "\u010E\x03\x02\x02\x02\u010E\u0110\x03\x02\x02\x02\u010F\u0111\x05G$\x02" + "\u0110\u010F\x03\x02\x02\x02\u0110\u0111\x03\x02\x02\x02\u0111J\x03\x02" + "\x02\x02\u0112\u0113\x072\x02\x02\u0113\u0114\x07z\x02\x02\u0114\u0116" + "\x03\x02\x02\x02\u0115\u0117\t\f\x02\x02\u0116\u0115\x03\x02\x02\x02\u0117" + "\u0118\x03\x02\x02\x02\u0118\u0116\x03\x02\x02\x02\u0118\u0119\x03\x02" + "\x02\x02\u0119L\x03\x02\x02\x02\u011A\u011E\t\r\x02\x02\u011B\u011D\n" + "\x0F\x02\x02\u011C\u011B\x03\x02\x02\x02\u011D\u0120\x03\x02\x02\x02\u011E" + "\u011C\x03\x02\x02\x02\u011E\u011F\x03\x02\x02\x02\u011FN\x03\x02\x02" + "\x02\u0120\u011E\x03\x02\x02\x02\u0121\u0122\x07$\x02\x02\u0122\u0123" + "\x07$\x02\x02\u0123\u0124\x07$\x02\x02\u0124P\x03\x02\x02\x02\u0125\u0129" + "\x05O(\x02\u0126\u012A\x07\f\x02\x02\u0127\u0128\x07\x0F\x02\x02\u0128" + "\u012A\x07\f\x02\x02\u0129\u0126\x03\x02\x02\x02\u0129\u0127\x03\x02\x02" + "\x02\u012A\u012F\x03\x02\x02\x02\u012B\u012E\n\x0E\x02\x02\u012C\u012E" + "\x05? \x02\u012D\u012B\x03\x02\x02\x02\u012D\u012C\x03\x02\x02\x02\u012E" + "\u0131\x03\x02\x02\x02\u012F\u0130\x03\x02\x02\x02\u012F\u012D\x03\x02" + "\x02\x02\u0130\u0132\x03\x02\x02\x02\u0131\u012F\x03\x02\x02\x02\u0132" + "\u0133\x05O(\x02\u0133R\x03\x02\x02\x02!\x02X]ei\x9D\xA3\xB2\xBF\xC2\xC8" + "\xCB\xD2\xD7\xDC\xDE\xE7\xEB\xF1\xF4\xF9\xFE\u0102\u0107\u010D\u0110\u0118" + "\u011E\u0129\u012D\u012F\x02"; //# sourceMappingURL=EoLexer.js.map /***/ }), /***/ 5001: /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; // Generated from Eo.g4 by ANTLR 4.9.0-SNAPSHOT Object.defineProperty(exports, "__esModule", ({ value: true })); exports.VapplicationArgBoundNextContext = exports.VapplicationArgBoundCurrentContext = exports.VapplicationArgBoundContext = exports.VapplicationArgsSpecificContext = exports.VapplicationArgsReversedContext = exports.VapplicationArgsContext = exports.CompactArrayContext = exports.VapplicationHeadContext = exports.TvapplicationContext = exports.VapplicationContext = exports.HapplicationArgScopedContext = exports.HapplicationArgContext = exports.HapplicationReversedFirstContext = exports.HapplicationTailContext = exports.HapplicationTailScopedContext = exports.HapplicationArgUnboundContext = exports.ApplicableContext = exports.HapplicationHeadExtendedContext = exports.HapplicationHeadContext = exports.HapplicationReversedContext = exports.AphiContext = exports.OnlyAphiContext = exports.HapplicationExtendedContext = exports.HapplicationReversedHeadContext = exports.HapplicationContext = exports.TapplicationContext = exports.ApplicationContext = exports.VoidContext = exports.VoidsContext = exports.TestsContext = exports.InnersContext = exports.InnersOrEolContext = exports.TestsOrEolContext = exports.TformationContext = exports.FormationContext = exports.AtomContext = exports.JustContext = exports.TmasterBodyContext = exports.MasterBodyContext = exports.SubMasterContext = exports.TsubMasterContext = exports.TboundContext = exports.BoundContext = exports.ObjectContext = exports.CommentOptionalContext = exports.CommentContext = exports.MetasContext = exports.EopContext = exports.ProgramContext = exports.EoParser = void 0; exports.DataContext = exports.AsContext = exports.ScopeContext = exports.ArrowContext = exports.SuffixContext = exports.TarrowContext = exports.TnameContext = exports.OnameContext = exports.OnameOrTnameContext = exports.FnameContext = exports.AnameContext = exports.ReversedContext = exports.FinisherContext = exports.BeginnerContext = exports.MethodTailContext = exports.VmethodHeadVapplicationContext = exports.VmethodHeadApplicationTailContext = exports.VmethodHeadContext = exports.VmethodContext = exports.HmethodContext = exports.MethodContext = exports.HanonymInnerContext = exports.OnlyphiTailContext = exports.OnlyphiContext = exports.HanonymContext = exports.HformationContext = exports.FormationNamedContext = exports.VapplicationArgUnboundNextContext = exports.VapplicationArgUnboundCurrentContext = exports.VapplicationArgUnboundContext = void 0; const ATN_1 = __nccwpck_require__(9171); const ATNDeserializer_1 = __nccwpck_require__(3264); const FailedPredicateException_1 = __nccwpck_require__(6713); const NoViableAltException_1 = __nccwpck_require__(3372); const Parser_1 = __nccwpck_require__(8429); const ParserRuleContext_1 = __nccwpck_require__(9412); const ParserATNSimulator_1 = __nccwpck_require__(5674); const RecognitionException_1 = __nccwpck_require__(7122); const Token_1 = __nccwpck_require__(1701); const VocabularyImpl_1 = __nccwpck_require__(9496); const Utils = __nccwpck_require__(556); class EoParser extends Parser_1.Parser { // @Override // @NotNull get vocabulary() { return EoParser.VOCABULARY; } // tslint:enable:no-trailing-whitespace // @Override get grammarFileName() { return "Eo.g4"; } // @Override get ruleNames() { return EoParser.ruleNames; } // @Override get serializedATN() { return EoParser._serializedATN; } createFailedPredicateException(predicate, message) { return new FailedPredicateException_1.FailedPredicateException(this, predicate, message); } constructor(input) { super(input); this._interp = new ParserATNSimulator_1.ParserATNSimulator(EoParser._ATN, this); } // @RuleVersion(0) program() { let _localctx = new ProgramContext(this._ctx, this.state); this.enterRule(_localctx, 0, EoParser.RULE_program); let _la; try { this.enterOuterAlt(_localctx, 1); { this.state = 159; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === EoParser.META) { { this.state = 158; this.metas(); } } this.state = 161; this.object(); this.state = 162; this.match(EoParser.EOF); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) eop() { let _localctx = new EopContext(this._ctx, this.state); this.enterRule(_localctx, 2, EoParser.RULE_eop); try { this.enterOuterAlt(_localctx, 1); { this.state = 164; this.match(EoParser.EOL); this.state = 165; this.match(EoParser.EOL); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) metas() { let _localctx = new MetasContext(this._ctx, this.state); this.enterRule(_localctx, 4, EoParser.RULE_metas); try { let _alt; this.enterOuterAlt(_localctx, 1); { this.state = 171; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 1, this._ctx); while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { this.state = 167; this.match(EoParser.META); this.state = 168; this.match(EoParser.EOL); } } } this.state = 173; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 1, this._ctx); } this.state = 174; this.match(EoParser.META); this.state = 175; this.eop(); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) comment() { let _localctx = new CommentContext(this._ctx, this.state); this.enterRule(_localctx, 6, EoParser.RULE_comment); try { this.enterOuterAlt(_localctx, 1); { this.state = 177; this.match(EoParser.COMMENTARY); this.state = 178; this.match(EoParser.EOL); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) commentOptional() { let _localctx = new CommentOptionalContext(this._ctx, this.state); this.enterRule(_localctx, 8, EoParser.RULE_commentOptional); try { let _alt; this.enterOuterAlt(_localctx, 1); { this.state = 183; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); while (_alt !== 2 && _alt !== ATN_1.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { this.state = 180; this.comment(); } } } this.state = 185; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); } } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) object() { let _localctx = new ObjectContext(this._ctx, this.state); this.enterRule(_localctx, 10, EoParser.RULE_object); try { this.state = 190; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 3, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { this.state = 186; this.commentOptional(); this.state = 187; this.masterBody(); } break; case 2: this.enterOuterAlt(_localctx, 2); { this.state = 189; this.bound(); } break; } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) bound() { let _localctx = new BoundContext(this._ctx, this.state); this.enterRule(_localctx, 12, EoParser.RULE_bound); try { this.enterOuterAlt(_localctx, 1); { this.state = 192; this.commentOptional(); this.state = 204; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 6, this._ctx)) { case 1: { this.state = 193; this.application(); } break; case 2: { { this.state = 196; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 4, this._ctx)) { case 1: { this.state = 194; this.method(); } break; case 2: { this.state = 195; this.just(); } break; } this.state = 200; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 5, this._ctx)) { case 1: { this.state = 198; this.onameOrTname(); } break; case 2: { this.state = 199; this.aphi(); } break; } } this.state = 202; this.match(EoParser.EOL); } break; } } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) tbound() { let _localctx = new TboundContext(this._ctx, this.state); this.enterRule(_localctx, 14, EoParser.RULE_tbound); try { this.enterOuterAlt(_localctx, 1); { this.state = 206; this.commentOptional(); this.state = 216; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 8, this._ctx)) { case 1: { this.state = 207; this.tapplication(); } break; case 2: { { this.state = 210; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 7, this._ctx)) { case 1: { this.state = 208; this.method(); } break; case 2: { this.state = 209; this.just(); } break; } this.state = 212; this.tname(); } this.state = 214; this.match(EoParser.EOL); } break; } } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) tsubMaster() { let _localctx = new TsubMasterContext(this._ctx, this.state); this.enterRule(_localctx, 16, EoParser.RULE_tsubMaster); try { this.enterOuterAlt(_localctx, 1); { this.state = 218; this.commentOptional(); this.state = 219; this.tmasterBody(); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) subMaster() { let _localctx = new SubMasterContext(this._ctx, this.state); this.enterRule(_localctx, 18, EoParser.RULE_subMaster); try { this.enterOuterAlt(_localctx, 1); { this.state = 221; this.commentOptional(); this.state = 222; this.masterBody(); } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) masterBody() { let _localctx = new MasterBodyContext(this._ctx, this.state); this.enterRule(_localctx, 20, EoParser.RULE_masterBody); try { this.state = 232; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 10, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { this.state = 224; this.formation(); } break; case 2: this.enterOuterAlt(_localctx, 2); { this.state = 230; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 9, this._ctx)) { case 1: { this.state = 225; this.atom(); } break; case 2: { this.state = 226; this.hanonym(); this.state = 227; this.onameOrTname(); this.state = 228; this.match(EoParser.EOL); } break; } } break; } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) { _localctx.exception = re; this._errHandler.reportError(this, re); this._errHandler.recover(this, re); } else { throw re; } } finally { this.exitRule(); } return _localctx; } // @RuleVersion(0) tmasterBody() { let _localctx = new TmasterBodyContext(this._ctx, this.state); this.enterRule(_localctx, 22, EoParser.RULE_tmasterBody); try { this.state = 242; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 12, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { this.state = 234; this.tformation(); } break; case 2: this.enterOuterAlt(_localctx, 2); { this.state = 240; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 11, this._ctx)) { case 1: { this.state = 235; this.atom(); } break; case 2: { this.state = 236; this.hanonym(); { this.state = 237; this.tname(); } this.state = 238; this.match(EoParser.EOL); } break; } } break; } } catch (re) { if (re instanceof RecognitionException_1.RecognitionException) {