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

Function GetNodeKind

tools/navigable_ast.cc:48–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46 common_internal::NavigableAstMetadata<common_internal::ProtoAstTraits>;
47
48NodeKind GetNodeKind(const Expr& expr) {
49 switch (expr.expr_kind_case()) {
50 case Expr::kConstExpr:
51 return NodeKind::kConstant;
52 case Expr::kIdentExpr:
53 return NodeKind::kIdent;
54 case Expr::kSelectExpr:
55 return NodeKind::kSelect;
56 case Expr::kCallExpr:
57 return NodeKind::kCall;
58 case Expr::kListExpr:
59 return NodeKind::kList;
60 case Expr::kStructExpr:
61 if (!expr.struct_expr().message_name().empty()) {
62 return NodeKind::kStruct;
63 } else {
64 return NodeKind::kMap;
65 }
66 case Expr::kComprehensionExpr:
67 return NodeKind::kComprehension;
68 case Expr::EXPR_KIND_NOT_SET:
69 default:
70 return NodeKind::kUnspecified;
71 }
72}
73
74// Get the traversal relationship from parent to the given node.
75// Note: these depend on the ast_visitor utility's traversal ordering.

Callers 1

PreVisitExprMethod · 0.70

Calls 1

emptyMethod · 0.45

Tested by

no test coverage detected