nixd
|
Describe how to traverse upon nix::Expr * nodes. More...
#include <nix/nixexpr.hh>
#include <nix/symbol-table.hh>
#include "Nodes.inc"
#include "Traverse.inc"
Go to the source code of this file.
Classes | |
struct | nixt::RecursiveASTVisitor< Derived > |
A CRTP base class for traversing nix::Expr * nodes. More... | |
Namespaces | |
namespace | nixt |
Access EvalCache in nix::EvalState . | |
Macros | |
#define | NIX_EXPR(EXPR) |
#define | NIX_EXPR(EXPR) |
#define | NIX_EXPR(EXPR) |
#define | TRY_TO(CALL_EXPR) |
#define | TRY_TO_TRAVERSE(EXPR) |
#define | DEF_TRAVERSE_TYPE(TYPE, CODE) |
#define | DEF_TRAVERSE_BINARY_EXPR(BIN_OP) |
Functions | |
nixt::DEF_TRAVERSE_TYPE (ExprAssert, { TRY_TO_TRAVERSE(T->cond);TRY_TO_TRAVERSE(T->body);}) DEF_TRAVERSE_TYPE(ExprAttrs | |
nixt::for (auto &DAD :T->dynamicAttrs) | |
nixt::DEF_TRAVERSE_TYPE (ExprCall, { for(auto &Arg :T->args) TRY_TO_TRAVERSE(Arg);TRY_TO_TRAVERSE(T->fun);}) DEF_TRAVERSE_TYPE(ExprConcatStrings | |
nixt::DEF_TRAVERSE_TYPE (ExprIf, { TRY_TO_TRAVERSE(T->cond);TRY_TO_TRAVERSE(T->then);TRY_TO_TRAVERSE(T->else_);}) DEF_TRAVERSE_TYPE(ExprLambda | |
nixt::TRY_TO_TRAVERSE (T->body) | |
nixt::DEF_TRAVERSE_TYPE (ExprLet, { TRY_TO_TRAVERSE(T->attrs);TRY_TO_TRAVERSE(T->body);}) DEF_TRAVERSE_TYPE(ExprList | |
nixt::DEF_TRAVERSE_TYPE (ExprOpHasAttr, { TRY_TO_TRAVERSE(T->e);for(auto &E :T->attrPath) if(!E.symbol) TRY_TO_TRAVERSE(E.expr);}) DEF_TRAVERSE_TYPE(ExprSelect | |
nixt::for (auto &E :T->attrPath) | |
Describe how to traverse upon nix::Expr * nodes.
This file contains a CRTP base class for traversing nix::Expr * nodes.
Definition in file Visitor.h.
#define DEF_TRAVERSE_BINARY_EXPR | ( | BIN_OP | ) |
#define DEF_TRAVERSE_TYPE | ( | TYPE, | |
CODE ) |
#define NIX_EXPR | ( | EXPR | ) |
#define NIX_EXPR | ( | EXPR | ) |
#define NIX_EXPR | ( | EXPR | ) |
#define TRY_TO | ( | CALL_EXPR | ) |