X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=TODO;h=daf3667f5e3c10aa0f602930ae2165abf91a6d49;hp=d7afed210b1b4c08633226d90b5e1fededf516d4;hb=eef891a53c43901acccac0dead16a79dbdb34c77;hpb=45d799349e635f1a99e3974e4504a43d5a7aaf33 diff --git a/TODO b/TODO index d7afed2..daf3667 100644 --- a/TODO +++ b/TODO @@ -1,39 +1,55 @@ _____________________________________________________________________________ Immediately + - 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? -- 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) +______________________________________________________________________________ +v1.1 - - 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 @@ -43,8 +59,6 @@ v1.1 - RFC2822 (email message/headers) - clean up the whole Walk situation (?) - - what if Tree<> could unwrap itself? - ______________________________________________________________________________ Soon @@ -56,10 +70,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) @@ -75,6 +85,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