C++ Actor Framework 1.0.0
Loading...
Searching...
No Matches
caf::parser_state< Iterator, Sentinel > Struct Template Reference

Stores all information necessary for implementing an FSM-based parser. More...

#include <parser_state.hpp>

Public Types

using iterator_type = Iterator
 

Public Member Functions

 parser_state (Iterator first) noexcept
 
 parser_state (Iterator first, Sentinel last) noexcept
 
 parser_state (const parser_state &) noexcept=default
 
parser_stateoperator= (const parser_state &) noexcept=default
 
char next () noexcept
 Returns the null terminator when reaching the end of the string, otherwise the next character.
 
char current () const noexcept
 Returns the null terminator if i == e, otherwise the current character.
 
bool at_end () const noexcept
 Checks whether i == e.
 
void skip_whitespaces () noexcept
 Skips any whitespaces characters in the input.
 
bool consume (char x) noexcept
 Tries to read x as the next character, automatically skipping leading whitespaces.
 
template<class Predicate >
bool consume_if (Predicate predicate) noexcept
 Consumes the next character if it satisfies given predicate, automatically skipping leading whitespaces.
 
bool consume_strict (char x) noexcept
 Tries to read x as the next character without automatically skipping leading whitespaces.
 
template<class Predicate >
bool consume_strict_if (Predicate predicate) noexcept
 Consumes the next character if it satisfies given predicate without automatically skipping leading whitespaces.
 
auto error ()
 Returns an error from the current state.
 

Public Attributes

Iterator i
 Current position of the parser.
 
Sentinel e
 End-of-input marker.
 
pec code
 Current state of the parser.
 
int32_t line
 Current line in the input.
 
int32_t column
 Position in the current line.
 

Detailed Description

template<class Iterator, class Sentinel>
struct caf::parser_state< Iterator, Sentinel >

Stores all information necessary for implementing an FSM-based parser.


The documentation for this struct was generated from the following files: