UNPKG

pegisland

Version:

General PEG-based parser supporting island grammars with lake symbols

59 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpressionCollector = void 0; const PostorderExpressionTraverser_1 = require("./PostorderExpressionTraverser"); class ExpressionCollector { constructor() { this.expressions = []; } collect(rules) { this.expressions = []; const traverser = new PostorderExpressionTraverser_1.PostorderExpressionTraverser(this); rules.forEach((rule) => traverser.traverse(rule.rhs)); return this.expressions; } visitNonterminal(pe) { this.expressions.push(pe); } visitTerminal(pe) { this.expressions.push(pe); } visitZeroOrMore(pe) { this.expressions.push(pe); } visitOneOrMore(pe) { this.expressions.push(pe); } visitOptional(pe) { this.expressions.push(pe); } visitAnd(pe) { this.expressions.push(pe); } visitNot(pe) { this.expressions.push(pe); } visitSequence(pe) { this.expressions.push(pe); } visitOrderedChoice(pe) { this.expressions.push(pe); } visitGrouping(pe) { this.expressions.push(pe); } visitRewriting(pe) { this.expressions.push(pe); } visitColon(pe) { this.expressions.push(pe); } visitColonNot(pe) { this.expressions.push(pe); } visitLake(pe) { this.expressions.push(pe); } } exports.ExpressionCollector = ExpressionCollector; //# sourceMappingURL=ExpressionCollector.js.map