Update datatypes
This commit is contained in:
parent
8d0c731b72
commit
6f2cdd8d62
@ -105,7 +105,7 @@ class CStruct:
|
|||||||
|
|
||||||
|
|
||||||
CUserType = Union[CStruct, CEnum]
|
CUserType = Union[CStruct, CEnum]
|
||||||
CDataType = Union[CType, CUserType]
|
CDataType = Union[CType, CUserType, str]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ -118,7 +118,7 @@ class CArg:
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
qualifier = str(self.qualifier)
|
qualifier = str(self.qualifier)
|
||||||
_type = _get_arg_type_string(self._type)
|
_type = get_datatype_string(self._type) + " "
|
||||||
pointer = str(self.pointer)
|
pointer = str(self.pointer)
|
||||||
array = "[]" if self.array else ""
|
array = "[]" if self.array else ""
|
||||||
|
|
||||||
@ -136,10 +136,12 @@ class CFunc:
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
qualifiers = ""
|
qualifiers = ""
|
||||||
for qualifier in qualifiers:
|
for qualifier in self.qualifiers:
|
||||||
if qualifier == CQualifier.NONE:
|
if qualifier == CQualifier.NONE:
|
||||||
continue
|
continue
|
||||||
qualifiers += f"{str(qualifier)} "
|
if len(qualifiers) > 0:
|
||||||
|
qualifiers += " "
|
||||||
|
qualifiers += f"{str(qualifier)}"
|
||||||
|
|
||||||
args = ""
|
args = ""
|
||||||
for i, arg in enumerate(self.args):
|
for i, arg in enumerate(self.args):
|
||||||
@ -147,7 +149,7 @@ class CFunc:
|
|||||||
if i + 1 < len(self.args):
|
if i + 1 < len(self.args):
|
||||||
args += ", "
|
args += ", "
|
||||||
|
|
||||||
return qualifiers + _get_arg_type_string(self.ret_type) + str(self.pointer) + self.name + f"({args})"
|
return qualifiers + get_datatype_string(self.ret_type) + " " + str(self.pointer) + self.name + f"({args})"
|
||||||
|
|
||||||
def declare(self) -> str:
|
def declare(self) -> str:
|
||||||
return f"{str(self)};\n"
|
return f"{str(self)};\n"
|
||||||
@ -235,6 +237,9 @@ class CSource(CFile):
|
|||||||
internal_funcs_decl += func.declare()
|
internal_funcs_decl += func.declare()
|
||||||
internal_funcs_def += func.define()
|
internal_funcs_def += func.define()
|
||||||
|
|
||||||
|
if len(internal_funcs_decl) > 0:
|
||||||
|
internal_funcs_decl += "\n"
|
||||||
|
|
||||||
funcs = ""
|
funcs = ""
|
||||||
for func in self.funcs:
|
for func in self.funcs:
|
||||||
funcs += func.define()
|
funcs += func.define()
|
||||||
@ -242,11 +247,13 @@ class CSource(CFile):
|
|||||||
return includes + types + internal_funcs_decl + funcs + internal_funcs_def
|
return includes + types + internal_funcs_decl + funcs + internal_funcs_def
|
||||||
|
|
||||||
|
|
||||||
def _get_arg_type_string(_type: CDataType) -> str:
|
def get_datatype_string(_type: CDataType) -> str:
|
||||||
if isinstance(_type, CType):
|
if isinstance(_type, CType):
|
||||||
return str(_type) + " "
|
return str(_type)
|
||||||
elif isinstance(_type, CStruct) or isinstance(_type, CEnum):
|
elif isinstance(_type, CStruct) or isinstance(_type, CEnum):
|
||||||
return _type.name + " "
|
return _type.name
|
||||||
|
elif isinstance(_type, str):
|
||||||
|
return _type
|
||||||
|
|
||||||
|
|
||||||
def _get_includes_string(includes: list[CInclude]) -> str:
|
def _get_includes_string(includes: list[CInclude]) -> str:
|
||||||
|
Loading…
Reference in New Issue
Block a user