|
5.0.0
Freundlich's C++ toolkit
|
Library for parsers. More...
Namespaces | |
| namespace | skipper |
Classes | |
| class | alternative |
| Tries the left parser, and if that fails also the right parser. Uses the result of the first one that does not fail. More... | |
| class | alternative_error |
| class | base |
| Base class for a parser. More... | |
| class | basic_char |
| Parses a single character and returns it. More... | |
| class | basic_char_error |
| class | basic_char_set |
| Parses a set of characters and returns which one has matched. More... | |
| class | basic_char_set_error |
| class | basic_literal |
| Parses a specific character and returns nothing. More... | |
| class | basic_literal_error |
| class | basic_stream |
| The stream class used while parsing. More... | |
| class | basic_string |
| Parses a specific string and returns nothing. More... | |
| class | basic_string_error |
| class | complement |
| Builds the complement of a fcppt::parse::basic_char_set parser. More... | |
| class | complement_error |
| class | convert |
| Converts the success value of a parser into another success value. More... | |
| class | convert_const |
| Replaces the success value of a parser with a constant. More... | |
| class | convert_if |
| Converts the success value of a parser into either another success value or an error. More... | |
| class | custom_error |
| class | epsilon |
| Parses the empty string, returns nothing. More... | |
| class | error |
| The error type. More... | |
| class | exclude |
| Matches only if another parser does not match. More... | |
| class | fail |
| Always fails. More... | |
| class | fail_error |
| class | fatal |
| Makes all error fatal. More... | |
| class | float_ |
| Parses floating-point numbers. More... | |
| class | grammar |
| Base class for grammars. More... | |
| class | ignore |
| Ignores the result of a parser. More... | |
| class | int_ |
| Parses signed integers. More... | |
| class | lexeme |
| Disables the skipper. More... | |
| class | list |
| Parses lists, e.g., [a_1,...,a_n]. More... | |
| class | location |
| The location of a fcppt::parse::basic_stream. More... | |
| class | named |
| Gives a parser a name, improving error messages. More... | |
| class | named_error |
| class | not_ |
| Negates the result of a parser, returns nothing. More... | |
| class | optional |
| Makes a parser optional. More... | |
| class | parse_stream_error |
| class | parse_string_error |
| class | position |
| The position of an fcppt::parse::basic_stream. More... | |
| class | recursive |
| Wraps a type in fcppt::recursive. More... | |
| class | repetition |
| Tries a parser repeatedly, producing a vector of results. More... | |
| class | repetition_plus |
| Tries a parser repeatedly, producing a vector of results. Must produce at least one element. More... | |
| class | separator |
| Parses a list of elements, delimited by a separator, e.g., a_1,...,a_n. More... | |
| class | sequence |
| Tries two parsers in succession. Produces a tuple of both results if both parsers do not fail. More... | |
| struct | tag |
| The tag parsers derive from. More... | |
| class | typed_error |
| class | uint |
| Parses unsigned integers. More... | |
| class | with_location |
Typedefs | |
| template<typename Left, typename Right> | |
| using | alternative_result |
| The result type of an alternative parser. | |
| template<typename Result, typename Ch, typename Skipper> | |
| using | base_unique_ptr = fcppt::unique_ptr<fcppt::parse::base<Result, Ch, Skipper>> |
| unique_ptr to fcppt::parse::base | |
| template<typename Ch> | |
| using | basic_char_set_container = std::unordered_set<Ch> |
| The character set type. | |
| using | char_ = fcppt::parse::basic_char<char> |
| using | char_set = fcppt::parse::basic_char_set<char> |
| using | column = fcppt::strong_typedef< std::uint64_t ,_> |
| The column type of a position. | |
| template<typename Parser> | |
| using | deref_type = std::remove_cvref_t<fcppt::deref_type<Parser const>> |
| The dereferenced type of a parser. | |
| template<typename Ch> | |
| using | error_variant |
| template<typename Type> | |
| using | is_char = std::disjunction<std::is_same<Type, char>, std::is_same<Type, wchar_t>> |
| The allowed char types, currently char and wchar_t. | |
| using | is_fatal = fcppt::strong_typedef< bool ,_> |
| template<typename Type> | |
| using | is_parser = std::is_base_of<fcppt::parse::tag, Type> |
| Checks if a type is a parser.A type is a parser if and only if it derives from fcppt::parse::tag. | |
| template<typename Type> | |
| using | is_valid_argument |
| Checks if a parameter is a valid parser type. | |
| using | line = fcppt::strong_typedef< std::uint64_t ,_> |
| The line type of a position. | |
| using | literal = fcppt::parse::basic_literal<char> |
| template<typename Type> | |
| using | repetition_result |
| The result type of a repetition parser. | |
| template<typename Ch, typename Type> | |
| using | result = fcppt::either::object<fcppt::parse::error<Ch>, Type> |
The result type when parsing streams of Ch, producing values of Type.The result is an fcppt::either::object of fcppt::parse::error<Ch> and Type. | |
| template<typename Parser> | |
| using | result_of = typename fcppt::parse::deref_type<Parser>::result_type |
| The result type of a parser. | |
| template<typename Left, typename Right> | |
| using | sequence_result |
| The result of a sequence parser. | |
| using | string = fcppt::parse::basic_string<char> |
Functions | |
| template<typename Result, typename Parser> requires (fcppt::tuple::is_object<fcppt::parse::result_of<Parser>>::value) | |
| fcppt::parse::convert< std::remove_cvref_t< Parser >, Result > | as_struct (Parser &&_parser) |
| Creates a parser that converts a tuple into a struct. | |
| fcppt::parse::char_set | blank () |
| Parser that parses blank characters. | |
| template<typename Ch> | |
| fcppt::parse::basic_char_set_container< Ch > | blank_set () |
| The set of blank characters. | |
| template<typename Result, typename Parser> | |
| fcppt::parse::convert< std::remove_cvref_t< Parser >, Result > | construct (Parser &&_parser) |
| Applies a constructor to the result of a parser. | |
| template<typename Parser, typename Result> | |
| FCPPT_PP_POP_WARNING | convert_const (Parser &&, Result &&) -> convert_const< std::remove_cvref_t< Parser >, std::remove_cvref_t< Result > > |
| template<typename Parser> | |
| fcppt::parse::deref_type< Parser > const & | deref (Parser const &_parser) |
| Dereferences a parser. | |
| template<typename Ch> | |
| fcppt::parse::basic_char_set< Ch > | digits () |
| The char set of digits. | |
| template<typename Ch> | |
| std::basic_ostream< Ch > & | operator<< (std::basic_ostream< Ch > &_stream, fcppt::parse::error< Ch > const &_error) |
| template<typename Ch> | |
| fcppt::optional::object< Ch > | get_char (fcppt::reference< fcppt::parse::basic_stream< Ch > > const _state) |
| The next character in a stream. | |
| template<typename Ch> | |
| fcppt::parse::position< Ch > | get_position (fcppt::reference< fcppt::parse::basic_stream< Ch > > const _state) |
| The current position of a stream. | |
| template<typename Result, typename Ch, typename Skipper> | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, Result > | grammar_parse_stream (std::basic_istream< Ch > &_stream, fcppt::parse::grammar< Result, Ch, Skipper > const &_grammar) |
| Parse a stream using a grammar. | |
| template<typename Result, typename Ch, typename Skipper> | |
| fcppt::either::object< fcppt::parse::parse_string_error< Ch >, Result > | grammar_parse_string (std::basic_string< Ch > &&_string, fcppt::parse::grammar< Result, Ch, Skipper > const &_grammar) |
| Parse a string using a grammar. | |
| template<typename Start, typename Inner, typename Sep, typename End> | |
| FCPPT_PP_POP_WARNING | list (Start &&, Inner &&, Sep &&, End &&) -> list< std::remove_cvref_t< Start >, std::remove_cvref_t< Inner >, std::remove_cvref_t< Sep >, std::remove_cvref_t< End > > |
| bool | operator== (fcppt::parse::location const &_left, fcppt::parse::location const &_right) |
| template<typename Ch, typename Traits> | |
| std::basic_ostream< Ch, Traits > & | operator<< (std::basic_ostream< Ch, Traits > &_stream, fcppt::parse::location const &_loc) |
| Outputs a location to a stream. | |
| template<typename Ch, typename Skipper, typename Parser> | |
| fcppt::parse::base_unique_ptr< fcppt::parse::result_of< Parser >, Ch, Skipper > | make_base (Parser &&_parser) |
| Hides the type of a parser, turning it into an fcppt::parse::base_unique_ptr. | |
| template<typename Parser, typename Convert> | |
| fcppt::parse::convert< std::remove_cvref_t< Parser >, std::invoke_result_t< Convert, fcppt::parse::result_of< Parser > && > > | make_convert (Parser &&_parser, Convert &&_convert) |
| Creates an fcppt::parse::convert parser out of a lambda. | |
| template<typename Ch, typename Parser, typename Convert> | |
| fcppt::parse::convert_if< Ch, std::remove_cvref_t< Parser >, fcppt::either::success_type< std::invoke_result_t< Convert, fcppt::parse::position< Ch >, fcppt::parse::result_of< Parser > && > > > | make_convert_if (Parser &&_parser, Convert &&_convert) |
| Creates an fcppt::parse::convert_if parser out of a lambda. | |
| template<typename Parser> | |
| fcppt::parse::fatal< std::remove_cvref_t< Parser > > | make_fatal (Parser &&_parser) |
| Creates an fcppt::parse::fatal parser. | |
| template<typename Parser> | |
| fcppt::parse::ignore< std::remove_cvref_t< Parser > > | make_ignore (Parser &&_parser) |
| Creates an fcppt::parse::ignore parser. | |
| template<typename Parser> | |
| fcppt::parse::lexeme< std::remove_cvref_t< Parser > > | make_lexeme (Parser &&_parser) |
| Creates an fcppt::parse::lexeme parser. | |
| template<typename Ch> | |
| fcppt::parse::basic_literal< Ch > | make_literal (Ch const _ch) |
| Creates an fcppt::parse::basic_literal parser. | |
| template<typename Ch, typename Success> | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, std::remove_cvref_t< Success > > | make_parse_stream_success (Success &&_success) |
| Creates a success value with a parse_stream failure type. | |
| template<typename Ch, typename Success> | |
| fcppt::either::object< fcppt::parse::parse_string_error< Ch >, std::remove_cvref_t< Success > > | make_parse_string_success (Success &&_success) |
| Creates a success value with a parse_string failure type. | |
| template<typename Parser> | |
| fcppt::parse::recursive< std::remove_cvref_t< Parser > > | make_recursive (Parser &&_parser) |
| Creates an fcppt::parse::recursive parser. | |
| template<typename Ch, typename Success> | |
| fcppt::parse::result< Ch, std::remove_cvref_t< Success > > | make_success (Success &&_success) |
| Creates an fcppt::parse::result from a success value. | |
| template<typename Parser> | |
| fcppt::parse::with_location< std::remove_cvref_t< Parser > > | make_with_location (Parser &&_parser) |
| Creates an fcppt::parse::with_location parser. | |
| template<typename Ch, typename Parser> | |
| FCPPT_PP_POP_WARNING | named (Parser &&, std::basic_string< Ch > &&) -> named< Ch, std::remove_cvref_t< Parser > > |
| template<typename Left, typename Right> requires (std::conjunction_v< fcppt::parse::is_valid_argument<Left>, fcppt::parse::is_valid_argument<Right>>) | |
| fcppt::parse::alternative< std::remove_cvref_t< Left >, std::remove_cvref_t< Right > > | operator| (Left &&_left, Right &&_right) |
| Creates an fcppt::parse::alternative parser. | |
| template<typename Parser> requires (fcppt::parse::detail::is_char_set<fcppt::parse::deref_type<Parser>>::value) | |
| auto | operator~ (Parser &&_parser) |
| Creates an fcppt::parse::complement parser. | |
| template<typename Left, typename Right> requires (std::conjunction_v< fcppt::parse::is_valid_argument<Left>, fcppt::parse::is_valid_argument<Right>>) | |
| fcppt::parse::exclude< std::remove_cvref_t< Left >, std::remove_cvref_t< Right > > | operator- (Left &&_left, Right &&_right) |
| Creates an fcppt::parse::exclude parser. | |
| template<typename Parser> requires (fcppt::parse::is_valid_argument<Parser>::value) | |
| fcppt::parse::not_< std::remove_cvref_t< Parser > > | operator! (Parser &&_parser) |
| Creates an fcppt::parse::not_ parser. | |
| template<typename Parser> requires (fcppt::parse::is_valid_argument<Parser>::value) | |
| fcppt::parse::optional< std::remove_cvref_t< Parser > > | operator- (Parser &&_parser) |
| Creates an fcppt::parse::optional parser. | |
| template<typename Parser> requires (fcppt::parse::is_valid_argument<Parser>::value) | |
| fcppt::parse::repetition< std::remove_cvref_t< Parser > > | operator* (Parser &&_parser) |
| Creates an fcppt::parse::repetition parser. | |
| template<typename Parser> requires (fcppt::parse::is_valid_argument<Parser>::value) | |
| fcppt::parse::repetition_plus< std::remove_cvref_t< Parser > > | operator+ (Parser &&_parser) |
| Creates an fcppt::parse::repetition_plus parser. | |
| template<typename Left, typename Right> requires (std::conjunction_v< fcppt::parse::is_valid_argument<Left>, fcppt::parse::is_valid_argument<Right>>) | |
| fcppt::parse::sequence< std::remove_cvref_t< Left >, std::remove_cvref_t< Right > > | operator>> (Left &&_left, Right &&_right) |
| Creates an fcppt::parse::sequence parser. | |
| template<typename Ch, typename Parser> | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, fcppt::parse::result_of< Parser > > | parse (Parser const &_parser, fcppt::parse::basic_stream< Ch > &_input) |
| Parses without whitespace skipping. | |
| template<typename Ch, typename Parser> | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, fcppt::parse::result_of< Parser > > | parse_stream (Parser const &_parser, std::basic_istream< Ch > &_input) |
Parses a std::basic_istream without whitespace skipping. | |
| template<typename Ch> | |
| std::basic_ostream< Ch > & | operator<< (std::basic_ostream< Ch > &_stream, fcppt::parse::parse_stream_error< Ch > const &_error) |
| template<typename Ch, typename Parser> | |
| fcppt::either::object< fcppt::parse::parse_string_error< Ch >, fcppt::parse::result_of< Parser > > | parse_string (Parser const &_parser, std::basic_string< Ch > &&_string) |
Parses a std::basic_string without whitespace skipping. | |
| template<typename Ch> | |
| std::basic_ostream< Ch > & | operator<< (std::basic_ostream< Ch > &_stream, fcppt::parse::parse_string_error< Ch > const &_error) |
| template<typename Ch, typename Parser, typename Skipper> requires (std::conjunction_v< fcppt::parse::is_parser<Parser>, fcppt::parse::skipper::is_skipper<Skipper>>) | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, fcppt::parse::result_of< Parser > > | phrase_parse (Parser const &_parser, fcppt::parse::basic_stream< Ch > &_input, Skipper const &_skipper) |
| The basic parse function. | |
| template<typename Ch, typename Parser, typename Skipper> requires (std::conjunction_v< fcppt::parse::is_parser<Parser>, fcppt::parse::skipper::is_skipper<Skipper>>) | |
| fcppt::either::object< fcppt::parse::parse_stream_error< Ch >, fcppt::parse::result_of< Parser > > | phrase_parse_stream (Parser const &_parser, std::basic_istream< Ch > &_input, Skipper const &_skipper) |
Parses a std::basic_istream, using whitespace skipping. | |
| template<typename Ch, typename Parser, typename Skipper> requires (std::conjunction_v< fcppt::parse::is_parser<Parser>, fcppt::parse::skipper::is_skipper<Skipper>>) | |
| fcppt::either::object< fcppt::parse::parse_string_error< Ch >, fcppt::parse::result_of< Parser > > | phrase_parse_string (Parser const &_parser, std::basic_string< Ch > &&_string, Skipper const &_skipper) |
Parses a std::basic_string, using whitespace skipping. | |
| template<typename Ch> | |
| bool | operator== (fcppt::parse::position< Ch > const &_left, fcppt::parse::position< Ch > const &_right) |
| Compares two positions for equality. | |
| template<typename Ch> | |
| std::basic_ostream< Ch > & | operator<< (std::basic_ostream< Ch > &_stream, fcppt::parse::position< Ch > const &_pos) |
| Outputs a position to a stream. | |
| template<typename Inner, typename Sep> | |
| FCPPT_PP_POP_WARNING | separator (Inner &&, Sep &&) -> separator< std::remove_cvref_t< Inner >, std::remove_cvref_t< Sep > > |
| template<typename Ch> | |
| void | set_position (fcppt::reference< fcppt::parse::basic_stream< Ch > > const _state, fcppt::parse::position< Ch > const _pos) |
| Sets the current position of a stream. | |
| fcppt::parse::char_set | space () |
The char set parser using fcppt::parse::space_set<char>. | |
| template<typename Ch> | |
| fcppt::parse::basic_char_set_container< Ch > | space_set () |
| The char set of spaces.Returns the set containing the whitespace, newline and tab characters. | |
Library for parsers.
| using fcppt::parse::error_variant |
| using fcppt::parse::is_fatal = fcppt::strong_typedef< bool ,_> |
| FCPPT_PP_POP_WARNING fcppt::parse::convert_const | ( | Parser && | , |
| Result && | ) -> convert_const< std::remove_cvref_t< Parser >, std::remove_cvref_t< Result > > |
| FCPPT_PP_POP_WARNING fcppt::parse::list | ( | Start && | , |
| Inner && | , | ||
| Sep && | , | ||
| End && | ) -> list< std::remove_cvref_t< Start >, std::remove_cvref_t< Inner >, std::remove_cvref_t< Sep >, std::remove_cvref_t< End > > |
| FCPPT_PP_POP_WARNING fcppt::parse::named | ( | Parser && | , |
| std::basic_string< Ch > && | ) -> named< Ch, std::remove_cvref_t< Parser > > |
| std::basic_ostream< Ch > & fcppt::parse::operator<< | ( | std::basic_ostream< Ch > & | _stream, |
| fcppt::parse::error< Ch > const & | _error ) |
| std::basic_ostream< Ch > & fcppt::parse::operator<< | ( | std::basic_ostream< Ch > & | _stream, |
| fcppt::parse::parse_stream_error< Ch > const & | _error ) |
| std::basic_ostream< Ch > & fcppt::parse::operator<< | ( | std::basic_ostream< Ch > & | _stream, |
| fcppt::parse::parse_string_error< Ch > const & | _error ) |
|
inlinenodiscard |
| FCPPT_PP_POP_WARNING fcppt::parse::separator | ( | Inner && | , |
| Sep && | ) -> separator< std::remove_cvref_t< Inner >, std::remove_cvref_t< Sep > > |