| 195 | } // namespace |
| 196 | |
| 197 | NavigableProtoAst NavigableProtoAst::Build(const Expr& expr) { |
| 198 | NavigableExprBuilderVisitor visitor( |
| 199 | []() { return absl::WrapUnique(new AstNode()); }, |
| 200 | [](AstNode& node) -> NavigableAstNodeData& { return node.data_; }); |
| 201 | AstTraverse(&expr, /*source_info=*/nullptr, &visitor); |
| 202 | return NavigableProtoAst(std::move(visitor).Consume()); |
| 203 | } |
| 204 | |
| 205 | } // namespace cel |