![]() |
Spicy
|
Classes | |
struct | Uses |
Public Types | |
using | Features = std::map< std::string, bool > |
![]() | |
enum | Stage { COLLECT, PRUNE_USES, PRUNE_DECLS } |
![]() | |
using | result_t = Result |
using | erased_t = Erased |
using | base_t = Visitor< Result, Dispatcher, Erased, order > |
using | visitor_t = Dispatcher |
using | iterator_t = Iterator< Erased, order, false > |
using | const_iterator_t = Iterator< Erased, order, true > |
using | position_t = typename iterator_t::Position |
using | const_position_t = typename const_iterator_t::Position |
Public Member Functions | |
void | collect (Node &node) override |
bool | prune (Node &node) |
bool | prune_uses (Node &node) override |
bool | prune_decls (Node &node) override |
result_t | operator() (const Module &m, position_t p) |
result_t | operator() (const declaration::Field &x, position_t p) |
result_t | operator() (const declaration::Function &x, position_t p) |
result_t | operator() (const operator_::struct_::MemberCall &x, position_t p) |
result_t | operator() (const operator_::function::Call &call, position_t p) |
result_t | operator() (const declaration::Constant &x, position_t p) |
![]() | |
template<typename Position > | |
void | replaceNode (Position &p, const Node &replacement) |
template<typename Position > | |
void | removeNode (Position &p) |
![]() | |
virtual void | preDispatch (const Erased &, int) |
auto | dispatch (position_t &i) |
auto | dispatch (const_position_t &i) |
auto | dispatch (Erased *n) |
auto | dispatch (const Erased &n) |
auto | walk (const Erased &root) |
auto | walk (Erased *root) |
Public Attributes | |
std::map< ID, Features > | _features |
std::map< ID, Uses > | _data |
![]() | |
Stage | _stage = Stage::COLLECT |
Module * | _current_module = nullptr |
Additional Inherited Members | |
![]() | |
static const Order | order_ = order |