The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.07

  • Oh my head. Massive rewrite. The calltree was conceptually totally wrong. Changed call tree from a tree to a stack. No longer keep different branches around.
  • Multiple quantifiers now work together. The following grammar now works:
  • $grammar = match( series( capture(greedy(lit('x'),'s'),$first_callback), capture(greedy(lit('x'),'s'),$second_callback) ) );
  • $grammar->('xxxxx')
  • The first greedy will swallow the entire string, then release one character. This will allow second greedy to match on the last x, and the entire grammar passes.
  • first capture eq 'xxxx'. second capture eq 'x'
  • The commit function doesn't work with quantifiers yet. Changed the commit test to use a long series of lits instead. all tests now pass. However, there are some known bugs that don't have tests for them.

Modules

Define parse grammars using perl subroutine calls. No intermediate grammar languages.