---reveal--- Data: - Addr: - Float: - Switch to the exposed (public) portion of a lexical namespace. Class: class:word | Namespace: global | Interface Layer: all -eq? Data: nn-f Addr: - Float: - Compare two values for inequality. Returns `TRUE` if they are not equal or `FALSE` otherwise. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: #1 #2 -eq? $a $b -eq? ; 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:fetch Data: an-n Addr: - Float: - Fetch the value stored at the specified index in the specified array. Class: class:word | Namespace: a | Interface Layer: all Example #1: { #0 #1 #3 } #2 a:fetch 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 a:index Data: an-n Addr: - Float: - Return the location of the first instance of the specified value in the array. Class: class:word | Namespace: a | Interface Layer: all a:left Data: an-a Addr: - Float: - Return a new array containing the first `n` values from the source array. Class: class:word | Namespace: a | Interface Layer: all a:length Data: a-n Addr: - Float: - Return the length of a array. Class: class:word | Namespace: a | Interface Layer: all a:to-string Data: a-s Addr: - Float: - Create a new string from the provided array of character values. This string will be stored in the temporal string buffers. Class: class:word | Namespace: a | Interface Layer: all Example #1: { $h $e $l $l $o } a:to-string s:put nl 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 bi Data: xqq-? Addr: - Float: - Execute q1 against x, then execute q2 against a copy of x. Class: class:word | Namespace: global | Interface Layer: all Example #1: #100 [ #10 * ] [ #10 - ] bi bi@ Data: xyq-? Addr: - Float: - Execute q against x, then execute q against y. Class: class:word | Namespace: global | Interface Layer: all Example #1: #10 #20 [ #3 * ] bi@ 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 block:write Data: na- Addr: - Float: - Save the 1024 cells at address a to block n in the block storage. Class: class:word | Namespace: block | Interface Layer: rre c:put Data: c- Addr: - Float: - Vectored. Display a single character. Class: class:word | Namespace: global | Interface Layer: all call Data: a- Addr: - Float: - Call a function. Class: class:primitive | Namespace: global | 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 d:xt Data: d-a Addr: - Float: - Given a dictionary header, return the xt field. Class: class:word | Namespace: d | Interface Layer: all dip Data: nq-n Addr: - Float: - Temporarily remove n from the stack, execute the quotation, and then restore n to the stack. Class: class:word | Namespace: global | Interface Layer: all drop Data: n- Addr: - Float: - Discard the top value on the stack. Class: class:primitive | Namespace: global | Interface Layer: all drop-pair Data: nn- Addr: - Float: - Remove top two items on the stack. Class: class:word | 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 dup-pair Data: nm-nmnm Addr: - Float: - Duplicate the top two items on the stack. Class: class:word | 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 Data: a-n Addr: - Float: - Fetch the value stored at the specified address. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: &Version fetch 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 gt? Data: nn-f Addr: - Float: - Compare n1 and n2. Return `TRUE` if n1 is greater than n2, or `FALSE` otherwise. Class: class:primitive | Namespace: global | Interface Layer: all 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 interpret Data: s- Addr: - Float: - Vectored. Interpret a single input token. Class: class:word | Namespace: global | Interface Layer: all Example #1: '#100 interpret 'words interpret lt? Data: nn-f Addr: - Float: - Compare n1 and n2. Return `TRUE` if n1 is less than n2, or `FALSE` otherwise. Class: class:primitive | Namespace: global | Interface Layer: all n:-zero? Data: n-f Addr: - Float: - Return `TRUE` if number is not zero, or `FALSE` otherwise. Class: class:word | Namespace: n | 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:dec Data: n-m Addr: - Float: - Decrement n by one. Class: class:word | Namespace: n | Interface Layer: all Example #1: #100 n:dec 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:limit Data: nlu-m Addr: - Float: - Return n if it is within the lower (l) and upper (u) bounds. If outside the bounds, return the closes boundary value. Class: class:word | Namespace: n | Interface Layer: all Example #1: #-10 #5 #8 n:limit #10 #1 #15 n:limit n:mul Data: nn-n Addr: - Float: - Multiply `n1` by `n2` and return the result. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: #2 #6 * #-1 #100 * n:put Data: n- Addr: - Float: - Display a number. Class: class:word | Namespace: global | Interface Layer: all 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 or Data: mn-o Addr: - Float: - Perform a bitwise OR between the provided values. Class: class:primitive | Namespace: global | Interface Layer: all over Data: nm-nmn Addr: - Float: - Put a copy of n over m. Class: class:word | Namespace: global | Interface Layer: all reset Data: ...- Addr: - Float: - Remove all items from the stack. Class: class:word | Namespace: global | Interface Layer: all s:evaluate Data: s-? Addr: - Float: -? Evaluate string as if it was typed into the interpreter. 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:get Data: -s Addr: - Float: - Read input from standard in (via `c:get`) until a CR or LF is encountered. Returns a string. Class: class:word | Namespace: all | Interface Layer: rre s:hash Data: s-n Addr: - Float: - Calculate a hash value for a string. This uses the djb2 algorithm. 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 sp Data: - Addr: - Float: - Display a space (`ASCII:SPACE`) Class: class:word | Namespace: global | Interface Layer: all Example #1: :spaces (n-) [ sp ] times ; #12 spaces store Data: na- Addr: - Float: - Store a value into the specified address. Class: class:primitive | Namespace: global | Interface Layer: all Example #1: 'Base var #10 &Base store store-next Data: na-a Addr: - Float: - Store a value into the specified address and return the next address. Class: class:word | Namespace: global | Interface Layer: all 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 tab Data: - Addr: - Float: - Display a tab (`ASCII:HT`) Class: class:word | 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 until Data: q(-f)- Addr: - Float: - Execute quote repeatedly while the quote returns a value of `FALSE`. The quote should return a flag of either `TRUE` or `FALSE`, though `until` will treat any non-zero value as `TRUE`. Class: class:word | Namespace: global | Interface Layer: all Example #1: #10 [ dup n:put nl n:dec dup n:zero? ] until v:dec Data: a- Addr: - Float: - Decrement the value stored at the specified address by 1. Class: class:word | Namespace: v | Interface Layer: all v:inc Data: a- Addr: - Float: - Increment the value stored at the specified address by 1. Class: class:word | Namespace: v | Interface Layer: all 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 var-n Data: ns- Addr: - Float: - Create a variable with the specified initial value. Class: class:word | Namespace: global | Interface Layer: all Example #1: #10 'Base var-n {{ Data: - Addr: - Float: - Begin a lexically scoped area. Class: class:word | Namespace: global | Interface Layer: all }} Data: - Addr: - Float: - End a lexically scoped area. This will hide any headers between `{{` and `---reveal---`, leaving only headers between `---reveal---` and the `}}` visible. 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