0.23 2007-05-08 - implemented and - token with non-greedy quantifier is transformed into a greedy quantifier with lookahead: a b*? c -> a [ b ]* c - regex grammar: added and - %($/) is read-write 0.22 2007-03-27 - fixed perl5.10 compatibility - some fixes to character classes - fixed bug: Pugs::Grammar::Base try to autoload DESTROY() 0.21 2007-03-12 - added external/internal 'ignorecase' flag in regex - implemented hex/octal/named constants - \x, \o, \c, \X, \O, \C - added Unicode properties, such as <+isL> <-isL> - added StrPos class (Pugs::Runtime::StrPos) #reverted - Match->from() and Match->to now return Pugs::Runtime::StrPos objects. - for non-OO positions, use Match->to_codes and Match->from_codes - fixed non-capturing subrules in regex - fixed <-alpha> - implemented conjunctions with '&' (not in Regex runtime yet) - implemented negated metasyntax - implemented 0.20 2006-10-13 - each time is set to a new rule, it stores the previous rule in a closure, so that subrules can have their own . - implemented :c :continue - several fixes to HsBridge 0.19 2006-09-27 - removed dependency Data::Dump::Streamer (t/01-iterator_engine.t) - updated Pugs::Runtime::Match pod - $/{0} === $/[0] - Match.kv, Match.elems, Match.chars, Match.yaml - RegexPerl5 accepts parameters i m s x - takes a metasyntax expression (not a rule pattern) - Regex wasn't allowed to match at end of string - Regex runtime detects infinite loop in + and fails - more detailed quantifier parsing; added '**{range}' quantifier (needs emitter support) - HsBridge - implements a Pugs/Haskell-compatible API [ features available inside v6.pm only ] - refactored Rule grammar to use shortcuts, such as { return { after => :$$, } } - fixed '${...}', '$[...]', ':$<...>', '$0' - fixed coercions in emitter [ devel (svn.pugscode.org/pugs/perl5) version only ] "plain_regex" - code cleanup; added bug list - added ^^ $$ \n \N - TimToady++ - /./ matches 2-char newline - <'literal'> - simple character classes, negated char classes - ^ $ \s, \S, etc - , , , - non-capturing group, captures, dot "Pugs::Grammar::RulePure" pure-Perl6 version of the Rule grammar; this file currently can't be run due to PCR/v6 incompatible calling conventions 0.18 2006-09-21 - implemented capturing to return object with <(...)> - implemented Matching against non-strings my $rule = Pugs::Compiler::Regex->compile( '<.meth("param")>' ); my $match = $rule->match( $object ); - implemented - fixed '^' and '$' in regexes 0.17 2006-09-13 - Grammar::Rule is now bootstrapped with v6.pm, instead of lrep - implemented $ - fixed bool result of quantified terms inside tokens - fixed parsing of <'>>'> - replaced 'do{}' with plain function calls in some places (optimization) - implemented hash dispatch in Grammar::Rule (optimization) 0.16 2006-08-21 - removed Class::InsideOut dependency - 5% speed optimization, but there seems to be some gain in RAM usage also - token 0.15 2006-08-16 - stringification is handled by the 'return object', if it exists. - fixed '..' in char classes - ':' is ignored inside tokens - updated the identifier list in Common.pm 0.11 to 0.14 2006-08-09 - several fixes and optimizations in hash and array interpolation - fixed capture aliasing - refactored Regex runtime: -- reuses the matching string in submatches -- resues the Match class for Token/Rule -- more tests - partially implemented 'static' capture numbering 0.10 2006-07-10 - added Pugs::Runtime::Common - contains utilities shared by all perl 6 mini-languages, such as namespace mangling. 0.09 2006-07-06 - 'install()' creates a rule in current namespace - implemented by broquaint - fixed quoting in emitted :ratchet code - implemented '<@rules>' in :ratchet mode 0.08 2006-07-04 - clear a warning in Pugs::Grammar::Rule - fixed by audreyt 0.07 2006-07-04 - updated Module::Install 0.06 2006-06-26 - new module Pugs::Grammar::Precedence 0.05 2006-06-13 - fixed internal rule - new module Pugs::Compiler::RegexPerl5 - wraps a perl5 regex into a method that returns a Match object. Note that this module doesn't provide backtracking to caller rules. 0.04 2006-05-24 - new modules Pugs::Compiler::Token, Pugs::Compiler::Regex - fixed Pugs::Compiler::Rule default switches to :ratchet, :sigspace. - implemented 'sigspace' switch - in :ratchet mode only 0.03 2006-05-20 - '' - in :ratchet mode only - the 'p' switch should now be specified as 'p => 0' instead of 'p => 1'. 'p => 1' now matches at the second character in the string. The default is 'p => undef' - matches anywhere in the string. - added ':ratchet' switch. - implemented parameters in subrule call (named only, constants only) - '', '$' - new class 'Pugs::Grammar::Category' - implemented '%hash', but it doesn't use a trie yet. - fixed subrule backtracking - fixed method 'perl5' - Perl 5 emitter character classes (partially) implemented 0.02 2006-03-28 - new method 'perl5', returns a string that can be eval'ed into a new PCR object - match variables are available inside the rule: $0, $1 - /(.)*/ returns an array in @$0 - built-in rules: alpha, alnum, ... - fixed grammar bug: '$var := (xxx)' is: '$ := (xxx)' - implemented ':' (untested) - Added support for Grammar inheritance - rule methods are internally curryed into functions $rule = sub { Grammar->rule_method( @_ ) } - faster Rule grammar - Simplified 'match', 'capture' keys in internal Match 0.01 - Initial CPAN release - Pod, Tests, Packaging by audreyt & others.