Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

120 lines (76 sloc) 4.068 kb
= 2.0 / ?? (future release changes, like a reminder to self)
- prsnt? and absnt? are now finally banned into oblivion. Wasting vocals for
the win.
= 1.2.0 / ???
+ Parslet::Parser is now also a grammar atom, it can be composed freely with
other atoms. (str('f') >> MiniLispParser.new >> 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.
This is a consequence of the above change.
+ Deprecates prsnt? and absnt? in favor of the more readable absent? and
prsnt?. Uses 3 bytes more RAM. The old variants will exist until we release
2.0.
INTERNALLY
+ 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
goal.
+ 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
variables.
+ Both inline and other documentation have been improved.
+ You can now use 'subtree(:x)' to bind any subtree to x during tree pattern
matching.
+ 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
that.
* 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
Jump to Line
Something went wrong with that request. Please try again.