|
|
@@ -1,17 +1,18 @@
|
|
|
# Zelkel
|
|
|
|
|
|
## Goals
|
|
|
-* [ ] Self-hosted
|
|
|
-* [ ] Reference-counting garbage collector
|
|
|
+- [ ] Self-hosted
|
|
|
+- [ ] Reference-counting garbage collector
|
|
|
|
|
|
## TODO
|
|
|
-* [x] Scope checking and stuff in parser
|
|
|
-* [ ] Parser should generate all names (unique), struct indexes, etc for codegen, this should also be in the scope
|
|
|
- * [x] Multi pass parser: first scope/symbol collection (what i've been doing now), then check if it makes sense :)
|
|
|
-* [ ] Functions may kind of have same name but different arguments, but the scope stuff is using a dict[str, Value] so it is not tracked, the resolve_function() should work for this though, so scope stuff needs work.
|
|
|
-* Types:
|
|
|
- * With no * or & before type it will be "dynamic", the compiler figures out if it's the pointer or the value that is being used
|
|
|
- * explicit value with * or explicit pointer with &. You can also use & and * on a "dynamic" type to get both, "dynamic" types are both at the same time, but in reality they are probably the pointer and then you know both
|
|
|
+- [x] Scope checking and stuff in parser
|
|
|
+- [ ] Parser should generate all names (unique), struct indexes, etc for codegen, this should also be in the scope
|
|
|
+ - [x] Multi pass parser: first scope/symbol collection (what i've been doing now), then check if it makes sense :)
|
|
|
+- [ ] Functions may kind of have same name but different arguments, but the scope stuff is using a dict[str, Value] so it is not tracked, the resolve_function() should work for this though, so scope stuff needs work.
|
|
|
+- [ ] Need to know the value type of an expression in codegen, i think adding this in the validator to the ast is the right move...
|
|
|
+- Types:
|
|
|
+ - With no * or & before type it will be "dynamic", the compiler figures out if it's the pointer or the value that is being used
|
|
|
+ - explicit value with * or explicit pointer with &. You can also use & and * on a "dynamic" type to get both, "dynamic" types are both at the same time, but in reality they are probably the pointer and then you know both
|
|
|
|
|
|
## Planning code + ideas + sketch, ... etc
|
|
|
```kotlin
|