A new computer language
After an extensive amount of work, I have created a programming language and an interpreter to go along with it! This is the guide to this langauge- the language I've dubbed SymbolScript.
Every line in SymbolScript begins with a symbol- and different symbols mean different things.
For example, >
will output text to the console.
Every line ends in a semicolon.
In SymbolScript, spaces are not ignored. However, more two or more spaces next to each other will be converted to single spaces, and new lines will be removed. Any text between two ~ are comments and will be ignored.
Here are a few of the symbols in SymbolScript, what they do, and some examples!
@
ends the program.
@;
The >
command will print text or a variable to the console.
> Hello, world!;
>>
will print text or a variable to the console, then add a new line.
>> Hello, world! Again!;
*/
clears all text in the console, *^
sets the background color, and *&
sets the text color.
*& white;
*^ black;
*/;
#
defines a numerical variable. Optionally, you can give the variable a starting value.
# myNumber 10;
&
is like #, but defines a variable that holds text.
& myText Hi!;
In a typical programming language, you would say something like x = 1 to set a variable to a value. However, being prefix-ooriented, SymbolScript has individual commands for setting variables to different values.
=
sets a variable to a value.
# myNum;
= myNum 20;
=+
increases a variable by a value. It can also combine a text variable with more text.
# myNum 5;
& myText Hi ;
=+ myNum 5;
=-
decreases a variable by a value, and can remove text from a text variable.
# myNum 5; & myText BobEvans;
=- myNum 3;
Some other equals symbols that work similarly (but can only be used on number variables) are =*
,
which multiplies a variable by a value, and =/
, which divides a variable by a value.
++
increases a variable by 1, --
decreases a variable by 1, =--
makes positives
negative and vice versa, and =++
sets a variable to its absolute value. Also, =,
sets a variable
to itself rounded to the nearest whole number.
# myNum;