From e90d2b712ea5364237e88c4831f27120d9d4d436 Mon Sep 17 00:00:00 2001 From: heck Date: Wed, 21 Jun 2023 20:48:00 +0200 Subject: [PATCH] idl-api: add "method" query functions --- idl/idl_api.ysl2 | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/idl/idl_api.ysl2 b/idl/idl_api.ysl2 index f7571a4..1620976 100644 --- a/idl/idl_api.ysl2 +++ b/idl/idl_api.ysl2 @@ -134,6 +134,9 @@ def "func:idl_get_basetypes" { result "/pEpACIDLang/idl/basetypes/*" }; +// TYPES +// ----- + def "func:idl_typekind_is_defined" { param "typekind"; result "func:exists(/pEpACIDLang/idl/typekinds//*[name()=$typekind])" @@ -243,3 +246,51 @@ function "idl_type_of_generic_deftype" { } + +// METHODS +// ------- + +def "func:idl_method_get_params" { + param "idl_method_name"; + result "//method[@name=$idl_method_name]/*[name()='param']/@name" +}; + +def "func:idl_method_get_throws" { + param "idl_method_name"; + result "//method[@name=$idl_method_name]/*[name()='throws']/@name" +}; + +def "func:idl_method_param_get_mode" { + param "idl_method_name"; + param "param_name"; + result "//method[@name=$idl_method_name]/param[@name=$param_name]/@mode" +}; + +def "func:idl_method_param_get_type" { + param "idl_method_name"; + param "param_name"; + result "//method[@name=$idl_method_name]/param[@name=$param_name]/@type" +}; + +def "func:idl_method_param_get_doc" { + param "idl_method_name"; + param "param_name"; + result "//method[@name=$idl_method_name]/param[@name=$param_name]/@doc" +}; + +def "func:idl_method_doc_get_brief" { + param "idl_method_name"; + result "//method[@name=$idl_method_name]/@brief" +}; + +def "func:idl_method_doc_get_note" { + param "idl_method_name"; + result "//method[@name=$idl_method_name]/@note" +}; + +def "func:idl_method_throw_get_doc" { + param "idl_method_name"; + param "throw_name"; + result "//method[@name=$idl_method_name]/throws[@name=$throw_name]/@doc" +}; +