Browse Source

add function signature to the acid-yml

master
heck 5 years ago
parent
commit
62b6a2b77a
  1. 17
      pEpACIDgen/acid_yml.py

17
pEpACIDgen/acid_yml.py

@ -17,8 +17,7 @@ def generate_acid_yml(acid, module_name):
def _grammar_header():
grammar = """
decl module @name;
grammar = """decl module @name;
decl method @name;
decl struct @name;
@ -36,6 +35,7 @@ def _generate_functions(acid):
# Main
tmpl_main = 'method {name} {{\n'
tmpl_main += ' method sig="{sig}";\n'
tmpl_main += ' return type="{return_type}";\n'
tmpl_main += '{subitems}'
tmpl_main += '}};\n\n'
@ -61,7 +61,18 @@ def _generate_functions(acid):
for subitem in subitems:
subitems_str += tmpl_sub.format(type=subitem["type"], name=subitem["name"]) + "\n"
ret += tmpl_main.format(name=item["name"], return_type=item["result_type"], subitems=subitems_str)
# (PEP_STATUS(*)(void*,const char*,const char*,const char*,const char*,const char*))
sig_ret = item["result_type"] + "(*)"
sig_parms = ""
for subitem in subitems:
sig_parms += subitem["type"] + ", "
sig_parms = sig_parms[:-2]
sig_str = "(" + sig_ret + "(" +sig_parms + "))"
ret += tmpl_main.format(name=item["name"], return_type=item["result_type"], sig=sig_str, subitems=subitems_str)
return ret

Loading…
Cancel
Save