update TODO
[sbp.git] / TODO
diff --git a/TODO b/TODO
index 2cec777..230ec19 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,20 +1,56 @@
 _____________________________________________________________________________
 Immediately
+  - check ability to use epsilon as a conjunct
+  - use 'a'-'z' or 'a-z' instead of [a-z]?
+  - EOF token?
+  - de-genericize?
+  - better toString() methods all around...
+  - foo.add(x)
+    foo.add(y.andnot(x)) ==> this is broken
+      - distinguish Conjunct from Sequence?
+            => !(Conjunct instanceof Reducible)
+  - document the assumption that Sequences that match epsilon
+    must have tag, and that ONLY that tag is returned
+    when the sequence matches epsilon
+  - try to avoid building the parts of the tree that end up getting
+    dropped
+  - double-check all the region logic
+
+  ..................................................
+
+  - paper/techreport opportunities
+      - interaction between RNGLR and follow restrictions
+      - "doomed node" optimization
+
+  - automatically collect time statistics and display
+  - serializable parse tables?
+  - better ambiguity reporting
+      - colorized tree-diffs?
+      - graphviz?
 
-- Migrate Demo.java -> MetaGrammar.java
-    - Figure out serialization
-
-- Clean up the prioritized-match garbage
- - evil problems with      (x y? z /ws)
-
+______________________________________________________________________________
+v1.1
 
-  - better ambiguity debugging tools / visualization
-  - ParseFailed, GSS, Walk, Parser, Sequence, Forest
-  - copyright notices
-  - documentation
+  - Treewalker code compiler?
+  - circular gramars?
+      s = A
+      A = A | "b"
+  - skeleton generator?
+  - precedes restrictions ("<-")
+  - MUST HAVE BETTER ERROR MESSAGES
+     - use for developing java15.g
+  - java15.g
+     - once this is ready, do big announcement
+  - broader regression testing (for stuff like error messages, etc)
+  - More topology untangling [later]
+  - grammar highlighting?
+  - Forest needs a "manual access" API
+      - the unwrap bit in Forest makes it really hard
+        to expose an API for forests
+  - rewriting language? multiple passes?
 
 ______________________________________________________________________________
-v1.1
+v1.2
 
   - finalize metagrammar and rdp-op's
   - write some grammars
@@ -24,8 +60,6 @@ v1.1
       - RFC2822 (email message/headers)
   - clean up the whole Walk situation (?)
 
-  - what if Tree<> could unwrap itself?
-
 
 ______________________________________________________________________________
 Soon
@@ -37,10 +71,6 @@ Soon
        - eliminated statically?
 
   - substring parsing for better error messages
-  - "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)
@@ -56,6 +86,9 @@ Soon
 ______________________________________________________________________________
 Later
 
+  - understand and implement the RNGLR "kernel state" optimization.
+    The _Practical Early Parsing_ paper may help.
+
   - Partly-Linear-PATR? (O(n^6) unification grammar)
 
   - Implement a k-token peek buffer (for each state, see if it "dead