Thank you for taking your time contributing. I'll address these contributions as soon as possible.
If you have an issue, question, or suggestion, you may open an issue.
While the compiler is not yet fully implemented. We have repl for testing out the implemented features. As of writing, this includes parser and type inference.
Before running the repl, you'll need to install Cargo first. Additionally, this requires knowledge of butter syntax of course: read the documents.
Unless it's an "not yet implemented" error, if you found any issue, please report it.
Parser REPL can be started with cargo run -- parser-repl
command. This REPL only parses expressions, you can use blocks to parse statements. Additionally, you can use :{
:}
to input multiline block expression.
> 10 + 20
[ast will be printed here]
> :{
... a = 20;
... a
... :}
[ast will be printed here]
This REPL will output verbose and sparsely formatted AST.
Type inference REPL can be started with cargo run -- type-repl
command. This REPL parses an expression and outputs the inferred type.
> @val 10
[inferred type will be printed here]
If you know how to fix such issues, consider forking and opening a pull request. Any form of pull requests is welcome, this includes typographic fixes and code improvements.
If such is a huge change especially to the codebase, please let us know by opening an issue or commenting in already existing issue page before working on the fork.