tlang/todo1.md

41 lines
1.7 KiB
Markdown
Raw Normal View History

2021-06-06 15:57:50 +00:00
TODO List
=========
# Now
## Parsing
- [ ] `parseStruct`
- [x] Actually parse body
- [x] Only allow variables declarations
- [ ] Allow assignments I guess
- [x] Maybe function definitions too (D-kinda thing)
- [ ] Add constructor support (initializes values)
2021-05-31 07:07:22 +00:00
- [ ] I guess this is nicer when you have functions
in the struct too to make initialization code more modular
- ~~[ ] Allow nested structs~~
* Removed, why? That would be weird?
- [ ] Note to self, `parseClass` and `parseStruct` should be way more specific and not just call `parseBody`
2021-06-06 13:49:07 +00:00
- As currently one can then use `static` outside of these contexts
- [x] `parseStruct`
- [x] Adding missing support for `static` in it
2021-06-06 13:49:07 +00:00
- [ ] `parseClass`
2021-06-06 14:10:33 +00:00
- [ ] Add this
2021-06-06 15:57:50 +00:00
## Typechecking
- [ ] Dependency generation
2021-06-07 12:27:36 +00:00
- [ ] Classes declared at the module level should be marked as static in `parse()`
- [ ] `parseClass()` should not use
- [ ] Structs declared at the module level should be marked as ~~marked~~ seen in `parse()` (not in `parseBody()` <- this is a note we don't do this)
- [ ] Functions (?) declared at the module level should be ~~marked~~ seen as static in `parse()` (not in `parseBody()` <- this is a note we don't do this)
- [ ] Variables declared at the module level should be marked as ~~marked~~ seen in `parse()` (not in `parseBody()` <- this is a note we don't do this)
2021-06-06 14:10:33 +00:00
2021-06-06 15:57:50 +00:00
# Future
2021-06-06 14:10:33 +00:00
- [ ] Make the compiler a library
- [ ] Remove `exit` from `expect` and rather throw an error
- [ ] Split it up into two projects with...
- [ ] Library
- [ ] Frontend interface
- [ ] Publish to dub