/* * Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License, * Version 1.0, and under the Eclipse Public License, Version 1.0 * (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.bnf; import java.util.ArrayList; /** * The visitor interface for BNF rules. */ public interface BnfVisitor { /** * Visit a rule element. * * @param keyword whether this is a keyword * @param name the element name * @param link the linked rule if it's not a keyword */ void visitRuleElement(boolean keyword, String name, Rule link); /** * Visit a repeat rule. * * @param comma whether the comma is repeated as well * @param rule the element to repeat */ void visitRuleRepeat(boolean comma, Rule rule); /** * Visit a fixed rule. * * @param type the type */ void visitRuleFixed(int type); /** * Visit a rule list. * * @param or true for OR, false for AND * @param list the rules */ void visitRuleList(boolean or, ArrayList<Rule> list); /** * Visit an optional rule. * * @param rule the rule */ void visitRuleOptional(Rule rule); }