Ted Zlatanov wrote: > is there a plan for P::FD at the moment? After Apocalypse 5, I'm very > curious how P::FD will use the new Perl 6 regex engine.
It probably won't. The new regex engine will render P::FD redundant. > I also would love to find out what features are planned, and maybe even help > with some of them. Thanks. I've appended my old ToDo list below, to give you an idea what I was thinking, pre-A5. What I'm thinking post-A5 is that the Perl 5 P::FD may be called Perl6::Regexes instead, and simply implement the A5 design (with some custom extensions of my own). > Will this come in the Exegesis 5? No. E5 won't talk about P::FD at all. > Should we discuss it on [EMAIL PROTECTED], on the perl6 mailing lists, > or telepathically? You're welcome too, but I would have time to participate much, I'm afraid. I'm on tour and very short on both time and connectivity at present. Sorry. Damian --------------------------------- To Do ===== Generalize repetitions (A5) -----------cut-----------cut-----------cut-----------cut-----------cut---------- some mechanism to easily specify required vs optional repeated alternatives and mutually exclusive alernatives -----------cut-----------cut-----------cut-----------cut-----------cut---------- Document why the use of return is wrong in an action (A5) -----------cut-----------cut-----------cut-----------cut-----------cut---------- Fix line counter. -----------cut-----------cut-----------cut-----------cut-----------cut---------- Fix truncation of traces -----------cut-----------cut-----------cut-----------cut-----------cut---------- Superpositional parsing (A5): rule candidate { (<any <protein_structure_1> | <protein_structure_2> | <protein_structure_3> >) $0 := { $1 > $threshold } -----------cut-----------cut-----------cut-----------cut-----------cut---------- Allow rules to determine how much text has been consumed by rule (A5) rule: sub1 sub2 sub3 { $return = $RD_CONSUMED } -----------cut-----------cut-----------cut-----------cut-----------cut---------- <autotext> support: allow Parse::RecDescemt to take a grammar and construct a "reconstructor" for autotree'd data structures. For example: $parse = Parse::RecDescent->new($autotree_grammar); $unparse = Parse::RecDescent->antiparser($autotree_grammar); $tree = $parse->startrule($text); $tree->munge_somehow(); $text = $unparse->startrule($tree); ================================================================================ Require {...} for code blocks in directives (A5) ================================================================================ *Remove* tracing code if not <trace> ================================================================================ Warn on empty prods followed by other prods ================================================================================ * memoize terminals and non-terminals? ================================================================================ * inlining of simple rules ================================================================================ * Consider <autoerror> to automatically add an <error> production to "pre-terminal" rules. ================================================================================ * Lookbehind (A5) ================================================================================ * Add backtracking to rules containing repetition specifiers (in order to overcome repetitions "incorrigible" greed). (A5) ================================================================================ * Add stingy repetitions (A5) ================================================================================ * Handle left-recursion (preferably without rearranging grammar) (A5) ================================================================================ Generate #line directives to tie errors back into original file. -----------cut-----------cut-----------cut-----------cut-----------cut---------- Tracer and error objects to permit user-redefinable tracing and error behaviours -----------cut-----------cut-----------cut-----------cut-----------cut---------- Grammar namespaces: -----------cut-----------cut-----------cut-----------cut-----------cut----------