CHANGELOG.md in sexpr-0.3.0 vs CHANGELOG.md in sexpr-0.4.0

- old
+ new

@@ -1,4 +1,33 @@ +# 0.4.0 / 2012-02-23 + +* Major enhancements + + * A processing/rewriting framework has been added to Sexpr. See the `Processor` and `Rewriter` + classes, as well as the boolean expression example. + * Tracking markers can now decorate s-expressions, provided they include the `Sexpr` module. + Tracking markers are a simple Hash of meta-information (i.e. not taken into account for + equality for s-expressions). Such markers can be set with `Grammar#sexpr(sexpr, markers)`. + Default markers are typically provided by parsers for traceability of the s-expression + with the source text it comes from. + +* Minor enhancements + + * `Citrus::Parser#parse` is now idempotent and so is `Grammar#parse` therefore. + * The module to use for finding tag modules through `const_get` can now be overridden in + `Grammar#tagging_reference`. + * Default parsing options can now be specified in `Grammar#default_parse_options`. These + options are used by `Grammar#sexpr` when parsing is needed. + +* Breaking changes + + * `Parser.factor` does no longer accept options. This is to avoid the 'yet another options' + symptom and favor convention over configuration. + * Accordingly, `Sexpr::Citrus::Parser` no longer takes options at construction either. + * `Grammar#sexpr` does no longer allow parsing options as second argument, but takes tracking + markers (see enhancements). To palliate to this, default parsing options can now be + specified through `Grammar#default_parse_options` (see enhancements). + # 0.3.0 / 2012-02-21 * Breaking changes * `Sexpr.load` only takes one argument, merging both the rules and the options inside a \ No newline at end of file