aboutsummaryrefslogtreecommitdiff
path: root/tools/interface_generator/interface_definition.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/interface_generator/interface_definition.py')
-rw-r--r--tools/interface_generator/interface_definition.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/tools/interface_generator/interface_definition.py b/tools/interface_generator/interface_definition.py
new file mode 100644
index 0000000..10d1f60
--- /dev/null
+++ b/tools/interface_generator/interface_definition.py
@@ -0,0 +1,46 @@
+"""
+interface_definition.py
+"""
+
+def __read_license(path):
+ """read and starrify a license"""
+ license_text = ""
+ with open(path, encoding="utf-8") as license_file:
+ license_text = "".join(
+ [
+ f" * { line.rstrip().ljust(72)[:72] } * \n"
+ for line in license_file.readlines()
+ ]
+ ).rstrip()
+
+ return license_text
+
+
+def parse(args):
+ """return a mock interface definition"""
+
+ interface_dict = {
+ "name": "kstdio",
+ "license": __read_license(args.license),
+ "system_includes": ["stdarg.h"],
+ "types": [
+ {
+ "name": "File",
+ "members": [
+ "int fd",
+ "int (*putc)(const struct kstdio_File*, const char)",
+ "int (*puts)(const struct kstdio_File*, const char*)",
+ ],
+ },
+ ],
+ "functions": [
+ {
+ "name": "printf",
+ "return": "int",
+ "arguments": ["const char* format"],
+ "argument_names": ["format"],
+ },
+ ],
+ }
+
+ return interface_dict