All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kohsuke.rngom.ast.builder.GrammarSection Maven / Gradle / Ivy

Go to download

Old JAXB Binding Compiler. Contains source code needed for binding customization files into java sources. In other words: the *tool* to generate java classes for the given xml representation.

There is a newer version: 4.0.5
Show newest version
package org.kohsuke.rngom.ast.builder;

import org.kohsuke.rngom.ast.om.Location;
import org.kohsuke.rngom.ast.om.ParsedElementAnnotation;
import org.kohsuke.rngom.ast.om.ParsedPattern;

/**
 * The container that can have <define> elements.
 * 

* {@link Div}, {@link Grammar}, {@link Include}, or {@link IncludedGrammar}. */ public interface GrammarSection< P extends ParsedPattern, E extends ParsedElementAnnotation, L extends Location, A extends Annotations, CL extends CommentList> { static final class Combine { private final String name; private Combine(String name) { this.name = name; } final public String toString() { return name; } } static final Combine COMBINE_CHOICE = new Combine("choice"); static final Combine COMBINE_INTERLEAVE = new Combine("interleave"); // using \u0000 guarantees that the name will be never used as // a user-defined pattern name. static final String START = "\u0000#start\u0000"; /** * Called when a pattern is defined. * * @param name * Name of the pattern. For the definition by a <start/> element, * this parameter is the same as {@link #START}. * to test if it's a named pattern definition or the start pattern definition. * @param combine * null or {@link #COMBINE_CHOICE} or {@link #COMBINE_INTERLEAVE} depending * on the value of the combine attribute. * @param pattern * The pattern to be defined. */ void define( String name, Combine combine, P pattern, L loc, A anno) throws BuildException; /** * Called when an annotation is found. */ void topLevelAnnotation(E ea) throws BuildException; /** * Called when a comment is found. */ void topLevelComment(CL comments) throws BuildException; /** * Called when <div> is found. * * @return * the returned {@link Div} object will receive callbacks for structures * inside the <div> element. */ Div makeDiv(); /** * Returns null if already in an include. */ Include makeInclude(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy