gitextract_qb36pkd3/ ├── .bazelrc ├── .bazelversion ├── .bcr/ │ ├── README.md │ ├── metadata.template.json │ ├── presubmit.yml │ └── source.template.json ├── .github/ │ └── workflows/ │ └── publish_to_bcr.yml ├── .gitignore ├── BUILD.bazel ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── MODULE.bazel ├── README.md ├── base/ │ ├── BUILD │ ├── ast.h │ ├── attribute.cc │ ├── attribute.h │ ├── attribute_set.h │ ├── builtins.h │ ├── function.h │ ├── function_adapter.h │ ├── function_descriptor.h │ ├── function_result.h │ ├── function_result_set.cc │ ├── function_result_set.h │ ├── internal/ │ │ ├── BUILD │ │ ├── memory_manager_testing.cc │ │ ├── memory_manager_testing.h │ │ ├── message_wrapper.h │ │ ├── operators.h │ │ ├── unknown_set.cc │ │ └── unknown_set.h │ ├── kind.h │ ├── operators.cc │ ├── operators.h │ ├── operators_test.cc │ └── type_provider.h ├── bazel/ │ ├── BUILD │ ├── antlr.bzl │ ├── antlr.patch │ ├── cat_param_file.cc │ ├── cel_cc_embed.bzl │ ├── cel_cc_embed.cc │ ├── cel_proto_transitive_descriptor_set.bzl │ └── deps.bzl ├── checker/ │ ├── BUILD │ ├── checker_options.h │ ├── internal/ │ │ ├── BUILD │ │ ├── builtins_arena.cc │ │ ├── builtins_arena.h │ │ ├── descriptor_pool_type_introspector.cc │ │ ├── descriptor_pool_type_introspector.h │ │ ├── descriptor_pool_type_introspector_test.cc │ │ ├── format_type_name.cc │ │ ├── format_type_name.h │ │ ├── format_type_name_test.cc │ │ ├── namespace_generator.cc │ │ ├── namespace_generator.h │ │ ├── namespace_generator_test.cc │ │ ├── test_ast_helpers.cc │ │ ├── test_ast_helpers.h │ │ ├── test_ast_helpers_test.cc │ │ ├── type_check_env.cc │ │ ├── type_check_env.h │ │ ├── type_checker_builder_impl.cc │ │ ├── type_checker_builder_impl.h │ │ ├── type_checker_builder_impl_test.cc │ │ ├── type_checker_impl.cc │ │ ├── type_checker_impl.h │ │ ├── type_checker_impl_test.cc │ │ ├── type_inference_context.cc │ │ ├── type_inference_context.h │ │ └── type_inference_context_test.cc │ ├── optional.cc │ ├── optional.h │ ├── optional_test.cc │ ├── standard_library.cc │ ├── standard_library.h │ ├── standard_library_test.cc │ ├── type_check_issue.cc │ ├── type_check_issue.h │ ├── type_check_issue_test.cc │ ├── type_checker.cc │ ├── type_checker.h │ ├── type_checker_builder.h │ ├── type_checker_builder_factory.cc │ ├── type_checker_builder_factory.h │ ├── type_checker_builder_factory_test.cc │ ├── type_checker_subset_factory.cc │ ├── type_checker_subset_factory.h │ ├── type_checker_subset_factory_test.cc │ ├── validation_result.cc │ ├── validation_result.h │ └── validation_result_test.cc ├── cloudbuild.yaml ├── codelab/ │ ├── BUILD │ ├── Dockerfile │ ├── README.md │ ├── cel_compiler.h │ ├── cel_compiler_test.cc │ ├── exercise1.cc │ ├── exercise1.h │ ├── exercise10.cc │ ├── exercise10.h │ ├── exercise10_test.cc │ ├── exercise1_test.cc │ ├── exercise2.cc │ ├── exercise2.h │ ├── exercise2_test.cc │ ├── exercise3_test.cc │ ├── exercise4.cc │ ├── exercise4.h │ ├── exercise4_test.cc │ ├── network_functions.cc │ ├── network_functions.h │ ├── network_functions_test.cc │ └── solutions/ │ ├── BUILD │ ├── exercise1.cc │ ├── exercise10.cc │ ├── exercise2.cc │ ├── exercise3_test.cc │ └── exercise4.cc ├── common/ │ ├── BUILD │ ├── allocator.h │ ├── allocator_test.cc │ ├── any.cc │ ├── any.h │ ├── any_test.cc │ ├── arena.h │ ├── arena_string.h │ ├── arena_string_pool.h │ ├── arena_string_pool_test.cc │ ├── arena_string_test.cc │ ├── arena_string_view.h │ ├── arena_string_view_test.cc │ ├── ast/ │ │ ├── BUILD │ │ ├── constant_proto.cc │ │ ├── constant_proto.h │ │ ├── expr_proto.cc │ │ ├── expr_proto.h │ │ ├── expr_proto_test.cc │ │ ├── metadata.cc │ │ ├── metadata.h │ │ ├── metadata_test.cc │ │ ├── navigable_ast_internal.h │ │ ├── navigable_ast_internal_test.cc │ │ ├── navigable_ast_kinds.cc │ │ ├── navigable_ast_kinds.h │ │ ├── source_info_proto.cc │ │ └── source_info_proto.h │ ├── ast.cc │ ├── ast.h │ ├── ast_proto.cc │ ├── ast_proto.h │ ├── ast_proto_test.cc │ ├── ast_rewrite.cc │ ├── ast_rewrite.h │ ├── ast_rewrite_test.cc │ ├── ast_test.cc │ ├── ast_traverse.cc │ ├── ast_traverse.h │ ├── ast_traverse_test.cc │ ├── ast_visitor.h │ ├── ast_visitor_base.h │ ├── casting.h │ ├── constant.cc │ ├── constant.h │ ├── constant_test.cc │ ├── container.cc │ ├── container.h │ ├── container_test.cc │ ├── data.h │ ├── data_test.cc │ ├── decl.cc │ ├── decl.h │ ├── decl_proto.cc │ ├── decl_proto.h │ ├── decl_proto_test.cc │ ├── decl_proto_v1alpha1.cc │ ├── decl_proto_v1alpha1.h │ ├── decl_test.cc │ ├── expr.cc │ ├── expr.h │ ├── expr_factory.h │ ├── expr_test.cc │ ├── function_descriptor.cc │ ├── function_descriptor.h │ ├── internal/ │ │ ├── BUILD │ │ ├── byte_string.cc │ │ ├── byte_string.h │ │ ├── byte_string_test.cc │ │ ├── casting.h │ │ ├── metadata.h │ │ ├── reference_count.cc │ │ ├── reference_count.h │ │ ├── reference_count_test.cc │ │ ├── signature.cc │ │ ├── signature.h │ │ ├── signature_test.cc │ │ ├── value_conversion.cc │ │ └── value_conversion.h │ ├── json.h │ ├── kind.cc │ ├── kind.h │ ├── kind_test.cc │ ├── legacy_value.cc │ ├── legacy_value.h │ ├── memory.cc │ ├── memory.h │ ├── memory_test.cc │ ├── memory_testing.h │ ├── minimal_descriptor_database.cc │ ├── minimal_descriptor_database.h │ ├── minimal_descriptor_database_test.cc │ ├── minimal_descriptor_pool.cc │ ├── minimal_descriptor_pool.h │ ├── minimal_descriptor_pool_test.cc │ ├── native_type.h │ ├── navigable_ast.cc │ ├── navigable_ast.h │ ├── navigable_ast_test.cc │ ├── operators.cc │ ├── operators.h │ ├── optional_ref.h │ ├── reference.cc │ ├── reference.h │ ├── reference_count.h │ ├── reference_test.cc │ ├── source.cc │ ├── source.h │ ├── source_test.cc │ ├── standard_definitions.h │ ├── type.cc │ ├── type.h │ ├── type_introspector.cc │ ├── type_introspector.h │ ├── type_kind.h │ ├── type_proto.cc │ ├── type_proto.h │ ├── type_proto_test.cc │ ├── type_reflector.h │ ├── type_reflector_test.cc │ ├── type_test.cc │ ├── type_testing.h │ ├── typeinfo.cc │ ├── typeinfo.h │ ├── typeinfo_test.cc │ ├── types/ │ │ ├── any_type.h │ │ ├── any_type_test.cc │ │ ├── basic_struct_type.cc │ │ ├── basic_struct_type.h │ │ ├── basic_struct_type_test.cc │ │ ├── bool_type.h │ │ ├── bool_type_test.cc │ │ ├── bool_wrapper_type.h │ │ ├── bool_wrapper_type_test.cc │ │ ├── bytes_type.h │ │ ├── bytes_type_test.cc │ │ ├── bytes_wrapper_type.h │ │ ├── bytes_wrapper_type_test.cc │ │ ├── double_type.h │ │ ├── double_type_test.cc │ │ ├── double_wrapper_type.h │ │ ├── double_wrapper_type_test.cc │ │ ├── duration_type.h │ │ ├── duration_type_test.cc │ │ ├── dyn_type.h │ │ ├── dyn_type_test.cc │ │ ├── enum_type.cc │ │ ├── enum_type.h │ │ ├── enum_type_test.cc │ │ ├── error_type.h │ │ ├── error_type_test.cc │ │ ├── function_type.cc │ │ ├── function_type.h │ │ ├── function_type_pool.cc │ │ ├── function_type_pool.h │ │ ├── function_type_test.cc │ │ ├── int_type.h │ │ ├── int_type_test.cc │ │ ├── int_wrapper_type.h │ │ ├── int_wrapper_type_test.cc │ │ ├── legacy_type_introspector.h │ │ ├── list_type.cc │ │ ├── list_type.h │ │ ├── list_type_pool.cc │ │ ├── list_type_pool.h │ │ ├── list_type_test.cc │ │ ├── map_type.cc │ │ ├── map_type.h │ │ ├── map_type_pool.cc │ │ ├── map_type_pool.h │ │ ├── map_type_test.cc │ │ ├── message_type.cc │ │ ├── message_type.h │ │ ├── message_type_test.cc │ │ ├── null_type.h │ │ ├── null_type_test.cc │ │ ├── opaque_type.cc │ │ ├── opaque_type.h │ │ ├── opaque_type_pool.cc │ │ ├── opaque_type_pool.h │ │ ├── opaque_type_test.cc │ │ ├── optional_type.cc │ │ ├── optional_type.h │ │ ├── optional_type_test.cc │ │ ├── string_type.h │ │ ├── string_type_test.cc │ │ ├── string_wrapper_type.h │ │ ├── string_wrapper_type_test.cc │ │ ├── struct_type.cc │ │ ├── struct_type.h │ │ ├── struct_type_test.cc │ │ ├── timestamp_type.h │ │ ├── timestamp_type_test.cc │ │ ├── type_param_type.h │ │ ├── type_param_type_test.cc │ │ ├── type_pool.cc │ │ ├── type_pool.h │ │ ├── type_pool_test.cc │ │ ├── type_type.cc │ │ ├── type_type.h │ │ ├── type_type_pool.cc │ │ ├── type_type_pool.h │ │ ├── type_type_test.cc │ │ ├── types.h │ │ ├── uint_type.h │ │ ├── uint_type_test.cc │ │ ├── uint_wrapper_type.h │ │ ├── uint_wrapper_type_test.cc │ │ ├── unknown_type.h │ │ └── unknown_type_test.cc │ ├── unknown.h │ ├── value.cc │ ├── value.h │ ├── value_kind.h │ ├── value_test.cc │ ├── value_testing.cc │ ├── value_testing.h │ ├── value_testing_test.cc │ └── values/ │ ├── bool_value.cc │ ├── bool_value.h │ ├── bool_value_test.cc │ ├── bytes_value.cc │ ├── bytes_value.h │ ├── bytes_value_input_stream.h │ ├── bytes_value_output_stream.h │ ├── bytes_value_test.cc │ ├── custom_list_value.cc │ ├── custom_list_value.h │ ├── custom_list_value_test.cc │ ├── custom_map_value.cc │ ├── custom_map_value.h │ ├── custom_map_value_test.cc │ ├── custom_struct_value.cc │ ├── custom_struct_value.h │ ├── custom_struct_value_test.cc │ ├── custom_value.h │ ├── double_value.cc │ ├── double_value.h │ ├── double_value_test.cc │ ├── duration_value.cc │ ├── duration_value.h │ ├── duration_value_test.cc │ ├── enum_value.h │ ├── error_value.cc │ ├── error_value.h │ ├── error_value_test.cc │ ├── int_value.cc │ ├── int_value.h │ ├── int_value_test.cc │ ├── legacy_list_value.cc │ ├── legacy_list_value.h │ ├── legacy_map_value.cc │ ├── legacy_map_value.h │ ├── legacy_struct_value.cc │ ├── legacy_struct_value.h │ ├── list_value.cc │ ├── list_value.h │ ├── list_value_builder.h │ ├── list_value_test.cc │ ├── list_value_variant.h │ ├── map_value.cc │ ├── map_value.h │ ├── map_value_builder.h │ ├── map_value_test.cc │ ├── map_value_variant.h │ ├── message_value.cc │ ├── message_value.h │ ├── message_value_test.cc │ ├── mutable_list_value_test.cc │ ├── mutable_map_value_test.cc │ ├── null_value.cc │ ├── null_value.h │ ├── null_value_test.cc │ ├── opaque_value.cc │ ├── opaque_value.h │ ├── optional_value.cc │ ├── optional_value.h │ ├── optional_value_test.cc │ ├── parsed_json_list_value.cc │ ├── parsed_json_list_value.h │ ├── parsed_json_list_value_test.cc │ ├── parsed_json_map_value.cc │ ├── parsed_json_map_value.h │ ├── parsed_json_map_value_test.cc │ ├── parsed_json_value.cc │ ├── parsed_json_value.h │ ├── parsed_json_value_test.cc │ ├── parsed_map_field_value.cc │ ├── parsed_map_field_value.h │ ├── parsed_map_field_value_test.cc │ ├── parsed_message_value.cc │ ├── parsed_message_value.h │ ├── parsed_message_value_test.cc │ ├── parsed_repeated_field_value.cc │ ├── parsed_repeated_field_value.h │ ├── parsed_repeated_field_value_test.cc │ ├── string_value.cc │ ├── string_value.h │ ├── string_value_test.cc │ ├── struct_value.cc │ ├── struct_value.h │ ├── struct_value_builder.cc │ ├── struct_value_builder.h │ ├── struct_value_test.cc │ ├── struct_value_variant.h │ ├── timestamp_value.cc │ ├── timestamp_value.h │ ├── timestamp_value_test.cc │ ├── type_value.cc │ ├── type_value.h │ ├── type_value_test.cc │ ├── uint_value.cc │ ├── uint_value.h │ ├── uint_value_test.cc │ ├── unknown_value.cc │ ├── unknown_value.h │ ├── unknown_value_test.cc │ ├── value_builder.cc │ ├── value_builder.h │ ├── value_variant.cc │ ├── value_variant.h │ ├── value_variant_test.cc │ └── values.h ├── compiler/ │ ├── BUILD │ ├── compiler.h │ ├── compiler_factory.cc │ ├── compiler_factory.h │ ├── compiler_factory_test.cc │ ├── compiler_library_subset_factory.cc │ ├── compiler_library_subset_factory.h │ ├── compiler_library_subset_factory_test.cc │ ├── optional.cc │ ├── optional.h │ ├── optional_test.cc │ ├── standard_library.cc │ └── standard_library.h ├── conformance/ │ ├── BUILD │ ├── run.bzl │ ├── run.cc │ ├── service.cc │ ├── service.h │ └── utils.h ├── env/ │ ├── BUILD │ ├── config.cc │ ├── config.h │ ├── config_test.cc │ ├── env.cc │ ├── env.h │ ├── env_runtime.cc │ ├── env_runtime.h │ ├── env_runtime_test.cc │ ├── env_std_extensions.cc │ ├── env_std_extensions.h │ ├── env_std_extensions_test.cc │ ├── env_test.cc │ ├── env_yaml.cc │ ├── env_yaml.h │ ├── env_yaml_test.cc │ ├── internal/ │ │ ├── BUILD │ │ ├── ext_registry.cc │ │ ├── ext_registry.h │ │ ├── ext_registry_test.cc │ │ ├── runtime_ext_registry.cc │ │ ├── runtime_ext_registry.h │ │ └── runtime_ext_registry_test.cc │ ├── runtime_std_extensions.cc │ ├── runtime_std_extensions.h │ ├── runtime_std_extensions_test.cc │ ├── type_info.cc │ ├── type_info.h │ └── type_info_test.cc ├── eval/ │ ├── BUILD │ ├── LICENSE │ ├── README.md │ ├── compiler/ │ │ ├── BUILD │ │ ├── LICENSE │ │ ├── cel_expression_builder_flat_impl.cc │ │ ├── cel_expression_builder_flat_impl.h │ │ ├── cel_expression_builder_flat_impl_test.cc │ │ ├── check_ast_extensions.cc │ │ ├── check_ast_extensions.h │ │ ├── check_ast_extensions_test.cc │ │ ├── comprehension_vulnerability_check.cc │ │ ├── comprehension_vulnerability_check.h │ │ ├── constant_folding.cc │ │ ├── constant_folding.h │ │ ├── constant_folding_test.cc │ │ ├── flat_expr_builder.cc │ │ ├── flat_expr_builder.h │ │ ├── flat_expr_builder_comprehensions_test.cc │ │ ├── flat_expr_builder_extensions.cc │ │ ├── flat_expr_builder_extensions.h │ │ ├── flat_expr_builder_extensions_test.cc │ │ ├── flat_expr_builder_short_circuiting_conformance_test.cc │ │ ├── flat_expr_builder_test.cc │ │ ├── instrumentation.cc │ │ ├── instrumentation.h │ │ ├── instrumentation_test.cc │ │ ├── qualified_reference_resolver.cc │ │ ├── qualified_reference_resolver.h │ │ ├── qualified_reference_resolver_test.cc │ │ ├── regex_precompilation_optimization.cc │ │ ├── regex_precompilation_optimization.h │ │ ├── regex_precompilation_optimization_test.cc │ │ ├── resolver.cc │ │ ├── resolver.h │ │ └── resolver_test.cc │ ├── eval/ │ │ ├── BUILD │ │ ├── LICENSE │ │ ├── attribute_trail.cc │ │ ├── attribute_trail.h │ │ ├── attribute_trail_test.cc │ │ ├── attribute_utility.cc │ │ ├── attribute_utility.h │ │ ├── attribute_utility_test.cc │ │ ├── cel_expression_flat_impl.cc │ │ ├── cel_expression_flat_impl.h │ │ ├── compiler_constant_step.cc │ │ ├── compiler_constant_step.h │ │ ├── compiler_constant_step_test.cc │ │ ├── comprehension_slots.h │ │ ├── comprehension_slots_test.cc │ │ ├── comprehension_step.cc │ │ ├── comprehension_step.h │ │ ├── comprehension_step_test.cc │ │ ├── const_value_step.h │ │ ├── container_access_step.cc │ │ ├── container_access_step.h │ │ ├── container_access_step_test.cc │ │ ├── create_list_step.cc │ │ ├── create_list_step.h │ │ ├── create_list_step_test.cc │ │ ├── create_map_step.cc │ │ ├── create_map_step.h │ │ ├── create_map_step_test.cc │ │ ├── create_struct_step.cc │ │ ├── create_struct_step.h │ │ ├── create_struct_step_test.cc │ │ ├── direct_expression_step.cc │ │ ├── direct_expression_step.h │ │ ├── equality_steps.cc │ │ ├── equality_steps.h │ │ ├── equality_steps_test.cc │ │ ├── evaluator_core.cc │ │ ├── evaluator_core.h │ │ ├── evaluator_core_test.cc │ │ ├── evaluator_stack.cc │ │ ├── evaluator_stack.h │ │ ├── evaluator_stack_test.cc │ │ ├── expression_step_base.h │ │ ├── function_step.cc │ │ ├── function_step.h │ │ ├── function_step_test.cc │ │ ├── ident_step.cc │ │ ├── ident_step.h │ │ ├── ident_step_test.cc │ │ ├── iterator_stack.h │ │ ├── jump_step.cc │ │ ├── jump_step.h │ │ ├── lazy_init_step.cc │ │ ├── lazy_init_step.h │ │ ├── lazy_init_step_test.cc │ │ ├── logic_step.cc │ │ ├── logic_step.h │ │ ├── logic_step_test.cc │ │ ├── optional_or_step.cc │ │ ├── optional_or_step.h │ │ ├── optional_or_step_test.cc │ │ ├── regex_match_step.cc │ │ ├── regex_match_step.h │ │ ├── regex_match_step_test.cc │ │ ├── select_step.cc │ │ ├── select_step.h │ │ ├── select_step_test.cc │ │ ├── shadowable_value_step.cc │ │ ├── shadowable_value_step.h │ │ ├── shadowable_value_step_test.cc │ │ ├── ternary_step.cc │ │ ├── ternary_step.h │ │ ├── ternary_step_test.cc │ │ └── trace_step.h │ ├── internal/ │ │ ├── BUILD │ │ ├── adapter_activation_impl.cc │ │ ├── adapter_activation_impl.h │ │ ├── cel_value_equal.cc │ │ ├── cel_value_equal.h │ │ ├── cel_value_equal_test.cc │ │ ├── errors.cc │ │ ├── errors.h │ │ └── interop.h │ ├── public/ │ │ ├── BUILD │ │ ├── LICENSE │ │ ├── activation.cc │ │ ├── activation.h │ │ ├── activation_bind_helper.cc │ │ ├── activation_bind_helper.h │ │ ├── activation_bind_helper_test.cc │ │ ├── activation_test.cc │ │ ├── ast_rewrite.cc │ │ ├── ast_rewrite.h │ │ ├── ast_rewrite_test.cc │ │ ├── ast_traverse.cc │ │ ├── ast_traverse.h │ │ ├── ast_traverse_test.cc │ │ ├── ast_visitor.h │ │ ├── ast_visitor_base.h │ │ ├── base_activation.h │ │ ├── builtin_func_registrar.cc │ │ ├── builtin_func_registrar.h │ │ ├── builtin_func_registrar_test.cc │ │ ├── builtin_func_test.cc │ │ ├── cel_attribute.cc │ │ ├── cel_attribute.h │ │ ├── cel_attribute_test.cc │ │ ├── cel_builtins.h │ │ ├── cel_expr_builder_factory.cc │ │ ├── cel_expr_builder_factory.h │ │ ├── cel_expression.h │ │ ├── cel_function.cc │ │ ├── cel_function.h │ │ ├── cel_function_adapter.h │ │ ├── cel_function_adapter_impl.h │ │ ├── cel_function_adapter_test.cc │ │ ├── cel_function_registry.cc │ │ ├── cel_function_registry.h │ │ ├── cel_function_registry_test.cc │ │ ├── cel_number.cc │ │ ├── cel_number.h │ │ ├── cel_number_test.cc │ │ ├── cel_options.cc │ │ ├── cel_options.h │ │ ├── cel_type_registry.cc │ │ ├── cel_type_registry.h │ │ ├── cel_type_registry_protobuf_reflection_test.cc │ │ ├── cel_type_registry_test.cc │ │ ├── cel_value.cc │ │ ├── cel_value.h │ │ ├── cel_value_internal.h │ │ ├── cel_value_producer.h │ │ ├── cel_value_test.cc │ │ ├── comparison_functions.cc │ │ ├── comparison_functions.h │ │ ├── comparison_functions_test.cc │ │ ├── container_function_registrar.cc │ │ ├── container_function_registrar.h │ │ ├── container_function_registrar_test.cc │ │ ├── containers/ │ │ │ ├── BUILD │ │ │ ├── container_backed_list_impl.h │ │ │ ├── container_backed_map_impl.cc │ │ │ ├── container_backed_map_impl.h │ │ │ ├── container_backed_map_impl_test.cc │ │ │ ├── field_access.cc │ │ │ ├── field_access.h │ │ │ ├── field_access_test.cc │ │ │ ├── field_backed_list_impl.h │ │ │ ├── field_backed_list_impl_test.cc │ │ │ ├── field_backed_map_impl.h │ │ │ ├── field_backed_map_impl_test.cc │ │ │ ├── internal_field_backed_list_impl.cc │ │ │ ├── internal_field_backed_list_impl.h │ │ │ ├── internal_field_backed_list_impl_test.cc │ │ │ ├── internal_field_backed_map_impl.cc │ │ │ ├── internal_field_backed_map_impl.h │ │ │ └── internal_field_backed_map_impl_test.cc │ │ ├── equality_function_registrar.cc │ │ ├── equality_function_registrar.h │ │ ├── equality_function_registrar_test.cc │ │ ├── extension_func_registrar.cc │ │ ├── extension_func_registrar.h │ │ ├── extension_func_test.cc │ │ ├── logical_function_registrar.cc │ │ ├── logical_function_registrar.h │ │ ├── logical_function_registrar_test.cc │ │ ├── message_wrapper.h │ │ ├── message_wrapper_test.cc │ │ ├── portable_cel_function_adapter.h │ │ ├── set_util.cc │ │ ├── set_util.h │ │ ├── set_util_test.cc │ │ ├── source_position.cc │ │ ├── source_position.h │ │ ├── source_position_test.cc │ │ ├── string_extension_func_registrar.cc │ │ ├── string_extension_func_registrar.h │ │ ├── string_extension_func_registrar_test.cc │ │ ├── structs/ │ │ │ ├── BUILD │ │ │ ├── cel_proto_descriptor_pool_builder.cc │ │ │ ├── cel_proto_descriptor_pool_builder.h │ │ │ ├── cel_proto_descriptor_pool_builder_test.cc │ │ │ ├── cel_proto_wrap_util.cc │ │ │ ├── cel_proto_wrap_util.h │ │ │ ├── cel_proto_wrap_util_test.cc │ │ │ ├── cel_proto_wrapper.cc │ │ │ ├── cel_proto_wrapper.h │ │ │ ├── cel_proto_wrapper_test.cc │ │ │ ├── dynamic_descriptor_pool_end_to_end_test.cc │ │ │ ├── field_access_impl.cc │ │ │ ├── field_access_impl.h │ │ │ ├── field_access_impl_test.cc │ │ │ ├── legacy_type_adapter.h │ │ │ ├── legacy_type_adapter_test.cc │ │ │ ├── legacy_type_info_apis.h │ │ │ ├── legacy_type_provider.cc │ │ │ ├── legacy_type_provider.h │ │ │ ├── legacy_type_provider_test.cc │ │ │ ├── proto_message_type_adapter.cc │ │ │ ├── proto_message_type_adapter.h │ │ │ ├── proto_message_type_adapter_test.cc │ │ │ ├── protobuf_descriptor_type_provider.cc │ │ │ ├── protobuf_descriptor_type_provider.h │ │ │ ├── protobuf_descriptor_type_provider_test.cc │ │ │ ├── protobuf_value_factory.h │ │ │ ├── trivial_legacy_type_info.h │ │ │ └── trivial_legacy_type_info_test.cc │ │ ├── testing/ │ │ │ ├── BUILD │ │ │ ├── matchers.cc │ │ │ ├── matchers.h │ │ │ └── matchers_test.cc │ │ ├── transform_utility.cc │ │ ├── transform_utility.h │ │ ├── unknown_attribute_set.h │ │ ├── unknown_attribute_set_test.cc │ │ ├── unknown_function_result_set.cc │ │ ├── unknown_function_result_set.h │ │ ├── unknown_function_result_set_test.cc │ │ ├── unknown_set.h │ │ ├── unknown_set_test.cc │ │ ├── value_export_util.cc │ │ ├── value_export_util.h │ │ └── value_export_util_test.cc │ ├── tests/ │ │ ├── BUILD │ │ ├── LICENSE │ │ ├── README.md │ │ ├── allocation_benchmark_test.cc │ │ ├── benchmark_test.cc │ │ ├── end_to_end_test.cc │ │ ├── expression_builder_benchmark_test.cc │ │ ├── memory_safety_test.cc │ │ ├── mock_cel_expression.h │ │ ├── modern_benchmark_test.cc │ │ ├── request_context.proto │ │ └── unknowns_end_to_end_test.cc │ └── testutil/ │ ├── BUILD │ ├── test_extensions.proto │ └── test_message.proto ├── extensions/ │ ├── BUILD │ ├── bindings_ext.cc │ ├── bindings_ext.h │ ├── bindings_ext_benchmark_test.cc │ ├── bindings_ext_test.cc │ ├── comprehensions_v2.cc │ ├── comprehensions_v2.h │ ├── comprehensions_v2_functions.cc │ ├── comprehensions_v2_functions.h │ ├── comprehensions_v2_macros.cc │ ├── comprehensions_v2_macros.h │ ├── comprehensions_v2_test.cc │ ├── encoders.cc │ ├── encoders.h │ ├── encoders_test.cc │ ├── formatting.cc │ ├── formatting.h │ ├── formatting_test.cc │ ├── lists_functions.cc │ ├── lists_functions.h │ ├── lists_functions_test.cc │ ├── math_ext.cc │ ├── math_ext.h │ ├── math_ext_decls.cc │ ├── math_ext_decls.h │ ├── math_ext_macros.cc │ ├── math_ext_macros.h │ ├── math_ext_test.cc │ ├── proto_ext.cc │ ├── proto_ext.h │ ├── protobuf/ │ │ ├── BUILD │ │ ├── ast_converters.h │ │ ├── bind_proto_to_activation.cc │ │ ├── bind_proto_to_activation.h │ │ ├── bind_proto_to_activation_test.cc │ │ ├── enum_adapter.cc │ │ ├── enum_adapter.h │ │ ├── internal/ │ │ │ ├── BUILD │ │ │ ├── map_reflection.cc │ │ │ ├── map_reflection.h │ │ │ ├── qualify.cc │ │ │ └── qualify.h │ │ ├── memory_manager.cc │ │ ├── memory_manager.h │ │ ├── memory_manager_test.cc │ │ ├── runtime_adapter.cc │ │ ├── runtime_adapter.h │ │ ├── value.h │ │ ├── value_end_to_end_test.cc │ │ ├── value_test.cc │ │ ├── value_testing.h │ │ └── value_testing_test.cc │ ├── regex_ext.cc │ ├── regex_ext.h │ ├── regex_ext_test.cc │ ├── regex_functions.cc │ ├── regex_functions.h │ ├── regex_functions_test.cc │ ├── select_optimization.cc │ ├── select_optimization.h │ ├── select_optimization_test.cc │ ├── sets_functions.cc │ ├── sets_functions.h │ ├── sets_functions_benchmark_test.cc │ ├── sets_functions_test.cc │ ├── strings.cc │ ├── strings.h │ └── strings_test.cc ├── internal/ │ ├── BUILD │ ├── align.h │ ├── align_test.cc │ ├── benchmark.h │ ├── casts.h │ ├── empty_descriptors.cc │ ├── empty_descriptors.h │ ├── empty_descriptors_test.cc │ ├── equals_text_proto.cc │ ├── equals_text_proto.h │ ├── exceptions.h │ ├── json.cc │ ├── json.h │ ├── json_test.cc │ ├── lexis.cc │ ├── lexis.h │ ├── lexis_test.cc │ ├── manual.h │ ├── message_equality.cc │ ├── message_equality.h │ ├── message_equality_test.cc │ ├── message_type_name.h │ ├── message_type_name_test.cc │ ├── minimal_descriptor_database.h │ ├── minimal_descriptor_pool.h │ ├── minimal_descriptors.cc │ ├── names.cc │ ├── names.h │ ├── names_test.cc │ ├── new.cc │ ├── new.h │ ├── new_test.cc │ ├── noop_delete.h │ ├── number.h │ ├── number_test.cc │ ├── overflow.cc │ ├── overflow.h │ ├── overflow_test.cc │ ├── parse_text_proto.h │ ├── proto_file_util.h │ ├── proto_matchers.h │ ├── proto_time_encoding.cc │ ├── proto_time_encoding.h │ ├── proto_time_encoding_test.cc │ ├── proto_util.h │ ├── proto_util_test.cc │ ├── protobuf_runtime_version.h │ ├── re2_options.h │ ├── status_builder.h │ ├── status_macros.h │ ├── string_pool.cc │ ├── string_pool.h │ ├── string_pool_test.cc │ ├── strings.cc │ ├── strings.h │ ├── strings_test.cc │ ├── testing.cc │ ├── testing.h │ ├── testing_descriptor_pool.cc │ ├── testing_descriptor_pool.h │ ├── testing_descriptor_pool_test.cc │ ├── testing_message_factory.cc │ ├── testing_message_factory.h │ ├── time.cc │ ├── time.h │ ├── time_test.cc │ ├── to_address.h │ ├── to_address_test.cc │ ├── unicode.h │ ├── utf8.cc │ ├── utf8.h │ ├── utf8_test.cc │ ├── well_known_types.cc │ ├── well_known_types.h │ └── well_known_types_test.cc ├── parser/ │ ├── BUILD │ ├── internal/ │ │ ├── BUILD │ │ ├── Cel.g4 │ │ └── options.h │ ├── macro.cc │ ├── macro.h │ ├── macro_expr_factory.cc │ ├── macro_expr_factory.h │ ├── macro_expr_factory_test.cc │ ├── macro_registry.cc │ ├── macro_registry.h │ ├── macro_registry_test.cc │ ├── options.h │ ├── parser.cc │ ├── parser.h │ ├── parser_benchmarks.cc │ ├── parser_interface.h │ ├── parser_subset_factory.cc │ ├── parser_subset_factory.h │ ├── parser_test.cc │ ├── source_factory.h │ ├── standard_macros.cc │ ├── standard_macros.h │ └── standard_macros_test.cc ├── runtime/ │ ├── BUILD │ ├── activation.cc │ ├── activation.h │ ├── activation_interface.h │ ├── activation_test.cc │ ├── comprehension_vulnerability_check.cc │ ├── comprehension_vulnerability_check.h │ ├── comprehension_vulnerability_check_test.cc │ ├── constant_folding.cc │ ├── constant_folding.h │ ├── constant_folding_test.cc │ ├── embedder_context.h │ ├── embedder_context_test.cc │ ├── function.h │ ├── function_adapter.h │ ├── function_adapter_test.cc │ ├── function_overload_reference.h │ ├── function_provider.h │ ├── function_registry.cc │ ├── function_registry.h │ ├── function_registry_test.cc │ ├── internal/ │ │ ├── BUILD │ │ ├── activation_attribute_matcher_access.cc │ │ ├── activation_attribute_matcher_access.h │ │ ├── attribute_matcher.h │ │ ├── convert_constant.cc │ │ ├── convert_constant.h │ │ ├── errors.cc │ │ ├── errors.h │ │ ├── function_adapter.h │ │ ├── function_adapter_test.cc │ │ ├── issue_collector.h │ │ ├── issue_collector_test.cc │ │ ├── legacy_runtime_type_provider.h │ │ ├── runtime_env.cc │ │ ├── runtime_env.h │ │ ├── runtime_env_testing.cc │ │ ├── runtime_env_testing.h │ │ ├── runtime_friend_access.h │ │ ├── runtime_impl.cc │ │ ├── runtime_impl.h │ │ ├── runtime_type_provider.cc │ │ └── runtime_type_provider.h │ ├── memory_safety_test.cc │ ├── optional_types.cc │ ├── optional_types.h │ ├── optional_types_test.cc │ ├── reference_resolver.cc │ ├── reference_resolver.h │ ├── reference_resolver_test.cc │ ├── regex_precompilation.cc │ ├── regex_precompilation.h │ ├── regex_precompilation_test.cc │ ├── register_function_helper.h │ ├── runtime.h │ ├── runtime_builder.h │ ├── runtime_builder_factory.cc │ ├── runtime_builder_factory.h │ ├── runtime_issue.h │ ├── runtime_options.h │ ├── standard/ │ │ ├── BUILD │ │ ├── arithmetic_functions.cc │ │ ├── arithmetic_functions.h │ │ ├── arithmetic_functions_test.cc │ │ ├── comparison_functions.cc │ │ ├── comparison_functions.h │ │ ├── comparison_functions_test.cc │ │ ├── container_functions.cc │ │ ├── container_functions.h │ │ ├── container_functions_test.cc │ │ ├── container_membership_functions.cc │ │ ├── container_membership_functions.h │ │ ├── container_membership_functions_test.cc │ │ ├── equality_functions.cc │ │ ├── equality_functions.h │ │ ├── equality_functions_test.cc │ │ ├── logical_functions.cc │ │ ├── logical_functions.h │ │ ├── logical_functions_test.cc │ │ ├── regex_functions.cc │ │ ├── regex_functions.h │ │ ├── regex_functions_test.cc │ │ ├── string_functions.cc │ │ ├── string_functions.h │ │ ├── string_functions_test.cc │ │ ├── time_functions.cc │ │ ├── time_functions.h │ │ ├── time_functions_test.cc │ │ ├── type_conversion_functions.cc │ │ ├── type_conversion_functions.h │ │ └── type_conversion_functions_test.cc │ ├── standard_functions.cc │ ├── standard_functions.h │ ├── standard_runtime_builder_factory.cc │ ├── standard_runtime_builder_factory.h │ ├── standard_runtime_builder_factory_test.cc │ ├── type_registry.cc │ └── type_registry.h ├── testing/ │ └── testrunner/ │ ├── BUILD │ ├── cel_cc_test.bzl │ ├── cel_expression_source.h │ ├── cel_test_context.h │ ├── cel_test_factories.h │ ├── coverage_index.cc │ ├── coverage_index.h │ ├── coverage_index_test.cc │ ├── coverage_reporting.cc │ ├── coverage_reporting.h │ ├── resources/ │ │ ├── BUILD │ │ ├── simple_tests.textproto │ │ ├── test.cel │ │ └── test_environment.textproto │ ├── runner_bin.cc │ ├── runner_lib.cc │ ├── runner_lib.h │ ├── runner_lib_test.cc │ └── user_tests/ │ ├── BUILD │ ├── checked_expr_test.cc │ ├── raw_expr_and_cel_file_test.cc │ ├── raw_expression_test.cc │ └── simple.cc ├── testutil/ │ ├── BUILD │ ├── baseline_tests.cc │ ├── baseline_tests.h │ ├── baseline_tests_test.cc │ ├── expr_printer.cc │ ├── expr_printer.h │ ├── expr_printer_test.cc │ ├── test_json_names.proto │ └── util.h ├── tools/ │ ├── BUILD │ ├── branch_coverage.cc │ ├── branch_coverage.h │ ├── branch_coverage_test.cc │ ├── cel_field_extractor.cc │ ├── cel_field_extractor.h │ ├── cel_field_extractor_test.cc │ ├── cel_unparser.cc │ ├── cel_unparser.h │ ├── cel_unparser_test.cc │ ├── descriptor_pool_builder.cc │ ├── descriptor_pool_builder.h │ ├── descriptor_pool_builder_test.cc │ ├── flatbuffers_backed_impl.cc │ ├── flatbuffers_backed_impl.h │ ├── flatbuffers_backed_impl_test.cc │ ├── navigable_ast.cc │ ├── navigable_ast.h │ ├── navigable_ast_test.cc │ └── testdata/ │ ├── BUILD │ ├── checked_expr_and.textproto │ ├── const_str.textproto │ ├── coverage_example.textproto │ ├── exists_macro.textproto │ ├── flatbuffers.fbs │ ├── macro_multiple_references.textproto │ ├── macro_nested_macro_call.textproto │ ├── macro_single_reference.textproto │ ├── msg_new_field.textproto │ └── msg_new_field_int.textproto └── validator/ ├── BUILD ├── ast_depth_validator.cc ├── ast_depth_validator.h ├── ast_depth_validator_test.cc ├── comprehension_nesting_validator.cc ├── comprehension_nesting_validator.h ├── comprehension_nesting_validator_test.cc ├── homogeneous_literal_validator.cc ├── homogeneous_literal_validator.h ├── homogeneous_literal_validator_test.cc ├── regex_validator.cc ├── regex_validator.h ├── regex_validator_test.cc ├── timestamp_literal_validator.cc ├── timestamp_literal_validator.h ├── timestamp_literal_validator_test.cc ├── validator.cc ├── validator.h └── validator_test.cc