Class Context
Defined in File peglib.h
Nested Relationships
Nested Types
Class Documentation
-
class Context
Public Functions
-
inline void clear_packrat_cache(const char *pos, size_t def_id)
-
inline void write_packrat_cache(const char *pos, size_t def_id, size_t len, const std::any &val)
-
inline ~Context()
-
template<typename T>
inline void packrat(const char *a_s, size_t def_id, size_t &len, std::any &val, T fn)
-
inline SemanticValues &push_semantic_values_scope()
-
inline void pop_semantic_values_scope()
-
inline void pop_args()
-
inline Snapshot snapshot(const SemanticValues &vs) const
-
inline void rollback(SemanticValues &vs, const Snapshot &snap)
-
inline size_t skip_whitespace(const char *a_s, size_t n, SemanticValues &vs, std::any &dt)
-
inline void set_error_pos(const char *a_s, const char *literal = nullptr)
-
inline void trace_enter(const Ope &ope, const char *a_s, size_t n, const SemanticValues &vs, std::any &dt)
-
inline void trace_leave(const Ope &ope, const char *a_s, size_t n, const SemanticValues &vs, std::any &dt, size_t len)
-
inline std::pair<size_t, size_t> line_info(const char *cur) const
Public Members
-
const char *path
-
const char *s
-
const size_t l
-
bool recovered = false
-
std::vector<std::shared_ptr<SemanticValues>> value_stack
-
size_t value_stack_size = 0
-
std::vector<Definition*> rule_stack
-
size_t in_token_boundary_count = 0
-
bool in_whitespace = false
-
std::vector<std::pair<std::string_view, std::string>> capture_entries
-
std::vector<bool> cut_stack
-
const size_t def_count
-
const bool enablePackratParsing
-
std::vector<bool> cache_registered
-
std::vector<bool> cache_success
-
std::map<std::pair<size_t, size_t>, std::tuple<size_t, std::any>> cache_values
-
std::map<std::pair<const Definition*, const char*>, LRMemo> lr_memo
-
std::set<const Definition*> lr_refs_hit
-
std::set<std::pair<const Definition*, const char*>> lr_active_seeds
-
TracerEnter tracer_enter
-
TracerLeave tracer_leave
-
std::any trace_data
-
const bool verbose_trace
-
std::vector<PackratStats> *packrat_stats = nullptr
-
const std::vector<bool> *packrat_rule_filter = nullptr
-
size_t next_trace_id = 0
-
std::vector<size_t> trace_ids
-
bool ignore_trace_state = false
-
mutable std::once_flag source_line_index_init_
-
mutable std::vector<size_t> source_line_index
-
struct LRMemo
-
struct PackratStats
-
struct Snapshot
-
inline void clear_packrat_cache(const char *pos, size_t def_id)