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

Function AddBitwiseDecls

extensions/math_ext_decls.cc:222–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220}
221
222absl::Status AddBitwiseDecls(TypeCheckerBuilder& builder) {
223 const Type kBitwiseTypes[] = {IntType(), UintType()};
224
225 FunctionDecl bit_and_decl;
226 bit_and_decl.set_name("math.bitAnd");
227
228 FunctionDecl bit_or_decl;
229 bit_or_decl.set_name("math.bitOr");
230
231 FunctionDecl bit_xor_decl;
232 bit_xor_decl.set_name("math.bitXor");
233
234 FunctionDecl bit_not_decl;
235 bit_not_decl.set_name("math.bitNot");
236
237 FunctionDecl bit_lshift_decl;
238 bit_lshift_decl.set_name("math.bitShiftLeft");
239
240 FunctionDecl bit_rshift_decl;
241 bit_rshift_decl.set_name("math.bitShiftRight");
242
243 for (const Type& type : kBitwiseTypes) {
244 CEL_RETURN_IF_ERROR(bit_and_decl.AddOverload(
245 MakeOverloadDecl(absl::StrCat("math_bitAnd_", OverloadTypeName(type),
246 "_", OverloadTypeName(type)),
247 type, type, type)));
248
249 CEL_RETURN_IF_ERROR(bit_or_decl.AddOverload(
250 MakeOverloadDecl(absl::StrCat("math_bitOr_", OverloadTypeName(type),
251 "_", OverloadTypeName(type)),
252 type, type, type)));
253
254 CEL_RETURN_IF_ERROR(bit_xor_decl.AddOverload(
255 MakeOverloadDecl(absl::StrCat("math_bitXor_", OverloadTypeName(type),
256 "_", OverloadTypeName(type)),
257 type, type, type)));
258
259 CEL_RETURN_IF_ERROR(bit_not_decl.AddOverload(
260 MakeOverloadDecl(absl::StrCat("math_bitNot_", OverloadTypeName(type),
261 "_", OverloadTypeName(type)),
262 type, type)));
263
264 CEL_RETURN_IF_ERROR(bit_lshift_decl.AddOverload(MakeOverloadDecl(
265 absl::StrCat("math_bitShiftLeft_", OverloadTypeName(type), "_int"),
266 type, type, IntType())));
267
268 CEL_RETURN_IF_ERROR(bit_rshift_decl.AddOverload(MakeOverloadDecl(
269 absl::StrCat("math_bitShiftRight_", OverloadTypeName(type), "_int"),
270 type, type, IntType())));
271 }
272
273 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_and_decl));
274 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_or_decl));
275 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_xor_decl));
276 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_not_decl));
277 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_lshift_decl));
278 CEL_RETURN_IF_ERROR(builder.AddFunction(bit_rshift_decl));
279

Callers 1

Calls 7

MakeOverloadDeclFunction · 0.85
OverloadTypeNameFunction · 0.85
AddOverloadMethod · 0.80
IntTypeClass · 0.50
UintTypeClass · 0.50
set_nameMethod · 0.45
AddFunctionMethod · 0.45

Tested by

no test coverage detected