| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from dataclasses import dataclass
- from pycparser import c_ast
- @dataclass
- class StructField:
- type: str
- name: str
- desc: str | None = None
- @dataclass
- class EnumValue:
- name: str
- value: int | None
- desc: str | None = None
- @dataclass
- class Struct:
- name: str
- desc: str | None = None
- fields: list[StructField] | None = None
- @dataclass
- class Enum:
- name: str
- values: list[EnumValue]
- desc: str | None = None
- @dataclass
- class FunctionParam:
- type: str
- name: str
- @dataclass
- class Function:
- name: str
- params: list[FunctionParam]
- ret_type: str
- desc: str | None = None
- def signature(self) -> str:
- return f'{self.ret_type} {self.name}({", ".join([f"{param.type} {param.name}" for param in self.params])})'
|