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

Method Create

checker/internal/namespace_generator.cc:82–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80} // namespace
81
82absl::StatusOr<NamespaceGenerator> NamespaceGenerator::Create(
83 const ExpressionContainer& expression_container) {
84 std::vector<std::string> candidates;
85
86 absl::string_view container = expression_container.container();
87 if (container.empty()) {
88 return NamespaceGenerator(&expression_container, std::move(candidates));
89 }
90
91 std::string prefix;
92 for (auto segment : absl::StrSplit(container, '.')) {
93 // Assumes the the ExpressionContainer has already validated the container
94 // and aliases.
95 ABSL_DCHECK(internal::LexisIsIdentifier(segment));
96 if (prefix.empty()) {
97 prefix = segment;
98 } else {
99 absl::StrAppend(&prefix, ".", segment);
100 }
101 candidates.push_back(prefix);
102 }
103 std::reverse(candidates.begin(), candidates.end());
104 return NamespaceGenerator(&expression_container, std::move(candidates));
105}
106
107void NamespaceGenerator::GenerateCandidates(
108 absl::string_view simple_name,

Callers

nothing calls this directly

Calls 6

NamespaceGeneratorClass · 0.85
LexisIsIdentifierFunction · 0.85
containerMethod · 0.45
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected