MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / StackRecord

Class StackRecord

common/ast_rewrite.cc:59–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57 absl::variant<ExprRecord, ArgRecord, ComprehensionRecord>;
58
59struct StackRecord {
60 public:
61 static constexpr int kTarget = -2;
62
63 explicit StackRecord(Expr* e) {
64 ExprRecord record;
65 record.expr = e;
66 record_variant = record;
67 }
68
69 StackRecord(Expr* e, ComprehensionExpr* comprehension,
70 Expr* comprehension_expr, ComprehensionArg comprehension_arg,
71 bool use_comprehension_callbacks) {
72 if (use_comprehension_callbacks) {
73 ComprehensionRecord record;
74 record.expr = e;
75 record.comprehension = comprehension;
76 record.comprehension_expr = comprehension_expr;
77 record.comprehension_arg = comprehension_arg;
78 record.use_comprehension_callbacks = use_comprehension_callbacks;
79 record_variant = record;
80 return;
81 }
82 ArgRecord record;
83 record.expr = e;
84 record.calling_expr = comprehension_expr;
85 record.call_arg = comprehension_arg;
86 record_variant = record;
87 }
88
89 StackRecord(Expr* e, const Expr* call, int argnum) {
90 ArgRecord record;
91 record.expr = e;
92 record.calling_expr = call;
93 record.call_arg = argnum;
94 record_variant = record;
95 }
96
97 Expr* expr() const { return absl::get<ExprRecord>(record_variant).expr; }
98
99 bool IsExprRecord() const {
100 return absl::holds_alternative<ExprRecord>(record_variant);
101 }
102
103 StackRecordKind record_variant;
104 bool visited = false;
105};
106
107struct PreVisitor {
108 void operator()(const ExprRecord& record) {

Callers 7

PushSelectDepsFunction · 0.70
PushCallDepsFunction · 0.70
PushListDepsFunction · 0.70
PushStructDepsFunction · 0.70
PushMapDepsFunction · 0.70
operator()Method · 0.70
AstRewriteFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected