Merge branch 'main' of git.vanten-s.com:vanten-s/plonkus
This commit is contained in:
commit
97c940ba65
44
README.md
Normal file
44
README.md
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# Plonkus
|
||||||
|
|
||||||
|
## About
|
||||||
|
This is a small hobby language that I created because I was bored.
|
||||||
|
It only supports [my own architecture](https://github.com/vanten-s/8bit-computer) but I'm planning to extend it to x86 some day.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
Currently the language has the following
|
||||||
|
- Expressions
|
||||||
|
- Scopes
|
||||||
|
- Functions
|
||||||
|
- Variables
|
||||||
|
|
||||||
|
But more features like
|
||||||
|
|
||||||
|
- If statements
|
||||||
|
- Loops
|
||||||
|
- Function calls in expressions
|
||||||
|
- Comments
|
||||||
|
|
||||||
|
Are coming.
|
||||||
|
|
||||||
|
## Syntax
|
||||||
|
Here is example of functions, built-ins and variables and Scopes
|
||||||
|
|
||||||
|
```plonkus
|
||||||
|
fn main {
|
||||||
|
let a = 2;
|
||||||
|
{
|
||||||
|
let a = a + 1;
|
||||||
|
out(a);
|
||||||
|
}
|
||||||
|
test(a);
|
||||||
|
exit();
|
||||||
|
};
|
||||||
|
|
||||||
|
fn test output {
|
||||||
|
let numberToOutput = output;
|
||||||
|
out(numberToOutput);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
This code prints 3 and then 2.
|
||||||
|
|
|
@ -310,7 +310,7 @@ impl Node for Expression {
|
||||||
}
|
}
|
||||||
|
|
||||||
let stack_position = state.variables.len()
|
let stack_position = state.variables.len()
|
||||||
- state.variables.iter().position(|x| x == name).unwrap()
|
- state.variables.iter().rposition(|x| x == name).unwrap()
|
||||||
- 1;
|
- 1;
|
||||||
|
|
||||||
dbg!(&state.variables);
|
dbg!(&state.variables);
|
||||||
|
|
Loading…
Reference in a new issue