import java.lang.reflect.*;
import java.io.*;
+/** The java classes typically used to represent a parsed grammar AST */
public class MetaGrammarBindings {
- public static @bind class Grammar {
+ public static class Grammar {
public NonTerminal get(String s) {
for(NonTerminal nt : nonterminals)
if (nt.name.equals(s)) return nt;
return null;
}
- public @bind.arg NonTerminal[] nonterminals;
+ public NonTerminal[] nonterminals;
+ public Grammar() { }
+ public @bind Grammar(NonTerminal[] nonterminals) { this.nonterminals = nonterminals; }
public String toString() {
String ret = "[ ";
for(NonTerminal nt : nonterminals) ret += nt + ", ";
}
public static class NonTerminal extends Un {
public String name = null;
- public @bind NonTerminal(@bind.arg("Word") String name,
- @bind.arg("RHS") Seq[][] sequences) {
+ public @bind NonTerminal(@bind.arg String name,
+ @bind.arg Seq[][] sequences) {
this.name = name;
this.sequences = sequences;
}