org.glowroot.shaded.h2.bnf.BnfVisitor Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2004-2013 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.glowroot.shaded.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 list);
/**
* Visit an optional rule.
*
* @param rule the rule
*/
void visitRuleOptional(Rule rule);
}