Files
ground_fork/docs/syntax.md
2025-08-10 13:31:28 +10:00

3.3 KiB

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

(WORK IN PROGRESS) Alternatively, set a label and jump to that (setting labels will be discussed below):

  jump %myLabel

Reference a list (a list reference) with an asterisk:

  setlist *myList $value1 $value2 # and so on

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 $intvalue

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

setlist

Allows you to initialize a list.

Usage: setlist *list $value1 $value2 $value3...

setlistat (WORK IN PROGRESS)

Sets a list item at an index. The item at the index must already exist. Lists are index 0.

Usage: setlistat *list $intvalue $value

getlistat

Gets a list item at an index, and puts it in the variable provided. The item at the index must already exist. Lists are index 0.

Usage: getlistat *list $intvalue &var

getlistsize

Gets the size of a list and puts it in the variable provided.

Usage: getlistsize *list &var

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