- - simplify metagrammar => go to top-down rewriting => finalize metagrammar and rdp-op's
-
- - What is our use model?
- - Parse, attribute, unify (ag)
- - Parse, transform tree, walk (rdp)
- - Parse, walk
- - cascading tree rewrites
-
- ==> use the middle formalism "for now" and in meta.g; layer others
- on top of it
-
- - Lay down the law on the different kinds of Sequence productions
- and how they work.
-
- => mydrop
- => mylift
-
- - whitespace-in-braces?
- - Deal with the problem of zero-rep productions and whitespace insertion
-
- - switch maximal to not-followed-by (~/~)
-
- - should Union.add() be there?
- - should Atom.top() be there?
-
- - fix the location stuff, it's broken
- - decent/better error messages
+ - clean up util package
+
+ - serializable parse tables?
+ - all that is required now is to separate Pos and Position
+
+ - currently we GC the doomed stack when the parent dies... but we
+ should also GC the parent when the doomed stack dies if it was a
+ positive conjunct.
+
+ - single-tree-return assumption
+ - have a way to let question marks not be tagged?
+ - "flat" sequences (no subtrees contain "::"s?) -- stringifiable
+ - make it so that we can have multi-result nonterminals
+ so long as they always appear under double-colons?
+ auto-insert the unwrap?
+
+ - get rid of Sequence.Singleton if possible
+
+ - use 'a'-'z' or 'a-z' instead of [a-z]?
+ - de-genericize?
+ - foo.add(x)
+ foo.add(y.andnot(x)) ==> this is broken
+ - distinguish Conjunct from Sequence?
+ => !(Conjunct instanceof Reducible)
+ - avoid building the parts of the tree that end up getting dropped
+ - is it worth adding an additional class of states for these?
+ - or perhaps just a runtime node marker (hasNonDroppedParent)
+ - "ambiguity modulo dropped fragments"?
+ - this may conceal highly inefficient grammars...
+ - double-check all the region logic
+ - automatically collect time statistics and display