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