Skip to content

Latest commit

 

History

History
72 lines (44 loc) · 2.29 KB

CONTRIBUTING.md

File metadata and controls

72 lines (44 loc) · 2.29 KB

Contributing Guidelines

Thank you for taking your time contributing. I'll address these contributions as soon as possible.

Opening an issue

If you have an issue, question, or suggestion, you may open an issue.

Using REPL

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

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

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]

Opening a pull request

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.


License