Sprak syntax

From wikinotes

Example

void Greet(string user)
    Print("Hello, " + user)
end

# create your own eventloops with infinite loops
loop
    string user = GetUser()
    Sleep(1)
    Greet(user)
end

I/O

Print("something")    # prints text 'something'
Say("something")      # prints text in speech-bubble when interacted with. (ex. if no monitor)
var cmd = Input(">")  # save user-input to variable

Variables

Assignment

var list  = [false, true]        # a list
var myVar = 1.0                  # ? automatically determine type?

Scope

# looks like global variables are defined outside of function

Datatypes

Primitives

number myNum = 1234
string myStr = "test"
bool   myBol = false
array  letters     = ["a", "b", "c"] # define an array

Strings

CharToInt("a")  # (97) ascii value
IntToChar(97)   # ("a") ascii lookup
# capitalize/uncapitalize by adding/subtracting 32

# iterate characters in string
loop ch in mystring
  # ...
end

Arrays

Arrays are 0-indexed.

Count(myarray)         # size/length of array 
GetIndexes(myarray)    # 
Remove(myarray, 3)     # remove index 3 from array
Append(myarray, "foo") # append item to array

Object Types

you can determine Item types with the GetType() command.

GetType(myVar)  # type introspection
floppy # Floppy Diskette
key    # Keys

Loops

# Iterate over variable
loop i from 1 to 8
    Print(i)
    break
end

# Loop indefinitely (accepting commands)
loop
    var cmd = Input(") ")
end

Conditionals

if varA == varB                  # Unconfirmed
    Print("Success")
else if varA == varC
    Print("Alternative Success")
End()

Functions

# Define Function
string MyFunction( string var )
    return var
End()

void MyFunction( string var )
    Print("no return value")
End()
# Test if function exists on platform
if HasFunction("Print")
    Print("Success")
End()

Persistence

SaveMemory(key, data)
LoadMemory(key)

Misc

Random()     # Random number
Sleep(1)     # Sleep time in seconds
Time()       # current time (in seconds?)
GetHour()    #
ClearCode()  # (?)
AppendCode() # (?)
Sin()        # sine
Mod()        # modulus, I assume
Round()      # decimal-to-integer