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> <+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 <fail>
0.20 2006-10-13
- each time <prior> is set to a new rule, it stores the previous
rule in a closure, so that subrules can have their own <prior>.
- 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 <null>+ 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 => :$$<rule>, } }
- 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
- ^ $ <null> \s, \S, etc
- <after ...>, <!after ...>, <before ...>, <!before ...>
- 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 <at($pos)>
- fixed '^' and '$' in regexes
0.17 2006-09-13
- Grammar::Rule is now bootstrapped with v6.pm, instead of lrep
- implemented $<KEY>
- 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 <null>
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 <alpha> 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
- '<after ...>' - 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)
- '<before ...>', '$'
- 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: '$<var> := (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.