; Data: - Addr: - Float: - End the current definition. Class: class:macro | Namespace: global | Interface Layer: all I Data: -n Addr: - Float: - Access the loop index for the current loop. (For loops made using `indexed-times`) Class: class:word | Namespace: global | Interface Layer: all [ Data: - Addr: - Float: - Begin a quotation. Class: class:macro | Namespace: global | Interface Layer: all ] Data: - Addr: - Float: - End a quotation. Class: class:macro | Namespace: global | Interface Layer: all a:contains? Data: na-f Addr: - Float: - Return `TRUE` if the value is in the array or `FALSE` otherwise. Class: class:word | Namespace: a | Interface Layer: all a:for-each Data: aq- Addr: - Float: - Execute the quote once for each item in the array. Class: class:word | Namespace: a | Interface Layer: all allot Data: n- Addr: - Float: - Allocate the specified number of cells from the `Heap`. Class: class:word | Namespace: global | Interface Layer: all Example #1: 'Buffer d:create #100 allot block:read Data: na- Addr: - Float: - Read 1024 cells from block n in the block storage into memory at address a. Class: class:word | Namespace: block | Interface Layer: rre block:set-file Data: s- Addr: - Float: - Set the file name of the block storage device. Class: class:word | Namespace: block | Interface Layer: rre buffer:add Data: n- Addr: - Float: - Append a value to the current buffer. Class: class:word | Namespace: buffer | Interface Layer: all buffer:set Data: a- Addr: - Float: - Assign a new buffer as the current one. Class: class:word | Namespace: buffer | Interface Layer: all choose Data: fqq- Addr: - Float: - Execute q1 if the flag is true (-1) or q2 if the flag is false (0). Only these flags are valid when using `choose`; passing other values as flags will result in memory corruption. Class: class:word | Namespace: global | Interface Layer: all d:create Data: s- Addr: - Float: - Hook. Create a new dictionary header named the specified string. The new header will point to `here` and have a class of `class:data`. Class: class:word | Namespace: d | Interface Layer: all drop Data: n- Addr: - Float: - Discard the top value on the stack. Class: class:primitive | Namespace: global | Interface Layer: all dup Data: n-nn Addr: - Float: - Duplicate the top item on the stack. Class: class:primitive | Namespace: global | Interface Layer: all eq? Data: nn-f Addr: - Float: - Compare two values for equality. Returns `TRUE` if they are equal or `FALSE` otherwise. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: #1 #2 eq? $a $b eq? fetch-next Data: a-an Addr: - Float: - Fetch the value stored at the specified address. Returns the next address and the value. Class: class:word | Namespace: global | Interface Layer: all file:R Data: -n Addr: - Float: - Constant for opening a file in READ mode. Class: class:data | Namespace: file | Interface Layer: rre file:W Data: -n Addr: - Float: - Constant for opening a file in WRITE mode. Class: class:data | Namespace: file | Interface Layer: rre file:close Data: h- Addr: - Float: - Given a file handle, close the file. Class: class:word | Namespace: file | Interface Layer: rre file:open Data: sm-h Addr: - Float: - Open a named file (s) with the given mode (m). Returns a handle identifying the file. Class: class:word | Namespace: file | Interface Layer: rre Example #1: '/etc/motd file:R file:open file:size Data: h-n Addr: - Float: - Given a file handle, return the size of the file (in bytes). Class: class:word | Namespace: file | Interface Layer: rre file:write Data: ch- Addr: - Float: - Write a character to the file represented by the handle. Class: class:word | Namespace: file | Interface Layer: rre if Data: fq- Addr: - Float: - Execute the quote if the flag is `TRUE`. Class: class:word | Namespace: global | Interface Layer: all indexed-times Data: nq- Addr: - Float: - Run a quote the specified number of times, tracking the loop index in `I`. This is less efficient than `times`, so if the index is not needed, this should be avoided. Class: class:word | Namespace: global | Interface Layer: all n:add Data: nn-n Addr: - Float: - Add `n1` to `n2` and return the result. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: #1 #2 + n:div Data: nm-v Addr: - Float: - Divide `n` by `m` and return the integer part of the quotient. Class: class:word | Namespace: global | Interface Layer: all n:inc Data: n-m Addr: - Float: - Increment n by one. Class: class:word | Namespace: n | Interface Layer: all Example #1: #100 n:inc n:sub Data: nn-n Addr: - Float: - Subtract `n2` from `n1` and return the result. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: #2 #1 - nl Data: - Addr: - Float: - Display a newline. Class: class:word | Namespace: global | Interface Layer: all not Data: n-m Addr: - Float: - Perform a logical NOT operation. Class: class:word | Namespace: global | Interface Layer: all s:begins-with? Data: ss-f Addr: - Float: - Return `TRUE` if s1 begins with s2 or `FALSE` otherwise. Class: class:word | Namespace: s | Interface Layer: all s:fetch Data: sn-n Addr: - Float: - Fetch the character value stored at the specified index in the string. Class: class:word | Namespace: s | Interface Layer: all Example #1: 'abcdef #2 s:fetch s:filter Data: sq-s Addr: - Float: - Execute the quote once for each value in the string. If the quote returns `TRUE`, append the value into a new string. If `FALSE` the value will be discarded. Class: class:word | Namespace: s | Interface Layer: all s:for-each Data: sq- Addr: - Float: - Execute the quote once for each value in the string. Class: class:word | Namespace: s | Interface Layer: all s:format Data: ...s-s Addr: - Float: - Construct a new string using the template passed and items from the stack. Class: class:word | Namespace: s | Interface Layer: all s:left Data: sn-s Addr: - Float: - Return a new string containing the first `n` characters from the source string. Class: class:word | Namespace: s | Interface Layer: all s:length Data: s-n Addr: - Float: - Return the number of characters in a string, excluding the NULL terminator. Class: class:word | Namespace: s | Interface Layer: all s:put Data: s- Addr: - Float: - Display a string. Class: class:word | Namespace: global | Interface Layer: all s:to-lower Data: s-s Addr: - Float: - Convert uppercase ASCII characters in a string to lowercase. Class: class:word | Namespace: s | Interface Layer: all s:tokenize Data: sc-a Addr: - Float: - Takes a string and a character to use as a separator. It splits the string into substrings and returns an array containing pointers to each of them. Class: class:word | Namespace: s | Interface Layer: all s:trim Data: s-s Addr: - Float: - Trim leading and trailing whitespace from a string. Class: class:word | Namespace: s | Interface Layer: all Example #1: '__hello__ s:trim swap Data: nm-mn Addr: - Float: - Exchange the position of the top two items on the stack Class: class:primitive | Namespace: global | Interface Layer: all times Data: nq- Addr: - Float: - Run the specified quote the specified number of times. Class: class:word | Namespace: global | Interface Layer: all Example #1: #12 [ $- c:put ] times unix:chdir Data: s- Addr: - Float: - Change the current working directory to the specified one. Class: class:word | Namespace: unix | Interface Layer: rre Example #1: '/etc unix:chdir unix:for-each-file Data: q- Addr: - Float: - Run a quote once for each file or subdirectory in the current directory. The quote will receive the file name as a string and should consume this and return nothing on the stack. Class: class:word | Namespace: unix | Interface Layer: rre var Data: s- Addr: - Float: - Create a variable. The variable is initialized to 0. Class: class:word | Namespace: global | Interface Layer: all Example #1: 'Base var { Data: - Addr: - Float: - Begin an array. This is intended to make creating arrays a bit cleaner than using a quotation and `a:counted-results`. Class: class:word | Namespace: global | Interface Layer: all } Data: -a Addr: - Float: - Complete an array begun by `{`. Returns a pointer to the data. Class: class:word | Namespace: global | Interface Layer: all sigil:! Data: ns- Addr: - Float: - Store a value into a variable. Interpret Time: Store a value into the named variable. Compile Time: Compile the code to store a value into a named variable. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:# Data: s-n Addr: - Float: - Process token as a number. Interpret Time: Convert the string into a number and leave on the stack. Compile Time: Convert the string into a number and compile into the current definition as a literal. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:$ Data: s-c Addr: - Float: - Process token as an ASCII character. Interpret Time: Fetch first character from string. Leave on stack. Compile Time: Fetch first character from the string. Compile into the current definition as literal. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:& Data: s-a Addr: - Float: - Return a pointer to a named item. If name is not found, returns 0. Interpret Time: Lookup name in dictionary, return contents of the xt field on the stack. Compile Time: Lookup name in dictionary, compile code to push the contents of the xt field into the current definition. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:' Data: s-s Addr: - Float: - Process token as a string. Interpret Time: Move string into temporary buffer. If `RewriteUnderscores` is `TRUE`, replace all instances of _ with space. Compile Time: Move string into temporary buffer. If `RewriteUnderscores` is `TRUE`, replace all instances of _ with space. Then compile the string into the current definition. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:( Data: s- Addr: - Float: - Process token as a comment. Interpret Time: Discard the string. Compile Time: Discard the string. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:: Data: s- Addr: - Float: - Hook. Process token as a new definition. Interpret Time: Create a header pointing to `here` with the provided string as the name. Sets class to `class:word`. Class: class:macro | Namespace: sigil | Interface Layer: all sigil:@ Data: s-n Addr: - Float: - Fetch from a stored variable. Interpret Time: Fetch a value from a named variable. Compile Time: Compile the code to fetch a value from a named variable into the current definition. Class: class:macro | Namespace: sigil | Interface Layer: all