antlr-ng
Version:
Next generation ANTLR Tool
144 lines (143 loc) • 8.21 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
var __typeError = (msg) => {
throw TypeError(msg);
};
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
var __runInitializers = (array, flags, self, value) => {
for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
return value;
};
var __decorateElement = (array, flags, name, decorators, target, extra) => {
var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
return __privateGet(this, extra);
}, set [name](x) {
return __privateSet(this, extra, x);
} }, name));
k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
for (var i = decorators.length - 1; i >= 0; i--) {
ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
if (k) {
ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
}
it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
else if (typeof it !== "object" || it === null) __typeError("Object expected");
else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
}
return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
};
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
var _sempredFuncs_dec, _atn_dec, _superClass_dec, _a, _init;
import { ModelElement } from "../../misc/ModelElement.js";
import { JavaTarget } from "../target/JavaTarget.js";
import { ActionText } from "./chunk/ActionText.js";
import { OutputModelObject } from "./OutputModelObject.js";
import { SerializedATN } from "./SerializedATN.js";
import { SerializedJavaATN } from "./SerializedJavaATN.js";
const _Recognizer = class _Recognizer extends (_a = OutputModelObject, _superClass_dec = [ModelElement], _atn_dec = [ModelElement], _sempredFuncs_dec = [ModelElement], _a) {
constructor(factory) {
super(factory);
__publicField(this, "name");
__publicField(this, "grammarName");
__publicField(this, "grammarFileName");
__publicField(this, "accessLevel");
__publicField(this, "tokens");
/**
* This field is provided only for compatibility with code generation targets which have not yet been
* updated to use {@link #literalNames} and {@link #symbolicNames}.
*
* @deprecated
*/
__publicField(this, "tokenNames");
__publicField(this, "literalNames");
__publicField(this, "symbolicNames");
__publicField(this, "ruleNames");
__publicField(this, "rules");
__publicField(this, "superClass", __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
__publicField(this, "atn", __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
__publicField(this, "sempredFuncs", __runInitializers(_init, 16, this, /* @__PURE__ */ new Map())), __runInitializers(_init, 19, this);
const g = factory.g;
const gen = factory.getGenerator();
let lastSlash = g.fileName.lastIndexOf("/");
if (lastSlash === -1) {
lastSlash = g.fileName.lastIndexOf("\\");
}
this.grammarFileName = lastSlash > -1 ? g.fileName.substring(lastSlash + 1) : g.fileName;
this.grammarName = g.name;
this.name = g.getRecognizerName();
this.accessLevel = g.getOptionString("accessLevel");
this.tokens = /* @__PURE__ */ new Map();
for (const [key, ttype] of g.tokenNameToTypeMap) {
if (ttype > 0) {
this.tokens.set(gen.target.escapeIfNeeded(key), ttype);
}
}
this.ruleNames = new Set(g.rules.keys());
this.rules = Array.from(g.rules.values());
if (gen.target instanceof JavaTarget) {
this.atn = new SerializedJavaATN(factory, g.atn);
} else {
this.atn = new SerializedATN(factory, g.atn);
}
if (g.getOptionString("superClass")) {
this.superClass = new ActionText(void 0, g.getOptionString("superClass") ?? void 0);
}
this.tokenNames = _Recognizer.translateTokenStringsToTarget(g.getTokenDisplayNames(), gen);
this.literalNames = _Recognizer.translateTokenStringsToTarget(g.getTokenLiteralNames(), gen);
this.symbolicNames = _Recognizer.translateTokenStringsToTarget(g.getTokenSymbolicNames(), gen);
}
static translateTokenStringsToTarget(tokenStrings, gen) {
let result = tokenStrings.slice();
for (let i = 0; i < tokenStrings.length; i++) {
result[i] = _Recognizer.translateTokenStringToTarget(tokenStrings[i], gen);
}
let lastTrueEntry = result.length - 1;
while (lastTrueEntry >= 0 && !result[lastTrueEntry]) {
lastTrueEntry--;
}
if (lastTrueEntry < result.length - 1) {
result = result.slice(0, lastTrueEntry + 1);
}
return result;
}
static translateTokenStringToTarget(tokenName, gen) {
if (tokenName == null) {
return null;
}
if (tokenName.startsWith("'")) {
const targetString = gen.target.getTargetStringLiteralFromANTLRStringLiteral(gen, tokenName, false, true);
return `"'` + targetString + `'"`;
} else {
return gen.target.getTargetStringLiteralFromString(tokenName, true);
}
}
};
_init = __decoratorStart(_a);
__decorateElement(_init, 5, "superClass", _superClass_dec, _Recognizer);
__decorateElement(_init, 5, "atn", _atn_dec, _Recognizer);
__decorateElement(_init, 5, "sempredFuncs", _sempredFuncs_dec, _Recognizer);
__decoratorMetadata(_init, _Recognizer);
__name(_Recognizer, "Recognizer");
let Recognizer = _Recognizer;
export {
Recognizer
};