neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::lexer_rule< Atom > Class Template Reference

#include <lexer.hpp>

Public Types

typedef Atom atom_type
 
typedef atom_type::char_type char_type
 
typedef atom_type::token_type token_type
 
typedef atom_type::scope_type scope_type
 
typedef atom_type::range_type range_type
 

Static Public Member Functions

static constexpr std::pair< scope_type, boolenter_scope (scope_type aScope)
 
static constexpr std::pair< scope_type, boolleave_scope (scope_type aScope)
 
static constexpr atom_type token_end (token_type aToken)
 
static atom_type token_end (atom_type aAtom)
 
static constexpr atom_type token_eat (token_type aToken)
 
static atom_type token_eat (atom_type aAtom)
 
static constexpr atom_type token_keep (token_type aToken)
 
static atom_type token_keep (atom_type aAtom)
 
static constexpr atom_type token_make (token_type aToken, char_type aChar)
 
static constexpr atom_type token_not (token_type aToken)
 
static constexpr range_type token_range (char_type aFrom, char_type aTo)
 
static constexpr lexer_atom_match_any token_any ()
 

Public Attributes

atom_type symbol
 
std::vector< atom_typeexpression
 

Detailed Description

template<typename Atom>
class neolib::lexer_rule< Atom >

Definition at line 219 of file lexer.hpp.

Member Typedef Documentation

◆ atom_type

template<typename Atom >
typedef Atom neolib::lexer_rule< Atom >::atom_type

Definition at line 222 of file lexer.hpp.

◆ char_type

template<typename Atom >
typedef atom_type::char_type neolib::lexer_rule< Atom >::char_type

Definition at line 223 of file lexer.hpp.

◆ range_type

template<typename Atom >
typedef atom_type::range_type neolib::lexer_rule< Atom >::range_type

Definition at line 226 of file lexer.hpp.

◆ scope_type

template<typename Atom >
typedef atom_type::scope_type neolib::lexer_rule< Atom >::scope_type

Definition at line 225 of file lexer.hpp.

◆ token_type

template<typename Atom >
typedef atom_type::token_type neolib::lexer_rule< Atom >::token_type

Definition at line 224 of file lexer.hpp.

Member Function Documentation

◆ enter_scope()

template<typename Atom >
static constexpr std::pair< scope_type, bool > neolib::lexer_rule< Atom >::enter_scope ( scope_type  aScope)
inlinestaticconstexpr

Definition at line 231 of file lexer.hpp.

◆ leave_scope()

template<typename Atom >
static constexpr std::pair< scope_type, bool > neolib::lexer_rule< Atom >::leave_scope ( scope_type  aScope)
inlinestaticconstexpr

Definition at line 235 of file lexer.hpp.

◆ token_any()

template<typename Atom >
static constexpr lexer_atom_match_any neolib::lexer_rule< Atom >::token_any ( )
inlinestaticconstexpr

Definition at line 290 of file lexer.hpp.

◆ token_eat() [1/2]

template<typename Atom >
static atom_type neolib::lexer_rule< Atom >::token_eat ( atom_type  aAtom)
inlinestatic

Definition at line 256 of file lexer.hpp.

◆ token_eat() [2/2]

template<typename Atom >
static constexpr atom_type neolib::lexer_rule< Atom >::token_eat ( token_type  aToken)
inlinestaticconstexpr

Definition at line 252 of file lexer.hpp.

◆ token_end() [1/2]

template<typename Atom >
static atom_type neolib::lexer_rule< Atom >::token_end ( atom_type  aAtom)
inlinestatic

Definition at line 243 of file lexer.hpp.

◆ token_end() [2/2]

template<typename Atom >
static constexpr atom_type neolib::lexer_rule< Atom >::token_end ( token_type  aToken)
inlinestaticconstexpr

Definition at line 239 of file lexer.hpp.

◆ token_keep() [1/2]

template<typename Atom >
static atom_type neolib::lexer_rule< Atom >::token_keep ( atom_type  aAtom)
inlinestatic

Definition at line 269 of file lexer.hpp.

◆ token_keep() [2/2]

template<typename Atom >
static constexpr atom_type neolib::lexer_rule< Atom >::token_keep ( token_type  aToken)
inlinestaticconstexpr

Definition at line 265 of file lexer.hpp.

◆ token_make()

template<typename Atom >
static constexpr atom_type neolib::lexer_rule< Atom >::token_make ( token_type  aToken,
char_type  aChar 
)
inlinestaticconstexpr

Definition at line 278 of file lexer.hpp.

◆ token_not()

template<typename Atom >
static constexpr atom_type neolib::lexer_rule< Atom >::token_not ( token_type  aToken)
inlinestaticconstexpr

Definition at line 282 of file lexer.hpp.

◆ token_range()

template<typename Atom >
static constexpr range_type neolib::lexer_rule< Atom >::token_range ( char_type  aFrom,
char_type  aTo 
)
inlinestaticconstexpr

Definition at line 286 of file lexer.hpp.

Member Data Documentation

◆ expression

template<typename Atom >
std::vector<atom_type> neolib::lexer_rule< Atom >::expression

Definition at line 229 of file lexer.hpp.

◆ symbol

Definition at line 228 of file lexer.hpp.


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