UNPKG

@cucumber/gherkin

Version:
30 lines 3.66 kB
export default class AstNode { ruleType; // biome-ignore lint/suspicious/noExplicitAny: keys and values are heterogeneous AST entries subItems = new Map(); constructor(ruleType) { this.ruleType = ruleType; } // biome-ignore lint/suspicious/noExplicitAny: keys and values are heterogeneous AST entries add(type, obj) { let items = this.subItems.get(type); if (items === undefined) { items = []; this.subItems.set(type, items); } items.push(obj); } getSingle(ruleType) { return (this.subItems.get(ruleType) || [])[0]; } getItems(ruleType) { return this.subItems.get(ruleType) || []; } getToken(tokenType) { return (this.subItems.get(tokenType) || [])[0]; } getTokens(tokenType) { return this.subItems.get(tokenType) || []; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXN0Tm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Bc3ROb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sT0FBTztJQUlFLFFBQVE7SUFIcEMsNEZBQTRGO0lBQzNFLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFBO0lBRWpELFlBQTRCLFFBQWtCO3dCQUFsQixRQUFRO0lBQWEsQ0FBQztJQUVsRCw0RkFBNEY7SUFDckYsR0FBRyxDQUFDLElBQVMsRUFBRSxHQUFRO1FBQzVCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLEtBQUssR0FBRyxFQUFFLENBQUE7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDaEMsQ0FBQztRQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxRQUFrQjtRQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxRQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUMxQyxDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQW9CO1FBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRU0sU0FBUyxDQUFDLFNBQW9CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIElUb2tlbiBmcm9tICcuL0lUb2tlbi5qcydcbmltcG9ydCB0eXBlIHsgUnVsZVR5cGUsIFRva2VuVHlwZSB9IGZyb20gJy4vUGFyc2VyLmpzJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBc3ROb2RlIHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBrZXlzIGFuZCB2YWx1ZXMgYXJlIGhldGVyb2dlbmVvdXMgQVNUIGVudHJpZXNcbiAgcHJpdmF0ZSByZWFkb25seSBzdWJJdGVtcyA9IG5ldyBNYXA8YW55LCBhbnlbXT4oKVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBydWxlVHlwZTogUnVsZVR5cGUpIHt9XG5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBrZXlzIGFuZCB2YWx1ZXMgYXJlIGhldGVyb2dlbmVvdXMgQVNUIGVudHJpZXNcbiAgcHVibGljIGFkZCh0eXBlOiBhbnksIG9iajogYW55KSB7XG4gICAgbGV0IGl0ZW1zID0gdGhpcy5zdWJJdGVtcy5nZXQodHlwZSlcbiAgICBpZiAoaXRlbXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaXRlbXMgPSBbXVxuICAgICAgdGhpcy5zdWJJdGVtcy5zZXQodHlwZSwgaXRlbXMpXG4gICAgfVxuICAgIGl0ZW1zLnB1c2gob2JqKVxuICB9XG5cbiAgcHVibGljIGdldFNpbmdsZShydWxlVHlwZTogUnVsZVR5cGUpIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViSXRlbXMuZ2V0KHJ1bGVUeXBlKSB8fCBbXSlbMF1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtcyhydWxlVHlwZTogUnVsZVR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJJdGVtcy5nZXQocnVsZVR5cGUpIHx8IFtdXG4gIH1cblxuICBwdWJsaWMgZ2V0VG9rZW4odG9rZW5UeXBlOiBUb2tlblR5cGUpIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViSXRlbXMuZ2V0KHRva2VuVHlwZSkgfHwgW10pWzBdXG4gIH1cblxuICBwdWJsaWMgZ2V0VG9rZW5zKHRva2VuVHlwZTogVG9rZW5UeXBlKTogSVRva2VuPFRva2VuVHlwZT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViSXRlbXMuZ2V0KHRva2VuVHlwZSkgfHwgW11cbiAgfVxufVxuIl19