All releases of chilon::parser


Release Notes: Spacing? is now parsed between elements in a sequence rather than Spacing*. The stream classes have been simplified and the documentation was updated.


Release Notes: Variant now uses heap for pointers. many<> can be used with void storing parsers. tbpeg_not<> was added. It skips and stores for character storing sub-parsers.


Release Notes: A missing include destination was fixed. Parsers that would usually store variant< vector<T>, void> now store vector<T>, as vector<T> has empty() anyway.


Release Notes: choice<> containing keys can be hashed into a multi-index container. tree_joined_lexeme was added. joined<> over key<> stores hash. A fix was made for sequences and tree_optional<>. A fix was made for nested variant within choice<> over optional<>. A bug for certain choice<> nested within sequence was fixed. The documentation was updated.


Release Notes: More types can now be used as keys for hashes, including variants and containers. hash<> is no longer needed; many*<> over key<> always creates a hashed container. chilon::vector_hash_map is used for hashes now, which stores both order and a hashed lookup table. key_plus<> was added for additive keys. A memory leak was fixed. Simplifications and optimizations were made to the code.


Release Notes: hash<> and key<> were added to allow storing AST nodes in hash maps. More templates now allow multiple types to be specificied in order to create sequence subparsers. Code simplifications, optimizations, and documentation updates were made.


Release Notes: Code simplification and optimizations and a new tree_* family of templates to represent operator trees as ASTs more naturally. More tutorials and documentation were added.


Release Notes: Optimizations were done. A logic error was fixed for certain nested choices. The new facilities tree_joined and tree_many were added, which can be useful for building operator trees. The documentation was updated.


Release Notes: All nested variants are expanded into the parent variant. Another nested sequence compiler error was fixed. Non-storing types can be used in choice and set the variant to empty if matched. Documentation improvements were made, and a new tutorial was added.


Release Notes: This release adds and-predicates, not-predicates, optional, many_plus, and joined_plus parsers. A bug with the join algorithm and a compiler error that occurred when using certain nested sequences were fixed.