Fetching contributors…
Cannot retrieve contributors at this time
110 lines (69 sloc) 3.61 KB
= 1.2.0 / ???
+ Parslet::Parser is now also a grammar atom, it can be composed freely with
other atoms. (str('f') >> >> str('b'))
+ No strings, only slices are returned as part of the parser result.
Parslet::Slice is almost a string class, but one that remembers the
source offset. This has also bought us a slight speedup.
+ require 'parslet/convenience' now brings #parse_with_debug to all parslets.
+ Visitors now should have methods that all begin with 'visit_*'. #str
becomes #visit_str.
+ Parslet::Atoms::Entity now takes only a block argument instead of context
and block.
= 1.1.1 / 4Feb2011
! FIX: Line counting was broken by performance optimisations.
+ Squeezed out another few drops of performance.
= 1.1.0 / 2Feb2011
+ Uses return (fail/success), cached line counts, memoizing of parse results
and other tricks internally for at least an order of magnitude increase
in execution speed.
+ str('foo').maybe will now return an empty string again. Use .as(...) to
name things and get back [] from #repeat and nil from #maybe.
+ If you require 'parslet/atoms/visitor', you'll get an accept method on
all known Parslet::Atoms.
+ If you require 'parslet/export', you can call #to_citrus and #to_treetop
to produce string versions of your grammar in those dialects.
+ Requiring 'parslet/convenience' will given you a parse_with_debug on
your Parslet::Parser class. This prints some diagnostics on parse failure.
(Thanks to Florian Hanke)
= 1.0.1 / 17Jan2011
A happy new year!
! FIX: Parslet::Transform was wrongly fixed earlier - it now wont mangle
hashes anymore. (Blake Sweeney)
+ parslet/rig/rspec.rb contains useful rspec matchers. (R. Konstantin Haase)
= 1.0.0 / 29Dez2010
- #each_match was removed. There was some duplication of code that even
confused me - and we should not have 2 methods of achieving the same
+ Full documentation. Fixed sdoc.
= 0.11.0 / 25Nov2010
! Bugfixes to tree handling. Let's hope that was the last such significant
change to the core.
= 0.10.1 / 22Nov2010
+ Allow match['a-z'], shortcut for match('[a-z]')
! Fixed output inconsistencies (behaviour in connection to 'maybe')
= 0.10.0 / 22Nov2010
+ Parslet::Transform now takes a block on initialisation, wherein you can
define all the rules directly.
+ Parslet::Transform now only passes a hash to the block during transform
when its arity is 1. Otherwise all hash contents as bound as local
+ Both inline and other documentation have been improved.
+ You can now use 'subtree(:x)' to bind any subtree to x during tree pattern
+ Transform classes can now include rules into class definition. This makes
Parser and Transformer behave the same.
= 0.9.0 / 28Oct2010
* More of everything: Examples, documentation, etc...
* Breaking change: Ruby's binary or ('|') is now used for alternatives,
instead of the division sign ('/') - this reduces the amount of
parenthesis needed for a grammar overall.
* parslet.maybe now yields the result or nil in case of parse failure. This
is probably better than the array it did before; the jury is still out on
* parslet.repeat(min, max) is now valid syntax
= 0.1.0 / not released.
* Initial version. Classes for parsing, matching in the resulting trees
and transforming the trees into something more useful.
* Parses and outputs intermediary trees
* Matching of single elements and sequences