Sprak syntax: Difference between revisions

From wikinotes
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
<blockquote>
<blockquote>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# I believe code called outside of a function is executed repeatedly in a loop
void Greet(string user)
void Greet(string user)
     Print("Hello, " + user)
     Print("Hello, " + user)
end
end


string user = GetUser()
# create your own eventloops with infinite loops
Greet(user)
loop
    string user = GetUser()
    Sleep(1)
    Greet(user)
end
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Example -->
</blockquote><!-- Example -->
Line 64: Line 66:
== Arrays ==
== Arrays ==
<blockquote>
<blockquote>
Arrays are 0-indexed.
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Count(myarray)     # size/length of array
Count(myarray)         # size/length of array
GetIndexes(myarray)    #
Remove(myarray, 3)    # remove index 3 from array
Append(myarray, "foo") # append item to array
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Arrays -->
</blockquote><!-- Arrays -->
Line 131: Line 138:
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Functions -->
</blockquote><!-- Functions -->
= Persistence =
<blockquote>
<syntaxhighlight lang="bash">
SaveMemory(key, data)
LoadMemory(key)
</syntaxhighlight>
</blockquote><!-- Persistence -->


= Misc =
= Misc =
Line 137: Line 152:
Random()    # Random number
Random()    # Random number
Sleep(1)    # Sleep time in seconds
Sleep(1)    # Sleep time in seconds
Time()      # current time (in seconds?)
GetHour()    #
ClearCode()  # (?)
ClearCode()  # (?)
AppendCode() # (?)
AppendCode() # (?)
Sin()        # sine
Mod()        # modulus, I assume
Round()      # decimal-to-integer
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Misc -->
</blockquote><!-- Misc -->

Latest revision as of 01:47, 12 January 2023

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