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----------


Reply via email to