diff --git a/README.md b/README.md index 2ff3e773f..9ba5cbfc2 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,57 @@ C3 tries to be an alternative in the the C/C++ niche: fast and close to the meta Most work is still being done in the design draft here: https://c3lang.github.io/c3docs/. If you have suggestions, send a mail to [christoffer@aegik.com](mailto:christoffer@aegik.com), [file an issue](https://github.com/c3lang/c3c/issues) or discuss C3 on the r/ProgrammingLanguages Discord server: https://discord.gg/cfu4wdk -There are some small work being done on the parser here, but most of the structure is still missing. +There are some small work being done on the parser here, but most of the structure is still missing: + +#### What's missing in the parser + +- Const declarations inside of functions. +- `asm` sections. +- `$switch` compile time statement. +- `$each` compile time statement. +- Macro parameter lists to imports. +- `attribute` declarations. +- extending `generics` declaration. +- auxiliary data for enums. +- incremental arrays + +#### What's missing in the semantic analyser + +- No handling imports. +- Function signatures incomplete. +- Function typedef not done. +- `asm` not done. +- `catch`, `throws` and `try` statements. +- `generic` not analysed. +- `attribute` not analysed. +- `$switch` and `$each` not handled. +- Enums not correctly handled. +- Errors not correctly handles. +- Type resolution not complete for all types. +- `type` not handled. +- `?:` not handled. +- Identifier analysis incomplete. +- Macro call not handled completely. +- Function calls not handled completely. +- Struct initializers not complete. +- No analysis of `[]` nor `.someMember`. +- Missing analysis of assign expressions. +- Not all casts implemented. +- Varargs. + +#### What's missing overall + +- Exactly how the module system should work together with the import is still +under discussion. +- Exactly how the library imports should work is not 100% decided. +- The compiler currently only works in single file mode. +- Integration with C. + +#### What's working? + +- The compiler can compile simple programs, but integration with C is mostly +missing, which means that little can be *displayed* outwards. +- Lexing and parsing works (except for the exceptions noted above). + If you wish to contribute with ideas, please file issues on the c3docs: https://github.com/c3lang/c3docs instead of the compiler.