Update code generation to create one file for dbl_list

This commit is contained in:
2025-04-19 13:33:09 +01:00
parent 3c32b247c0
commit 63ed2633ea
11 changed files with 105 additions and 70 deletions

View File

@@ -88,6 +88,15 @@ class CEnum:
return header + values + footer
@dataclass
class CMacro:
name: str
value: str
def __str__(self) -> str:
return f"#define {self.name} {self.value}\n"
@dataclass
class CStruct:
name: str
@@ -195,6 +204,7 @@ class CFile:
name: str
extension: str
decl_types: list[CStruct] = field(default_factory=list)
macros: list[CMacro] = field(default_factory=list)
def save(self, output_dir: Path):
output_file = output_dir / f"{self.name}.{self.extension}"
@@ -228,6 +238,12 @@ class CHeader(CFile):
includes = _get_includes_string(self.includes)
macros = ""
for macro in self.macros:
macros += str(macro)
if len(macros) > 0:
macros += "\n"
forward_declarations = ""
for _type in self.decl_types:
forward_declarations += _type.declare()
@@ -247,6 +263,7 @@ class CHeader(CFile):
header_guard_open +
includes +
c_linkage_open +
macros +
forward_declarations +
types +
funcs +
@@ -266,6 +283,12 @@ class CSource(CFile):
def __str__(self) -> str:
includes = _get_includes_string(self.includes)
macros = ""
for macro in self.macros:
macros += str(macro)
if len(macros) > 0:
macros += "\n"
forward_declarations = ""
for _type in self.decl_types:
forward_declarations += _type.declare()
@@ -292,6 +315,7 @@ class CSource(CFile):
return (
super().__str__() +
includes +
macros +
forward_declarations +
types +
internal_funcs_decl +