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

Method ComprehensionExprFromProto

common/ast/expr_proto.cc:454–483  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

452 }
453
454 absl::Status ComprehensionExprFromProto(
455 const ExprProto& proto,
456 const ExprProto::Comprehension& comprehension_proto, Expr& expr) {
457 expr.Clear();
458 expr.set_id(proto.id());
459 auto& comprehension_expr = expr.mutable_comprehension_expr();
460 comprehension_expr.set_iter_var(comprehension_proto.iter_var());
461 comprehension_expr.set_iter_var2(comprehension_proto.iter_var2());
462 comprehension_expr.set_accu_var(comprehension_proto.accu_var());
463 if (comprehension_proto.has_iter_range()) {
464 Push(comprehension_proto.iter_range(),
465 comprehension_expr.mutable_iter_range());
466 }
467 if (comprehension_proto.has_accu_init()) {
468 Push(comprehension_proto.accu_init(),
469 comprehension_expr.mutable_accu_init());
470 }
471 if (comprehension_proto.has_loop_condition()) {
472 Push(comprehension_proto.loop_condition(),
473 comprehension_expr.mutable_loop_condition());
474 }
475 if (comprehension_proto.has_loop_step()) {
476 Push(comprehension_proto.loop_step(),
477 comprehension_expr.mutable_loop_step());
478 }
479 if (comprehension_proto.has_result()) {
480 Push(comprehension_proto.result(), comprehension_expr.mutable_result());
481 }
482 return absl::OkStatus();
483 }
484
485 void Push(const ExprProto& proto, Expr& expr) {
486 frames_.push(Frame{&proto, &expr});

Callers

nothing calls this directly

Calls 11

set_iter_varMethod · 0.80
set_iter_var2Method · 0.80
set_accu_varMethod · 0.80
has_iter_rangeMethod · 0.80
has_accu_initMethod · 0.80
has_loop_conditionMethod · 0.80
has_loop_stepMethod · 0.80
has_resultMethod · 0.80
ClearMethod · 0.45
set_idMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected