MySQL 9.3.0
Source Code Documentation
routing_guidelines::rpn::Token Class Referencefinal

#include <rpn.h>

Classes

struct  Function
 
struct  Location
 

Public Types

enum class  Type {
  NUM , STR , BOOL , ROLE ,
  LIST , NONE , ADD , MIN ,
  DIV , MUL , MOD , NEG ,
  LT , GT , NE , LE ,
  GE , EQ , IN_OP , NOT ,
  AND , MID_AND , OR , MID_OR ,
  TAG_REF , VAR_REF , FUNC , RESOLVE_V4 ,
  RESOLVE_V6 , CONCAT , REGEXP , NETWORK
}
 

Public Member Functions

 Token ()
 
 Token (Type type, int start, int end)
 
template<typename T >
requires std::is_arithmetic_v<T>
 Token (T v, Type type=Type::NUM)
 
template<typename T >
requires std::is_constructible_v<std::string, T>
 Token (T &&s, Type type=Type::STR)
 
 Token (bool val)
 
 Token (const Function_definition &function, int start, int end)
 
 Token (const Token &i)=default
 
 Token (Token &&i) noexcept=default
 
Tokenoperator= (const Token &i)=default
 
Tokenoperator= (Token &&i) noexcept=default
 
bool is_num () const
 
bool is_role () const
 
double get_num () const
 
bool is_bool () const
 
bool get_bool (const char *exception_msg=nullptr) const
 
bool is_string () const
 
const std::string & get_string () const
 
bool is_null () const
 
double & number ()
 
const double & number () const
 
const std::string & string () const
 
std::string & string ()
 
bool has_location () const
 
const Locationlocation () const
 
const Function_definitionfunction () const
 
Type type () const
 
template<class Visitor >
constexpr auto visit (Visitor &&vis) const
 

Static Public Member Functions

static Token regexp (const std::string &rgx)
 

Private Attributes

Type type_
 
std::variant< double, std::string, Location, Functionvalue_
 

Friends

bool operator== (const Token &lhs, const Token &rhs)
 
bool operator< (const Token &lhs, const Token &rhs)
 
bool operator<= (const Token &lhs, const Token &rhs)
 

Member Enumeration Documentation

◆ Type

Enumerator
NUM 
STR 
BOOL 
ROLE 
LIST 
NONE 
ADD 
MIN 
DIV 
MUL 
MOD 
NEG 
LT 
GT 
NE 
LE 
GE 
EQ 
IN_OP 
NOT 
AND 
MID_AND 
OR 
MID_OR 
TAG_REF 
VAR_REF 
FUNC 
RESOLVE_V4 
RESOLVE_V6 
CONCAT 
REGEXP 
NETWORK 

Constructor & Destructor Documentation

◆ Token() [1/8]

routing_guidelines::rpn::Token::Token ( )
inline

◆ Token() [2/8]

routing_guidelines::rpn::Token::Token ( Type  type,
int  start,
int  end 
)
inline

◆ Token() [3/8]

template<typename T >
requires std::is_arithmetic_v<T>
routing_guidelines::rpn::Token::Token ( T  v,
Type  type = Type::NUM 
)
inlineexplicit

◆ Token() [4/8]

template<typename T >
requires std::is_constructible_v<std::string, T>
routing_guidelines::rpn::Token::Token ( T &&  s,
Type  type = Type::STR 
)
inlineexplicit

◆ Token() [5/8]

routing_guidelines::rpn::Token::Token ( bool  val)
inlineexplicit

◆ Token() [6/8]

routing_guidelines::rpn::Token::Token ( const Function_definition function,
int  start,
int  end 
)
inline

◆ Token() [7/8]

routing_guidelines::rpn::Token::Token ( const Token i)
default

◆ Token() [8/8]

routing_guidelines::rpn::Token::Token ( Token &&  i)
defaultnoexcept

Member Function Documentation

◆ function()

const Function_definition & routing_guidelines::rpn::Token::function ( ) const
inline

◆ get_bool()

bool routing_guidelines::rpn::Token::get_bool ( const char *  exception_msg = nullptr) const

◆ get_num()

double routing_guidelines::rpn::Token::get_num ( ) const
inline

◆ get_string()

const std::string & routing_guidelines::rpn::Token::get_string ( ) const
inline

◆ has_location()

bool routing_guidelines::rpn::Token::has_location ( ) const
inline

◆ is_bool()

bool routing_guidelines::rpn::Token::is_bool ( ) const
inline

◆ is_null()

bool routing_guidelines::rpn::Token::is_null ( ) const
inline

◆ is_num()

bool routing_guidelines::rpn::Token::is_num ( ) const
inline

◆ is_role()

bool routing_guidelines::rpn::Token::is_role ( ) const
inline

◆ is_string()

bool routing_guidelines::rpn::Token::is_string ( ) const
inline

◆ location()

const Location & routing_guidelines::rpn::Token::location ( ) const
inline

◆ number() [1/2]

double & routing_guidelines::rpn::Token::number ( )
inline

◆ number() [2/2]

const double & routing_guidelines::rpn::Token::number ( ) const
inline

◆ operator=() [1/2]

Token & routing_guidelines::rpn::Token::operator= ( const Token i)
default

◆ operator=() [2/2]

Token & routing_guidelines::rpn::Token::operator= ( Token &&  i)
defaultnoexcept

◆ regexp()

Token routing_guidelines::rpn::Token::regexp ( const std::string &  rgx)
static

◆ string() [1/2]

std::string & routing_guidelines::rpn::Token::string ( )
inline

◆ string() [2/2]

const std::string & routing_guidelines::rpn::Token::string ( ) const
inline

◆ type()

Type routing_guidelines::rpn::Token::type ( ) const
inline

◆ visit()

template<class Visitor >
constexpr auto routing_guidelines::rpn::Token::visit ( Visitor &&  vis) const
inlineconstexpr

Friends And Related Function Documentation

◆ operator<

bool operator< ( const Token lhs,
const Token rhs 
)
friend

◆ operator<=

bool operator<= ( const Token lhs,
const Token rhs 
)
friend

◆ operator==

bool operator== ( const Token lhs,
const Token rhs 
)
friend

Member Data Documentation

◆ type_

Type routing_guidelines::rpn::Token::type_
private

◆ value_

std::variant<double, std::string, Location, Function> routing_guidelines::rpn::Token::value_
private

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