![]() |
Spicy
|
Classes | |
| class | Dispatcher |
| class | Iterator |
| class | Range |
| class | Visitor |
| class | MutatingVisitorBase |
| class | MutatingVisitor |
Typedefs | |
| using | PreOrder = visitor::Visitor< visitor::Order::Pre, visitor::Dispatcher > |
| using | MutatingPreOrder = visitor::MutatingVisitor< visitor::Order::Pre, visitor::Dispatcher, Builder > |
| using | RangePreOrder = visitor::Range< visitor::Order::Pre > |
| using | PostOrder = visitor::Visitor< visitor::Order::Post, visitor::Dispatcher > |
| using | MutatingPostOrder = visitor::MutatingVisitor< visitor::Order::Post, visitor::Dispatcher, Builder > |
| using | RangePostOrder = visitor::Range< visitor::Order::Post > |
Enumerations | |
| enum class | Order { Pre , Post } |
Functions | |
| template<typename Visitor , typename Node > | |
| auto | range (Visitor &&visitor, Node *root, std::string_view limit_to_tag={}) |
| template<typename Visitor , typename Node > | |
| auto | visit (Visitor &&visitor, Node *root, std::string_view limit_to_tag={}) |
| template<typename Visitor , typename Node , typename ResultFunc > | |
| auto | visit (Visitor &&visitor, Node *root, std::string_view limit_to_tag, ResultFunc result) |
| template<typename Visitor > | |
| void | dispatch (Visitor &&visitor, Node *n) |
| template<typename Visitor , typename ResultFunc > | |
| auto | dispatch (Visitor &&visitor, Node *node, ResultFunc result) |
Visitor performing a pre-order iteration over a HILTI AST.
| using hilti::visitor::MutatingPostOrder = typedef visitor::MutatingVisitor<visitor::Order::Post, visitor::Dispatcher, Builder> |
Mutating visitor performing a post-order iteration over a HILTI AST.
| using hilti::visitor::MutatingPreOrder = typedef visitor::MutatingVisitor<visitor::Order::Pre, visitor::Dispatcher, Builder> |
Mutating visitor performing a pre-order iteration over a HILTI AST.
| using hilti::visitor::PostOrder = typedef visitor::Visitor<visitor::Order::Post, visitor::Dispatcher> |
Visitor performing a post-order iteration over a HILTI AST.
| using hilti::visitor::RangePostOrder = typedef visitor::Range<visitor::Order::Post> |
Iterator range traversing a HILTI AST in post-order.
| using hilti::visitor::RangePreOrder = typedef visitor::Range<visitor::Order::Pre> |
Iterator range traversing an AST in pre-order.
Dispatches a visitor for a single node.
| auto hilti::visitor::dispatch | ( | Visitor && | visitor, |
| Node * | node, | ||
| ResultFunc | result | ||
| ) |
Dispatches a visitor for a single node, then runs a callback and returns its result.
| auto hilti::visitor::range | ( | Visitor && | visitor, |
| Node * | root, | ||
| std::string_view | limit_to_tag = {} |
||
| ) |
Return a range that iterates over AST, returning each node successively.
| auto hilti::visitor::visit | ( | Visitor && | visitor, |
| Node * | root, | ||
| std::string_view | limit_to_tag, | ||
| ResultFunc | result | ||
| ) |
Walks the AST recursively and calls dispatch for each node, then runs callback and returns its result.