-- If a top-level rule has labels but no head-tag, like this
- Foo = a:Bar b:Baz
- then infer the name of the rule it belongs to
-
-create( $c:{...}, class ) =
- return create($c:{...})
-
-create( h:{...}, class ) =
-
-create( , String)
-
-create( _:{...}, String) = treat as char[]
-create( _:{...}, c[] ) = { create(.,c), create(.,c), ... }
-
-create( $c:{...} ) =
-
-
- - clean up the visualization (?)
-
- - I still don't like Atom.Infer and Atom.Invert...
-
- - better ambiguity debugging tools
-
- - ParseFailed, GSS, Walk, Parser, Sequence, Forest
-
- - Fix the metagrammar (really?)
- - evil problems with (x y? z /ws)
-
- - copyright notices
- - documentation
+ - keywordification (ie globally reject from all productions?
+ - generalized follow-by?)
+
+ - clean up util package
+
+ - currently we GC the doomed stack when the parent dies... but
+ [ideally] 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