Changelog for Arpeggio
======================

* 2018-07-19 Release 1.9.0
  - Added `extra_info` param to `Terminal` for additional information.
    Used by textX.
  - Fixed problem with version string reading in non-UTF-8 environments.
    Thanks sebix@GitHub.

* 2018-05-16 Release 1.8.0
  - Fixed issue #43.
    *Backward incompatible change* for cleanpeg comment syntax.
    Please see: https://github.com/igordejanovic/Arpeggio/issues/43
  - Added `file` parser param used for `DebugPrinter` to allow the
    output stream to be changed from stdout. This allows doctests to
    continue to work. Thanks ianmmoir@GitHub.

* 2018-02-10 Release 1.7.1
  - Fixed bug in comment parsing optimization.

* 2017-11-17 Release 1.7
  - Added re_flag parameter to RegExMatch constructor. Thanks Aluriak@GitHub.
  - Fix in grammar language docs. Thanks schmittlauch@GitHub.
  - Small fixes in examples.

* 2017-05-15 Release 1.6.1
  - Fixed bug in unordered group with optional subexpressions.

* 2017-05-15 Release 1.6
  - Dropped support for Python 3.2.
  - Improved error reporting (especially for `Not` Parsing Expression).
  - `line,col` attributes are now available on `NoMatch` exception.
  - Fixed issue #31 - a subtle bug in empty nested parses.
  - Issue #32 - improvements and fixes in escape sequences support.
    Thanks smbolton@github!
  - Added `position_end` attribute on parse tree nodes with the position
    in the input stream where the given match ends.
  - Added support for unordered groups (`UnorderedGroup` class). See the docs.
  - Support for separator expression in repetitions (`sep` parameter).
    See the docs.
  - Various code/docs cleanup.

* 2016-05-31 Release 1.5
  - Significant performance improvements (see textX issue #22)
  - Added new performance tests to keep track of both speed and memory
    consumption.
  - Memoization is disabled by default. Added `memoization` parameter to
    the `Parser` instantiation.

* 2016-05-05 Release 1.4
  - Support for parse tree node suppression. Used for textX `-` operator.
  - Render `-` for suppressed ParsingExpression on dot graphs.

* 2016-04-28 Release 1.3.1
  - Some smaller changes/fixes in internal API.
  - Smaller updates to docs.

* 2016-03-03 Release 1.3
  - Improved error reporting (See issue #25). On the point of error all possible
    matches will be reported now.
  - Fixed bug with regex that succeeds with empty string in repetitions
    (see issue #26).
  - Various fixes in examples and the docs.
  - Significant performance improvement for parsing of large files. This fix
    also changes handling of '^' in regex matches. Now '^' will match on the
    beginning of the input and beginning of new line.
  - Performance improvements in comment parsing.

* 2015-11-10 Release 1.2.1
  - Fixing error reporting that wasn't taking into account successful matches
    in optionals.
  - Slightly improved debug prints.

* 2015-10-31 Release 1.2
  - Docs has been migrated to MkDocs and restructured. A lot of new additions
    have been made and three full length tutorials.
  - Examples refactoring and restructuring.
  - Fixing whitespace handling for str matches loaded from external PEG file.
  - Added travis configuration to test for 2.7, 3.2-3.5 Python versions.

* 2015-08-27 Release 1.1
  - Reworking NoMatch exception handling code.
  - Some optimization tweaks. Removed unnecessary exception handling.
  - Improved debug printings.
  - Fix in ordered choice with optional matches (issue #20)
  - Fixing parser invalid state after handling non-string inputs
    (thanks Santi Villalba - sdvillal@github)
  - Some fixes in conversion to utf-8 encoding.
  - Various improvements and additions to the tests.

* 2015-04-14 Release 1.0
  - Functionally identical to v0.10. It is just the time to go
    production-stable ;)

* 2015-02-10 Release 0.10
  - Documentation - http://arpeggio.readthedocs.org/en/latest/
  - autokwd parser parameter. Match on word boundaries for keyword-like
    string matches.
  - skipws and ws parameters for Sequence.
  - Improvements in error reporting.

* 2014-10-16 Release 0.9
  - Visitor pattern support for semantic analysis - issue 15
  - Alternative PEG syntax (arpeggio.cleanpeg module) - issue 11
  - Support for unicode in grammars.
  - Python 2/3 compatibility for unicodes.

* 2014-09-20 Release 0.8

  - Support for eolterm modifier in repetitions.
  - Support for custom regex match string representation.
  - Various bugfixes.
  - Improved debug messages.

* 2014-08-16 Release 0.7

  - Parse tree navigation
  - Better semantic action debugging output.
  - Tests reorganization and cleanup.
  - Examples cleanup.
  - Reference resolving unification in parser constructions.
  - Default semantic actions and automatic terminal suppressing during semantic analysis.
  - PEG language support refactoring and code cleaning.

* 2014-06-06  Release 0.6

  - Support for Python 3 (issue #7)
  - Matched rules available as attributes of non-terminals (issue #2)
  - Lexical rules support (issue #6). Implemented as Combine decorator.

* 2014-02-02 Release 0.5

  - Bugfixes
  - Examples
  - Parse tree reduction for one-child non-terminals.

* 2009-09-15 - Initial release (v0.1-dev)

  - Basic error reporting.
  - Basic support for comments handling (needs refactoring)
  - Raw parse tree.
  - Support for semantic actions with abbility to transform parse 
      tree to semantic representation - aka Abstract Semantic Graphs (see examples).


