monna/README.md

44 lines
1.1 KiB
Markdown
Raw Permalink Normal View History

2024-08-28 19:31:35 -05:00
## Monna Programming Language
This project is a result of learning the innards of compilers. Among other compiler books that I learned from, this was the most influential, especially in making this project: [Writing an Interpreter In Go](https://interpreterbook.com/).
![Demo of Monna working](/doc/demo.png)
### Using
To use the Monna interpreter, simply run `go run main.go` in the project directory.To get an executable, run `go build` in the project directory.
### Features
#### Variables:
let x = 5;
#### Return Statements:
return 5;
return false;
#### Expressions:
if (x < y) { x }
if (x > y) { y } else { x }
#### Functions:
fn(x, y) { x + y; }
#### String Literals:
"Hello World"
#### Built-in Functions:
- **len()**: Returns the number of characters in a string.
```
len("Dexter's Laboratory");
19
```
- **puts()**: Prints the given arguments to STDOUT. It return a null. It only cares about printing not returning a value.
```
puts("Sugar, spice, and everything nice!");
Sugar, spice, and everything nice!
```
#### Error Handling:
The Monna programming language also responds accordingly to errors:
![Error Handling](/doc/error_handling.png)