______________________________________________________________________________
-pre-1.0
-
- - Javadoc comments
+Immediately
- switch maximal to not-followed-by (~/~)
- fix the location stuff, it's broken
- decent/better error messages
- - finalize metagrammar
+ - write some grammars
- Java grammar
- TeX (math?)
- URL (RFC)
- RFC2822 (email message/headers)
-
- - WIKI!!! TEX!!!
+ - Wiki grammar
______________________________________________________________________________
-Undecided
-
- - public API for hates/needs
+Soon
- clean up the whole Walk situation
+
- cleaner solution to "maximal"?
+
- "lift" cases:
- right now I can only lift the last child in a forest... begs
the question of what the right representation for Forests is
if we need to be able to do lift operations on it.
+ - Parameterized LR
+ - "Regular Right Part" grammars (NP Chapman, etc)
+ - Attribute unification
______________________________________________________________________________
-post-1.0
+Later
- Implement a k-token peek buffer (for each state, see if it "dead
ends" during the next k Phases based solely on state -- ignoring
public Object _leftbrace_(String s) { return SELF; }
public Object _plus_(final Element r) { return new Rep(r, null, false, false); }
//public Element _tilde__slash__tilde_(final Element r) { return Repeat.maximal(r); }
- public Object _plus__slash_(final Element r, Element s) { /*return Repeat.many1(r, s);*/ return new Rep(r, s, false, false); }
+ public Object _plus__slash_(final Element r, Object s) {
+ if (s instanceof String) s = CharToken.string((String)s);
+ return new Rep(r, (Element)s, false, false);
+ }
//public Element _star__slash_(final Element r, Element s) { return Repeat.many0(r, s); }
//public Element _star__star_(final Element r, Element s) { return Repeat.maximal(Repeat.many0(r, s)); }
public Object _plus__plus_(final Element r) { return new Rep(r, null, true, false); }
else if (o[i] instanceof MyLift) { o2[j] = CharToken.string(tag = ((MyLift)o[i]).s); drops[j] = true; }
else if (o[i] instanceof String) { o2[j] = CharToken.string( ((String)o[i]) ); drops[j] = true; }
else if (o[i] instanceof Rep) o2[j] = ((Rep)o[i]).build(ws);
+ //else if (o[i] instanceof PreBrace) o2[j]
else o2[j] = (Element)o[i];
if (dropAll.contains(o2[j])) drops[j] = true;