-
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_infotoposition. - Added the byte position to input classes and
position. - Added fast parsing without line counting (except in errors).
- Refactored the
inputclass 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
stringrules for UTF-8, UTF-16 and UTF-32. - Added
apply,apply0andif_applyrules for intrusive actions. - Added incremental input support rules
discardandrequire.
- 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