diff options
Diffstat (limited to 'tools/interface_generator/interface_definition.py')
-rw-r--r-- | tools/interface_generator/interface_definition.py | 46 |
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 |