-
Notifications
You must be signed in to change notification settings - Fork 2
/
todo
41 lines (28 loc) · 1.5 KB
/
todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# bindgen
TODO rewrite state code to pre-calculate all fields used by templates
DONE rewrite codegen to use temple templating engine
TODO add support for vararg utility functions
DONE add support for utility functions with default arg values
DONE add frontend generation for class methods
DONE add generation for engine (non-builtin) classes
TODO add generation for built-in singletons
TODO add generation for native structures (?)
TODO add option to generate classes and methods in a class-per-package hierarchy (each class gets its own package)
# godin
TODO rewrite godin with better Odin parsing support via core:odin/parser
TODO rewrite templating & codegen using the temple template engine
- write libgodin
```c
class_info := Class_Info{
}
classdb_class := register_class(class_info)
register_class_method(classdb_class, "method_name", ...details...)
register_class_int_const(classdb_class, "CONST_NAME", CONST_VALUE, is_bitfield=true /*or false*/)
register_class_enum_const(classdb_class, "ENUM_CONST_NAME", My_Enum.Value, is_bitfield=true /*or false*/)
register_class_property(classdb_class, "property_name", VariantType.SomeType, property_getter_proc, property_setter_proc, hint = PropertyHint.None, hint_usage = "...", usage = PropertyUsageFlags.None)
// todo: register_class_property_group (how does it work?!)
// todo: register_class_property_subgroup (how does it work?!)
register_class_signal(classdb_class, "signal_name", args)
unregister_class(classdb_class)
```
- rewrite godin to use core:odin/parser