From f87d42898c8e3ed4cb5da073b79deee00bcc3e52 Mon Sep 17 00:00:00 2001 From: heck Date: Tue, 5 Jan 2021 22:27:45 +0100 Subject: [PATCH] cid2yml add inherent grammar --- gen/gen_cid/cid_2_yml.py | 41 +++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/gen/gen_cid/cid_2_yml.py b/gen/gen_cid/cid_2_yml.py index b8d8ca1..0d4d708 100644 --- a/gen/gen_cid/cid_2_yml.py +++ b/gen/gen_cid/cid_2_yml.py @@ -1,14 +1,33 @@ # -*- coding: utf-8 -*- from . import utils -def generate_yml(cid): + +def generate_yml(cid, module_name): ret = "" - ret += generate_functions(cid) - ret += generate_structs(cid) - ret += generate_enums(cid) + ret += _grammar_header() + ret += "module " + module_name + " {\n" + ret += _generate_functions(cid) + ret += _generate_structs(cid) + ret += _generate_enums(cid) + ret += "}" return ret -def generate_functions(cid): + +def _grammar_header(): + grammar = """ +decl method @name; + +decl struct @name; +decl field @name; + +decl enum @name; +decl item @name; + +""" + return grammar + + +def _generate_functions(cid): data_root = cid["functions"] # Main @@ -41,7 +60,8 @@ def generate_functions(cid): return ret -def generate_structs(cid): + +def _generate_structs(cid): data_root = cid["types"] # Main @@ -59,7 +79,7 @@ def generate_structs(cid): # Sub tmpl_sub = "" - tmpl_sub+=' field {name} type="{type}";' + tmpl_sub += ' field {name} type="{type}";' kind_sub = "CursorKind.FIELD_DECL" def format_func_sub(tmpl, item): @@ -71,7 +91,8 @@ def generate_structs(cid): return ret -def generate_enums(cid): + +def _generate_enums(cid): data_root = cid["types"] # Main @@ -89,7 +110,7 @@ def generate_enums(cid): # Sub tmpl_sub = "" - tmpl_sub+= ' item {name} value={value};' + tmpl_sub += ' item {name} value={value};' kind_sub = "CursorKind.ENUM_CONSTANT_DECL" def format_func_sub(tmpl, item): @@ -101,6 +122,7 @@ def generate_enums(cid): return ret + def _format(data, tmpl_main, kind_main, func_main, tmpl_sub, kind_sub, func_sub): ret = "" @@ -116,6 +138,7 @@ def _format(data, tmpl_main, kind_main, func_main, tmpl_sub, kind_sub, func_sub) return ret + def _format_subitems(data, tmpl, kind, func): ret = ""