forked from ground/ground
Initial commit
This commit is contained in:
129
docs/syntax.md
Normal file
129
docs/syntax.md
Normal file
@@ -0,0 +1,129 @@
|
||||
## Ground Syntax Guide
|
||||
|
||||
### General syntax
|
||||
|
||||
Ground uses simple instructions and arguments to run code.
|
||||
|
||||
```
|
||||
instruction arg1 arg2 arg3
|
||||
```
|
||||
|
||||
As an example:
|
||||
|
||||
```
|
||||
stdout "Hello, World!"
|
||||
```
|
||||
|
||||
Reference a variable's value (a value reference) with a dollar sign:
|
||||
|
||||
```
|
||||
stdout $myVar
|
||||
```
|
||||
|
||||
Reference a variable itself (a direct reference) with an and sign:
|
||||
|
||||
```
|
||||
stdin &myVar
|
||||
```
|
||||
|
||||
Reference a line (a line reference) with a percent symbol before a line number:
|
||||
|
||||
```
|
||||
jump %10
|
||||
```
|
||||
|
||||
### Keywords
|
||||
|
||||
Note: &var can be replaced with any direct reference. $value can be replaced with a literal value or a value reference. %1 can be replaced with a line reference.
|
||||
|
||||
Note: In most of these functions, if a direct reference is used, the value outputted by that function will be avaliable at that variable. Any existing value inside that variable will be overwritten.
|
||||
|
||||
#### if
|
||||
|
||||
Make a decision based on a boolean. If the boolean is true, jumps to the line referenced.
|
||||
|
||||
Usage: `if $value %1`
|
||||
|
||||
#### jump
|
||||
|
||||
Jumps to the line referenced.
|
||||
|
||||
Usage: `jump %1`
|
||||
|
||||
#### end
|
||||
|
||||
Ends the program. Requires an integer for a status code.
|
||||
|
||||
Usage: `end $value`
|
||||
|
||||
#### stdin
|
||||
|
||||
Allows input from the console.
|
||||
|
||||
Usage: `stdin &var`
|
||||
|
||||
#### stdout
|
||||
|
||||
Allows output to the console.
|
||||
|
||||
Usage: `stdout $value`
|
||||
|
||||
#### stdlnout
|
||||
|
||||
Allows output to the console, appending a new line at the end.
|
||||
|
||||
Usage: `stdlnout $value`
|
||||
|
||||
#### set
|
||||
|
||||
Allows you to set a variable to a value.
|
||||
|
||||
Usage: `set &var $value`
|
||||
|
||||
#### add
|
||||
|
||||
Adds two numbers. Numbers mean an integer or a double. Outputs to a direct reference.
|
||||
|
||||
Usage: `add $value $value &var`
|
||||
|
||||
#### subtract
|
||||
|
||||
Subtracts two numbers. Numbers mean an integer or a double. Outputs to a direct reference.
|
||||
|
||||
Usage: `subtract $value $value &var`
|
||||
|
||||
#### multiply
|
||||
|
||||
Multiplies two numbers. Numbers mean an integer or a double. Outputs to a direct reference.
|
||||
|
||||
Usage: `multiply $value $value &var`
|
||||
|
||||
#### divide
|
||||
|
||||
Divides two numbers. Numbers mean an integer or a double. Outputs to a direct reference.
|
||||
|
||||
Usage: `divide $value $value &var`
|
||||
|
||||
#### equal
|
||||
|
||||
Checks if two values are equal. Outputs a boolean to a direct reference.
|
||||
|
||||
Usage: `equal $value $value &var`
|
||||
|
||||
#### inequal
|
||||
|
||||
Checks if two values are not equal. Outputs a boolean to a direct reference.
|
||||
|
||||
Usage: `inequal $value $value &var`
|
||||
|
||||
#### greater
|
||||
|
||||
Checks if the left value is greater than the right value. Outputs a boolean to a direct reference.
|
||||
|
||||
Usage: `greater $value $value &var`
|
||||
|
||||
#### lesser
|
||||
|
||||
Checks if the left value is lesser than the right value. Outputs a boolean to a direct reference.
|
||||
|
||||
Usage: `lesser $value $value &var`
|
Reference in New Issue
Block a user