checkpoint
[sbp.git] / src / edu / berkeley / sbp / meta / MetaGrammarBindings.java
index 3ba3d2a..f780e80 100644 (file)
@@ -9,14 +9,17 @@ import java.lang.annotation.*;
 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 + ", ";
@@ -47,8 +50,8 @@ public class MetaGrammarBindings {
     }
     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;
         }