restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple > Class Template Reference

A template for implementation of clause that selects one of alternative clauses. More...

`#include <easy_parser.hpp>`

Inheritance diagram for restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple >:

## Public Member Functions

| alternatives_clause_t (Subitems_Tuple &&subitems)
template<typename Target_Type >
RESTINIO_NODISCARD optional_t< parse_error_t > | try_process (source_t &from, Target_Type &target)

## Private Attributes

Subitems_Tuple | m_subitems

## Additional Inherited Members

Static Public Attributes inherited from restinio::easy_parser::impl::clause_tag
static constexpr entity_type_t | entity_type = entity_type_t::clause

## Detailed Description

template<typename Subitems_Tuple>
class restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple >

A template for implementation of clause that selects one of alternative clauses.

This template implements rules like:

    T := A | B | C

It works very simple way:

- `try_process` for the first alternative is called. If it fails then...
- `try_process` for the second alternative is called. If it fails then...
- `try_process` for the third alternative is called...
- and so on.

If no one of alternatives is selected then the current position in the input stream is restored.

Note
  The copy of Target_Type object passed to `try_process` method is created before checking each alternative.

Template Parameters

  Subitems_Tuple | the type of std::tuple with items for every alternative clauses.

Since
  v.0.6.1

Definition at line 1635 of file easy_parser.hpp.

## Constructor & Destructor Documentation

## alternatives_clause_t()

template<typename Subitems_Tuple >

restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple >::alternatives_clause_t | ( | Subitems_Tuple && | subitems | ) |

inline

Definition at line 1640 of file easy_parser.hpp.

## Member Function Documentation

## try_process()

template<typename Subitems_Tuple >
template<typename Target_Type >

RESTINIO_NODISCARD optional_t< parse_error_t > restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple >::try_process | ( | source_t & | from,
|  | Target_Type & | target
| ) |  |

inline

Definition at line 1648 of file easy_parser.hpp.

## Member Data Documentation

## m_subitems

template<typename Subitems_Tuple >

Subitems_Tuple restinio::easy_parser::impl::alternatives_clause_t< Subitems_Tuple >::m_subitems

private

Definition at line 1637 of file easy_parser.hpp.

The documentation for this class was generated from the following file:

- restinio/helpers/easy_parser.hpp