Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
peg::parser Class Reference

#include <peglib.h>

Public Member Functions

 parser ()=default
 parser (const char *s, size_t n, const Rules &rules, std::string_view start={})
 parser (const char *s, size_t n, std::string_view start={})
 parser (std::string_view sv, const Rules &rules, std::string_view start={})
 parser (std::string_view sv, std::string_view start={})
 operator bool ()
bool load_grammar (const char *s, size_t n, const Rules &rules, std::string_view start={})
bool load_grammar (const char *s, size_t n, std::string_view start={})
bool load_grammar (std::string_view sv, const Rules &rules, std::string_view start={})
bool load_grammar (std::string_view sv, std::string_view start={})
bool parse_n (const char *s, size_t n, const char *path=nullptr) const
bool parse_n (const char *s, size_t n, std::any &dt, const char *path=nullptr) const
template<typename T>
bool parse_n (const char *s, size_t n, T &val, const char *path=nullptr) const
template<typename T>
bool parse_n (const char *s, size_t n, std::any &dt, T &val, const char *path=nullptr) const
bool parse (std::string_view sv, const char *path=nullptr) const
bool parse (std::string_view sv, std::any &dt, const char *path=nullptr) const
template<typename T>
bool parse (std::string_view sv, T &val, const char *path=nullptr) const
template<typename T>
bool parse (std::string_view sv, std::any &dt, T &val, const char *path=nullptr) const
Definitionoperator[] (const char *s)
const Definitionoperator[] (const char *s) const
const Grammarget_grammar () const
void disable_eoi_check ()
void enable_packrat_parsing ()
void enable_trace (TracerEnter tracer_enter, TracerLeave tracer_leave)
void enable_trace (TracerEnter tracer_enter, TracerLeave tracer_leave, TracerStartOrEnd tracer_start, TracerStartOrEnd tracer_end)
void set_verbose_trace (bool verbose_trace)
template<typename T = Ast>
parserenable_ast ()
template<typename T>
std::shared_ptr< T > optimize_ast (std::shared_ptr< T > ast, bool opt_mode=true) const
void set_logger (Log log)
void set_logger (std::function< void(size_t line, size_t col, const std::string &msg)> log)

Private Member Functions

bool post_process (const char *s, size_t n, Definition::Result &r) const
std::vector< std::string > get_no_ast_opt_rules () const

Private Attributes

std::shared_ptr< Grammargrammar_
std::string start_
bool enablePackratParsing_ = false
Log log_

Constructor & Destructor Documentation

◆ parser() [1/5]

peg::parser::parser ( )
default
Here is the caller graph for this function:

◆ parser() [2/5]

peg::parser::parser ( const char * s,
size_t n,
const Rules & rules,
std::string_view start = {} )
inline

◆ parser() [3/5]

peg::parser::parser ( const char * s,
size_t n,
std::string_view start = {} )
inline

◆ parser() [4/5]

peg::parser::parser ( std::string_view sv,
const Rules & rules,
std::string_view start = {} )
inline

◆ parser() [5/5]

peg::parser::parser ( std::string_view sv,
std::string_view start = {} )
inline

Member Function Documentation

◆ disable_eoi_check()

void peg::parser::disable_eoi_check ( )
inline

◆ enable_ast()

template<typename T = Ast>
parser & peg::parser::enable_ast ( )
inline
Here is the call graph for this function:

◆ enable_packrat_parsing()

void peg::parser::enable_packrat_parsing ( )
inline

◆ enable_trace() [1/2]

void peg::parser::enable_trace ( TracerEnter tracer_enter,
TracerLeave tracer_leave )
inline
Here is the caller graph for this function:

◆ enable_trace() [2/2]

void peg::parser::enable_trace ( TracerEnter tracer_enter,
TracerLeave tracer_leave,
TracerStartOrEnd tracer_start,
TracerStartOrEnd tracer_end )
inline

◆ get_grammar()

const Grammar & peg::parser::get_grammar ( ) const
inline

◆ get_no_ast_opt_rules()

std::vector< std::string > peg::parser::get_no_ast_opt_rules ( ) const
inlineprivate
Here is the caller graph for this function:

◆ load_grammar() [1/4]

bool peg::parser::load_grammar ( const char * s,
size_t n,
const Rules & rules,
std::string_view start = {} )
inline

◆ load_grammar() [2/4]

bool peg::parser::load_grammar ( const char * s,
size_t n,
std::string_view start = {} )
inline

◆ load_grammar() [3/4]

bool peg::parser::load_grammar ( std::string_view sv,
const Rules & rules,
std::string_view start = {} )
inline

◆ load_grammar() [4/4]

bool peg::parser::load_grammar ( std::string_view sv,
std::string_view start = {} )
inline

◆ operator bool()

peg::parser::operator bool ( )
inline

◆ operator[]() [1/2]

Definition & peg::parser::operator[] ( const char * s)
inline

◆ operator[]() [2/2]

const Definition & peg::parser::operator[] ( const char * s) const
inline

◆ optimize_ast()

template<typename T>
std::shared_ptr< T > peg::parser::optimize_ast ( std::shared_ptr< T > ast,
bool opt_mode = true ) const
inline
Here is the call graph for this function:

◆ parse() [1/4]

bool peg::parser::parse ( std::string_view sv,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse() [2/4]

bool peg::parser::parse ( std::string_view sv,
std::any & dt,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse() [3/4]

template<typename T>
bool peg::parser::parse ( std::string_view sv,
std::any & dt,
T & val,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse() [4/4]

template<typename T>
bool peg::parser::parse ( std::string_view sv,
T & val,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse_n() [1/4]

bool peg::parser::parse_n ( const char * s,
size_t n,
const char * path = nullptr ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_n() [2/4]

bool peg::parser::parse_n ( const char * s,
size_t n,
std::any & dt,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse_n() [3/4]

template<typename T>
bool peg::parser::parse_n ( const char * s,
size_t n,
std::any & dt,
T & val,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ parse_n() [4/4]

template<typename T>
bool peg::parser::parse_n ( const char * s,
size_t n,
T & val,
const char * path = nullptr ) const
inline
Here is the call graph for this function:

◆ post_process()

bool peg::parser::post_process ( const char * s,
size_t n,
Definition::Result & r ) const
inlineprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_logger() [1/2]

void peg::parser::set_logger ( Log log)
inline

◆ set_logger() [2/2]

void peg::parser::set_logger ( std::function< void(size_t line, size_t col, const std::string &msg)> log)
inline

◆ set_verbose_trace()

void peg::parser::set_verbose_trace ( bool verbose_trace)
inline

Member Data Documentation

◆ enablePackratParsing_

bool peg::parser::enablePackratParsing_ = false
private

◆ grammar_

std::shared_ptr<Grammar> peg::parser::grammar_
private

◆ log_

Log peg::parser::log_
private

◆ start_

std::string peg::parser::start_
private

The documentation for this class was generated from the following file:
  • libcockatrice_utility/libcockatrice/utility/peglib.h