import { Alternation as e, Alternative as t, NonTerminal as n, Option as r, Repetition as i, RepetitionMandatory as a, RepetitionMandatoryWithSeparator as o, RepetitionWithSeparator as s, Rule as c, Terminal as l } from "./model.js";
//#region ../../node_modules/@chevrotain/gast/lib/src/visitor.js
var u = class {
	visit(u) {
		let d = u;
		switch (d.constructor) {
			case n: return this.visitNonTerminal(d);
			case t: return this.visitAlternative(d);
			case r: return this.visitOption(d);
			case a: return this.visitRepetitionMandatory(d);
			case o: return this.visitRepetitionMandatoryWithSeparator(d);
			case s: return this.visitRepetitionWithSeparator(d);
			case i: return this.visitRepetition(d);
			case e: return this.visitAlternation(d);
			case l: return this.visitTerminal(d);
			case c: return this.visitRule(d);
			/* c8 ignore next 2 */
			default: throw Error("non exhaustive match");
		}
	}
	/* c8 ignore next */
	visitNonTerminal(e) {}
	/* c8 ignore next */
	visitAlternative(e) {}
	/* c8 ignore next */
	visitOption(e) {}
	/* c8 ignore next */
	visitRepetition(e) {}
	/* c8 ignore next */
	visitRepetitionMandatory(e) {}
	/* c8 ignore next 3 */
	visitRepetitionMandatoryWithSeparator(e) {}
	/* c8 ignore next */
	visitRepetitionWithSeparator(e) {}
	/* c8 ignore next */
	visitAlternation(e) {}
	/* c8 ignore next */
	visitTerminal(e) {}
	/* c8 ignore next */
	visitRule(e) {}
};
//#endregion
export { u as GAstVisitor };
