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

Method ExtractSubexpression

eval/compiler/flat_expr_builder_extensions.cc:359–380  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

357}
358
359int ProgramBuilder::ExtractSubexpression(const cel::Expr* expr) {
360 auto it = subprogram_map_.find(expr);
361 if (it == subprogram_map_.end()) {
362 return -1;
363 }
364 auto* subexpression = it->second.get();
365 auto parent_it = subprogram_map_.find(subexpression->parent_);
366 if (parent_it == subprogram_map_.end()) {
367 return -1;
368 }
369
370 auto* parent = parent_it->second.get();
371
372 auto* child = parent->ExtractChild(subexpression);
373
374 if (child == nullptr) {
375 return -1;
376 }
377
378 extracted_subexpressions_.push_back(child);
379 return extracted_subexpressions_.size() - 1;
380}
381
382Subexpression* absl_nullable ProgramBuilder::MakeSubexpression(
383 const cel::Expr* expr) {

Callers 3

PostVisitExprMethod · 0.80
TEST_FFunction · 0.80

Calls 3

endMethod · 0.45
getMethod · 0.45
sizeMethod · 0.45

Tested by 1

TEST_FFunction · 0.64