X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmeta%2FMetaGrammarBindings.java;h=6b12da98af38b8e34d67f33f550a3f358335b5c0;hp=5168c34746493074c51bf204af98067a19428eea;hb=80128a38a1c907f1860a5cb13769d691be059a5f;hpb=b5ae4ceb563fd4d52514ef4f4206c5c2be8140ca diff --git a/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java b/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java index 5168c34..6b12da9 100644 --- a/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java +++ b/src/edu/berkeley/sbp/meta/MetaGrammarBindings.java @@ -11,6 +11,8 @@ import java.io.*; /** The java classes typically used to represent a parsed grammar AST */ public class MetaGrammarBindings { + + /** A grammar (a set of nonterminals) */ public static class Grammar extends HashMap { public @bind Grammar(NonTerminal[] nonterminals) { for(NonTerminal nt : nonterminals) this.put(nt.name, nt); } @@ -20,6 +22,7 @@ public class MetaGrammarBindings { return ret + " ]"; } } + public abstract static class Un extends El { public Seq[][] sequences; public void build(MetaGrammar.Context cx, Union u) { @@ -42,6 +45,7 @@ public class MetaGrammarBindings { } } } + public static class NonTerminal extends Un { public String name = null; public @bind NonTerminal(@bind.arg String name, @@ -63,10 +67,9 @@ public class MetaGrammarBindings { } } - //public static @bind.as void range(char c) { } public static class Range { - public @bind.as("range") Range(char only) { first = only; last = only; } - public @bind.as("-") Range(char first, char last) { this.first = first; this.last = last; } + public @bind Range(char only) { first = only; last = only; } + public @bind Range(char first, char last) { this.first = first; this.last = last; } public char first; public char last; }