Changes for version 0.25 - 2007-07-09
- Pugs::Emitter::Grammar::Perl5 : set sigspace for "rule XXX {...}" and calls the backtracking rule emitter for "regex XXX {...}".
- the ratchet rule emitter now saves the emitter params as special comments in the generated code to help debugging.
- fixed a bug in the parameter ordering of the ratchet emitter, now examples/digits.grammar no longer loops.
- added examples/langs.grammar (this file contains two grammars and the latter calls the subrules of the former and it works!)
- added examples/langs2.grammar to demonstrate the use of the "rule foo { ... }" syntax.
- added examples/Grammar.grammar which is the grammar spec for Perl 6 regexes themselves. this grammar file can be compiled by util/compile_p6grammar.pl down to a .pm file and replaces lib/Pugs/Grammar/Rule.pmc.
- added util/update-rule-pmc-new to automate this process.
- updated Rule.pmc using this new approach. It's about 4 times faster than the traditional v6.pm approach!
- compile_p6grammar.pl: prepends 'use strict; use warnings' and header comments to the .pm file generated.
- Pugs::Compiler::Regex now honors environment PCR_NO_CACHE, which can be used to disable the caching mechanism of PCR (recommended for PCR developers only).
Documentation
Compile Perl 6 Grammars to Perl 5 Modules
Modules
Compiler for Perl 6 Grammars
Compiler for Perl 6 Regex
Compiler for Perl 6 style "Perl5" regex
Compiler for Perl 6 regexes
Compiler for Perl 6 Token
Perl 5 emitter for grammar ASTs
Engine for Perl 6 Rule operator precedence
Match object created by rules
Represent a position inside a string
Provides
in lib/Pugs/AST/Expression.pm
in lib/Pugs/Emitter/Rule/Parsec.pm
in lib/Pugs/Emitter/Rule/Perl5.pm
in lib/Pugs/Emitter/Rule/Perl5/CharClass.pm
in lib/Pugs/Emitter/Rule/Perl5/Ratchet.pm
in lib/Pugs/Emitter/Rule/Perl5/Regex.pm
in lib/Pugs/Emitter/Rule/Perl6/Ratchet.pm
in lib/Pugs/Grammar/Base.pm
in lib/Pugs/Runtime/Common.pm
in lib/Pugs/Runtime/Match/HsBridge.pm
in lib/Pugs/Emitter/Rule/Perl5.pm
in lib/Pugs/Runtime/Regex.pm
in lib/Pugs/Runtime/Rule.pm