Releases: taocpp/PEGTL
Releases · taocpp/PEGTL
PEGTL 2.2.0
- Added possibility for actions'
apply()
orapply0()
-methods to return abool
which is then used to determine overall success or failure of the rule to which such an action was attached. - Added
<tao/pegtl/contrib/parse_tree.hpp>
and theexamples/parse_tree.cpp
application that shows how to build a parse tree. The example goes beyond a traditional parse tree and demonstrates how to select which nodes to include in the parse tree and how to transform the nodes into an AST-like structure. - Added
bom
rules for UTF-8, UTF-16 and UTF-32. - Added some missing includes for
config.hpp
. - Added automated testing with Clang 5.
- Added automated testing with Xcode 9.
PEGTL 2.1.4
- Fixed shadow warning.
PEGTL 2.1.3
- Fix
raw_string
with optional parameters.
PEGTL 2.1.2
- Bump version.
PEGTL 2.1.1
- Fixed build with MinGW on Windows.
- Added automated testing with MinGW.
Note: This version accidentally identifies as 2.1.0 - this has been fixed by version 2.1.2.
PEGTL 2.1.0
- Added optional template parameters to
raw_string
for rules that the content must match. - Added new contrib rules
rep_one_min_max
andellipsis
. - Fixed broken
TAOCPP_PEGTL_KEYWORD
macro. - Fixed a bug in the contrib HTTP grammar which prevented it from parsing status lines in some cases.
- Fixed build with MinGW-w64 on Windows.
- Added automated testing with MinGW-w64.
- Added automated testing with GCC 7.
PEGTL 2.0.0
-
Project
- Migrated to "The Art of C++".
- A migration guide for porting applications from 1.y to 2.z is available.
- Version 2.z can be installed and used in parallel to version 1.y of the PEGTL.
- The semantics of all parsing rules and grammars is the same as for versions 1.y.
-
Input Layer
- Added support for custom incremental input readers.
- Added support for parsing C streams, i.e.
std::FILE*
. - Added support for parsing C++ streams, i.e.
std::istream
. - Added support for different EOL-styles.
- Renamed class
position_info
toposition
. - Added the byte position to input classes and
position
. - Added fast parsing without line counting (except in errors).
- Refactored the
input
class into multiple input classes. - Refactored the file parser classes into input classes.
- Refactored the handling of nested parsing.
- Removed the
begin()
member from classposition
. - Removed most parsing front-end functions.
-
Parsing Rules
- Added combinator class
minus
. - Added ASCII rule class
keyword
. - Added
string
rules for UTF-8, UTF-16 and UTF-32. - Added
apply
,apply0
andif_apply
rules for intrusive actions. - Added incremental input support rules
discard
andrequire
.
- Added combinator class
-
String Macros
- Renamed to
TAOCPP_PEGTL_(I)STRING
. - Increased allowed string length to 512.
- Allowed embedded null bytes.
- Reduced template instantiation depth.
- Renamed to
-
Other Changes
- Added
apply()
andapply0()
methods to control class. - Optimised superfluous input markers.
- Allowed optimisation of actions that do not need the input.
- Replaced layered matching with superior Duseltronik™.
- Reduced template instantiation depth.
- Added support for CMake.
- Added automated testing with Visual Studio 2015 and 2017.
- Added automated testing with Android 5.1, NDK r10e.
- Added
PEGTL 1.3.1
- Fixed unit test to use
eol
instead of hard-coded line ending.
PEGTL 1.3.0
- Tentative Android compatibility.
- Fixed build with MinGW on Windows.
- Changed file reader to open files in binary mode.
- Changed
eol
andeolf
to accept both Unix and MS-DOS line endings. - Optimised bumping the input forward and removed little used bump function.
- Simplified grammar analysis algorithm (and more
analyze()
tests).
PEGTL 1.2.2
- Improved the JSON grammar and JSON string escaping.
- Added JSON test suite from http://json.org/JSON_checker/.
- Optimised bumping the input forward and string unescaping.
- Promoted
examples/json_changes.hh
topegtl/contrib/changes.hh
.