Command | Explanation | Sample | Standard Whitespace |
---|---|---|---|
push integer |
push number on the stack | push 5 |
Yes |
pushs string |
push string on the stack with a termination NULL (can be used with the prints ,printsln function from io library). String can be in "" to allow spaces |
pushs "Hallo world" |
Yes |
pop |
pop number from stack | pop |
Yes |
label name |
label with name. name can be any string | label hi label asdsad |
Yes |
doub |
dublicate item on stack | doub |
Yes |
swap |
swap top of stack | swap |
Yes |
add [integer] |
add top of stack or add integer to top of stack | add add 5 |
Yes |
sub [integer] |
" top of stack or " integer to top of stack | sub sub 5 |
Yes |
mul [integer] |
" top of stack or " integer to top of stack | mul mul 5 |
Yes |
div [integer] |
" top of stack or " integer to top of stack | div div 5 |
Yes |
mod [integer] |
" top of stack or " integer to top of stack | mod mod 5 |
Yes |
store [integer] |
store or store in space integer | store store 5 |
Yes |
retrive [integer] |
retrive or retrive from integer | retrive retrive 5 |
Yes |
call name |
call label | call asd |
Yes |
jump name |
jump | jump asd |
Yes |
jumpz name |
jump if zero | jumpz asd |
Yes |
jumpn name |
jump if negative | jumpn asd |
Yes |
jumpp name |
jump if positive | jumpp asd |
Yes |
jumpnz name |
jump negative or zero | jumpnz asd |
Yes |
jumppz name |
jump positive or zero | jumppz asd |
Yes |
jumppn ,jumpnp name |
jump positive or negative, jump not null | jumppn asd |
Yes |
include name |
include file (without wsa) | include io include memory |
Yes |
ret |
return from function | ret |
Yes |
exit |
exit from program | exit |
Yes |
outn |
out number | outn |
Yes |
outc |
out char | outc |
Yes |
inn |
in number to heap address from stack | inn |
Yes |
inc |
in char to heap address from stack | inc |
Yes |
test integer |
test the top of stack with number. It dublicates the value before comparing, so it is NOT poped automaticaly | test 5 |
Yes |
valuestring _name value |
define _name as value . so _name can be used everywhere a string is needed. name must start with _ |
valuestring _hello "hi user" |
Yes |
valueinteger _name value |
define _name as value . so _name can be used everywhere a integer is needed. name must start with _ |
valueinteger _count 5 |
Yes |
ifoption name |
include next only if option name is defined |
ifoption debug |
Yes |
elseoption |
include next only if last ifoption name was not defined |
elseoption |
Yes |
endoption |
end ifinclude block |
endoption |
Yes |
elseifoption name |
combination of else and if | elseifoption debug2 |
Yes |
debug_printstack |
print the stack of the interpreter. New Syntax, not compatible with other interpreters ! To enable it the option "extendedsyntax" must be enabled ! | debug_printstack |
No |
debug_printheap |
print the heap of the interpreter. New Syntax, not compatible with other interpreters ! To enable it the option "extendedsyntax" must be enabled ! | debug_printheap |
No |
translateWSA filename extendedSyntax |
translate WSA file to ws and pws files | translateWSA "test" True |
translateWSAOptions filename options extendedSyntax |
translate WSA file to ws and pws files with options enabled | translateWSAoptions "test" ["debug"] True |
getWSAOptions filename |
get the options that can be used in the wsa file | getWSAOptions "test" |