22 const auto position = function_signature.rfind(
"::");
23 if (position != std::string_view::npos) function_signature.remove_prefix(position + 2);
24 return function_signature;
26consteval bool starts_with(std::string_view str, std::string_view prefix) {
27 return str.size() >= prefix.size() && str.substr(0, prefix.size()) == prefix;
31 if (function_name.find(
"::enter") != std::string_view::npos)
return true;
36 if (function_name.find(
"::exit") != std::string_view::npos)
return true;
45 std::is_base_of_v<AST::ASTNode, typename T::element_type>;
58 { t.get_program() } -> std::same_as<std::shared_ptr<bpp::bpp_program>>;
59 { t.get_include_stack() } -> std::same_as<const std::vector<std::string>&>;
60 { t.get_source_file() } -> std::same_as<std::string>;
61 { t.get_lsp_mode() } -> std::same_as<bool>;