Browse Source

reduce kolmogorov - final step

master
heck 5 years ago
parent
commit
b2fb4b96fe
  1. 43
      pEpACIDgen/acid_yml.py

43
pEpACIDgen/acid_yml.py

@ -51,17 +51,17 @@ def _generate_functions(acid):
ret = "" ret = ""
for item in main_items: for item in main_items:
subitems_str = ""
def filt(data): def filt(data):
if data["kind"] == "CursorKind.PARM_DECL": if data["kind"] == "CursorKind.PARM_DECL":
return True return True
subitems = utils.recursive_query(item, filt) subitems = utils.recursive_query(item, filt)
subitems_str = ""
for subitem in subitems: for subitem in subitems:
subitems_str += tmpl_sub.format(type=subitem["type"], name=subitem["name"]) + "\n" 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)
ret += tmpl_main.format(name=item["name"], return_type=item["result_type"], subitems=subitems_str)
return ret return ret
@ -74,9 +74,6 @@ def _generate_structs(acid):
tmpl_main += '{subitems}' tmpl_main += '{subitems}'
tmpl_main += '}};\n\n' tmpl_main += '}};\n\n'
def format_func_main(tmpl, item, subitems_str):
return tmpl.format(name=item["name"], subitems=subitems_str)
# Sub # Sub
tmpl_sub = ' field {name} type="{type}";' tmpl_sub = ' field {name} type="{type}";'
@ -88,14 +85,13 @@ def _generate_structs(acid):
ret = "" ret = ""
for item in main_items: for item in main_items:
subitems_str = ""
def filt(data): def filt(data):
if data["kind"] == "CursorKind.FIELD_DECL": if data["kind"] == "CursorKind.FIELD_DECL":
return True return True
subitems = utils.recursive_query(item, filt) subitems = utils.recursive_query(item, filt)
subitems_str = ""
for subitem in subitems: for subitem in subitems:
subitems_str += tmpl_sub.format(type=subitem["type"], name=subitem["name"]) + "\n" subitems_str += tmpl_sub.format(type=subitem["type"], name=subitem["name"]) + "\n"
@ -112,19 +108,6 @@ def _generate_enums(acid):
tmpl_main += '{subitems}' tmpl_main += '{subitems}'
tmpl_main += '}};\n\n' tmpl_main += '}};\n\n'
def format_func_main(tmpl, item, subitems_str):
name = ""
if item["name"]:
name = item["name"]
else:
name = item["type"]
if name == "":
print(__file__, " - warning: enum without a name or type extracted")
ret = tmpl.format(name=name, subitems=subitems_str)
return ret
# Sub # Sub
tmpl_sub = ' item {name} value={value};' tmpl_sub = ' item {name} value={value};'
@ -136,14 +119,13 @@ def _generate_enums(acid):
ret = "" ret = ""
for item in main_items: for item in main_items:
subitems_str = ""
def filt(data): def filt(data):
if data["kind"] == "CursorKind.ENUM_CONSTANT_DECL": if data["kind"] == "CursorKind.ENUM_CONSTANT_DECL":
return True return True
subitems = utils.recursive_query(item, filt) subitems = utils.recursive_query(item, filt)
subitems_str = ""
for subitem in subitems: for subitem in subitems:
subitems_str += tmpl_sub.format(name=subitem["name"], value=subitem["value"]) + "\n" subitems_str += tmpl_sub.format(name=subitem["name"], value=subitem["value"]) + "\n"
@ -159,18 +141,3 @@ def _generate_enums(acid):
ret += tmpl_main.format(name=name, subitems=subitems_str) ret += tmpl_main.format(name=name, subitems=subitems_str)
return ret return ret
def _format_subitems(data, tmpl, kind, func):
ret = ""
def filt(data):
if data["kind"] == kind:
return True
subitems = utils.recursive_query(data, filt)
for item in subitems:
ret += func(tmpl, item) + "\n"
return ret

Loading…
Cancel
Save