Skip to content

GigaScript Documentation

aName edited this page Feb 29, 2024 · 13 revisions

File extension: .g

Syntax

GigaScript has very simple syntax, similar to those of other popular languages.

Variables

A variable can hold any value supported by GigaScript.

Declaring Mutable Variables

let varName = value;

varName can be any name you want, but must follow the following requirements:

  • Cannot start with a number
  • Must start a letter or an underscore "_". value can be any value you want that is supported by GigaScript.
let anotherVar;

Mutable variables do not need to have a variable assigned when they are declared.

Important

All variable declarations must end with a semicolon ";".

Declaring Constant Variables

const varName = value;

varName can be any name you want, but must follow the following requirements:

  • Cannot start with a number
  • Must start a letter or an underscore "_". value can be any value you want that is supported by GigaScript.

Important

Constant variables must have a value when declared.

Reassigning Mutable Variables

Caution

Constant variables cannot be reassigned!

varName = newValue

Note

Reassignments shouldn't end with a semicolon ";".

Accessing Variables

To access a variable, simply reference it using the variable name.

varName

varName should be the name of your variable. You can use varName anywhere in your code. For examples, see examples.

Functions

Functions are very useful when you want to repeat the same task multiple times in different parts of your code.

Declaring Functions

func funcName(params) {
    *code*
}

funcName could be any name following these naming rules:

  • Cannot start with a number
  • Must start a letter or an underscore "_". params can be any length of parameters you need passed into your function, or no parameters at all, following the same naming rules as above.

To return a value in a function, simply reference the value on the last line of the function.

Calling Functions

funcName(params)

funcName could be any name following these naming rules:

  • Cannot start with a number
  • Must start a letter or an underscore "_". params can be any length of parameters you need passed into your function, or no parameters at all, following the same naming rules as above.

Classes

Declaring a new Class

class ClassName(){
   public publicProp = "this can be any value";
   private privateProp = "this can be any value but can't be accessed outside of the class";

   public publicMethod(params){
      code (See [Functions](https://github.com/aName2050/GigaScript/wiki/GigaScript-Documentation#Functions) for more info on functions.)
   }

   private privateMethod(params){
      code (See [Functions](https://github.com/aName2050/GigaScript/wiki/GigaScript-Documentation#Functions) for more info on functions.)
   }
}

ClassName can be any name, while still following these naming rules:

  • Cannot start with a number
  • Must start a letter or an underscore "_". public properties and methods can be accessed when a new class instance is created. private properties and methods cannot be accessed when a new class instance is created.

Creating a new Instance of a Class

let className = new ClassName();

ClassName is the name of your class. new ClassName() will create a new object containing all the class's public properties and methods.

Accessing a Class's Public Properties and Methods

  1. Create a new instance of the class and set it as the value of any variable.
let aCoolClass = new ClassName();
  1. Access the public properties and methods of the class as if you were accessing the properties of an object.
aCoolClass.publicProp
aCoolClass.publicMethod(params)

Conditional Statements

condition is where you would check if a condition is true. See examples.

If Statement

if(condition) {
   code
}

If-Else Statement

if(condition) {
   code
} else {
   code
}

If-Else If-...-Else Statement

if(condition) {
   code
} else if (other_condition) {
   code
} else {
   code
}

Tip

You don't need to include an else statement in every conditional statement.

While Loops

while loops are useful when you need to iterate over something a certain amount of times, or while a condition is true.

Creating a While Loop

while(condition){
   code
}

condition is any conditional statement that would return either true or false.

Caution

It is not recommended to set condition to always be true, condition should eventually become false to prevent your program from becoming unstable and crashing.

For Loops

for loops are useful when you need to iterate over something a variable amount of times.

Creating a For Loop

for(initializer; condition; modifier) {
   code
}

initializer sets a variable. condition compares the initializer to a condition and continues to code if it returns true. modifier modifies the initializer after the for loop finishes an iteration.

Imports

Importing code from other GigaScript files is useful when creating large projects.

Importing a Variable or Function

import aVariable from "relative/path/to/file.g"
import aFunction from "relative/path/to/file.g"

aVariable and aFunction is the variable or function you want to import. "relative/path/to/file.g" is the path to the file, relative to the parent directory.

Caution

When writing out the file path to the file, only relative paths are supported. Do not include a "./" at the beginning as that will result in an error.

Note

You can only import one variable/function from each file at a time, to import multiple variables/functions, use a separate import statement.

Exports

Exporting variables and functions is needed to use the import statement.

Exporting a Variable or Function

let aVariable = "a value";
func aFunction(params){
   code
}

export aVariable;
export aFunction;

aVariable and aFunction is the variable or function you want to export. An export statement can only export one value at a time.

Important

You cannot export a value that is not a variable or function.

Reserved Tokens

These are tokens reserved for GigaScript that can't be used as the name of classes, functions, or variables.

Note

You can use any of the reserved tokens when used inside of a string.

Reserved Keywords

let
const
func
class
true
false
undefined
new
null
private
public
if
else
while
for
continue
break
import
export
from

Caution

Using any of these keywords as a class, function, or variable identifier will result in an error!

Reserved Symbols

>
<
==
!=
!
&&
||
"
+
-
*
/
%
=

Examples

You can see examples for GigaScript in this section. You can run these examples by copying the code in a .g file and then running the file

Variables

Example Script 1

let x = 32;
const aCoolObject = { x, z: 64, complex: { foo: "bar" } };

x = x * 2

print(x)
print(aCoolObject.complex)

print(x) should output 64. print(aCoolObject.complex) should output { foo: "bar" }.

How Example Script 1 Works

  1. Create a mutable variable called x with the value of 32.
  2. Create a constant variable called aCoolObject with the value of { x, z: 64, complex: { foo: "bar" } }`.
  3. Reassign the variable x to the result of x multiplied by 2, which should result in 64.
  4. Print the value of x to the console. Prints 64.
  5. Print the value of aCoolObject.complex to the console. Prints { foo: "bar" }.
    • The complex property of aCoolObject is accessed and passed into the print built-in function.

Functions

Example Script 2

func add(x, y){
   const result = x + y;
   result
}

print(add(1, 2))

print(add(1, 2)) should output 3.

How Example Script 2 Works

  1. Declare a function called add with parameters x and y.
  2. Inside the function...
    1. Declare a constant variable called result with the value of x and y added together.
    2. Return the value of result.
  3. Print the result of adding 1 and 2 to the console. Prints 3.

Classes

Conditionals

While

For

Import

Export

Clone this wiki locally