NAME

Parse::Marpa::Doc::To_Do - Marpa's To Do List

HIGH PRIORITY

Terminal Priorities Cannot Be Set in MDL

Priorities cannot be set in MDL for terminals. Fix this before going beta.

Workaround: Add extra rules with the terminals you want to prioritize on their right hand side, and assign priorities to the rules.

Describe ambiguous transitions in Internals doc

Add a graf about ambiguous transitions in the Internals document.

Rewrite Marpa.pm

Move some of the stuff prior to the "Getting Started" section elsewhere.

LOWER PRIORITY

  • Make code clean under perlcritic.

  • Better evaluation of sequences -- just push onto an array via a ref, reversing at the end if necessary. All that code could use better comments.

  • show_tree before first call to value? Should it cause an error message? How about after unsuccessful call to value?

  • Should Parse::Marpa::Grammar::new options be defaults or overrides? -- that is they should take effect before the MDL script or after.

  • Allow setting Marpa options in evaluator, and during life of recognizer? Will require changes in internal tracking of phases.

  • Do I need Parse::Marpa::show_value? Won't Dumper do fine?

  • Add a trace_choices option. There was an option to trace non-trivial evaluation choices in the old evaluator, and the new trace_iterations doesn't entirely replace it.

  • Add a show_derivation option.

  • Allow multiple evaluators for each recognizer, or at least create a method to safely deep copy recognizers.

  • Add {} and [] syntax to MDL production statements.

  • Ensure Parse::Marpa::Internal::This::grammar set wherever appropriate.

  • Add option for left-to-right evaluation of rules

  • Test proper and perl5 separation

  • Speed-up for pre-computing lexables. Grammar::LEXABLES, etc.

  • Add a SYNOPSIS to the Plumbing document.

  • Test lexing suffixes.

  • Allow alternation?

  • Add to test set: Basic tests of sequences. The matrix is separation (none/perl5/proper) and minimium count (0 or 1). Eliminate keep vs. no-keep, right vs. left.

  • Downgrade version conflict or semantics mismatch to warning?

  • There are now no Parse::Marpa::Read_Only variables. Eliminate the namespace, and all the references to it in the documentation?

MAYBE, MAYBE NOT

Lifting Restrictions on Sequence Productions

The restriction of sequences to sequence productions and of sequence productions to a single sequence is not the result of any limit of the Marpa parse engine. It would not be hard to allow any number of sequences and optional sequences on the right hand side of any BNF production. I'm open to revisiting this issue and lifting the restriction.

The problem is figuring out how to conveniently specify their semantics. As the right hand side of a production grows more complex, the semantics becomes more complex to write, more bug-prone, and harder to debug.

SUPPORT

See the support section in the main module.

AUTHOR

Jeffrey Kegler

LICENSE AND COPYRIGHT

Copyright 2007 - 2008 Jeffrey Kegler

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0.