UNPKG

gherkin

Version:
34 lines (26 loc) 794 B
import { RuleType, TokenType } from './Parser' import Token from './Token' export default class AstNode { private readonly subItems = new Map<any, any[]>() constructor(public readonly ruleType: RuleType) {} public add(type: any, obj: any) { let items = this.subItems.get(type) if (items === undefined) { items = [] this.subItems.set(type, items) } items.push(obj) } public getSingle(ruleType: RuleType) { return (this.subItems.get(ruleType) || [])[0] } public getItems(ruleType: RuleType) { return this.subItems.get(ruleType) || [] } public getToken(tokenType: TokenType) { return (this.subItems.get(tokenType) || [])[0] } public getTokens(tokenType: TokenType): Token[] { return this.subItems.get(tokenType) || [] } }