diff options
-rw-r--r-- | reference.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/reference.md b/reference.md new file mode 100644 index 0000000..1938d5f --- /dev/null +++ b/reference.md @@ -0,0 +1,57 @@ +POSTRUN STDLIB REFERENCE +======================== + +word | meaning +-----|--------- +a b `+` | Add two numbers, concat two arrays, push an item on an array on either side or concat strings +a b `-` | Subtract two numbers +a b `*` | Multiply two numbers +a b `/` | Divide two numbers (integer division) +a b `%` | Modulo operator +a b `&` | Bitwise and +a b `\|` | Bitwise or +a `~` | Bitwise inverse +a b `^` | Number to the power of number +a `!` | Boolean 'not' +a b `=` | Test for equality (true: 1, false: 0) +a b `<` | Test for being less than +a b `>` | Test for being greater than +v `print` | Print the given value +`lf` | Print a newline +`getline` | Get a line from stdin +`getc` | Get a character from stdin +h s `fprint` | Print string `s` to handle `h` +h `flf` | Prints a newline to handle `h` +h `fgetc` | Gets a character from handle `h` +f `fopen` | Opens file with name `f`, returns the handle +`argc` | The number of command-line arguments the script got +i `argvget` | Gets the command-line argument at index `i` +v `dup` | Duplicate top of stack +`pop` | Pop top of stack +a b `swap` | Swap top two stack elements +v n `store` | Store value `v` in variable with name `n` +v n `gstore` | Store value `v` in variable, in previous scope, with name `n` +n `get` | Get value of variable with name `n` +n `swapoutvar` | Get value of variable with name `n`, *moving* onto the stack instead of copying +`enterscope` | Enter a function variable scope +`leavescope` | Leave a function variable scope +n `roll` | Roll the stack by `n`; positive n: roll OFF top to bottom; negative n: roll off bottom ONTO top +s i `stridx` | Gets the character in string `s` index `i`, leaving `s` on the stack +s `strlen` | Gets the length of string `s`, leaving `s` on the stack +s a b `substr` | Gets the substring in `s` from index `a` to `b`, `b` exclusive; leaving `s` on the stack +a `chr` | Converts the ascii value on the stack to the equivalent character (as a string) +s `ord` | Gets the ascii value of the first character in string `s` (replacing `s`) +`mkarray` | Creates an empty array on the stack +[v...] n `mkarrayp` | Takes `n` elements off the stack and creates a new array with these `n` elements +a i `arridx` | Gets index `i` from array `a`, leaving `a` on the stack +a `arrlen` | Gets the length of array `a`, leaving `a` on the stack +a v `arrpush` | Pushes the value `v` on the end of array `a` (leaving `a` on the stack, obviously) +a v `arrpushf` | Pushes the value `v` at the front of array `a` (leaving `a` on the stack, obviously) +a `arrpop` | Pops from the end of array `a` (leaving `a` on the stack, obviously) +a `arrpopf` | Pops from the front of array `a` (leaving `a` on the stack, obviously) +`rand` | Gets a random value in range [0,2^31) +a b `randr` | Gets a random value in range [a,b) +u `sleep` | Sleeps for `u` microseconds +`stackdump` | Dumps the stack to stdout +`error` | Exists the program with code 1 +`exit` | Exists the program with code 0 (successfully) |