Header lexy/dsl/case_folding.hpp
Rules for case-insensitive parsing.
Literal rule lexy::dsl::ascii::case_folding
lexy/dsl/case_folding.hppnamespace lexy::dsl::ascii
{
constexpr literal-rule auto case_folding(literal-rule lit);
}case_folding is a literal rule that matches another literal rule but performing case folding of ASCII characters.
- Requires
litis not a rule that is already case folded.- Matching
Matches and consumes
liton an input where uppercase ASCII characters are converted to lowercase first. As such,litis matched case-insensitively.- Errors
All errors raised by
litwhen it fails.- Parse tree
The single token node created by
lit; its content is the input as it was before the case folding.
Caution | As all uppercase characters of the input are converted to lowercase, but lit itself is unchanged, lit must not match uppercase characters:
case_folding(LEXY_LIT("ABC")) will never match. |
Literal rule lexy::dsl::unicode::simple_case_folding
lexy/dsl/case_folding.hppnamespace lexy::dsl::unicode
{
constexpr literal-rule auto simple_case_folding(literal-rule lit);
}simple_case_folding is a literal rule that matches another literal rule but performing simple case folding of Unicode characters.
It requires the Unicode database.
- Requires
litis not a rule that is already case folded.- Matching
Matches and consumes
liton an input where all code points are transformed usinglexy::simple_case_fold. As such,litis matched case-insensitively.- Errors
All errors raised by
litwhen it fails.- Parse tree
The single token node created by
lit; its content is the input as it was before the case folding.
Caution | As all uppercase characters of the input are converted to lowercase, but lit itself is unchanged, lit must not match uppercase characters:
simple_case_folding(LEXY_LIT("ABC")) will never match. |