1.0.0-beta.14 • Published 3 years ago

@rbxts/zirconium-ast v1.0.0-beta.14

Weekly downloads
101
License
MIT
Repository
github
Last release
3 years ago

Zirconium AST

Lexer and Parser for the Zirconium DSL (Domain-specific Language) for use in Roblox. More information in the Zirconium project.

Note: Documentation is WIP as the new parser is written

Features

Using commands

command hello 10 true "Hello there $playerName!" # simple call
command("hello", 10, true, "Hello there $playerName!") # explicit call

A simple call is for quick & easy commands (and more like a command), explicit calls allow passing other commands as arguments and is more explicit and akin to regular programming.

  • I'm possibly planning with Zircon that certain commands require 'explicit'

Using Variables

$aNumber = 10
$aString = "Hello there!"
$aBoolean = true

Using arrays

$arrayVariable = [ "string", true, 10, 5.5, "combined $variable string" ] #variable use
kill [ vorlias, augmin ]
kill([ "vorlias", "augmin" ])

Indexing

$array = [ "Hello, World!" ]
$helloWorld = $array.0 # will retrieve the first value
echo $helloWorld

Using Pipes and Synchronous calls

command | command2 # Passes values from command to command2
command && command2 # Meant to only execute command2 if command succeeds
command || command2 # Meant to only execute command2 if command fails

Explicit calls can also be used with these.

If Statement

$value = true

if $value { 
    echo "True!"
}

if $value: echo "True!" # Short form if, same as above

if $value {
    echo "True!"
} else {
    echo "False!"
}

The above would print True! three times.

Block Scope

{
    $x = 10
    echo $x # x is 10
}

echo $x # x is out of scope, would be nil

Functions

// No arguments
function functionName() {

}

// Implicit any
function functionName($argument) {

}

// With multiple arguments and types
function functionName($argument: string, $anotherArgument: number) {
    echo $argument $anotherArgument
}
1.0.0-beta.13

3 years ago

1.0.0-beta.14

3 years ago

1.0.0-beta.11

3 years ago

1.0.0-beta.12

3 years ago

1.0.0-beta.10

3 years ago

1.0.0-beta.4

3 years ago

1.0.0-beta.2

4 years ago

1.0.0-beta.1

4 years ago

1.0.0-alpha.3

4 years ago

1.0.0-alpha.2

4 years ago