diff --git a/basic/social-security.bas b/basic/social-security.bas new file mode 100644 index 0000000..14955bb --- /dev/null +++ b/basic/social-security.bas @@ -0,0 +1,38 @@ +[start] + cls + print "This program will help you determine" + print "if you are old enough to apply for" + print "Social Security." + print + input "Please enter your current age."; age + if age < 65 then [young] + if age > 65 then [old] + if age = 65 then [correct] + goto [start] + +[young] + cls + print "You are too young. Please try again" + print "in a couple of years." + print + input "Press 'Enter' to continue."; dummyVariable + print + goto [start] + +[old] + cls + print "You are should have applied for" + print "Social Security by now." + print + input "Press 'Enter' to continue."; dummyVariable + print + goto [start] + +[correct] + cls + print "You are now eligiable to apply for " + print "Social Security." + print + input "Press 'Enter' to continue."; dummyVariable + print + goto [start] diff --git a/basic/taxes.bas b/basic/taxes.bas new file mode 100644 index 0000000..9a58c89 --- /dev/null +++ b/basic/taxes.bas @@ -0,0 +1,18 @@ +[start] + print "Type a dollar and cent amount ?" + input "(Press 'Enter' alone for help) "; amount + let tax = amount * 0.05 + print "Tax is: "; tax; ". Total is: "; tax+amount + goto [start] + +[help] + cls + print "SALESTAX.BAS Help" + print + print "This tax program determines how much tax is" + print "due on an amount entered and also computes" + print "the total amount. The tax rate is 5%." + print + input "Press [Enter] to continue."; dummyVariable + cls + goto [start] diff --git a/basic/taxes2.bas b/basic/taxes2.bas new file mode 100644 index 0000000..d28ac5a --- /dev/null +++ b/basic/taxes2.bas @@ -0,0 +1,25 @@ +[start] + print "Type a dollar and cent amount ?" + input "(Press 'Enter' alone for help) "; valueA + let tax = amount * 0.05 + + + + + + let valueB = int(valueA) + valueC = valueA - valueB + + goto [start] + +[help] + cls + print "SALESTAX.BAS Help" + print + print "This tax program determines how much tax is" + print "due on an amount entered and also computes" + print "the total amount. The tax rate is 5%." + print + input "Press [Enter] to continue."; dummyVariable + cls + goto [start] diff --git a/index.html b/index.html new file mode 100644 index 0000000..e69de29 diff --git a/qb64/hello.bas b/qb64/hello.bas new file mode 100644 index 0000000..25aa695 --- /dev/null +++ b/qb64/hello.bas @@ -0,0 +1,5 @@ +PRINT "Hello World" + + + + diff --git a/qb64/linedemo2.bas b/qb64/linedemo2.bas new file mode 100644 index 0000000..381607c --- /dev/null +++ b/qb64/linedemo2.bas @@ -0,0 +1,20 @@ +'------------------------- +'-LINE demonstration #2 - +'------------------------- + +const YELLOW = _RGB32(255, 255, 0) + +SCREEN _NEWIMAGE(640, 480, 32) +cls +line (299, 219)-(319,0), YELLOW +LINE -(339, 219), YELLOW +LINE -(629, 239), YELLOW +LINE -(339, 259), YELLOW +LINE -(319, 479), YELLOW +LINE -(299, 259), YELLOW +LINE -(0, 239), YELLOW +LINE -(299, 219), YELLOW +LOCATE 16.36 +PRINT "PRESS A KEY" +SLEEP +SYSTEM \ No newline at end of file diff --git a/qb64/linedemo3.bas b/qb64/linedemo3.bas new file mode 100644 index 0000000..2559dce --- /dev/null +++ b/qb64/linedemo3.bas @@ -0,0 +1,32 @@ +'------------------------- +'-LINE demonstration #3 - +'------------------------- + +CONST YELLOW = _RGB32(255, 255, 0) +dim Style& +dim Bit% +dim Dir% + +Dir% = -1 + +SCREEN _NEWIMAGE(640, 480, 32) +do + cls + _LIMIT 30 + LOCATE 2, 33 + PRINT "A Stylized Line" + LOCATE 4, 21 + PRINT "Press the Space Bar to change directions" + LOCATE 6, 23 + PRINT "Press the Escape key to exit the program." + if _KEYHIT = 32 THEN Dir% = -Dir% + Bit% = Bit% + Dir% + if Bit% = 16 THEN + Bit% = 0 + ELSEIF Bit% = -1 then + Bit% = 15 + End if + Style& = 2 ^ Bit% + LINE (99, 129)-(539, 409), YELLOW, B , Style& + _DISPLAY +LOOP UNTIL _KEYDOWN(27) \ No newline at end of file diff --git a/qb64/name.bas b/qb64/name.bas new file mode 100644 index 0000000..6032141 --- /dev/null +++ b/qb64/name.bas @@ -0,0 +1,4 @@ +PRINT "Enter your name:" +INPUT user$ +PRINT "Hello " + user$ + diff --git a/red/hello-gui.exe b/red/hello-gui.exe new file mode 100644 index 0000000..43f5ca8 Binary files /dev/null and b/red/hello-gui.exe differ diff --git a/red/hello-gui.red b/red/hello-gui.red new file mode 100644 index 0000000..70892c3 --- /dev/null +++ b/red/hello-gui.red @@ -0,0 +1,3 @@ +Red [Needs: 'View] + +view [text "Hello, World!"] \ No newline at end of file diff --git a/red/hello.exe b/red/hello.exe new file mode 100644 index 0000000..27c0b56 Binary files /dev/null and b/red/hello.exe differ diff --git a/red/hello.red b/red/hello.red new file mode 100644 index 0000000..1fb273d --- /dev/null +++ b/red/hello.red @@ -0,0 +1,3 @@ +Red [Title: "Simple hello world Script"] + +print "Hello, World" \ No newline at end of file diff --git a/red/image-viewer.red b/red/image-viewer.red new file mode 100644 index 0000000..79835bf --- /dev/null +++ b/red/image-viewer.red @@ -0,0 +1,3 @@ +Red [ tite: "Simple Image Viewer" needs: 'view] + + \ No newline at end of file diff --git a/red/libRedRT-defs.r b/red/libRedRT-defs.r new file mode 100644 index 0000000..1ebe3db --- /dev/null +++ b/red/libRedRT-defs.r @@ -0,0 +1,6352 @@ +[[ + make [action! 2 [type [datatype! word!] spec [any-type!]] #[none]] + random [action! 1 [{Returns a random value of the same datatype; or shuffles series} value "Maximum value of result (modified when series)" /seed "Restart or randomize" /secure "Returns a cryptographically secure random number" /only "Pick a random value from a series" return: [any-type!]] [/seed 1 0 /secure 2 0 /only 3 0]] + reflect [action! 2 [{Returns internal details about a value via reflection} value [any-type!] field [word!] {spec, body, words, etc. Each datatype defines its own reflectors}] #[none]] + to [action! 2 ["Converts to a specified datatype" type [any-type!] "The datatype or example value" spec [any-type!] "The attributes of the new value"] #[none]] + form [action! 1 [{Returns a user-friendly string representation of a value} value [any-type!] /part "Limit the length of the result" limit [integer!] return: [string!]] [/part 1 1]] + mold [action! 1 [{Returns a source format string representation of a value} value [any-type!] /only "Exclude outer brackets if value is a block" /all "TBD: Return value in loadable format" /flat "TBD: Exclude all indentation" /part "Limit the length of the result" limit [integer!] return: [string!]] [/only 1 0 /all 2 0 /flat 3 0 /part 4 1]] + modify [action! 3 ["Change mode for target aggregate value" target [object! series!] field [word!] value [any-type!] /case "Perform a case-sensitive lookup"] [/case 1 0]] + absolute [action! 1 ["Returns the non-negative value" value [number! money! char! pair! time!] return: [number! money! char! pair! time!]] #[none]] + add [action! 2 ["Returns the sum of the two values" value1 [scalar! vector!] "The augend" value2 [scalar! vector!] "The addend" return: [scalar! vector!] "The sum"] #[none]] + divide [action! 2 ["Returns the quotient of two values" value1 [number! money! char! pair! tuple! vector! time!] "The dividend (numerator)" value2 [number! money! char! pair! tuple! vector! time!] "The divisor (denominator)" return: [number! money! char! pair! tuple! vector! time!] "The quotient"] #[none]] + multiply [action! 2 ["Returns the product of two values" value1 [number! money! char! pair! tuple! vector! time!] "The multiplicand" value2 [number! money! char! pair! tuple! vector! time!] "The multiplier" return: [number! money! char! pair! tuple! vector! time!] "The product"] #[none]] + negate [action! 1 ["Returns the opposite (additive inverse) value" number [number! money! bitset! pair! time!] return: [number! money! bitset! pair! time!]] #[none]] + power [action! 2 [{Returns a number raised to a given power (exponent)} number [number!] "Base value" exponent [integer! float!] "The power (index) to raise the base value by" return: [number!]] #[none]] + remainder [action! 2 [{Returns what is left over when one value is divided by another} value1 [number! money! char! pair! tuple! vector! time!] "The dividend (numerator)" value2 [number! money! char! pair! tuple! vector! time!] "The divisor (denominator)" return: [number! money! char! pair! tuple! vector! time!] "The remainder"] #[none]] + round [action! 1 [{Returns the nearest integer. Halves round up (away from zero) by default} n [number! money! time! pair!] /to "Return the nearest multiple of the scale parameter" scale [number! money! time!] "Must be a non-zero value" /even "Halves round toward even results" /down {Round toward zero, ignoring discarded digits. (truncate)} /half-down "Halves round toward zero" /floor "Round in negative direction" /ceiling "Round in positive direction" /half-ceiling "Halves round in positive direction"] [/to 1 1 /even 2 0 /down 3 0 /half-down 4 0 /floor 5 0 /ceiling 6 0 /half-ceiling 7 0]] + subtract [action! 2 ["Returns the difference between two values" value1 [scalar! vector!] "The minuend" value2 [scalar! vector!] "The subtrahend" return: [scalar! vector!] "The difference"] #[none]] + even? [action! 1 [{Returns true if the number is evenly divisible by 2} number [number! money! char! time!] return: [logic!]] #[none]] + odd? [action! 1 [{Returns true if the number has a remainder of 1 when divided by 2} number [number! money! char! time!] return: [logic!]] #[none]] + and~ [action! 2 ["Returns the first value ANDed with the second" value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + complement [action! 1 [{Returns the opposite (complementing) value of the input value} value [logic! integer! tuple! bitset! typeset! binary!] return: [logic! integer! tuple! bitset! typeset! binary!]] #[none]] + or~ [action! 2 ["Returns the first value ORed with the second" value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + xor~ [action! 2 [{Returns the first value exclusive ORed with the second} value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + append [action! 2 [{Inserts value(s) at series tail; returns series head} series [series! bitset! port!] value [any-type!] /part "Limit the number of values inserted" length [number! series!] /only {Insert block types as single values (overrides /part)} /dup "Duplicate the inserted values" count [integer!] return: [series! port! bitset!]] [/part 1 1 /only 2 0 /dup 3 1]] + at [action! 2 ["Returns a series at a given index" series [series! port!] index [integer! pair!] return: [series! port!]] #[none]] + back [action! 1 ["Returns a series at the previous index" series [series! port!] return: [series! port!]] #[none]] + change [action! 2 [{Changes a value in a series and returns the series after the change} series [series! port!] "Series at point to change" value [any-type!] "The new value" /part {Limits the amount to change to a given length or position} range [number! series!] /only "Changes a series as a series." /dup "Duplicates the change a specified number of times" count [number!]] [/part 1 1 /only 2 0 /dup 3 1]] + clear [action! 1 [{Removes series values from current index to tail; returns new tail} series [series! port! bitset! map! none!] return: [series! port! bitset! map! none!]] #[none]] + copy [action! 1 ["Returns a copy of a non-scalar value" value [series! any-object! bitset! map!] /part "Limit the length of the result" length [number! series! pair!] /deep "Copy nested values" /types "Copy only specific types of non-scalar values" kind [datatype!] return: [series! any-object! bitset! map!]] [/part 1 1 /deep 2 0 /types 3 1]] + find [action! 2 ["Returns the series where a value is found, or NONE" series [series! bitset! typeset! port! map! none!] value [any-type!] /part "Limit the length of the search" length [number! series!] /only "Treat a series search value as a single value" /case "Perform a case-sensitive search" /same {Use "same?" as comparator} /any "TBD: Use * and ? wildcards in string searches" /with "TBD: Use custom wildcards in place of * and ?" wild [string!] /skip "Treat the series as fixed size records" size [integer!] /last "Find the last occurrence of value, from the tail" /reverse {Find the last occurrence of value, from the current index} /tail {Return the tail of the match found, rather than the head} /match {Match at current index only and return tail of match}] [/part 1 1 /only 2 0 /case 3 0 /same 4 0 /any 5 0 /with 6 1 /skip 7 1 /last 8 0 /reverse 9 0 /tail 10 0 /match 11 0]] + head [action! 1 ["Returns a series at its first index" series [series! port!] return: [series! port!]] #[none]] + head? [action! 1 ["Returns true if a series is at its first index" series [series! port!] return: [logic!]] #[none]] + index? [action! 1 [{Returns the current index of series relative to the head, or of word in a context} series [series! port! any-word!] return: [integer!]] #[none]] + insert [action! 2 [{Inserts value(s) at series index; returns series past the insertion} series [series! port! bitset!] value [any-type!] /part "Limit the number of values inserted" length [number! series!] /only {Insert block types as single values (overrides /part)} /dup "Duplicate the inserted values" count [integer!] return: [series! port! bitset!]] [/part 1 1 /only 2 0 /dup 3 1]] + length? [action! 1 [{Returns the number of values in the series, from the current index to the tail} series [series! port! bitset! map! tuple! none!] return: [integer! none!]] #[none]] + move [action! 2 [{Moves one or more elements from one series to another position or series} origin [series! port!] target [series! port!] /part "Limit the number of values inserted" length [integer!] return: [series! port!]] [/part 1 1]] + next [action! 1 ["Returns a series at the next index" series [series! port!] return: [series! port!]] #[none]] + pick [action! 2 ["Returns the series value at a given index" series [series! port! bitset! pair! tuple! money! date! time!] index [scalar! any-string! any-word! block! logic! time!] return: [any-type!]] #[none]] + poke [action! 3 [{Replaces the series value at a given index, and returns the new value} series [series! port! bitset!] index [scalar! any-string! any-word! block! logic!] value [any-type!] return: [series! port! bitset!]] #[none]] + put [action! 3 [{Replaces the value following a key, and returns the new value} series [series! port! map! object!] key [scalar! any-string! any-word! binary!] value [any-type!] /case "Perform a case-sensitive search" return: [series! port! map! object!]] [/case 1 0]] + remove [action! 1 [{Returns the series at the same index after removing a value} series [series! port! bitset! map! none!] /part {Removes a number of values, or values up to the given series index} length [number! char! series!] /key "Removes a key in map" key-arg [scalar! any-string! any-word! binary! block!] return: [series! port! bitset! map! none!]] [/part 1 1 /key 2 1]] + reverse [action! 1 [{Reverses the order of elements; returns at same position} series [series! port! pair! tuple!] /part "Limits to a given length or position" length [number! series!] /skip "Treat the series as fixed size records" size [integer!] return: [series! port! pair! tuple!]] [/part 1 1 /skip 2 1]] + select [action! 2 [{Find a value in a series and return the next value, or NONE} series [series! any-object! map! none!] value [any-type!] /part "Limit the length of the search" length [number! series!] /only "Treat a series search value as a single value" /case "Perform a case-sensitive search" /same {Use "same?" as comparator} /any "TBD: Use * and ? wildcards in string searches" /with "TBD: Use custom wildcards in place of * and ?" wild [string!] /skip "Treat the series as fixed size records" size [integer!] /last "Find the last occurrence of value, from the tail" /reverse {Find the last occurrence of value, from the current index} return: [any-type!]] [/part 1 1 /only 2 0 /case 3 0 /same 4 0 /any 5 0 /with 6 1 /skip 7 1 /last 8 0 /reverse 9 0]] + sort [action! 1 [{Sorts a series (modified); default sort order is ascending} series [series! port!] /case "Perform a case-sensitive sort" /skip "Treat the series as fixed size records" size [integer!] /compare "Comparator offset, block (TBD) or function" comparator [integer! block! any-function!] /part "Sort only part of a series" length [number! series!] /all "Compare all fields (used with /skip)" /reverse "Reverse sort order" /stable "Stable sorting" return: [series!]] [/case 1 0 /skip 2 1 /compare 3 1 /part 4 1 /all 5 0 /reverse 6 0 /stable 7 0]] + skip [action! 2 ["Returns the series relative to the current index" series [series! port!] offset [integer! pair!] return: [series! port!]] #[none]] + swap [action! 2 [{Swaps elements between two series or the same series} series1 [series! port!] series2 [series! port!] return: [series! port!]] #[none]] + tail [action! 1 ["Returns a series at the index after its last value" series [series! port!] return: [series! port!]] #[none]] + tail? [action! 1 ["Returns true if a series is past its last value" series [series! port!] return: [logic!]] #[none]] + take [action! 1 ["Removes and returns one or more elements" series [series! port! none!] /part "Specifies a length or end position" length [number! series!] /deep "Copy nested values" /last "Take it from the tail end"] [/part 1 1 /deep 2 0 /last 3 0]] + trim [action! 1 ["Removes space from a string or NONE from a block" series [series! port!] /head "Removes only from the head" /tail "Removes only from the tail" /auto "Auto indents lines relative to first line" /lines "Removes all line breaks and extra spaces" /all "Removes all whitespace" /with "Same as /all, but removes characters in 'str'" str [char! string! binary! integer!]] [/head 1 0 /tail 2 0 /auto 3 0 /lines 4 0 /all 5 0 /with 6 1]] + create [action! 1 ["Send port a create request" port [port! file! url! block!]] #[none]] + close [action! 1 ["Closes a port" port [port!]] #[none]] + delete [action! 1 ["Deletes the specified file or empty folder" file [file! port!]] #[none]] + open [action! 1 [{Opens a port; makes a new port from a specification if necessary} port [port! file! url! block!] /new "Create new file - if it exists, deletes it" /read "Open for read access" /write "Open for write access" /seek "Optimize for random access" /allow "Specificies right access attributes" access [block!]] [/new 1 0 /read 2 0 /write 3 0 /seek 4 0 /allow 5 1]] + open? [action! 1 ["Returns TRUE if port is open" port [port!]] #[none]] + query [action! 1 ["Returns information about a file" target [file! port!]] #[none]] + read [action! 1 ["Reads from a file, URL, or other port" source [file! url! port!] /part {Partial read a given number of units (source relative)} length [number!] /seek "Read from a specific position (source relative)" index [number!] /binary "Preserves contents exactly" /lines "Convert to block of strings" /info /as {Read with the specified encoding, default is 'UTF-8} encoding [word!]] [/part 1 1 /seek 2 1 /binary 3 0 /lines 4 0 /info 5 0 /as 6 1]] + rename [action! 2 ["Rename a file" from [port! file! url!] to [port! file! url!]] #[none]] + update [action! 1 [{Updates external and internal states (normally after read/write)} port [port!]] #[none]] + write [action! 2 ["Writes to a file, URL, or other port" destination [file! url! port!] data [any-type!] /binary "Preserves contents exactly" /lines "Write each value in a block as a separate line" /info /append "Write data at end of file" /part "Partial write a given number of units" length [number!] /seek "Write at a specific position" index [number!] /allow "Specifies protection attributes" access [block!] /as {Write with the specified encoding, default is 'UTF-8} encoding [word!]] [/binary 1 0 /lines 2 0 /info 3 0 /append 4 0 /part 5 1 /seek 6 1 /allow 7 1 /as 8 1]] + if [intrinsic! 2 [{If conditional expression is truthy, evaluate block; else return NONE} cond [any-type!] then-blk [block!]] #[none]] + unless [intrinsic! 2 [{If conditional expression is falsy, evaluate block; else return NONE} cond [any-type!] then-blk [block!]] #[none]] + either [intrinsic! 3 [{If conditional expression is truthy, evaluate the first branch; else evaluate the alternative} cond [any-type!] true-blk [block!] false-blk [block!]] #[none]] + any [intrinsic! 1 [{Evaluates and returns the first truthy value, if any; else NONE} conds [block!]] #[none]] + all [intrinsic! 1 [{Evaluates and returns the last value if all are truthy; else NONE} conds [block!]] #[none]] + while [intrinsic! 2 [{Evaluates body as long as condition block evaluates to truthy value} cond [block!] "Condition block to evaluate on each iteration" body [block!] "Block to evaluate on each iteration"] #[none]] + until [intrinsic! 1 ["Evaluates body until it is truthy" body [block!]] #[none]] + loop [intrinsic! 2 ["Evaluates body a number of times" count [float! integer!] body [block!]] #[none]] + repeat [intrinsic! 3 [{Evaluates body a number of times, tracking iteration count} 'word [word!] "Iteration counter; not local to loop" value [float! integer!] "Number of times to evaluate body" body [block!]] #[none]] + forever [intrinsic! 1 ["Evaluates body repeatedly forever" body [block!]] #[none]] + foreach [intrinsic! 3 ["Evaluates body for each value in a series" 'word [block! word!] "Word, or words, to set on each iteration" series [map! series!] body [block!]] #[none]] + forall [intrinsic! 2 ["Evaluates body for all values in a series" 'word [word!] "Word referring to series to iterate over" body [block!]] #[none]] + remove-each [intrinsic! 3 [{Removes values for each block that returns truthy value} 'word [block! word!] "Word or block of words to set each time" data [series!] "The series to traverse (modified)" body [block!] "Block to evaluate (return truthy value to remove)"] #[none]] + func [intrinsic! 2 ["Defines a function with a given spec and body" spec [block!] body [block!]] #[none]] + function [intrinsic! 2 [{Defines a function, making all set-words found in body, local} spec [block!] body [block!] /extern "Exclude words that follow this refinement"] [/extern 1 0]] + does [intrinsic! 1 [{Defines a function with no arguments or local variables} body [block!]] #[none]] + has [intrinsic! 2 [{Defines a function with local variables, but no arguments} vars [block!] body [block!]] #[none]] + switch [intrinsic! 2 [{Evaluates the first block following the value found in cases} value [any-type!] "The value to match" cases [block!] /default {Specify a default block, if value is not found in cases} case [block!] "Default block to evaluate"] [/default 1 1]] + case [intrinsic! 1 [{Evaluates the block following the first truthy condition} cases [block!] "Block of condition-block pairs" /all {Test all conditions, evaluating the block following each truthy condition}] [/all 1 0]] + do [native! 1 [{Evaluates a value, returning the last evaluation result} value [any-type!] /expand "Expand directives before evaluation" /args {If value is a script, this will set its system/script/args} arg "Args passed to a script (normally a string)" /next {Do next expression only, return it, update block word} position [word!] "Word updated with new block position"] [/expand 1 0 /args 2 1 /next 3 1]] + reduce [intrinsic! 1 [{Returns a copy of a block, evaluating all expressions} value [any-type!] /into {Put results in out block, instead of creating a new block} out [any-block!] "Target block for results, when /into is used"] [/into 1 1]] + compose [native! 1 ["Returns a copy of a block, evaluating only parens" value [block!] /deep "Compose nested blocks" /only {Compose nested blocks as blocks containing their values} /into {Put results in out block, instead of creating a new block} out [any-block!] "Target block for results, when /into is used"] [/deep 1 0 /only 2 0 /into 3 1]] + get [intrinsic! 1 ["Returns the value a word refers to" word [any-path! any-word! object!] /any {If word has no value, return UNSET rather than causing an error} /case "Use case-sensitive comparison (path only)" return: [any-type!]] [/any 1 0 /case 2 0]] + set [intrinsic! 2 ["Sets the value(s) one or more words refer to" word [any-path! any-word! block! object!] "Word, object, map path or block of words to set" value [any-type!] "Value or block of values to assign to words" /any {Allow UNSET as a value rather than causing an error} /case "Use case-sensitive comparison (path only)" /only {Block or object value argument is set as a single value} /some {None values in a block or object value argument, are not set} return: [any-type!]] [/any 1 0 /case 2 0 /only 3 0 /some 4 0]] + print [native! 1 ["Outputs a value followed by a newline" value [any-type!]] #[none]] + prin [native! 1 ["Outputs a value" value [any-type!]] #[none]] + equal? [native! 2 ["Returns TRUE if two values are equal" value1 [any-type!] value2 [any-type!]] #[none]] + not-equal? [native! 2 ["Returns TRUE if two values are not equal" value1 [any-type!] value2 [any-type!]] #[none]] + strict-equal? [native! 2 [{Returns TRUE if two values are equal, and also the same datatype} value1 [any-type!] value2 [any-type!]] #[none]] + lesser? [native! 2 [{Returns TRUE if the first value is less than the second} value1 [any-type!] value2 [any-type!]] #[none]] + greater? [native! 2 [{Returns TRUE if the first value is greater than the second} value1 [any-type!] value2 [any-type!]] #[none]] + lesser-or-equal? [native! 2 [{Returns TRUE if the first value is less than or equal to the second} value1 [any-type!] value2 [any-type!]] #[none]] + greater-or-equal? [native! 2 [{Returns TRUE if the first value is greater than or equal to the second} value1 [any-type!] value2 [any-type!]] #[none]] + same? [native! 2 ["Returns TRUE if two values have the same identity" value1 [any-type!] value2 [any-type!]] #[none]] + not [native! 1 [{Returns the logical complement of a value (truthy or falsy)} value [any-type!]] #[none]] + type? [native! 1 ["Returns the datatype of a value" value [any-type!] /word "Return a word value, rather than a datatype value"] [/word 1 0]] + stats [native! 0 ["Returns interpreter statistics" /show "TBD:" /info "Output formatted results" return: [integer! block!]] [/show 1 0 /info 2 0]] + bind [native! 2 ["Bind words to a context; returns rebound words" word [any-word! block!] context [any-object! any-word! function!] /copy "Deep copy blocks before binding" return: [block! any-word!]] [/copy 1 0]] + in [native! 2 [{Returns the given word bound to the object's context} object [any-object!] word [any-word!]] #[none]] + parse [native! 2 ["Process a series using dialected grammar rules" input [any-block! any-string! binary!] rules [block!] /case "Uses case-sensitive comparison" /part "Limit to a length or position" length [number! series!] /trace callback [function! [ + event [word!] + match? [logic!] + rule [block!] + input [series!] + stack [block!] + return: [logic!] + ]] return: [logic! block!]] [/case 1 0 /part 2 1 /trace 3 1]] + union [native! 2 ["Returns the union of two data sets" set1 [bitset! block! hash! string! typeset!] set2 [bitset! block! hash! string! typeset!] /case "Use case-sensitive comparison" /skip "Treat the series as fixed size records" size [integer!] return: [block! hash! string! bitset! typeset!]] [/case 1 0 /skip 2 1]] + unique [native! 1 ["Returns the data set with duplicates removed" set [block! hash! string!] /case "Use case-sensitive comparison" /skip "Treat the series as fixed size records" size [integer!] return: [block! hash! string!]] [/case 1 0 /skip 2 1]] + intersect [native! 2 ["Returns the intersection of two data sets" set1 [bitset! block! hash! string! typeset!] set2 [bitset! block! hash! string! typeset!] /case "Use case-sensitive comparison" /skip "Treat the series as fixed size records" size [integer!] return: [block! hash! string! bitset! typeset!]] [/case 1 0 /skip 2 1]] + difference [native! 2 ["Returns the special difference of two data sets" set1 [bitset! block! date! hash! string! typeset!] set2 [bitset! block! date! hash! string! typeset!] /case "Use case-sensitive comparison" /skip "Treat the series as fixed size records" size [integer!] return: [block! hash! string! bitset! typeset! time!]] [/case 1 0 /skip 2 1]] + exclude [native! 2 [{Returns the first data set less the second data set} set1 [bitset! block! hash! string! typeset!] set2 [bitset! block! hash! string! typeset!] /case "Use case-sensitive comparison" /skip "Treat the series as fixed size records" size [integer!] return: [block! hash! string! bitset! typeset!]] [/case 1 0 /skip 2 1]] + complement? [native! 1 ["Returns TRUE if the bitset is complemented" bits [bitset!]] #[none]] + dehex [native! 1 ["Converts URL-style hex encoded (%xx) strings" value [any-string!] return: [string!] "Always return a string"] #[none]] + enhex [native! 1 ["Encode URL-style hex encoded (%xx) strings" value [any-string!] return: [string!] "Always return a string"] #[none]] + negative? [native! 1 ["Returns TRUE if the number is negative" number [money! number! time!] return: [logic!]] #[none]] + positive? [native! 1 ["Returns TRUE if the number is positive" number [money! number! time!] return: [logic!]] #[none]] + max [native! 2 ["Returns the greater of the two values" value1 [scalar! series!] value2 [scalar! series!]] #[none]] + min [native! 2 ["Returns the lesser of the two values" value1 [scalar! series!] value2 [scalar! series!]] #[none]] + shift [native! 2 [{Perform a bit shift operation. Right shift (decreasing) by default} data [integer!] bits [integer!] /left "Shift bits to the left (increasing)" /logical "Use logical shift (unsigned, fill with zero)" return: [integer!]] [/left 1 0 /logical 2 0]] + to-hex [native! 1 [{Converts numeric value to a hex issue! datatype (with leading # and 0's)} value [integer!] /size "Specify number of hex digits in result" length [integer!] return: [issue!]] [/size 1 1]] + sine [native! 1 ["Returns the trigonometric sine" angle [number!] /radians "Angle is specified in radians" return: [float!]] [/radians 1 0]] + cosine [native! 1 ["Returns the trigonometric cosine" angle [number!] /radians "Angle is specified in radians" return: [float!]] [/radians 1 0]] + tangent [native! 1 ["Returns the trigonometric tangent" angle [number!] /radians "Angle is specified in radians" return: [float!]] [/radians 1 0]] + arcsine [native! 1 [{Returns the trigonometric arcsine (in degrees by default in range [-90,90])} sine [number!] "in range [-1,1]" /radians "Angle is returned in radians [-pi/2,pi/2]" return: [float!]] [/radians 1 0]] + arccosine [native! 1 [{Returns the trigonometric arccosine (in degrees by default in range [0,180])} cosine [number!] "in range [-1,1]" /radians "Angle is returned in radians [0,pi]" return: [float!]] [/radians 1 0]] + arctangent [native! 1 [{Returns the trigonometric arctangent (in degrees by default in range [-90,90])} tangent [number!] "in range [-inf,+inf]" /radians "Angle is returned in radians [-pi/2,pi/2]" return: [float!]] [/radians 1 0]] + arctangent2 [native! 2 [{Returns the smallest angle between the vectors (1,0) and (x,y) in degrees by default (-180,180]} y [number!] x [number!] /radians "Angle is returned in radians (-pi,pi]" return: [float!]] [/radians 1 0]] + NaN? [native! 1 ["Returns TRUE if the number is Not-a-Number" value [number!] return: [logic!]] #[none]] + zero? [native! 1 ["Returns TRUE if the value is zero" value [char! money! number! pair! time! tuple!] return: [logic!]] #[none]] + log-2 [native! 1 ["Return the base-2 logarithm" value [number!] return: [float!]] #[none]] + log-10 [native! 1 ["Returns the base-10 logarithm" value [number!] return: [float!]] #[none]] + log-e [native! 1 [{Returns the natural (base-E) logarithm of the given value} value [number!] return: [float!]] #[none]] + exp [native! 1 [{Raises E (the base of natural logarithm) to the power specified} value [number!] return: [float!]] #[none]] + square-root [native! 1 ["Returns the square root of a number" value [number!] return: [float!]] #[none]] + construct [intrinsic! 1 [{Makes a new object from an unevaluated spec; standard logic words are evaluated} block [block!] /with "Use a prototype object" object [object!] "Prototype object" /only "Don't evaluate standard logic words"] [/with 1 1 /only 2 0]] + value? [native! 1 ["Returns TRUE if the word has a value" value return: [logic!]] #[none]] + try [intrinsic! 1 [{Tries to DO a block and returns its value or an error} block [block!] /all {Catch also BREAK, CONTINUE, RETURN, EXIT and THROW exceptions}] [/all 1 0]] + uppercase [native! 1 ["Converts string of characters to uppercase" string [any-string! char!] "Value to convert (modified when series)" /part "Limits to a given length or position" limit [any-string! number!] return: [any-string! char!]] [/part 1 1]] + lowercase [native! 1 ["Converts string of characters to lowercase" string [any-string! char!] "Value to convert (modified when series)" /part "Limits to a given length or position" limit [any-string! number!] return: [any-string! char!]] [/part 1 1]] + as-pair [native! 2 ["Combine X and Y values into a pair" x [float! integer!] y [float! integer!]] #[none]] + as-money [native! 2 [{Combine currency code and amount into a monetary value} currency [word!] amount [float! integer!] return: [money!]] #[none]] + break [intrinsic! 0 [{Breaks out of a loop, while, until, repeat, foreach, etc} /return "Forces the loop function to return a value" value [any-type!]] [/return 1 1]] + continue [intrinsic! 0 ["Throws control back to top of loop"] #[none]] + exit [intrinsic! 0 ["Exits a function, returning no value"] #[none]] + return [intrinsic! 1 ["Returns a value from a function" value [any-type!]] #[none]] + throw [native! 1 ["Throws control back to a previous catch" value [any-type!] "Value returned from catch" /name "Throws to a named catch" word [word!]] [/name 1 1]] + catch [native! 1 ["Catches a throw from a block and returns its value" block [block!] "Block to evaluate" /name "Catches a named throw" word [block! word!] "One or more names"] [/name 1 1]] + extend [native! 2 [{Extend an object or map value with list of key and value pairs} obj [map! object!] spec [block! hash! map!] /case "Use case-sensitive comparison"] [/case 1 0]] + debase [native! 1 [{Decodes binary-coded string (BASE-64 default) to binary value} value [string!] "The string to decode" /base "Binary base to use" base-value [integer!] "The base to convert from: 64, 58, 16, or 2"] [/base 1 1]] + enbase [native! 1 [{Encodes a string into a binary-coded string (BASE-64 default)} value [binary! string!] "If string, will be UTF8 encoded" /base "Binary base to use" base-value [integer!] "The base to convert from: 64, 58, 16, or 2"] [/base 1 1]] + to-local-file [native! 1 [{Converts a Red file path to the local system file path} path [file! string!] /full {Prepends current dir for full path (for relative paths only)} return: [string!]] [/full 1 0]] + wait [native! 1 ["Waits for a duration in seconds or specified time" value [block! none! number! time!] /all "Returns all events in a block"] [/all 1 0]] + checksum [native! 2 ["Computes a checksum, CRC, hash, or HMAC" data [binary! file! string!] method [word!] {MD5 SHA1 SHA256 SHA384 SHA512 CRC32 TCP ADLER32 hash} /with {Extra value for HMAC key or hash table size; not compatible with TCP/CRC32/ADLER32 methods} spec [any-string! binary! integer!] {String or binary for MD5/SHA* HMAC key, integer for hash table size} return: [integer! binary!]] [/with 1 1]] + unset [native! 1 ["Unsets the value of a word in its current context" word [block! word!] "Word or block of words"] #[none]] + new-line [native! 2 [{Sets or clears the new-line marker within a list series} position [any-list!] "Position to change marker (modified)" value [logic!] "Set TRUE for newline" /all "Set/clear marker to end of series" /skip {Set/clear marker periodically to the end of the series} size [integer!] return: [any-list!]] [/all 1 0 /skip 2 1]] + new-line? [native! 1 [{Returns the state of the new-line marker within a list series} position [any-list!] "Position to change marker" return: [any-list!]] #[none]] + context? [native! 1 ["Returns the context to which a word is bound" word [any-word!] "Word to check" return: [object! function! none!]] #[none]] + set-env [native! 2 [{Sets the value of an operating system environment variable (for current process)} var [any-string! any-word!] "Variable to set" value [none! string!] "Value to set, or NONE to unset it"] #[none]] + get-env [native! 1 [{Returns the value of an OS environment variable (for current process)} var [any-string! any-word!] "Variable to get" return: [string! none!]] #[none]] + list-env [native! 0 [{Returns a map of OS environment variables (for current process)} return: [map!]] #[none]] + now [native! 0 ["Returns date and time" /year "Returns year only" /month "Returns month only" /day "Returns day of the month only" /time "Returns time only" /zone "Returns time zone offset from UTC (GMT) only" /date "Returns date only" /weekday {Returns day of the week as integer (Monday is day 1)} /yearday "Returns day of the year (Julian)" /precise "High precision time" /utc "Universal time (no zone)" return: [date! time! integer!]] [/year 1 0 /month 2 0 /day 3 0 /time 4 0 /zone 5 0 /date 6 0 /weekday 7 0 /yearday 8 0 /precise 9 0 /utc 10 0]] + sign? [native! 1 [{Returns sign of N as 1, 0, or -1 (to use as a multiplier)} number [money! number! time!] return: [integer!]] #[none]] + as [native! 2 [{Coerce a series into a compatible datatype without copying it} type [any-path! any-string! block! datatype! paren!] "The datatype or example value" spec [any-path! any-string! block! paren!] "The series to coerce"] #[none]] + call [native! 1 ["Executes a shell command to run another process" cmd [file! string!] "A shell command or an executable file" /wait "Runs command and waits for exit" /show {Force the display of system's shell window (Windows only)} /console {Runs command with I/O redirected to console (CLI console only at present)} /shell "Forces command to be run from shell" /input in [binary! file! string!] "Redirects in to stdin" /output out [binary! file! string!] "Redirects stdout to out" /error err [binary! file! string!] "Redirects stderr to err" return: [integer!] "0 if success, -1 if error, or a process ID"] [/wait 1 0 /show 2 0 /console 3 0 /shell 4 0 /input 5 1 /output 6 1 /error 7 1]] + size? [native! 1 ["Returns the size of a file content" file [file!] return: [integer! none!]] #[none]] + browse [native! 1 [{Open web browser to a URL or file mananger to a local file} url [file! url!]] #[none]] + compress [native! 1 [{compresses data. return GZIP format (RFC 1952) by default} data [any-string! binary!] /zlib "Return ZLIB format (RFC 1950)" /deflate "Return DEFLATE format (RFC 1951)"] [/zlib 1 0 /deflate 2 0]] + decompress [native! 1 [{Decompresses data. Data in GZIP format (RFC 1952) by default} data [binary!] /zlib "Data in ZLIB format (RFC 1950)" size [integer!] "Uncompressed data size. Use 0 if don't know" /deflate "Data in DEFLATE format (RFC 1951)" size [integer!] "Uncompressed data size. Use 0 if don't know"] [/zlib 1 1 /deflate 2 1]] + recycle [native! 0 ["Recycles unused memory" /on "Turns on garbage collector" /off "Turns off garbage collector"] [/on 1 0 /off 2 0]] + transcode [native! 1 [{Translates UTF-8 binary source to values. Returns one or several values in a block} src [binary! string!] {UTF-8 input buffer; string argument will be UTF-8 encoded} /next {Translate next complete value (blocks as single value)} /one {Translate next complete value, returns the value only} /prescan {Prescans only, do not load values. Returns guessed type.} /scan {Scans only, do not load values. Returns recognized type.} /part "Translates only part of the input buffer" length [binary! integer!] "Length in bytes or tail position" /into "Optionally provides an output block" dst [block!] /trace callback [function! [ + event [word!] + input [binary! string!] + type [word! datatype!] + line [integer!] + token + return: [logic!] + ]] return: [block!]] [/next 1 0 /one 2 0 /prescan 3 0 /scan 4 0 /part 5 1 /into 6 1 /trace 7 1]] + quit-return [routine! 1 [ + status #[block![2 1x1 integer!]3] + ] #[none]] + set-quiet [routine! 2 [ + word #[block![2 1x1 red/cell!]3] + value #[block![2 1x1 red/cell!]3] + /local + w #[block![2 1x1 red-word!]3] + type #[block![2 1x1 integer!]3] + node #[block![2 1x1 pointer! #[block![2 1x1 integer!]3]]3] + ] #[none]] + set-slot-quiet [routine! 2 [ + series #[block![2 576x1 red/cell!]3] + value #[block![2 576x1 red/cell!]3] + /local + blk #[block![2 576x1 red-block!]3] + type #[block![2 576x1 integer!]3] + ] #[none]] + shift-right [routine! 2 ["Shift bits to the right" data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + shift-left [routine! 2 [data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + shift-logical [routine! 2 ["Shift bits to the right (unsigned)" data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + last-lf? [routine! 0 ["Internal Use Only" /local bool #[block![2 576x1 red-logic!]3]] #[none]] + get-current-dir [routine! 0 [] #[none]] + set-current-dir [routine! 1 [path #[block![2 576x1 red-string!]3] /local dir #[block![2 576x1 red-file!]3]] #[none]] + create-dir [routine! 1 [path #[block![2 576x1 red-file!]3]] #[none]] + exists? [routine! 1 [path #[block![2 576x1 red-file!]3] return: #[block![2 576x1 logic!]3]] #[none]] + os-info [routine! 0 [{Returns detailed operating system version information}] #[none]] + as-color [routine! 3 [ + r #[block![2 576x1 integer!]3] + g #[block![2 576x1 integer!]3] + b #[block![2 576x1 integer!]3] + /local + arr1 #[block![2 576x1 integer!]3] + err #[block![2 576x1 integer!]3] + ] #[none]] + as-ipv4 [routine! 4 [ + a #[block![2 576x1 integer!]3] + b #[block![2 576x1 integer!]3] + c #[block![2 576x1 integer!]3] + d #[block![2 576x1 integer!]3] + /local + arr1 #[block![2 576x1 integer!]3] + err #[block![2 576x1 integer!]3] + ] #[none]] + as-rgba [routine! 4 [ + a #[block![2 576x1 integer!]3] + b #[block![2 576x1 integer!]3] + c #[block![2 576x1 integer!]3] + d #[block![2 576x1 integer!]3] + /local + arr1 #[block![2 576x1 integer!]3] + err #[block![2 576x1 integer!]3] + ] #[none]] + count-chars [routine! 2 [ + {Count UTF-8 encoded characters between two positions in a binary series} + start #[block![2 576x1 red-binary!]3] + pos #[block![2 576x1 red-binary!]3] + return: #[block![2 576x1 integer!]3] + /local + p tail #[block![2 576x1 pointer! #[block![2 576x1 byte!]3]]3] + c len #[block![2 576x1 integer!]3] + s #[block![2 576x1 red/series-buffer!]3] + ] #[none]] + read-clipboard [routine! 0 [ + "Return the contents of the system clipboard" + return: #[block![2 576x1 red/cell!]3] {false on failure, none if empty, otherwise: string!, block! of files!, or an image!} + ] #[none]] + write-clipboard [routine! 1 [ + "Write content to the system clipboard" + data #[block![2 576x1 red/cell!]3] "string!, block! of files!, an image! or none!" + return: #[block![2 576x1 logic!]3] "indicates success" + ] #[none]] + write-stdout [routine! 1 ["Write data to STDOUT" data #[block![2 576x1 red/cell!]3]] #[none]] + routine [function! 2 [{Defines a function with a given Red spec and Red/System body} spec [block!] body [block!]] #[none]] + alert [function! 1 [msg [block! string!]] #[none]] + also [function! 2 [ + {Returns the first value, but also evaluates the second} + value1 [any-type!] + value2 [any-type!] + ] #[none]] + attempt [function! 1 [ + {Tries to evaluate a block and returns result or NONE on error} + value [block!] + /safer "Capture all possible errors and exceptions" + ] [ + /safer 1 0 + ]] + comment [function! 1 ["Consume but don't evaluate the next value" 'value] #[none]] + quit [function! 0 [ + "Stops evaluation and exits the program" + /return status [integer!] "Return an exit status" + ] [ + /return 1 1 + ]] + empty? [function! 1 [ + {Returns true if a series is at its tail or a map! is empty} + series [map! none! series!] + return: [logic!] + ] #[none]] + ?? [function! 1 [ + "Prints a word and the value it refers to (molded)" + 'value [path! word!] + ] #[none]] + probe [function! 1 [ + "Returns a value after printing its molded form" + value [any-type!] + ] #[none]] + quote [function! 1 [ + "Return but don't evaluate the next value" + :value + ] #[none]] + first [function! 1 ["Returns the first value in a series" s [date! pair! series! time! tuple!]] #[none]] + second [function! 1 ["Returns the second value in a series" s [date! pair! series! time! tuple!]] #[none]] + third [function! 1 ["Returns the third value in a series" s [date! series! time! tuple!]] #[none]] + fourth [function! 1 ["Returns the fourth value in a series" s [date! series! tuple!]] #[none]] + fifth [function! 1 ["Returns the fifth value in a series" s [date! series! tuple!]] #[none]] + last [function! 1 ["Returns the last value in a series" s [series! tuple!]] #[none]] + spec-of [function! 1 [{Returns the spec of a value that supports reflection} value] #[none]] + body-of [function! 1 [{Returns the body of a value that supports reflection} value] #[none]] + words-of [function! 1 [{Returns the list of words of a value that supports reflection} value] #[none]] + class-of [function! 1 ["Returns the class ID of an object" value] #[none]] + values-of [function! 1 [{Returns the list of values of a value that supports reflection} value] #[none]] + bitset? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + binary? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + block? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + char? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + email? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + file? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + float? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + get-path? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + get-word? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + hash? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + integer? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + issue? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + lit-path? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + lit-word? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + logic? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + map? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + none? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + pair? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + paren? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + path? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + percent? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + refinement? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + set-path? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + set-word? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + string? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + tag? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + time? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + typeset? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + tuple? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + unset? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + url? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + word? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + image? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + date? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + money? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + ref? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + handle? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + error? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + action? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + native? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + datatype? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + function? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + object? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + op? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + routine? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + vector? [function! 1 + ["Returns true if the value is this type" value [any-type!]] #[none] + ] + any-list? [function! 1 ["Returns true if the value is any type of any-list" value [any-type!]] #[none]] + any-block? [function! 1 ["Returns true if the value is any type of any-block" value [any-type!]] #[none]] + any-function? [function! 1 [{Returns true if the value is any type of any-function} value [any-type!]] #[none]] + any-object? [function! 1 [{Returns true if the value is any type of any-object} value [any-type!]] #[none]] + any-path? [function! 1 ["Returns true if the value is any type of any-path" value [any-type!]] #[none]] + any-string? [function! 1 [{Returns true if the value is any type of any-string} value [any-type!]] #[none]] + any-word? [function! 1 ["Returns true if the value is any type of any-word" value [any-type!]] #[none]] + series? [function! 1 ["Returns true if the value is any type of series" value [any-type!]] #[none]] + number? [function! 1 ["Returns true if the value is any type of number" value [any-type!]] #[none]] + immediate? [function! 1 ["Returns true if the value is any type of immediate" value [any-type!]] #[none]] + scalar? [function! 1 ["Returns true if the value is any type of scalar" value [any-type!]] #[none]] + all-word? [function! 1 ["Returns true if the value is any type of all-word" value [any-type!]] #[none]] + to-bitset [function! 1 ["Convert to bitset! value" value] #[none]] + to-binary [function! 1 ["Convert to binary! value" value] #[none]] + to-block [function! 1 ["Convert to block! value" value] #[none]] + to-char [function! 1 ["Convert to char! value" value] #[none]] + to-email [function! 1 ["Convert to email! value" value] #[none]] + to-file [function! 1 ["Convert to file! value" value] #[none]] + to-float [function! 1 ["Convert to float! value" value] #[none]] + to-get-path [function! 1 ["Convert to get-path! value" value] #[none]] + to-get-word [function! 1 ["Convert to get-word! value" value] #[none]] + to-hash [function! 1 ["Convert to hash! value" value] #[none]] + to-integer [function! 1 ["Convert to integer! value" value] #[none]] + to-issue [function! 1 ["Convert to issue! value" value] #[none]] + to-lit-path [function! 1 ["Convert to lit-path! value" value] #[none]] + to-lit-word [function! 1 ["Convert to lit-word! value" value] #[none]] + to-logic [function! 1 ["Convert to logic! value" value] #[none]] + to-map [function! 1 ["Convert to map! value" value] #[none]] + to-none [function! 1 ["Convert to none! value" value] #[none]] + to-pair [function! 1 ["Convert to pair! value" value] #[none]] + to-paren [function! 1 ["Convert to paren! value" value] #[none]] + to-path [function! 1 ["Convert to path! value" value] #[none]] + to-percent [function! 1 ["Convert to percent! value" value] #[none]] + to-refinement [function! 1 ["Convert to refinement! value" value] #[none]] + to-set-path [function! 1 ["Convert to set-path! value" value] #[none]] + to-set-word [function! 1 ["Convert to set-word! value" value] #[none]] + to-string [function! 1 ["Convert to string! value" value] #[none]] + to-tag [function! 1 ["Convert to tag! value" value] #[none]] + to-time [function! 1 ["Convert to time! value" value] #[none]] + to-typeset [function! 1 ["Convert to typeset! value" value] #[none]] + to-tuple [function! 1 ["Convert to tuple! value" value] #[none]] + to-unset [function! 1 ["Convert to unset! value" value] #[none]] + to-url [function! 1 ["Convert to url! value" value] #[none]] + to-word [function! 1 ["Convert to word! value" value] #[none]] + to-image [function! 1 ["Convert to image! value" value] #[none]] + to-date [function! 1 ["Convert to date! value" value] #[none]] + to-money [function! 1 ["Convert to money! value" value] #[none]] + to-ref [function! 1 ["Convert to ref! value" value] #[none]] + context [function! 1 [ + "Makes a new object from an evaluated spec" + spec [block!] + ] #[none]] + alter [function! 2 [ + {If a value is not found in a series, append it; otherwise, remove it. Returns true if added} + series [series!] + value + ] #[none]] + offset? [function! 2 [ + "Returns the offset between two series positions" + series1 [series!] + series2 [series!] + ] #[none]] + repend [function! 2 [ + {Appends a reduced value to a series and returns the series head} + series [series!] + value + /only "Appends a block value as a block" + ] [ + /only 1 0 + ]] + replace [function! 3 [ + "Replaces values in a series, in place" + series [any-block! any-string! binary! vector!] "The series to be modified" + pattern "Specific value or parse rule pattern to match" + value "New value, replaces pattern in the series" + /all "Replace all occurrences, not just the first" + /deep "Replace pattern in all sub-lists as well" + /case "Case-sensitive replacement" + /local parse? form? quote? deep? rule many? size seek + ] [ + /all 1 0 + /deep 2 0 + /case 3 0 + ]] + math [function! 1 [ + "Evaluates expression using math precedence rules" + datum [block! paren!] "Expression to evaluate" + /local match + order infix tally enter recur count operator + ] #[none]] + charset [function! 1 [ + "Shortcut for `make bitset!`" + spec [binary! bitset! block! char! integer! string!] + ] #[none]] + ctx||174~on-parse-event [function! 5 [ + "Standard parse/trace callback used by PARSE-TRACE" + event [word!] {Trace events: push, pop, fetch, match, iterate, paren, end} + match? [logic!] "Result of last matching operation" + rule [block!] "Current rule at current position" + input [series!] "Input series at next position to match" + stack [block!] "Internal parse rules stack" + return: [logic!] {TRUE: continue parsing, FALSE: stop and exit parsing} + ] #[none]] + parse-trace [function! 2 [ + {Wrapper for parse/trace using the default event processor} + input [series!] + rules [block!] + /case "Uses case-sensitive comparison" + /part "Limit to a length or position" + limit [integer!] + return: [logic! block!] + ] [ + /case 1 0 + /part 2 1 + ] ctx||174] + suffix? [function! 1 [ + {Returns the suffix (extension) of a filename or url, or NONE if there is no suffix} + path [email! file! string! url!] + ] #[none]] + scan [function! 1 [ + {Returns the guessed type of the first serialized value from the input} + buffer [binary! string!] "Input UTF-8 buffer or string" + /next {Returns both the type and the input after the value} + /fast "Fast scanning, returns best guessed type" + return: [datatype! none!] "Recognized or guessed type, or NONE on empty input" + ] [ + /next 1 0 + /fast 2 0 + ]] + load [function! 1 [ + {Returns a value or block of values by reading and evaluating a source} + source [binary! file! string! url!] + /header "TBD" + /all {Load all values, returns a block. TBD: Don't evaluate Red header} + /trap "Load all values, returns [[values] position error]" + /next {Load the next value only, updates source series word} + position [word!] "Word updated with new series position" + /part "Limit to a length or position" + length [integer! string!] + /into {Put results in out block, instead of creating a new block} + out [block!] "Target block for results" + /as "Specify the type of data; use NONE to load as code" + type [none! word!] "E.g. bmp, gif, jpeg, png" + /local codec suffix name mime pre-load + ] [ + /header 1 0 + /all 2 0 + /trap 3 0 + /next 4 1 + /part 5 1 + /into 6 1 + /as 7 1 + ]] + save [function! 2 [ + {Saves a value, block, or other data to a file, URL, binary, or string} + where [binary! file! none! string! url!] "Where to save" + value [any-type!] "Value(s) to save" + /header {Provide a Red header block (or output non-code datatypes)} + header-data [block! object!] + /all "TBD: Save in serialized format" + /length {Save the length of the script content in the header} + /as {Specify the format of data; use NONE to save as plain text} + format [none! word!] "E.g. bmp, gif, jpeg, png" + /local dst codec data suffix find-encoder? name pos header-str k v + ] [ + /header 1 1 + /all 2 0 + /length 3 0 + /as 4 1 + ]] + cause-error [function! 3 [ + {Causes an immediate error throw, with the provided information} + err-type [word!] + err-id [word!] + args [block! string!] + ] #[none]] + pad [function! 2 [ + "Pad a FORMed value on right side with spaces" + str "Value to pad, FORM it if not a string" + n [integer!] "Total size (in characters) of the new string" + /left "Pad the string on left side" + /with "Pad with char" + c [char!] + return: [string!] "Modified input string at head" + ] [ + /left 1 0 + /with 2 1 + ]] + mod [function! 2 [ + "Compute a nonnegative remainder of A divided by B" + a [char! money! number! pair! time! tuple! vector!] + b [char! money! number! pair! time! tuple! vector!] "Must be nonzero" + return: [number! money! char! pair! tuple! vector! time!] + /local r + ] #[none]] + modulo [function! 2 [ + {Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero} + a [char! money! number! pair! time! tuple! vector!] + b [char! money! number! pair! time! tuple! vector!] + return: [number! money! char! pair! tuple! vector! time!] + /local r + ] #[none]] + eval-set-path [function! 1 ["Internal Use Only" value1] #[none]] + to-red-file [function! 1 [ + {Converts a local system file path to a Red file path} + path [file! string!] + return: [file!] + /local colon? slash? len i c dst + ] #[none]] + dir? [function! 1 [{Returns TRUE if the value looks like a directory spec} file [file! url!]] #[none]] + normalize-dir [function! 1 [ + "Returns an absolute directory spec" + dir [file! path! word!] + ] #[none]] + what-dir [function! 0 [ + "Returns the active directory path" + /local path + ] #[none]] + change-dir [function! 1 [ + "Changes the active directory path" + dir [file! path! word!] {New active directory of relative path to the new one} + ] #[none]] + make-dir [function! 1 [ + {Creates the specified directory. No error if already exists} + path [file!] + /deep "Create subdirectories too" + /local dirs end created dir + ] [ + /deep 1 0 + ]] + extract [function! 2 [ + {Extracts a value from a series at regular intervals} + series [series!] + width [integer!] "Size of each entry (the skip)" + /index "Extract from an offset position" + pos [integer!] "The position" + /into {Provide an output series instead of creating a new one} + output [series!] "Output series" + ] [ + /index 1 1 + /into 2 1 + ]] + extract-boot-args [function! 0 [ + {Process command-line arguments and store values in system/options (internal usage)} + /local args at-arg2 ws split-mode arg-end s' e' arg2-update s e + ] #[none]] + collect [function! 1 [ + {Collect in a new block all the values passed to KEEP function from the body block} + body [block!] "Block to evaluate" + /into {Insert into a buffer instead (returns position after insert)} + collected [series!] "The buffer series (modified)" + /local keep rule pos + ] [ + /into 1 1 + ]] + flip-exe-flag [function! 1 [ + {Flip the sub-system for the red.exe between console and GUI modes (Windows only)} + path [file!] "Path to the red.exe" + /local file buffer flag + ] #[none]] + split [function! 2 [ + {Break a string series into pieces using the provided delimiters} + series [any-string!] dlm [bitset! char! string!] /local s + num + ] #[none]] + dirize [function! 1 [ + "Returns a copy of the path turned into a directory" + path [file! string! url!] + ] #[none]] + clean-path [function! 1 [ + {Cleans-up '.' and '..' in path; returns the cleaned path} + file [file! string! url!] + /only "Do not prepend current directory" + /dir "Add a trailing / if missing" + /local out cnt f not-file? prot + ] [ + /only 1 0 + /dir 2 0 + ]] + split-path [function! 1 [ + {Splits a file or URL path. Returns a block containing path and target} + target [file! url!] + /local dir pos + ] #[none]] + do-file [function! 1 ["Internal Use Only" file [file! url!] + /local ws saved src code new-path header list c + ] #[none]] + path-thru [function! 1 [ + "Returns the local disk cache path of a remote file" + url [url!] "Remote file address" + return: [file!] + /local so hash file path + ] #[none]] + exists-thru? [function! 1 [ + {Returns true if the remote file is present in the local disk cache} + url [file! url!] "Remote file address" + ] #[none]] + read-thru [function! 1 [ + "Reads a remote file through local disk cache" + url [url!] "Remote file address" + /update "Force a cache update" + /binary "Use binary mode" + /local path data + ] [ + /update 1 0 + /binary 2 0 + ]] + load-thru [function! 1 [ + "Loads a remote file through local disk cache" + url [url!] "Remote file address" + /update "Force a cache update" + /as "Specify the type of data; use NONE to load as code" + type [none! word!] "E.g. bmp, gif, jpeg, png" + /local path file + ] [ + /update 1 0 + /as 2 1 + ]] + do-thru [function! 1 [ + {Evaluates a remote Red script through local disk cache} + url [url!] "Remote file address" + /update "Force a cache update" + ] [ + /update 1 0 + ]] + cos [function! 1 [ + "Returns the trigonometric cosine" + angle [float!] "Angle in radians" + ] #[none]] + sin [function! 1 [ + "Returns the trigonometric sine" + angle [float!] "Angle in radians" + ] #[none]] + tan [function! 1 [ + "Returns the trigonometric tangent" + angle [float!] "Angle in radians" + ] #[none]] + acos [function! 1 [ + {Returns the trigonometric arccosine (in radians in range [0,pi])} + cosine [float!] "in range [-1,1]" + ] #[none]] + asin [function! 1 [ + {Returns the trigonometric arcsine (in radians in range [-pi/2,pi/2])} + sine [float!] "in range [-1,1]" + ] #[none]] + atan [function! 1 [ + {Returns the trigonometric arctangent (in radians in range [-pi/2,+pi/2])} + tangent [float!] "in range [-inf,+inf]" + ] #[none]] + atan2 [function! 2 [ + {Returns the smallest angle between the vectors (1,0) and (x,y) in range (-pi,pi]} + y [number!] + x [number!] + return: [float!] + ] #[none]] + sqrt [function! 1 [ + "Returns the square root of a number" + number [number!] + return: [float!] + ] #[none]] + to-UTC-date [function! 1 [ + "Returns the date with UTC zone" + date [date!] + return: [date!] + ] #[none]] + to-local-date [function! 1 [ + "Returns the date with local zone" + date [date!] + return: [date!] + ] #[none]] + transcode-trace [function! 1 [ + {Shortcut function for transcoding while tracing all lexer events} + src [binary! string!] + ] #[none]] + rejoin [function! 1 [ + "Reduces and joins a block of values." + block [block!] "Values to reduce and join" + ] #[none]] + sum [function! 1 [ + "Returns the sum of all values in a block" + values [block! hash! paren! vector!] + /local result value + ] #[none]] + average [function! 1 [ + "Returns the average of all values in a block" + block [block! hash! paren! vector!] + ] #[none]] + last? [function! 1 [ + "Returns TRUE if the series length is 1" + series [series!] + ] #[none]] + dt [function! 1 [ + "Returns the time required to evaluate a block" + body [block!] + return: [time!] + /local t0 + ] #[none]] + single? [function! 1 [ + "Returns TRUE if the series length is 1" + series [series!] + ] #[none]] + keys-of [function! 1 [{Returns the list of words of a value that supports reflection} value] #[none]] + object [function! 1 [ + "Makes a new object from an evaluated spec" + spec [block!] + ] #[none]] + halt [function! 0 [ + "Stops evaluation and exits the program" + /return status [integer!] "Return an exit status" + ] [ + /return 1 1 + ]] + ctx||255~interpreted? [function! 0 ["Return TRUE if called from the interpreter"] #[none]] + ctx||262~on-change* [function! 3 [word old new] #[none]] + ctx||262~on-deep-change* [function! 7 [owner word target action new index part] #[none]] + ctx||268~on-change* [function! 3 [word old new] #[none]] + ctx||266~on-change* [function! 3 [word old new] #[none]] + ctx||266~on-deep-change* [function! 7 [owner word target action new index part] #[none]] + ctx||289~lex [function! 5 [ + event [word!] + input [binary! string!] + type [datatype! none! word!] + line [integer!] + token + return: [logic!] + ] #[none]] + + [op! 2 ["Returns the sum of the two values" value1 [scalar! vector!] "The augend" value2 [scalar! vector!] "The addend" return: [scalar! vector!] "The sum"] #[none]] + - [op! 2 ["Returns the difference between two values" value1 [scalar! vector!] "The minuend" value2 [scalar! vector!] "The subtrahend" return: [scalar! vector!] "The difference"] #[none]] + * [op! 2 ["Returns the product of two values" value1 [number! money! char! pair! tuple! vector! time!] "The multiplicand" value2 [number! money! char! pair! tuple! vector! time!] "The multiplier" return: [number! money! char! pair! tuple! vector! time!] "The product"] #[none]] + / [op! 2 ["Returns the quotient of two values" value1 [number! money! char! pair! tuple! vector! time!] "The dividend (numerator)" value2 [number! money! char! pair! tuple! vector! time!] "The divisor (denominator)" return: [number! money! char! pair! tuple! vector! time!] "The quotient"] #[none]] + // [op! 2 [ + {Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero} + a [char! money! number! pair! time! tuple! vector!] + b [char! money! number! pair! time! tuple! vector!] + return: [number! money! char! pair! tuple! vector! time!] + /local r + ] #[none]] + %"" [op! 2 [{Returns what is left over when one value is divided by another} value1 [number! money! char! pair! tuple! vector! time!] "The dividend (numerator)" value2 [number! money! char! pair! tuple! vector! time!] "The divisor (denominator)" return: [number! money! char! pair! tuple! vector! time!] "The remainder"] #[none]] + = [op! 2 ["Returns TRUE if two values are equal" value1 [any-type!] value2 [any-type!]] #[none]] + <> [op! 2 ["Returns TRUE if two values are not equal" value1 [any-type!] value2 [any-type!]] #[none]] + == [op! 2 [{Returns TRUE if two values are equal, and also the same datatype} value1 [any-type!] value2 [any-type!]] #[none]] + =? [op! 2 ["Returns TRUE if two values have the same identity" value1 [any-type!] value2 [any-type!]] #[none]] + < [op! 2 [{Returns TRUE if the first value is less than the second} value1 [any-type!] value2 [any-type!]] #[none]] + > [op! 2 [{Returns TRUE if the first value is greater than the second} value1 [any-type!] value2 [any-type!]] #[none]] + <= [op! 2 [{Returns TRUE if the first value is less than or equal to the second} value1 [any-type!] value2 [any-type!]] #[none]] + >= [op! 2 [{Returns TRUE if the first value is greater than or equal to the second} value1 [any-type!] value2 [any-type!]] #[none]] + << [op! 2 [data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + >> [op! 2 ["Shift bits to the right" data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + ">>>" [op! 2 ["Shift bits to the right (unsigned)" data #[block![2 576x1 integer!]3] bits #[block![2 576x1 integer!]3]] #[none]] + ** [op! 2 [{Returns a number raised to a given power (exponent)} number [number!] "Base value" exponent [integer! float!] "The power (index) to raise the base value by" return: [number!]] #[none]] + and [op! 2 ["Returns the first value ANDed with the second" value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + or [op! 2 ["Returns the first value ORed with the second" value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + xor [op! 2 [{Returns the first value exclusive ORed with the second} value1 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] value2 [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!] return: [logic! integer! char! bitset! binary! typeset! pair! tuple! vector!]] #[none]] + ctx||293~encode [routine! 2 [img #[block![2 576x1 red-image!]3] where #[block![2 576x1 red/cell!]3]] #[none]] + ctx||293~decode [routine! 1 [data #[block![2 576x1 red/cell!]3]] #[none]] + ctx||297~encode [routine! 2 [img #[block![2 576x1 red-image!]3] where #[block![2 576x1 red/cell!]3]] #[none]] + ctx||297~decode [routine! 1 [data #[block![2 576x1 red/cell!]3]] #[none]] + ctx||301~encode [routine! 2 [img #[block![2 576x1 red-image!]3] where #[block![2 576x1 red/cell!]3]] #[none]] + ctx||301~decode [routine! 1 [data #[block![2 576x1 red/cell!]3]] #[none]] + ctx||305~encode [routine! 2 [img #[block![2 576x1 red-image!]3] where #[block![2 576x1 red/cell!]3]] #[none]] + ctx||305~decode [routine! 1 [data #[block![2 576x1 red/cell!]3]] #[none]] + ctx||309~encode [function! 2 [data [any-type!] where [file! none! url!]] #[none]] + ctx||309~decode [function! 1 [text [binary! file! string!]] #[none]] + ctx||318~BOM-UTF-16? [function! 1 [data [binary! string!]] #[none]] + ctx||318~BOM-UTF-32? [function! 1 [data [binary! string!]] #[none]] + ctx||318~enquote [function! 1 [str [string!] "(modified)"] #[none]] + ctx||318~high-surrogate? [function! 1 [codepoint [integer!]] #[none]] + ctx||318~low-surrogate? [function! 1 [codepoint [integer!]] #[none]] + ctx||318~translit [function! 3 [ + "Transliterate sub-strings in a string" + string [string!] "Input (modified)" + rule [bitset! block!] "What to change" + xlat [block! function!] {Translation table or function. MUST map a string! to a string!.} + /local val + ] #[none]] + ctx||318~decode-backslash-escapes [function! 1 [string [string!] "(modified)"] #[none]] + ctx||318~encode-backslash-escapes [function! 1 [string [string!] "(modified)"] #[none]] + ctx||318~decode-unicode-char [function! 1 [ + {Convert \uxxxx format (NOT simple JSON backslash escapes) to a Unicode char} + ch [string!] "4 hex digits" + ] #[none]] + ctx||318~replace-unicode-escapes [function! 1 [ + s [string!] "(modified)" + /local c + ] #[none]] + ctx||318~push [function! 1 [val] #[none]] + ctx||318~pop [function! 0 [] #[none]] + ctx||318~emit [function! 1 [value] #[none]] + load-json [function! 1 [ + "Convert a JSON string to Red data" + input [string!] "The JSON string" + ] #[none] ctx||318] + ctx||334~init-state [function! 2 [ind ascii?] #[none]] + ctx||334~emit-indent [function! 2 [output level] #[none]] + ctx||334~emit-key-value [function! 4 [output sep map key + /local value + ] #[none]] + ctx||334~red-to-json-value [function! 2 [output value + /local special-char mark1 mark2 escape v keys k + ] #[none]] + to-json [function! 1 [ + "Convert Red data to a JSON string" + data + /pretty indent [string!] "Pretty format the output, using given indentation" + /ascii "Force ASCII output (instead of UTF-8)" + /local result + ] [ + /pretty 1 1 + /ascii 2 0 + ] ctx||334] + ctx||342~encode [function! 2 [data [any-type!] where [file! none! url!]] #[none]] + ctx||342~decode [function! 1 [text [binary! file! string!]] #[none]] + ctx||347~to-csv-line [function! 2 [ + {Join values as a string and put delimiter between them} + data [block!] "Series to join" + delimiter [char! string!] "Delimiter to put between values" + ] #[none]] + ctx||347~escape-value [function! 2 [ + {Escape quotes and when required, enclose value in quotes} + value [any-type!] "Value to escape (is formed)" + delimiter [char! string!] "Delimiter character to be escaped" + /local quot? len + ] #[none]] + ctx||347~next-column-name [function! 1 [ + "Return name of next column (A->B, Z->AA, ...)" + name [char! string!] "Name of current column" + /local length index position previous + ] #[none]] + ctx||347~make-header [function! 1 [ + "Return default header (A-Z, AA-ZZ, ...)" + length [integer!] "Required length of header" + /local key + ] #[none]] + ctx||347~get-columns [function! 1 [ + "Return all keywords from maps or objects" + data [block!] "Data must block of maps or objects" + /local columns + ] #[none]] + ctx||347~encode-map [function! 2 [ + "Make CSV string from map! of columns" + data [map!] "Map of columns" + delimiter [char! string!] "Delimiter to use in CSV string" + /local output keys length key index line + ] #[none]] + ctx||347~encode-maps [function! 2 [ + "Make CSV string from block of maps/objects" + data [block!] "Block of maps/objects" + delimiter [char! string!] "Delimiter to use in CSV string" + /local columns value line column + ] #[none]] + ctx||347~encode-flat [function! 3 [ + "Convert block of fixed size records to CSV string" + data [block!] "Block treated as fixed size records" + delimiter [char! string!] "Delimiter to use in CSV string" + size [integer!] "Size of record" + ] #[none]] + ctx||347~encode-blocks [function! 2 [ + "Convert block of records to CSV string" + data [block!] "Block of blocks, each block is one record" + delimiter [char! string!] "Delimiter to use in CSV string" + /local length line csv-line + ] #[none]] + load-csv [function! 1 [ + {Converts CSV text to a block of rows, where each row is a block of fields.} + data [string!] "Text CSV data to load" + /with + delimiter [char! string!] "Delimiter to use (default is comma)" + /header {Treat first line as header; implies /as-columns if /as-records is not used} + /as-columns {Returns named columns; default names if /header is not used} + /as-records "Returns records instead of rows; implies /header" + /flat {Returns a flat block; you need to know the number of fields} + /trim "Ignore spaces between quotes and delimiter" + /quote + qt-char [char!] {Use different character for quotes than double quote (")} + /local disallowed refs output out-map longest line value newline quotchars valchars quoted-value char normal-value s e single-value values add-value add-line length index line-rule init parsed? mark key-index key + ] [ + /with 1 1 + /header 2 0 + /as-columns 3 0 + /as-records 4 0 + /flat 5 0 + /trim 6 0 + /quote 7 1 + ] ctx||347] + to-csv [function! 1 [ + "Make CSV data from input value" + data [block! map! object!] {May be block of fixed size records, block of block records, or map columns} + /with "Delimiter to use (default is comma)" + delimiter [char! string!] + /skip "Treat block as table of records with fixed length" + size [integer!] + /quote + qt-char [char!] {Use different character for quotes than double quote (")} + /local longest keyval? types value + ] [ + /with 1 1 + /skip 2 1 + /quote 3 1 + ] ctx||347] + ctx||361~encode [routine! 2 [data #[block![2 576x1 red/cell!]3] where #[block![2 576x1 red/cell!]3]] #[none]] + ctx||361~decode [routine! 1 [ + payload #[block![2 576x1 red/cell!]3] + /local + blk #[block![2 576x1 red-block!]3] + bin #[block![2 576x1 red-binary!]3] + ] #[none]] + ctx||364~on-change* [function! 3 [word old new + /local srs + ] #[none]] + ctx||367~on-change* [function! 3 [word old new + /local srs + ] #[none]] + ctx||367~on-deep-change* [function! 7 [owner word target action new index part] #[none]] + reactor [function! 1 [spec [block!]] #[none]] + deep-reactor [function! 1 [spec [block!]] #[none]] + ctx||372~add-relation [function! 4 [ + obj [object!] + word + reaction [block! function!] + targets [block! none! object! set-word!] + /local new-rel + ] #[none]] + ctx||372~eval [function! 1 [code [block!] /safe + /local result + ] [/safe 1 0]] + ctx||372~eval-reaction [function! 3 [reactor [object!] reaction [block! function!] target /mark] [/mark 1 0]] + ctx||372~pending? [function! 2 [reactor [object!] reaction [block! function!] + /local q + ] #[none]] + ctx||372~check [function! 1 [reactor [object!] /only field [set-word! word!] + /local pos reaction q q' + ] [/only 1 1]] + stop-reactor [function! 1 [ + face [object!] + /deep + /local list pos f + ] [ + /deep 1 0 + ] ctx||372] + clear-reactions [function! 0 ["Removes all reactive relations"] #[none] ctx||372] + dump-reactions [function! 0 [ + {Output all the current reactive relations for debugging purpose} + /local limit count obj field reaction target list + ] #[none] ctx||372] + ctx||372~is~ [function! 2 [ + {Defines a reactive relation whose result is assigned to a word} + 'field [set-word!] {Set-word which will get set to the result of the reaction} + reaction [block!] "Reactive relation" + /local obj rule item + ] #[none] ctx||372] + is [op! 2 [ + {Defines a reactive relation whose result is assigned to a word} + 'field [set-word!] {Set-word which will get set to the result of the reaction} + reaction [block!] "Reactive relation" + /local obj rule item + ] #[none]] + react? [function! 2 [ + {Returns a reactive relation if an object's field is a reactive source} + reactor [object!] "Object to check" + field [word!] "Field to check" + /target "Check if it's a target instead of a source" + return: [block! function! word! none!] "Returns reaction, type or NONE" + /local pos + ] [ + /target 1 0 + ] ctx||372] + react [function! 1 [ + {Defines a new reactive relation between two or more objects} + reaction [block! function!] "Reactive relation" + /link "Link objects together using a reactive relation" + objects [block!] "Objects to link together" + /unlink "Removes an existing reactive relation" + src [block! object! word!] "'all word, or a reactor or a list of reactors" + /later "Run the reaction on next change instead of now" + /with "Specifies an optional face object (internal use)" + ctx [none! object! set-word!] "Optional context for VID faces or target set-word" + return: [block! function! none!] {The reactive relation or NONE if no relation was processed} + /local objs found? rule item pos obj saved part path + ] [ + /link 1 1 + /unlink 2 1 + /later 3 0 + /with 4 1 + ] ctx||372] + register-scheme [function! 1 [ + "Registers a new scheme" + spec [object!] "Scheme definition" + /native + dispatch [handle!] + ] [ + /native 1 1 + ]] + ctx||387~alpha-num+ [function! 1 [more [string!]] #[none]] + ctx||387~parse-url [function! 1 [ + {Return object with URL components, or cause an error if not a valid URL} + url [string! url!] + /throw-error "Throw an error, instead of returning NONE." + /local scheme user-info host port path target query fragment ref + ] [ + /throw-error 1 0 + ]] + decode-url [function! 1 [ + {Decode a URL into an object containing its constituent parts} + url [string! url!] + ] #[none] ctx||387] + encode-url [function! 1 [url-obj [object!] "What you'd get from decode-url" + /local result + ] #[none] ctx||387] + ctx||393~do-quit [function! 0 [] #[none]] + ctx||393~throw-error [function! 3 [error [error!] cmd [issue!] code [block!] /local w] #[none]] + ctx||393~syntax-error [function! 2 [s [block! paren!] e [block! paren!]] #[none]] + ctx||393~do-safe [function! 1 [code [block! paren!] /manual /with cmd [issue!] /local res t? src] [/manual 1 0 /with 2 1]] + ctx||393~do-code [function! 2 [code [block! paren!] cmd [issue!] /local p] #[none]] + ctx||393~count-args [function! 1 [spec [block!] /block /local total pos] [/block 1 0]] + ctx||393~arg-mode? [function! 2 [spec [block!] idx [integer!]] #[none]] + ctx||393~func-arity? [function! 1 [spec [block!] /with path [path!] /block /local arity pos] [/with 1 1 /block 2 0]] + ctx||393~value-path? [function! 1 [path [path!] /local value i item selectable] #[none]] + ctx||393~fetch-next [function! 1 [code [block! paren!] /local i left item item2 value fn-spec path f-arity at-op? op-mode] #[none]] + ctx||393~eval [function! 2 [code [block! paren!] cmd [issue!] /local after expr] #[none]] + ctx||393~do-macro [function! 3 [name pos [block! paren!] arity [integer!] /local cmd saved p v res] #[none]] + ctx||393~register-macro [function! 1 [spec [block!] /local cnt rule p name macro pos valid? named?] #[none]] + ctx||393~reset [function! 1 [job [none! object!]] #[none]] + ctx||393~expand [function! 2 [ + code [block! paren!] job [none! object!] + /clean + /local rule e pos cond value then else cases body keep? expr src saved file + ] [ + /clean 1 0 + ]] + expand-directives [function! 1 [ + {Invokes the preprocessor on argument list, modifying and returning it} + code [block! paren!] "List of Red values to preprocess" + /clean "Clear all previously created macros and words" + /local job + ] [ + /clean 1 0 + ] ctx||393] + hex-to-rgb [function! 1 [ + {Converts a color in hex format to a tuple value; returns NONE if it fails} + hex [issue!] "Accepts #rgb, #rrggbb, #rrggbbaa" + return: [tuple! none!] + /local str bin + ] #[none]] + within? [function! 3 [ + {Return TRUE if the point is within the rectangle bounds} + point [pair!] "XY position" + offset [pair!] "Offset of area" + size [pair!] "Size of area" + return: [logic!] + ] #[none]] + overlap? [function! 2 [ + {Return TRUE if the two faces bounding boxes are overlapping} + A [object!] "First face" + B [object!] "Second face" + return: [logic!] "TRUE if overlapping" + /local A1 B1 A2 B2 + ] #[none]] + distance? [function! 2 [ + {Returns the distance between the center of two faces} + A [object!] "First face" + B [object!] "Second face" + return: [float!] "Distance between them" + ] #[none]] + event? [routine! 1 [value #[block![2 206x1 red/cell!]3] return: #[block![2 206x1 logic!]3]] #[none]] + face? [function! 1 [ + value + return: [logic!] + ] #[none]] + size-text [function! 1 [ + face [object!] + /with + text [string!] + return: [pair! none!] + ] [ + /with 1 1 + ]] + caret-to-offset [function! 2 [ + face [object!] + pos [integer!] + /lower + return: [pair!] + /local opt + ] [ + /lower 1 0 + ]] + offset-to-caret [function! 2 [ + face [object!] + pt [pair!] + return: [integer!] + ] #[none]] + offset-to-char [function! 2 [ + face [object!] + pt [pair!] + return: [integer!] + ] #[none]] + ctx||429~tail-idx? [function! 0 [] #[none]] + ctx||429~push-color [function! 1 [c [tuple!]] #[none]] + ctx||429~pop-color [function! 0 [/local entry pos] #[none]] + ctx||429~close-colors [function! 0 [/local pos] #[none]] + ctx||429~push [function! 1 [style [block! word!]] #[none]] + ctx||429~pop [function! 1 [style [word!] + /local entry type + ] #[none]] + ctx||429~pop-all [function! 1 [mark [block!] + /local first? i + ] #[none]] + ctx||429~optimize [function! 0 [ + /local cur pos range pos1 e s l mov + ] #[none]] + rtd-layout [function! 1 [ + "Returns a rich-text face from a RTD source code" + spec [block!] "RTD source code" + /only "Returns only [text data] facets" + /with "Populate an existing face object" + face [object!] "Face object to populate" + return: [object! block!] + ] [ + /only 1 0 + /with 2 1 + ] ctx||429] + ctx||427~line-height? [function! 2 [ + face [object!] + pos [integer!] + return: [integer!] + ] #[none]] + ctx||427~line-count? [function! 1 [ + face [object!] + return: [integer!] + ] #[none]] + metrics? [function! 2 [ + face [object!] + type [word!] + /total + axis [word!] + /local res + ] [ + /total 1 1 + ]] + set-flag [function! 3 [ + face [object!] + facet [word!] + value [any-type!] + /local flags + ] #[none]] + find-flag? [routine! 2 [ + facet #[block![2 206x1 red/cell!]3] + flag #[block![2 206x1 red-word!]3] + /local + word #[block![2 206x1 red-word!]3] + value #[block![2 206x1 red/cell!]3] + tail #[block![2 206x1 red/cell!]3] + bool #[block![2 206x1 red-logic!]3] + type #[block![2 206x1 integer!]3] + found? #[block![2 206x1 logic!]3] + ] #[none]] + debug-info? [function! 1 [face [object!] return: [logic!]] #[none]] + on-face-deep-change* [function! 9 [owner word target action new index part state forced? + /local faces face modal? pane + ] #[none]] + link-tabs-to-parent [function! 1 [ + face [object!] + /init + /local faces visible? + ] [ + /init 1 0 + ]] + link-sub-to-parent [function! 4 [face [object!] type [word!] old new + /local parent + ] #[none]] + update-font-faces [function! 1 [parent [block! none!] + /local f + ] #[none]] + ctx||449~on-change* [function! 3 [word old new + /local srs same-pane? f saved + ] #[none]] + ctx||449~on-deep-change* [function! 7 [owner word target action new index part] #[none]] + ctx||453~on-change* [function! 3 [word old new] #[none]] + ctx||453~on-deep-change* [function! 7 [owner word target action new index part] #[none]] + ctx||457~on-change* [function! 3 [word old new + /local f + ] #[none]] + ctx||460~on-change* [function! 3 [word old new] #[none]] + ctx||463~capture-events [function! 2 [face [object!] event [event!] /local result] #[none]] + ctx||463~awake [function! 1 [event [event!] /with face /local result + handler + ] [/with 1 1]] + ctx||472~make-null-handle [routine! 0 [] #[none]] + ctx||472~get-screen-size [routine! 1 [ + id #[block![2 2675x1 integer!]3] + /local + pair #[block![2 2675x1 red-pair!]3] + ] #[none]] + ctx||472~size-text [routine! 2 [ + face #[block![2 2675x1 red-object!]3] + value #[block![2 2675x1 red/cell!]3] + /local + values #[block![2 2675x1 red/cell!]3] + text #[block![2 2675x1 red-string!]3] + pair #[block![2 2675x1 red-pair!]3] + ] #[none]] + ctx||472~on-change-facet [routine! 7 [ + owner #[block![2 2675x1 red-object!]3] + word #[block![2 2675x1 red-word!]3] + value #[block![2 2675x1 red/cell!]3] + action #[block![2 2675x1 red-word!]3] + new #[block![2 2675x1 red/cell!]3] + index #[block![2 2675x1 integer!]3] + part #[block![2 2675x1 integer!]3] + ] #[none]] + ctx||472~update-font [routine! 2 [font #[block![2 2675x1 red-object!]3] flags #[block![2 2675x1 integer!]3]] #[none]] + ctx||472~update-para [routine! 2 [face #[block![2 2675x1 red-object!]3] flags #[block![2 2675x1 integer!]3]] #[none]] + ctx||472~destroy-view [routine! 2 [face #[block![2 2675x1 red-object!]3] empty? #[block![2 2675x1 logic!]3]] #[none]] + ctx||472~update-view [routine! 1 [face #[block![2 2675x1 red-object!]3]] #[none]] + ctx||472~refresh-window [routine! 1 [h #[block![2 2675x1 red-handle!]3]] #[none]] + ctx||472~redraw [routine! 1 [face #[block![2 2675x1 red-object!]3] /local h #[block![2 2675x1 integer!]3]] #[none]] + ctx||472~show-window [routine! 1 [id #[block![2 2675x1 red-handle!]3]] #[none]] + ctx||472~make-view [routine! 2 [face #[block![2 2675x1 red-object!]3] parent #[block![2 2675x1 red-handle!]3]] #[none]] + ctx||472~draw-image [routine! 2 [image #[block![2 2675x1 red-image!]3] cmds #[block![2 2675x1 red-block!]3]] #[none]] + ctx||472~draw-face [routine! 2 [face #[block![2 2675x1 red-object!]3] cmds #[block![2 2675x1 red-block!]3] /local int #[block![2 2675x1 red-integer!]3]] #[none]] + ctx||472~do-event-loop [routine! 1 [no-wait? #[block![2 2675x1 logic!]3] /local bool #[block![2 2675x1 red-logic!]3]] #[none]] + ctx||472~exit-event-loop [routine! 0 [] #[none]] + ctx||472~request-font [routine! 3 [font #[block![2 2675x1 red-object!]3] selected #[block![2 2675x1 red-object!]3] mono? #[block![2 2675x1 logic!]3]] #[none]] + ctx||472~request-file [routine! 5 [ + title #[block![2 2675x1 red-string!]3] + name #[block![2 2675x1 red-file!]3] + filter #[block![2 2675x1 red-block!]3] + save? #[block![2 2675x1 logic!]3] + multi? #[block![2 2675x1 logic!]3] + ] #[none]] + ctx||472~request-dir [routine! 5 [ + title #[block![2 2675x1 red-string!]3] + dir #[block![2 2675x1 red-file!]3] + filter #[block![2 2675x1 red-block!]3] + keep? #[block![2 2675x1 logic!]3] + multi? #[block![2 2675x1 logic!]3] + ] #[none]] + ctx||472~text-box-metrics [routine! 3 [ + box #[block![2 2675x1 red-object!]3] + arg0 #[block![2 2675x1 red/cell!]3] + type #[block![2 2675x1 integer!]3] + /local + state #[block![2 2675x1 red-block!]3] + bool #[block![2 2675x1 red-logic!]3] + layout? #[block![2 2675x1 logic!]3] + ] #[none]] + ctx||472~update-scroller [routine! 2 [scroller #[block![2 2675x1 red-object!]3] flags #[block![2 2675x1 integer!]3]] #[none]] + ctx||472~init [function! 0 [/local svs colors fonts] #[none]] + draw [function! 2 [ + "Draws scalable vector graphics to an image" + image [image! pair!] "Image or size for an image" + cmd [block!] "Draw commands" + /transparent "Make a transparent image, if pair! spec is used" + return: [image!] + ] [ + /transparent 1 0 + ]] + ctx||482~color-backgrounds [function! 1 [ + {Color the background of faces with no color, with parent's background color} + root [object!] + ] #[none]] + ctx||482~color-tabpanel-children [function! 1 [ + {Color the background of faces with no color, with parent's background color} + root [object!] + /local gp + ] #[none]] + ctx||482~OK-Cancel [function! 1 [ + "Put Cancel buttons last" + root [object!] + /local pos-x last-but pos-y f + ] #[none]] + ctx||480~process [function! 1 [root [object!] + /local list name + ] #[none]] + ctx||478~throw-error [function! 1 [spec [block!]] #[none]] + ctx||478~process-reactors [function! 1 [reactors [block!] /local res + f blk later? ctx face + ] #[none]] + ctx||478~calc-size [function! 1 [face [object!] + /local min-sz data txt s len mark e new + ] #[none]] + ctx||478~align-faces [function! 4 [pane [block!] dir [word!] align [word!] max-sz [integer!] + /local edge? top-left? axis svmm face offset mar type + ] #[none]] + ctx||478~resize-child-panels [function! 1 [tab [object!] + /local tp-size pad pane + ] #[none]] + ctx||478~clean-style [function! 2 [tmpl [block!] type [word!] /local para font] #[none]] + ctx||478~process-draw [function! 1 [code [block!] + /local rule pos color + ] #[none]] + ctx||478~pre-load [function! 1 [value + /local color + ] #[none]] + ctx||478~add-option [function! 2 [opts [object!] spec [block!] + /local field value + ] #[none]] + ctx||478~add-flag [function! 4 [obj [object!] facet [word!] field [word!] flag return: [logic!] + /local blk + ] #[none]] + ctx||478~fetch-value [function! 1 [blk + /local value + ] #[none]] + ctx||478~fetch-argument [function! 2 [expected [datatype! typeset!] 'pos [word!] + /local spec type value + ] #[none]] + ctx||478~fetch-expr [function! 1 [code [word!]] #[none]] + ctx||478~fetch-options [function! 7 [ + face [object!] opts [object!] style [block!] spec [block!] css [block!] reactors [block!] styling? [logic!] + /no-skip + return: [block!] + /local opt? divides calc-y? do-with obj-spec! rate! color! cursor! value match? drag-on default hint cursor tight? later? max-sz p words user-size? oi x font face-font field actors name f s b pad sz min-sz mar + ] [ + /no-skip 1 0 + ]] + ctx||478~make-actor [function! 4 [obj [object!] name [word!] body spec [block!]] #[none]] + layout [function! 1 [ + {Return a face with a pane built from a VID description} + spec [block!] "Dialect block of styles, attributes, and layouts" + /tight "Zero offset and origin" + /options + user-opts [block!] "Optional features in [name: value] format" + /flags + flgs [block! word!] "One or more window flags" + /only "Returns only the pane block" + /parent + panel [object!] + divides [integer! none!] + /styles "Use an existing styles list" + css [block!] "Styles list" + /local axis anti + background! list reactors local-styles pane-size direction align begin size max-sz current global? below? top-left bound cursor origin spacing opts opt-words re-align sz words reset focal-face svmp pad value anti2 at-offset later? name styling? style styled? st actors face h pos styled w blk vid-align mar divide? index dir pad2 image + ] [ + /tight 1 0 + /options 2 1 + /flags 3 1 + /only 4 0 + /parent 5 2 + /styles 6 1 + ] ctx||478] + do-events [function! 0 [ + /no-wait + return: [logic! word!] + /local result + win + ] [ + /no-wait 1 0 + ]] + stop-events [function! 0 [] #[none]] + do-safe [function! 1 [code [block!] /local result] #[none]] + do-actor [function! 3 [face [object!] event [event! none!] type [word!] /local result + act name + ] #[none]] + show [function! 1 [ + face [block! object!] + /with + parent [object!] + /force + return: [logic!] + /local show? f pending owner word target action new index part state new? p obj field pane + ] [ + /with 1 1 + /force 2 0 + ]] + unview [function! 0 [ + /all + /only + face [object!] + /local all? svs pane + ] [ + /all 1 0 + /only 2 1 + ]] + view [function! 1 [ + spec [block! object!] + /tight + /options + opts [block!] + /flags + flgs [block! word!] + /no-wait + ] [ + /tight 1 0 + /options 2 1 + /flags 3 1 + /no-wait 4 0 + ]] + center-face [function! 1 [ + face [object!] + /x + /y + /with + parent [object!] + return: [object!] + /local pos + ] [ + /x 1 0 + /y 2 0 + /with 3 1 + ]] + make-face [function! 1 [ + style [word!] + /spec + blk [block!] + /offset + xy [pair!] + /size + wh [pair!] + /local + svv face styles model opts css + ] [ + /spec 1 1 + /offset 2 1 + /size 3 1 + ]] + dump-face [function! 1 [ + face [object!] + /local depth f + ] #[none]] + get-scroller [function! 2 [ + face [object!] + orientation [word!] + return: [object!] + /local position page min-size max-size parent vertical? + ] #[none]] + insert-event-func [function! 1 [ + fun [block! function!] + ] #[none]] + remove-event-func [function! 1 [ + fun [function!] + ] #[none]] + request-font [function! 0 [ + /font + ft [object!] + /mono + ] [ + /font 1 1 + /mono 2 0 + ]] + request-file [function! 0 [ + /title + text [string!] + /file + name [file! string!] + /filter + list [block!] + /save + /multi + ] [ + /title 1 1 + /file 2 1 + /filter 3 1 + /save 4 0 + /multi 5 0 + ]] + request-dir [function! 0 [ + /title + text [string!] + /dir + name [file! string!] + /filter + list [block!] + /keep + /multi + ] [ + /title 1 1 + /dir 2 1 + /filter 3 1 + /keep 4 0 + /multi 5 0 + ]] + set-focus [function! 1 [ + face [object!] + /local p + ] #[none]] + foreach-face [function! 2 [ + face [object!] + body [block! function!] + /with + spec [block! none!] + /post + /sub post? + /local exec + ] [ + /with 1 1 + /post 2 0 + /sub 3 1 + ]] + keep [function! 1 [v /only] [/only 1 0]] + all? [intrinsic! 1 [{Evaluates and returns the last value if all are truthy; else NONE} conds [block!]] #[none]] + ] 1814 #[hash![datatype! unset! + make unset! none! unset! logic! unset! block! unset! string! unset! integer! unset! word! unset! error! unset! typeset! unset! file! unset! url! unset! set-word! unset! get-word! unset! lit-word! unset! refinement! unset! binary! unset! paren! unset! char! unset! issue! unset! path! unset! set-path! unset! get-path! unset! lit-path! unset! native! unset! action! unset! op! unset! function! unset! routine! unset! object! unset! bitset! unset! float! unset! point! unset! vector! unset! map! unset! hash! unset! pair! unset! percent! unset! tuple! unset! image! unset! time! unset! tag! unset! email! unset! handle! unset! date! unset! port! unset! money! unset! ref! unset! event! unset! none unset! true unset! false unset! random unset! reflect unset! to unset! form unset! mold unset! modify unset! absolute unset! add unset! divide unset! multiply unset! negate unset! power unset! remainder unset! round unset! subtract unset! even? unset! odd? unset! and~ unset! complement unset! or~ unset! xor~ unset! append unset! at unset! back unset! change unset! clear unset! copy unset! find unset! head unset! head? unset! index? unset! insert unset! length? unset! move unset! next unset! pick unset! poke unset! put unset! remove unset! reverse unset! select unset! sort unset! skip unset! swap unset! tail unset! tail? unset! take unset! trim unset! create unset! close unset! delete unset! open unset! open? unset! query unset! read unset! rename unset! update unset! write unset! if unset! unless unset! either unset! any unset! all unset! while unset! until unset! loop unset! repeat unset! forever unset! foreach unset! forall unset! remove-each unset! func unset! function unset! does unset! has unset! switch unset! case unset! do unset! reduce unset! compose unset! get unset! set unset! print unset! prin unset! equal? unset! not-equal? unset! strict-equal? unset! lesser? unset! greater? unset! lesser-or-equal? unset! greater-or-equal? unset! same? unset! not unset! type? unset! stats unset! bind unset! in unset! parse unset! union unset! unique unset! intersect unset! difference unset! exclude unset! complement? unset! dehex unset! enhex unset! negative? unset! positive? unset! max unset! min unset! shift unset! to-hex unset! sine unset! cosine unset! tangent unset! arcsine unset! arccosine unset! arctangent unset! arctangent2 unset! NaN? unset! zero? unset! log-2 unset! log-10 unset! log-e unset! exp unset! square-root unset! construct unset! value? unset! try unset! uppercase unset! lowercase unset! as-pair unset! as-money unset! break unset! continue unset! exit unset! return unset! throw unset! catch unset! extend unset! debase unset! enbase unset! to-local-file unset! wait unset! checksum unset! unset unset! new-line unset! new-line? unset! context? unset! set-env unset! get-env unset! list-env unset! now unset! sign? unset! as unset! call unset! size? unset! browse unset! compress unset! decompress unset! recycle unset! transcode unset! quit-return unset! set-quiet unset! set-slot-quiet unset! shift-right unset! shift-left unset! shift-logical unset! last-lf? unset! get-current-dir unset! set-current-dir unset! create-dir unset! exists? unset! os-info unset! as-color unset! as-ipv4 unset! as-rgba unset! count-chars unset! read-clipboard unset! write-clipboard unset! write-stdout unset! yes unset! on unset! no unset! off unset! tab unset! cr unset! newline unset! lf unset! escape unset! slash unset! sp unset! space unset! null unset! crlf unset! dot unset! comma unset! dbl-quote unset! pi unset! Rebol unset! internal! unset! external! unset! number! unset! scalar! unset! any-word! unset! all-word! unset! any-list! unset! any-path! unset! any-block! unset! any-function! unset! any-object! unset! any-string! unset! series! unset! immediate! unset! default! unset! any-type! unset! aqua unset! beige unset! black unset! blue unset! brick unset! brown unset! coal unset! coffee unset! crimson unset! cyan unset! forest unset! gold unset! gray unset! green unset! ivory unset! khaki unset! leaf unset! linen unset! magenta unset! maroon unset! mint unset! navy unset! oldrab unset! olive unset! orange unset! papaya unset! pewter unset! pink unset! purple unset! reblue unset! rebolor unset! red unset! sienna unset! silver unset! sky unset! snow unset! tanned unset! teal unset! violet unset! water unset! wheat unset! white unset! yello unset! yellow unset! glass unset! transparent unset! routine unset! alert unset! also unset! attempt unset! comment unset! quit unset! empty? unset! ?? unset! probe unset! quote unset! first unset! second unset! third unset! fourth unset! fifth unset! last unset! spec-of unset! body-of unset! words-of unset! class-of unset! values-of unset! bitset? unset! binary? unset! block? unset! char? unset! email? unset! file? unset! float? unset! get-path? unset! get-word? unset! hash? unset! integer? unset! issue? unset! lit-path? unset! lit-word? unset! logic? unset! map? unset! none? unset! pair? unset! paren? unset! path? unset! percent? unset! refinement? unset! set-path? unset! set-word? unset! string? unset! tag? unset! time? unset! typeset? unset! tuple? unset! unset? unset! url? unset! word? unset! image? unset! date? unset! money? unset! ref? unset! handle? unset! error? unset! action? unset! native? unset! datatype? unset! function? unset! object? unset! op? unset! routine? unset! vector? unset! any-list? unset! any-block? unset! any-function? unset! any-object? unset! any-path? unset! any-string? unset! any-word? unset! series? unset! number? unset! immediate? unset! scalar? unset! all-word? unset! to-bitset unset! to-binary unset! to-block unset! to-char unset! to-email unset! to-file unset! to-float unset! to-get-path unset! to-get-word unset! to-hash unset! to-integer unset! to-issue unset! to-lit-path unset! to-lit-word unset! to-logic unset! to-map unset! to-none unset! to-pair unset! to-paren unset! to-path unset! to-percent unset! to-refinement unset! to-set-path unset! to-set-word unset! to-string unset! to-tag unset! to-time unset! to-typeset unset! to-tuple unset! to-unset unset! to-url unset! to-word unset! to-image unset! to-date unset! to-money unset! to-ref unset! context unset! alter unset! offset? unset! repend unset! replace unset! math unset! charset unset! p-indent unset! on-parse-event unset! parse-trace unset! suffix? unset! scan unset! load unset! save unset! cause-error unset! pad unset! mod unset! modulo unset! eval-set-path unset! to-red-file unset! dir? unset! normalize-dir unset! what-dir unset! change-dir unset! make-dir unset! extract unset! extract-boot-args unset! collect unset! flip-exe-flag unset! split unset! dirize unset! clean-path unset! split-path unset! do-file unset! path-thru unset! exists-thru? unset! read-thru unset! load-thru unset! do-thru unset! cos unset! sin unset! tan unset! acos unset! asin unset! atan unset! atan2 unset! sqrt unset! to-UTC-date unset! to-local-date unset! transcode-trace unset! rejoin unset! sum unset! average unset! last? unset! dt unset! single? unset! keys-of unset! object unset! halt unset! system unset! version unset! build unset! date unset! git unset! branch unset! tag unset! ahead unset! commit unset! message unset! config unset! config-name unset! OS unset! OS-version unset! ABI unset! link? unset! debug? unset! encap? unset! build-prefix unset! build-basename unset! build-suffix unset! format unset! type unset! target unset! cpu-version unset! verbosity unset! sub-system unset! runtime? unset! use-natives? unset! debug-safe? unset! dev-mode? unset! need-main? unset! PIC? unset! base-address unset! dynamic-linker unset! syscall unset! export-ABI unset! stack-align-16? unset! literal-pool? unset! unicode? unset! red-pass? unset! red-only? unset! red-store-bodies? unset! red-strict-check? unset! red-tracing? unset! red-help? unset! redbin-compress? unset! legacy unset! gui-console? unset! libRed? unset! libRedRT? unset! libRedRT-update? unset! GUI-engine unset! modules unset! show unset! command-line unset! show-func-map? unset! words unset! platform unset! catalog unset! datatypes unset! actions unset! natives unset! accessors unset! errors unset! code unset! while-cond unset! note unset! no-load unset! syntax unset! invalid unset! missing unset! no-header unset! no-rs-header unset! bad-header unset! malconstruct unset! bad-char unset! script unset! no-value unset! need-value unset! not-defined unset! not-in-context unset! no-arg unset! expect-arg unset! expect-val unset! expect-type unset! cannot-use unset! invalid-arg unset! invalid-type unset! invalid-type-spec unset! invalid-op unset! no-op-arg unset! bad-op-spec unset! invalid-data unset! invalid-part unset! not-same-type unset! not-same-class unset! not-related unset! bad-func-def unset! bad-func-arg unset! bad-func-extern unset! no-refine unset! bad-refines unset! bad-refine unset! word-first unset! empty-path unset! invalid-path unset! invalid-path-set unset! invalid-path-get unset! bad-path-type unset! bad-path-set unset! bad-field-set unset! dup-vars unset! past-end unset! missing-arg unset! out-of-range unset! invalid-chars unset! invalid-compare unset! wrong-type unset! invalid-refine-arg unset! type-limit unset! size-limit unset! no-return unset! throw-usage unset! locked-word unset! protected unset! bad-bad unset! bad-make-arg unset! bad-to-arg unset! invalid-months unset! invalid-spec-field unset! missing-spec-field unset! move-bad unset! too-long unset! invalid-char unset! bad-loop-series unset! wrong-denom unset! bad-denom unset! invalid-obj-evt unset! parse-rule unset! parse-end unset! parse-invalid-ref unset! parse-block unset! parse-unsupported unset! parse-infinite unset! parse-stack unset! parse-keep unset! parse-into-bad unset! parse-into-type unset! invalid-draw unset! invalid-data-facet unset! face-type unset! not-window unset! bad-window unset! not-linked unset! not-event-type unset! invalid-facet-type unset! vid-invalid-syntax unset! rtd-invalid-syntax unset! rtd-no-match unset! react-bad-func unset! react-not-enough unset! react-no-match unset! react-bad-obj unset! react-gctx unset! lib-invalid-arg unset! buffer-not-enough unset! zero-divide unset! overflow unset! positive unset! access unset! cannot-open unset! cannot-close unset! invalid-utf8 unset! not-open unset! no-connect unset! no-scheme unset! unknown-scheme unset! invalid-spec unset! invalid-port unset! invalid-actor unset! no-port-action unset! no-create unset! no-codec unset! bad-media unset! invalid-cmd unset! reserved1 unset! reserved2 unset! user unset! internal unset! bad-path unset! not-here unset! no-memory unset! wrong-mem unset! stack-overflow unset! limit-hit unset! too-deep unset! no-cycle unset! feature-na unset! not-done unset! invalid-error unset! routines unset! red-system unset! state unset! interpreted? unset! last-error unset! trace unset! codecs unset! schemes unset! ports unset! locale unset! language unset! language* unset! locale* unset! months unset! days unset! currencies unset! list unset! on-change* unset! on-deep-change* unset! options unset! boot unset! home unset! path unset! cache unset! thru-cache unset! args unset! do-arg unset! debug unset! secure unset! quiet unset! binary-base unset! decimal-digits unset! money-digits unset! module-paths unset! file-types unset! float unset! pretty? unset! full? unset! title unset! header unset! parent unset! standard unset! name unset! file unset! author unset! needs unset! port unset! spec unset! scheme unset! actor unset! awake unset! data unset! extra unset! error unset! id unset! arg1 unset! arg2 unset! arg3 unset! near unset! where unset! stack unset! file-info unset! size unset! url-parts unset! user-info unset! host unset! fragment unset! ref unset! info unset! lexer unset! pre-load unset! exit-states unset! tracer unset! lex unset! console unset! view unset! reactivity unset! + unset! - unset! * unset! / unset! // unset! %"" unset! = unset! <> unset! == unset! =? unset! < unset! > unset! <= unset! >= unset! << unset! >> unset! ">>>" unset! ** unset! and unset! or unset! xor unset! mime-type unset! suffixes unset! encode unset! ctx||293~encode unset! decode unset! ctx||293~decode unset! ctx||297~encode unset! ctx||297~decode unset! ctx||301~encode unset! ctx||301~decode unset! ctx||305~encode unset! ctx||305~decode unset! BOM unset! BOM-UTF-16? unset! BOM-UTF-32? unset! enquote unset! high-surrogate? unset! low-surrogate? unset! translit unset! json-to-red-escape-table unset! red-to-json-escape-table unset! json-esc-ch unset! json-escaped unset! red-esc-ch unset! decode-backslash-escapes unset! encode-backslash-escapes unset! ctrl-char unset! ws unset! ws* unset! ws+ unset! sep unset! digit unset! non-zero-digit unset! hex-char unset! chars unset! not-word-char unset! word-1st unset! word-char unset! sign unset! int unset! frac unset! number unset! numeric-literal unset! string-literal unset! decode-unicode-char unset! replace-unicode-escapes unset! json-object unset! property-list unset! property unset! json-name unset! array-list unset! json-array unset! json-value unset! push unset! pop unset! _out unset! _res unset! _tmp unset! _str unset! mark unset! emit unset! load-json unset! indent unset! indent-level unset! normal-chars unset! escapes unset! init-state unset! emit-indent unset! emit-key-value unset! red-to-json-value unset! to-json unset! ignore-empty? unset! strict? unset! quote-char unset! double-quote unset! quotable-chars unset! parsed? unset! non-aligned unset! to-csv-line unset! escape-value unset! next-column-name unset! make-header unset! get-columns unset! encode-map unset! encode-maps unset! encode-flat unset! encode-blocks unset! load-csv unset! to-csv unset! ctx||361~encode unset! ctx||361~decode unset! reactor! unset! deep-reactor! unset! reactor unset! deep-reactor unset! relations unset! queue unset! eat-events? unset! source unset! add-relation unset! eval unset! eval-reaction unset! pending? unset! check unset! stop-reactor unset! clear-reactions unset! dump-reactions unset! is~ unset! is unset! react? unset! react unset! register-scheme unset! url-parser unset! =scheme unset! =user-info unset! =host unset! =port unset! =path unset! =query unset! =fragment unset! vars unset! alpha unset! alpha-num unset! hex-digit unset! gen-delims unset! sub-delims unset! reserved unset! unreserved unset! pct-encoded unset! alpha-num+ unset! scheme-char unset! url-rules unset! scheme-part unset! hier-part unset! authority unset! IP-literal unset! path-abempty unset! path-absolute unset! path-rootless unset! path-empty unset! any-segments unset! segment unset! segment-nz unset! segment-nz-nc unset! pchar unset! parse-url unset! decode-url unset! encode-url unset! preprocessor unset! exec unset! protos unset! macros unset! syms unset! depth unset! active? unset! trace? unset! s unset! do-quit unset! throw-error unset! syntax-error unset! do-safe unset! do-code unset! count-args unset! arg-mode? unset! func-arity? unset! value-path? unset! fetch-next unset! do-macro unset! register-macro unset! reset unset! expand unset! expand-directives unset! hex-to-rgb unset! within? unset! overlap? unset! distance? unset! event? unset! face? unset! size-text unset! caret-to-offset unset! offset-to-caret unset! offset-to-char unset! rich-text unset! rtd unset! color-stk unset! out unset! text unset! s-idx unset! pos unset! v unset! l unset! cur unset! pos1 unset! col unset! cols unset! nested unset! color unset! f-args unset! style! unset! style unset! tail-idx? unset! push-color unset! pop-color unset! close-colors unset! pop-all unset! optimize unset! rtd-layout unset! line-height? unset! line-count? unset! metrics? unset! set-flag unset! find-flag? unset! debug-info? unset! on-face-deep-change* unset! link-tabs-to-parent unset! link-sub-to-parent unset! update-font-faces unset! face! unset! offset unset! image unset! menu unset! enabled? unset! visible? unset! selected unset! flags unset! pane unset! rate unset! edge unset! para unset! font unset! actors unset! draw unset! font! unset! angle unset! anti-alias? unset! shadow unset! para! unset! origin unset! padding unset! scroll unset! align unset! v-align unset! wrap? unset! scroller! unset! position unset! page-size unset! min-size unset! max-size unset! vertical? unset! screens unset! event-port unset! metrics unset! screen-size unset! dpi unset! paddings unset! margins unset! def-heights unset! fixed-heights unset! misc unset! colors unset! fonts unset! fixed unset! sans-serif unset! serif unset! VID unset! handlers unset! evt-names unset! capture-events unset! capturing? unset! auto-sync? unset! silent? unset! make-null-handle unset! ctx||472~make-null-handle unset! get-screen-size unset! ctx||472~get-screen-size unset! ctx||472~size-text unset! on-change-facet unset! ctx||472~on-change-facet unset! update-font unset! ctx||472~update-font unset! update-para unset! ctx||472~update-para unset! destroy-view unset! ctx||472~destroy-view unset! update-view unset! ctx||472~update-view unset! refresh-window unset! ctx||472~refresh-window unset! redraw unset! ctx||472~redraw unset! show-window unset! ctx||472~show-window unset! make-view unset! ctx||472~make-view unset! draw-image unset! ctx||472~draw-image unset! draw-face unset! ctx||472~draw-face unset! do-event-loop unset! ctx||472~do-event-loop unset! exit-event-loop unset! ctx||472~exit-event-loop unset! request-font unset! ctx||472~request-font unset! request-file unset! ctx||472~request-file unset! request-dir unset! ctx||472~request-dir unset! text-box-metrics unset! ctx||472~text-box-metrics unset! update-scroller unset! ctx||472~update-scroller unset! init unset! product unset! styles unset! GUI-rules unset! processors unset! cancel-captions unset! color-backgrounds unset! color-tabpanel-children unset! OK-Cancel unset! general unset! process unset! containers unset! default-font unset! opts-proto unset! size-x unset! now? unset! process-reactors unset! calc-size unset! align-faces unset! resize-child-panels unset! clean-style unset! process-draw unset! add-option unset! add-flag unset! fetch-value unset! fetch-argument unset! fetch-expr unset! fetch-options unset! make-actor unset! layout unset! do-events unset! stop-events unset! do-actor unset! unview unset! center-face unset! make-face unset! dump-face unset! get-scroller unset! insert-event-func unset! remove-event-func unset! set-focus unset! foreach-face unset! buf unset! value unset! word unset! font-fixed unset! font-sans-serif unset! font-serif unset! reactors unset! + ]] [#[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] + system #[object! [ + version: #[none] + build: #[object! [ + date: #[none] + git: #[object! [ + branch: #[none] + tag: #[none] + ahead: #[none] + date: #[none] + commit: #[none] + message: #[none] + ]] + config: #[object! [ + config-name: #[none] + OS: #[none] + OS-version: #[none] + ABI: #[none] + link?: #[none] + debug?: #[none] + encap?: #[none] + build-prefix: #[none] + build-basename: #[none] + build-suffix: #[none] + format: #[none] + type: #[none] + target: #[none] + cpu-version: #[none] + verbosity: #[none] + sub-system: #[none] + runtime?: #[none] + use-natives?: #[none] + debug-safe?: #[none] + dev-mode?: #[none] + need-main?: #[none] + PIC?: #[none] + base-address: #[none] + dynamic-linker: #[none] + syscall: #[none] + export-ABI: #[none] + stack-align-16?: #[none] + literal-pool?: #[none] + unicode?: #[none] + red-pass?: #[none] + red-only?: #[none] + red-store-bodies?: #[none] + red-strict-check?: #[none] + red-tracing?: #[none] + red-help?: #[none] + redbin-compress?: #[none] + legacy: #[none] + gui-console?: #[none] + libRed?: #[none] + libRedRT?: #[none] + libRedRT-update?: #[none] + GUI-engine: #[none] + modules: #[none] + show: #[none] + command-line: #[none] + show-func-map?: #[none] + ]] + ]] + words: #[none] + platform: #[none] + catalog: #[object! [ + datatypes: #[none] + actions: #[none] + natives: #[none] + accessors: #[none] + errors: #[object! [ + throw: #[object! [ + code: #[none] + type: #[none] + break: #[none] + return: #[none] + throw: #[none] + continue: #[none] + while-cond: #[none] + ]] + note: #[object! [ + code: #[none] + type: #[none] + no-load: #[none] + ]] + syntax: #[object! [ + code: #[none] + type: #[none] + invalid: #[none] + missing: #[none] + no-header: #[none] + no-rs-header: #[none] + bad-header: #[none] + malconstruct: #[none] + bad-char: #[none] + ]] + script: #[object! [ + code: #[none] + type: #[none] + no-value: #[none] + need-value: #[none] + not-defined: #[none] + not-in-context: #[none] + no-arg: #[none] + expect-arg: #[none] + expect-val: #[none] + expect-type: #[none] + cannot-use: #[none] + invalid-arg: #[none] + invalid-type: #[none] + invalid-type-spec: #[none] + invalid-op: #[none] + no-op-arg: #[none] + bad-op-spec: #[none] + invalid-data: #[none] + invalid-part: #[none] + not-same-type: #[none] + not-same-class: #[none] + not-related: #[none] + bad-func-def: #[none] + bad-func-arg: #[none] + bad-func-extern: #[none] + no-refine: #[none] + bad-refines: #[none] + bad-refine: #[none] + word-first: #[none] + empty-path: #[none] + invalid-path: #[none] + invalid-path-set: #[none] + invalid-path-get: #[none] + bad-path-type: #[none] + bad-path-set: #[none] + bad-field-set: #[none] + dup-vars: #[none] + past-end: #[none] + missing-arg: #[none] + out-of-range: #[none] + invalid-chars: #[none] + invalid-compare: #[none] + wrong-type: #[none] + invalid-refine-arg: #[none] + type-limit: #[none] + size-limit: #[none] + no-return: #[none] + throw-usage: #[none] + locked-word: #[none] + protected: #[none] + bad-bad: #[none] + bad-make-arg: #[none] + bad-to-arg: #[none] + invalid-months: #[none] + invalid-spec-field: #[none] + missing-spec-field: #[none] + move-bad: #[none] + too-long: #[none] + invalid-char: #[none] + bad-loop-series: #[none] + wrong-denom: #[none] + bad-denom: #[none] + invalid-obj-evt: #[none] + parse-rule: #[none] + parse-end: #[none] + parse-invalid-ref: #[none] + parse-block: #[none] + parse-unsupported: #[none] + parse-infinite: #[none] + parse-stack: #[none] + parse-keep: #[none] + parse-into-bad: #[none] + parse-into-type: #[none] + invalid-draw: #[none] + invalid-data-facet: #[none] + face-type: #[none] + not-window: #[none] + bad-window: #[none] + not-linked: #[none] + not-event-type: #[none] + invalid-facet-type: #[none] + vid-invalid-syntax: #[none] + rtd-invalid-syntax: #[none] + rtd-no-match: #[none] + react-bad-func: #[none] + react-not-enough: #[none] + react-no-match: #[none] + react-bad-obj: #[none] + react-gctx: #[none] + lib-invalid-arg: #[none] + buffer-not-enough: #[none] + ]] + math: #[object! [ + code: #[none] + type: #[none] + zero-divide: #[none] + overflow: #[none] + positive: #[none] + ]] + access: #[object! [ + code: #[none] + type: #[none] + cannot-open: #[none] + cannot-close: #[none] + invalid-utf8: #[none] + not-open: #[none] + no-connect: #[none] + no-scheme: #[none] + unknown-scheme: #[none] + invalid-spec: #[none] + invalid-port: #[none] + invalid-actor: #[none] + no-port-action: #[none] + no-create: #[none] + no-codec: #[none] + bad-media: #[none] + invalid-cmd: #[none] + ]] + reserved1: #[object! [ + code: #[none] + type: #[none] + ]] + reserved2: #[object! [ + code: #[none] + type: #[none] + ]] + user: #[object! [ + code: #[none] + type: #[none] + message: #[none] + ]] + internal: #[object! [ + code: #[none] + type: #[none] + bad-path: #[none] + not-here: #[none] + no-memory: #[none] + wrong-mem: #[none] + stack-overflow: #[none] + limit-hit: #[none] + too-deep: #[none] + no-cycle: #[none] + feature-na: #[none] + not-done: #[none] + invalid-error: #[none] + routines: #[none] + red-system: #[none] + ]] + ]] + ]] + state: #[object! [ + interpreted?: #[datatype! function!] + last-error: #[none] + trace: #[none] + ]] + modules: #[none] + codecs: #[none] + schemes: #[none] + ports: #[object! [ + ]] + locale: #[object! [ + language: #[none] + language*: #[none] + locale: #[none] + locale*: #[none] + months: #[none] + days: #[none] + currencies: #[object! [ + list: #[none] + on-change*: #[datatype! function!] + on-deep-change*: #[datatype! function!] + ]] + ]] + options: #[object! [ + boot: #[none] + home: #[none] + path: #[none] + script: #[none] + cache: #[none] + thru-cache: #[none] + args: #[none] + do-arg: #[none] + debug: #[none] + secure: #[none] + quiet: #[none] + binary-base: #[none] + decimal-digits: #[none] + money-digits: #[none] + module-paths: #[none] + file-types: #[none] + float: #[object! [ + pretty?: #[none] + full?: #[none] + on-change*: #[datatype! function!] + ]] + on-change*: #[datatype! function!] + on-deep-change*: #[datatype! function!] + ]] + script: #[object! [ + title: #[none] + header: #[none] + parent: #[none] + path: #[none] + args: #[none] + ]] + standard: #[object! [ + header: #[object! [ + title: #[none] + name: #[none] + type: #[none] + version: #[none] + date: #[none] + file: #[none] + author: #[none] + needs: #[none] + ]] + port: #[object! [ + spec: #[none] + scheme: #[none] + actor: #[none] + awake: #[none] + state: #[none] + data: #[none] + extra: #[none] + ]] + error: #[object! [ + code: #[none] + type: #[none] + id: #[none] + arg1: #[none] + arg2: #[none] + arg3: #[none] + near: #[none] + where: #[none] + stack: #[none] + ]] + file-info: #[object! [ + name: #[none] + size: #[none] + date: #[none] + type: #[none] + ]] + url-parts: #[object! [ + scheme: #[none] + user-info: #[none] + host: #[none] + port: #[none] + path: #[none] + target: #[none] + query: #[none] + fragment: #[none] + ref: #[none] + ]] + scheme: #[object! [ + name: #[none] + title: #[none] + info: #[none] + actor: #[none] + awake: #[none] + ]] + ]] + lexer: #[object! [ + pre-load: #[none] + exit-states: #[none] + tracer: #[none] + lex: #[datatype! function!] + ]] + console: #[none] + view: #[object! [ + screens: #[none] + event-port: #[none] + metrics: #[object! [ + screen-size: #[none] + dpi: #[none] + paddings: #[none] + margins: #[none] + def-heights: #[none] + fixed-heights: #[none] + misc: #[none] + colors: #[none] + ]] + fonts: #[object! [ + system: #[none] + fixed: #[none] + sans-serif: #[none] + serif: #[none] + size: #[none] + ]] + platform: #[object! [ + make-null-handle: #[datatype! function!] + get-screen-size: #[datatype! function!] + size-text: #[datatype! function!] + on-change-facet: #[datatype! function!] + update-font: #[datatype! function!] + update-para: #[datatype! function!] + destroy-view: #[datatype! function!] + update-view: #[datatype! function!] + refresh-window: #[datatype! function!] + redraw: #[datatype! function!] + show-window: #[datatype! function!] + make-view: #[datatype! function!] + draw-image: #[datatype! function!] + draw-face: #[datatype! function!] + do-event-loop: #[datatype! function!] + exit-event-loop: #[datatype! function!] + request-font: #[datatype! function!] + request-file: #[datatype! function!] + request-dir: #[datatype! function!] + text-box-metrics: #[datatype! function!] + update-scroller: #[datatype! function!] + init: #[datatype! function!] + version: #[none] + build: #[none] + product: #[none] + ]] + VID: #[object! [ + styles: #[none] + GUI-rules: #[object! [ + active?: #[none] + debug?: #[none] + processors: #[object! [ + cancel-captions: #[none] + color-backgrounds: #[datatype! function!] + color-tabpanel-children: #[datatype! function!] + OK-Cancel: #[datatype! function!] + ]] + general: #[none] + OS: #[none] + user: #[none] + process: #[datatype! function!] + ]] + debug?: #[none] + containers: #[none] + default-font: #[none] + opts-proto: #[object! [ + type: #[none] + offset: #[none] + size: #[none] + size-x: #[none] + text: #[none] + color: #[none] + enabled?: #[none] + visible?: #[none] + selected: #[none] + image: #[none] + rate: #[none] + font: #[none] + flags: #[none] + options: #[none] + para: #[none] + data: #[none] + extra: #[none] + actors: #[none] + draw: #[none] + now?: #[none] + init: #[none] + ]] + throw-error: #[datatype! function!] + process-reactors: #[datatype! function!] + calc-size: #[datatype! function!] + align-faces: #[datatype! function!] + resize-child-panels: #[datatype! function!] + clean-style: #[datatype! function!] + process-draw: #[datatype! function!] + pre-load: #[datatype! function!] + add-option: #[datatype! function!] + add-flag: #[datatype! function!] + fetch-value: #[datatype! function!] + fetch-argument: #[datatype! function!] + fetch-expr: #[datatype! function!] + fetch-options: #[datatype! function!] + make-actor: #[datatype! function!] + ]] + handlers: #[none] + evt-names: #[none] + capture-events: #[datatype! function!] + awake: #[datatype! function!] + capturing?: #[none] + auto-sync?: #[none] + debug?: #[none] + silent?: #[none] + ]] + reactivity: #[object! [ + relations: #[none] + queue: #[none] + eat-events?: #[none] + debug?: #[none] + source: #[none] + add-relation: #[datatype! function!] + eval: #[datatype! function!] + eval-reaction: #[datatype! function!] + pending?: #[datatype! function!] + check: #[datatype! function!] + is~: #[datatype! function!] + ]] + ]] ctx||223 224 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||225 (red/objects/system/build) ctx||225 226 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||227 (red/objects/system/build/git) ctx||227 228 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||229 (red/objects/system/build/config) ctx||229 230 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||231 (red/objects/system/catalog) ctx||231 232 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||233 (red/objects/system/catalog/errors) ctx||233 234 #[none] #[none] ctx||235 (red/objects/system/catalog/errors/throw) ctx||235 236 #[none] #[none] ctx||237 (red/objects/system/catalog/errors/note) ctx||237 238 #[none] #[none] ctx||239 (red/objects/system/catalog/errors/syntax) ctx||239 240 #[none] #[none] ctx||241 (red/objects/system/catalog/errors/script) ctx||241 242 #[none] #[none] ctx||243 (red/objects/system/catalog/errors/math) ctx||243 244 #[none] #[none] ctx||245 (red/objects/system/catalog/errors/access) ctx||245 246 #[none] #[none] ctx||247 (red/objects/system/catalog/errors/reserved1) ctx||247 248 #[none] #[none] ctx||249 (red/objects/system/catalog/errors/reserved2) ctx||249 250 #[none] #[none] ctx||251 (red/objects/system/catalog/errors/user) ctx||251 252 #[none] #[none] ctx||253 (red/objects/system/catalog/errors/internal) ctx||253 254 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||255 (red/objects/system/state) ctx||255 256 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||258 (red/objects/system/ports) ctx||258 259 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||260 (red/objects/system/locale) ctx||260 261 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||262 (red/objects/system/locale/currencies) ctx||262 263 #[none] [1 0 2 0 evt263] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||266 (red/objects/system/options) ctx||266 267 #[none] [17 0 18 0 evt267] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||268 (red/objects/system/options/float) ctx||268 269 #[none] [2 0 -1 0 evt269] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||273 (red/objects/system/script) ctx||273 274 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||275 (red/objects/system/standard) ctx||275 276 #[none] #[none] ctx||277 (red/objects/system/standard/header) ctx||277 278 #[none] #[none] ctx||279 (red/objects/system/standard/port) ctx||279 280 #[none] #[none] ctx||281 (red/objects/system/standard/error) ctx||281 282 #[none] #[none] ctx||283 (red/objects/system/standard/file-info) ctx||283 284 #[none] #[none] ctx||285 (red/objects/system/standard/url-parts) ctx||285 286 #[none] #[none] ctx||287 (red/objects/system/standard/scheme) ctx||287 288 #[none] #[none] #[none] #[object! [ + p-indent: #[none] + on-parse-event: #[datatype! function!] + ]] ctx||174 175 #[none] #[none] ctx||289 (red/objects/system/lexer) ctx||289 290 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||293 294 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||297 298 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||301 302 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||305 306 #[none] #[none] #[none] #[object! [ + Title: #[none] + Name: #[none] + Mime-Type: #[none] + Suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||309 310 #[none] #[none] #[none] #[object! [ + BOM: #[none] + BOM-UTF-16?: #[datatype! function!] + BOM-UTF-32?: #[datatype! function!] + enquote: #[datatype! function!] + high-surrogate?: #[datatype! function!] + low-surrogate?: #[datatype! function!] + translit: #[datatype! function!] + json-to-red-escape-table: #[none] + red-to-json-escape-table: #[none] + json-esc-ch: #[none] + json-escaped: #[none] + red-esc-ch: #[none] + decode-backslash-escapes: #[datatype! function!] + encode-backslash-escapes: #[datatype! function!] + ctrl-char: #[none] + ws: #[none] + ws*: #[none] + ws+: #[none] + sep: #[none] + digit: #[none] + non-zero-digit: #[none] + hex-char: #[none] + chars: #[none] + not-word-char: #[none] + word-1st: #[none] + word-char: #[none] + sign: #[none] + int: #[none] + frac: #[none] + exp: #[none] + number: #[none] + numeric-literal: #[none] + string-literal: #[none] + decode-unicode-char: #[datatype! function!] + replace-unicode-escapes: #[datatype! function!] + json-object: #[none] + property-list: #[none] + property: #[none] + json-name: #[none] + array-list: #[none] + json-array: #[none] + json-value: #[none] + stack: #[none] + push: #[datatype! function!] + pop: #[datatype! function!] + _out: #[none] + _res: #[none] + _tmp: #[none] + _str: #[none] + mark: #[none] + emit: #[datatype! function!] + ]] ctx||318 319 #[none] #[none] #[none] #[object! [ + indent: #[none] + indent-level: #[none] + normal-chars: #[none] + escapes: #[none] + init-state: #[datatype! function!] + emit-indent: #[datatype! function!] + emit-key-value: #[datatype! function!] + red-to-json-value: #[datatype! function!] + ]] ctx||334 335 #[none] #[none] #[none] #[object! [ + Title: #[none] + Name: #[none] + Mime-Type: #[none] + Suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||342 343 #[none] #[none] #[none] #[object! [ + ignore-empty?: #[none] + strict?: #[none] + quote-char: #[none] + double-quote: #[none] + quotable-chars: #[none] + parsed?: #[none] + non-aligned: #[none] + to-csv-line: #[datatype! function!] + escape-value: #[datatype! function!] + next-column-name: #[datatype! function!] + make-header: #[datatype! function!] + get-columns: #[datatype! function!] + encode-map: #[datatype! function!] + encode-maps: #[datatype! function!] + encode-flat: #[datatype! function!] + encode-blocks: #[datatype! function!] + ]] ctx||347 348 #[none] #[none] context #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] + reactor! #[object! [ + on-change*: #[datatype! function!] + ]] ctx||364 365 #[none] [0 2 -1 0 evt365] + deep-reactor! #[object! [ + on-change*: #[datatype! function!] + on-deep-change*: #[datatype! function!] + ]] ctx||367 368 [#[object! [ + on-change*: #[datatype! function!] + ]]] [0 2 1 0 evt368] ctx||372 (red/objects/system/reactivity) ctx||372 373 #[none] #[none] + url-parser #[object! [ + =scheme: #[none] + =user-info: #[none] + =host: #[none] + =port: #[none] + =path: #[none] + =query: #[none] + =fragment: #[none] + vars: #[none] + alpha: #[none] + digit: #[none] + alpha-num: #[none] + hex-digit: #[none] + gen-delims: #[none] + sub-delims: #[none] + reserved: #[none] + unreserved: #[none] + pct-encoded: #[none] + alpha-num+: #[datatype! function!] + scheme-char: #[none] + url-rules: #[none] + scheme-part: #[none] + hier-part: #[none] + authority: #[none] + user-info: #[none] + IP-literal: #[none] + host: #[none] + port: #[none] + path-abempty: #[none] + path-absolute: #[none] + path-rootless: #[none] + path-empty: #[none] + any-segments: #[none] + segment: #[none] + segment-nz: #[none] + segment-nz-nc: #[none] + pchar: #[none] + query: #[none] + fragment: #[none] + parse-url: #[datatype! function!] + ]] ctx||387 388 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] + preprocessor #[object! [ + exec: #[none] + protos: #[none] + macros: #[none] + stack: #[none] + syms: #[none] + depth: #[none] + active?: #[none] + trace?: #[none] + s: #[none] + do-quit: #[datatype! function!] + throw-error: #[datatype! function!] + syntax-error: #[datatype! function!] + do-safe: #[datatype! function!] + do-code: #[datatype! function!] + count-args: #[datatype! function!] + arg-mode?: #[datatype! function!] + func-arity?: #[datatype! function!] + value-path?: #[datatype! function!] + fetch-next: #[datatype! function!] + eval: #[datatype! function!] + do-macro: #[datatype! function!] + register-macro: #[datatype! function!] + reset: #[datatype! function!] + expand: #[datatype! function!] + ]] ctx||393 394 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] + rich-text #[object! [ + rtd: #[object! [ + stack: #[none] + color-stk: #[none] + out: #[none] + text: #[none] + s-idx: #[none] + s: #[none] + pos: #[none] + v: #[none] + l: #[none] + cur: #[none] + pos1: #[none] + mark: #[none] + col: #[none] + cols: #[none] + nested: #[none] + color: #[none] + f-args: #[none] + style!: #[none] + style: #[none] + rtd: #[none] + tail-idx?: #[datatype! function!] + push-color: #[datatype! function!] + pop-color: #[datatype! function!] + close-colors: #[datatype! function!] + push: #[datatype! function!] + pop: #[datatype! function!] + pop-all: #[datatype! function!] + optimize: #[datatype! function!] + ]] + line-height?: #[datatype! function!] + line-count?: #[datatype! function!] + ]] ctx||427 428 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] ctx||429 (red/objects/rich-text/rtd) ctx||429 430 #[none] #[none] + face! #[object! [ + type: #[none] + offset: #[none] + size: #[none] + text: #[none] + image: #[none] + color: #[none] + menu: #[none] + data: #[none] + enabled?: #[none] + visible?: #[none] + selected: #[none] + flags: #[none] + options: #[none] + parent: #[none] + pane: #[none] + state: #[none] + rate: #[none] + edge: #[none] + para: #[none] + font: #[none] + actors: #[none] + extra: #[none] + draw: #[none] + on-change*: #[datatype! function!] + on-deep-change*: #[datatype! function!] + ]] ctx||449 450 #[none] [23 5 24 0 evt450] + font! #[object! [ + name: #[none] + size: #[none] + style: #[none] + angle: #[none] + color: #[none] + anti-alias?: #[none] + shadow: #[none] + state: #[none] + parent: #[none] + on-change*: #[datatype! function!] + on-deep-change*: #[datatype! function!] + ]] ctx||453 454 #[none] [9 0 10 0 evt454] + para! #[object! [ + origin: #[none] + padding: #[none] + scroll: #[none] + align: #[none] + v-align: #[none] + wrap?: #[none] + parent: #[none] + on-change*: #[datatype! function!] + ]] ctx||457 458 #[none] [7 2 -1 0 evt458] + scroller! #[object! [ + position: #[none] + page-size: #[none] + min-size: #[none] + max-size: #[none] + visible?: #[none] + vertical?: #[none] + parent: #[none] + on-change*: #[datatype! function!] + ]] ctx||460 461 #[none] [7 0 -1 0 evt461] ctx||463 (red/objects/system/view) ctx||463 464 #[none] #[none] ctx||465 (red/objects/system/view/metrics) ctx||465 466 #[none] #[none] ctx||467 (red/objects/system/view/fonts) ctx||467 468 #[none] #[none] ctx||472 (red/objects/system/view/platform) ctx||472 473 #[none] #[none] ctx||478 (red/objects/system/view/VID) ctx||478 479 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] ctx||480 (red/objects/system/view/VID/GUI-rules) ctx||480 481 #[none] #[none] #[none] #[object! [ + title: #[none] + name: #[none] + mime-type: #[none] + suffixes: #[none] + encode: #[datatype! function!] + decode: #[datatype! function!] + ]] ctx||361 362 #[none] #[none] ctx||482 (red/objects/system/view/VID/GUI-rules/processors) ctx||482 483 #[none] #[none] ctx||488 (red/objects/system/view/VID/opts-proto) ctx||488 489 #[none] #[none] + ] #[hash![ctx||52 [spec body] ctx||53 [msg] ctx||54 [ + value1 + value2 + ] ctx||55 [ + value + safer + ] ctx||56 [value] ctx||57 [ + return status + ] ctx||58 [ + series + ] ctx||59 [ + value + ] ctx||60 [ + value + ] ctx||61 [ + value + ] ctx||62 [s] ctx||63 [s] ctx||64 [s] ctx||65 [s] ctx||66 [s] ctx||67 [s] ctx||68 [value] ctx||69 [value] ctx||70 [value] ctx||71 [value] ctx||72 [value] ctx||73 [value] ctx||74 [value] ctx||75 [value] ctx||76 [value] ctx||77 [value] ctx||78 [value] ctx||79 [value] ctx||80 [value] ctx||81 [value] ctx||82 [value] ctx||83 [value] ctx||84 [value] ctx||85 [value] ctx||86 [value] ctx||87 [value] ctx||88 [value] ctx||89 [value] ctx||90 [value] ctx||91 [value] ctx||92 [value] ctx||93 [value] ctx||94 [value] ctx||95 [value] ctx||96 [value] ctx||97 [value] ctx||98 [value] ctx||99 [value] ctx||100 [value] ctx||101 [value] ctx||102 [value] ctx||103 [value] ctx||104 [value] ctx||105 [value] ctx||106 [value] ctx||107 [value] ctx||108 [value] ctx||109 [value] ctx||110 [value] ctx||111 [value] ctx||112 [value] ctx||113 [value] ctx||114 [value] ctx||115 [value] ctx||116 [value] ctx||117 [value] ctx||118 [value] ctx||119 [value] ctx||120 [value] ctx||121 [value] ctx||122 [value] ctx||123 [value] ctx||124 [value] ctx||125 [value] ctx||126 [value] ctx||127 [value] ctx||128 [value] ctx||129 [value] ctx||130 [value] ctx||131 [value] ctx||132 [value] ctx||133 [value] ctx||134 [value] ctx||135 [value] ctx||136 [value] ctx||137 [value] ctx||138 [value] ctx||139 [value] ctx||140 [value] ctx||141 [value] ctx||142 [value] ctx||143 [value] ctx||144 [value] ctx||145 [value] ctx||146 [value] ctx||147 [value] ctx||148 [value] ctx||149 [value] ctx||150 [value] ctx||151 [value] ctx||152 [value] ctx||153 [value] ctx||154 [value] ctx||155 [value] ctx||156 [value] ctx||157 [value] ctx||158 [value] ctx||159 [value] ctx||160 [value] ctx||161 [value] ctx||162 [value] ctx||163 [value] ctx||164 [value] ctx||165 [value] ctx||166 [value] ctx||167 [ + spec + ] ctx||168 [ + series + value + ] ctx||169 [ + series1 + series2 + ] ctx||170 [ + series + value + only + ] ctx||171 [ + series + pattern + value + all + deep + case local parse? form? quote? deep? rule many? size seek + ] ctx||172 [ + datum local match + order infix tally enter recur count operator + ] ctx||173 [ + spec + ] ctx||174 [ + p-indent + on-parse-event + ] ctx||176 [ + event + match? + rule + input + stack + ] ctx||177 [ + input + rules + case + part + limit + ] ctx||178 [ + path + ] ctx||179 [ + buffer + next + fast + ] ctx||180 [ + source + header + all + trap + next + position + part + length + into + out + as + type local codec suffix name mime pre-load + ] ctx||181 [ + where + value + header + header-data + all + length + as + format local dst codec data suffix find-encoder? name pos header-str k v + ] ctx||182 [ + err-type + err-id + args + ] ctx||183 [ + str + n + left + with + c + ] ctx||184 [ + a + b local r + ] ctx||185 [ + a + b local r + ] ctx||186 [value1] ctx||187 [ + path local colon? slash? len i c dst + ] ctx||188 [file] ctx||189 [ + dir + ] ctx||190 [local path] ctx||191 [ + dir + ] ctx||192 [ + path + deep local dirs end created dir + ] ctx||193 [ + series + width + index + pos + into + output + ] ctx||194 [local args at-arg2 ws split-mode arg-end s' e' arg2-update s e] ctx||195 [ + body + into + collected local keep rule pos + ] ctx||196 [ + path local file buffer flag + ] ctx||197 [ + series dlm local s + num + ] ctx||198 [ + path + ] ctx||199 [ + file + only + dir local out cnt f not-file? prot + ] ctx||200 [ + target local dir pos + ] ctx||201 [file local ws saved src code new-path header list c] ctx||202 [ + url local so hash file path + ] ctx||203 [ + url + ] ctx||204 [ + url + update + binary local path data + ] ctx||205 [ + url + update + as + type local path file + ] ctx||206 [ + url + update + ] ctx||207 [ + angle + ] ctx||208 [ + angle + ] ctx||209 [ + angle + ] ctx||210 [ + cosine + ] ctx||211 [ + sine + ] ctx||212 [ + tangent + ] ctx||213 [ + y + x + ] ctx||214 [ + number + ] ctx||215 [ + date + ] ctx||216 [ + date + ] ctx||217 [ + src + ] ctx||218 [ + block + ] ctx||219 [ + values local result value + ] ctx||220 [ + block + ] ctx||221 [ + series + ] ctx||222 [ + body local t0 + ] ctx||223 [ + version + build + words + platform + catalog + state + modules + codecs + schemes + ports + locale + options + script + standard + lexer + console + view + reactivity + ] ctx||225 [ + date + git + config + ] ctx||227 [ + branch + tag + ahead + date + commit + message + ] ctx||229 [ + config-name + OS + OS-version + ABI + link? + debug? + encap? + build-prefix + build-basename + build-suffix + format + type + target + cpu-version + verbosity + sub-system + runtime? + use-natives? + debug-safe? + dev-mode? + need-main? + PIC? + base-address + dynamic-linker + syscall + export-ABI + stack-align-16? + literal-pool? + unicode? + red-pass? + red-only? + red-store-bodies? + red-strict-check? + red-tracing? + red-help? + redbin-compress? + legacy + gui-console? + libRed? + libRedRT? + libRedRT-update? + GUI-engine + modules + show + command-line + show-func-map? + ] ctx||231 [ + datatypes + actions + natives + accessors + errors + ] ctx||233 [ + throw + note + syntax + script + math + access + reserved1 + reserved2 + user + internal + ] ctx||235 [ + code + type + break + return + throw + continue + while-cond + ] ctx||237 [ + code + type + no-load + ] ctx||239 [ + code + type + invalid + missing + no-header + no-rs-header + bad-header + malconstruct + bad-char + ] ctx||241 [ + code + type + no-value + need-value + not-defined + not-in-context + no-arg + expect-arg + expect-val + expect-type + cannot-use + invalid-arg + invalid-type + invalid-type-spec + invalid-op + no-op-arg + bad-op-spec + invalid-data + invalid-part + not-same-type + not-same-class + not-related + bad-func-def + bad-func-arg + bad-func-extern + no-refine + bad-refines + bad-refine + word-first + empty-path + invalid-path + invalid-path-set + invalid-path-get + bad-path-type + bad-path-set + bad-field-set + dup-vars + past-end + missing-arg + out-of-range + invalid-chars + invalid-compare + wrong-type + invalid-refine-arg + type-limit + size-limit + no-return + throw-usage + locked-word + protected + bad-bad + bad-make-arg + bad-to-arg + invalid-months + invalid-spec-field + missing-spec-field + move-bad + too-long + invalid-char + bad-loop-series + wrong-denom + bad-denom + invalid-obj-evt + parse-rule + parse-end + parse-invalid-ref + parse-block + parse-unsupported + parse-infinite + parse-stack + parse-keep + parse-into-bad + parse-into-type + invalid-draw + invalid-data-facet + face-type + not-window + bad-window + not-linked + not-event-type + invalid-facet-type + vid-invalid-syntax + rtd-invalid-syntax + rtd-no-match + react-bad-func + react-not-enough + react-no-match + react-bad-obj + react-gctx + lib-invalid-arg + buffer-not-enough + ] ctx||243 [ + code + type + zero-divide + overflow + positive + ] ctx||245 [ + code + type + cannot-open + cannot-close + invalid-utf8 + not-open + no-connect + no-scheme + unknown-scheme + invalid-spec + invalid-port + invalid-actor + no-port-action + no-create + no-codec + bad-media + invalid-cmd + ] ctx||247 [ + code + type + ] ctx||249 [ + code + type + ] ctx||251 [ + code + type + message + ] ctx||253 [ + code + type + bad-path + not-here + no-memory + wrong-mem + stack-overflow + limit-hit + too-deep + no-cycle + feature-na + not-done + invalid-error + routines + red-system + ] ctx||255 [ + interpreted? + last-error + trace + ] ctx||257 [] ctx||258 [] ctx||260 [ + language + language* + locale + locale* + months + days + currencies + ] ctx||262 [ + list + on-change* + on-deep-change* + ] ctx||264 [word old new] ctx||265 [owner word target action new index part] ctx||266 [ + boot + home + path + script + cache + thru-cache + args + do-arg + debug + secure + quiet + binary-base + decimal-digits + money-digits + module-paths + file-types + float + on-change* + on-deep-change* + ] ctx||268 [ + pretty? + full? + on-change* + ] ctx||270 [word old new] ctx||271 [word old new] ctx||272 [owner word target action new index part] ctx||273 [ + title header parent path + args + ] ctx||275 [ + header + port + error + file-info + url-parts + scheme + ] ctx||277 [ + title name type version date file author needs + ] ctx||279 [ + spec scheme actor awake state data extra + ] ctx||281 [ + code type id arg1 arg2 arg3 near where stack + ] ctx||283 [ + name size date type + ] ctx||285 [ + scheme user-info host port path target query fragment ref + ] ctx||287 [ + name title info actor awake + ] ctx||289 [ + pre-load + exit-states + tracer lex + ] ctx||291 [ + event + input + type + line + token + ] ctx||293 [ + title + name + mime-type + suffixes + encode + decode + ] ctx||297 [ + title + name + mime-type + suffixes + encode + decode + ] ctx||301 [ + title + name + mime-type + suffixes + encode + decode + ] ctx||305 [ + title + name + mime-type + suffixes + encode + decode + ] ctx||309 [ + Title + Name + Mime-Type + Suffixes + encode + decode + ] ctx||316 [data where] ctx||317 [text] ctx||318 [ + BOM + BOM-UTF-16? + BOM-UTF-32? + enquote + high-surrogate? + low-surrogate? + translit + json-to-red-escape-table + red-to-json-escape-table + json-esc-ch + json-escaped + red-esc-ch + decode-backslash-escapes + encode-backslash-escapes + ctrl-char + ws + ws* + ws+ + sep + digit + non-zero-digit + hex-char + chars + not-word-char + word-1st + word-char + sign + int + frac + exp + number + numeric-literal + string-literal + decode-unicode-char + replace-unicode-escapes + json-object + property-list + property + json-name + array-list + json-array + json-value + stack + push + pop + _out + _res + _tmp + _str + mark + emit + ] ctx||320 [data] ctx||321 [data] ctx||322 [str] ctx||323 [codepoint] ctx||324 [codepoint] ctx||325 [ + string + rule + xlat local val + ] ctx||326 [string] ctx||327 [string] ctx||328 [ + ch + ] ctx||329 [ + s local c + ] ctx||330 [val] ctx||331 [] ctx||332 [value] ctx||333 [ + input + ] ctx||334 [ + indent + indent-level + normal-chars + escapes + init-state + emit-indent + emit-key-value + red-to-json-value + ] ctx||336 [ind ascii?] ctx||337 [output level] ctx||338 [output sep map key local value] ctx||339 [output value local special-char mark1 mark2 escape v keys k] ctx||340 [ + data + pretty indent + ascii local result + ] ctx||342 [ + Title + Name + Mime-Type + Suffixes + encode + decode + ] ctx||345 [data where] ctx||346 [text] ctx||347 [ + ignore-empty? + strict? + quote-char + double-quote + quotable-chars + parsed? + non-aligned + to-csv-line + escape-value + next-column-name + make-header + get-columns + encode-map + encode-maps + encode-flat + encode-blocks + ] ctx||349 [ + data + delimiter + ] ctx||350 [ + value + delimiter local quot? len + ] ctx||351 [ + name local length index position previous + ] ctx||352 [ + length local key + ] ctx||353 [ + data local columns + ] ctx||354 [ + data + delimiter local output keys length key index line + ] ctx||355 [ + data + delimiter local columns value line column + ] ctx||356 [ + data + delimiter + size + ] ctx||357 [ + data + delimiter local length line csv-line + ] ctx||358 [ + data + with + delimiter + header + as-columns + as-records + flat + trim + quote + qt-char local disallowed refs output out-map longest line value newline quotchars valchars quoted-value char normal-value s e single-value values add-value add-line length index line-rule init parsed? mark key-index key + ] ctx||359 [ + data + with + delimiter + skip + size + quote + qt-char local longest keyval? types value + ] ctx||361 [ + title + name + mime-type + suffixes + encode + decode + ] ctx||364 [ + on-change* + ] ctx||366 [word old new local srs] ctx||367 [on-change* + on-deep-change* + ] ctx||369 [owner word target action new index part] ctx||370 [spec] ctx||371 [spec] ctx||372 [ + relations + queue + eat-events? + debug? + source + add-relation + eval + eval-reaction + pending? + check + is~ + ] ctx||374 [ + obj + word + reaction + targets local new-rel + ] ctx||375 [code safe local result] ctx||376 [reactor reaction target mark] ctx||377 [reactor reaction local q] ctx||378 [reactor only field local pos reaction q q'] ctx||379 [ + face + deep local list pos f + ] ctx||380 [] ctx||381 [local limit count obj field reaction target list] ctx||382 [ + field + reaction local obj rule item + ] ctx||383 [ + reactor + field + target local pos + ] ctx||384 [ + reaction + link + objects + unlink + src + later + with + ctx local objs found? rule item pos obj saved part path + ] ctx||386 [ + spec + native + dispatch + ] ctx||387 [ + =scheme =user-info =host =port =path =query =fragment + vars + alpha + digit + alpha-num + hex-digit + gen-delims + sub-delims + reserved + unreserved + pct-encoded + alpha-num+ + scheme-char + url-rules + scheme-part + hier-part + authority + user-info + IP-literal + host + port + path-abempty + path-absolute + path-rootless + path-empty + any-segments + segment + segment-nz + segment-nz-nc + pchar + query + fragment + parse-url + ] ctx||389 [more] ctx||390 [ + url + throw-error local scheme user-info host port path target query fragment ref + ] ctx||391 [ + url + ] ctx||392 [url-obj local result] ctx||393 [ + exec + protos + macros + stack + syms + depth + active? + trace? + s + do-quit + throw-error + syntax-error + do-safe + do-code + count-args + arg-mode? + func-arity? + value-path? + fetch-next + eval + do-macro + register-macro + reset + expand + ] ctx||395 [] ctx||396 [error cmd code local w] ctx||397 [s e] ctx||398 [code manual with cmd local res t? src] ctx||399 [code cmd local p] ctx||400 [spec block local total pos] ctx||401 [spec idx] ctx||402 [spec with path block local arity pos] ctx||403 [path local value i item selectable] ctx||404 [code local i left item item2 value fn-spec path f-arity at-op? op-mode] ctx||405 [code cmd local after expr] ctx||406 [name pos arity local cmd saved p v res] ctx||407 [spec local cnt rule p name macro pos valid? named?] ctx||408 [job] ctx||409 [ + code job + clean local rule e pos cond value then else cases body keep? expr src saved file + ] ctx||410 [ + code + clean local job + ] ctx||418 [ + hex local str bin + ] ctx||419 [ + point + offset + size + ] ctx||420 [ + A + B local A1 B1 A2 B2 + ] ctx||421 [ + A + B + ] ctx||422 [ + value + ] ctx||423 [ + face + with + text + ] ctx||424 [ + face + pos + lower local opt + ] ctx||425 [ + face + pt + ] ctx||426 [ + face + pt + ] ctx||427 [ + rtd + line-height? + line-count? + ] ctx||429 [ + stack + color-stk + out text s-idx s pos v l cur pos1 + mark col cols + nested + color + f-args + style! + style + rtd + tail-idx? + push-color + pop-color + close-colors + push + pop + pop-all + optimize + ] ctx||431 [] ctx||432 [c] ctx||433 [local entry pos] ctx||434 [local pos] ctx||435 [style] ctx||436 [style local entry type] ctx||437 [mark local first? i] ctx||438 [local cur pos range pos1 e s l mov] ctx||439 [ + spec + only + with + face + ] ctx||440 [ + face + pos + ] ctx||441 [ + face + ] ctx||442 [ + face + type + total + axis local res + ] ctx||443 [ + face + facet + value local flags + ] ctx||444 [face] ctx||445 [owner word target action new index part state forced? local faces face modal? pane] ctx||446 [ + face + init local faces visible? + ] ctx||447 [face type old new local parent] ctx||448 [parent local f] ctx||449 [ + type + offset + size + text + image + color + menu + data + enabled? + visible? + selected + flags + options + parent + pane + state + rate + edge + para + font + actors + extra + draw + on-change* + on-deep-change* + ] ctx||451 [word old new local srs same-pane? f saved] ctx||452 [owner word target action new index part] ctx||453 [ + name + size + style + angle + color + anti-alias? + shadow + state + parent + on-change* + on-deep-change* + ] ctx||455 [word old new] ctx||456 [owner word target action new index part] ctx||457 [ + origin + padding + scroll + align + v-align + wrap? + parent + on-change* + ] ctx||459 [word old new local f] ctx||460 [ + position + page-size + min-size + max-size + visible? + vertical? + parent + on-change* + ] ctx||462 [word old new] ctx||463 [ + screens + event-port + metrics + fonts + platform + VID + handlers + evt-names + capture-events + awake + capturing? + auto-sync? + debug? + silent? + ] ctx||465 [ + screen-size + dpi + paddings + margins + def-heights + fixed-heights + misc + colors + ] ctx||467 [ + system + fixed + sans-serif + serif + size + ] ctx||469 [face event local result] ctx||470 [event with face local result + handler + ] ctx||472 [ + make-null-handle + get-screen-size + size-text + on-change-facet + update-font + update-para + destroy-view + update-view + refresh-window + redraw + show-window + make-view + draw-image + draw-face + do-event-loop + exit-event-loop + request-font + request-file + request-dir + text-box-metrics + update-scroller + init + version + build + product + ] ctx||474 [local svs colors fonts] ctx||477 [ + image + cmd + transparent + ] ctx||478 [ + styles + GUI-rules + debug? + containers + default-font + opts-proto + throw-error + process-reactors + calc-size + align-faces + resize-child-panels + clean-style + process-draw + pre-load + add-option + add-flag + fetch-value + fetch-argument + fetch-expr + fetch-options + make-actor + ] ctx||480 [ + active? + debug? + processors + general + OS + user + process + ] ctx||482 [ + cancel-captions + color-backgrounds + color-tabpanel-children + OK-Cancel + ] ctx||484 [ + root + ] ctx||485 [ + root local gp + ] ctx||486 [ + root local pos-x last-but pos-y f + ] ctx||487 [root local list name] ctx||488 [ + type offset size size-x text color enabled? visible? selected image + rate font flags options para data extra actors draw now? init + ] ctx||490 [spec] ctx||491 [reactors local res + f blk later? ctx face + ] ctx||492 [face local min-sz data txt s len mark e new] ctx||493 [pane dir align max-sz local edge? top-left? axis svmm face offset mar type] ctx||494 [tab local tp-size pad pane] ctx||495 [tmpl type local para font] ctx||496 [code local rule pos color] ctx||497 [value local color] ctx||498 [opts spec local field value] ctx||499 [obj facet field flag local blk] ctx||500 [blk local value] ctx||501 [expected pos local spec type value] ctx||502 [code] ctx||503 [ + face opts style spec css reactors styling? + no-skip local opt? divides calc-y? do-with obj-spec! rate! color! cursor! value match? drag-on default hint cursor tight? later? max-sz p words user-size? oi x font face-font field actors name f s b pad sz min-sz mar + ] ctx||504 [obj name body spec] ctx||505 [ + spec + tight + options + user-opts + flags + flgs + only + parent + panel + divides + styles + css local axis anti + background! list reactors local-styles pane-size direction align begin size max-sz current global? below? top-left bound cursor origin spacing opts opt-words re-align sz words reset focal-face svmp pad value anti2 at-offset later? name styling? style styled? st actors face h pos styled w blk vid-align mar divide? index dir pad2 image + ] ctx||508 [ + no-wait local result + win + ] ctx||509 [] ctx||510 [code local result] ctx||511 [face event type local result + act name + ] ctx||512 [ + face + with + parent + force local show? f pending owner word target action new index part state new? p obj field pane + ] ctx||513 [ + all + only + face local all? svs pane + ] ctx||514 [ + spec + tight + options + opts + flags + flgs + no-wait + ] ctx||515 [ + face + x + y + with + parent local pos + ] ctx||516 [ + style + spec + blk + offset + xy + size + wh local + svv face styles model opts css + ] ctx||517 [ + face local depth f + ] ctx||518 [ + face + orientation local position page min-size max-size parent vertical? + ] ctx||519 [ + fun + ] ctx||520 [ + fun + ] ctx||521 [ + font + ft + mono + ] ctx||522 [ + title + text + file + name + filter + list + save + multi + ] ctx||523 [ + title + text + dir + name + filter + list + keep + multi + ] ctx||524 [ + face local p + ] ctx||525 [ + face + body + with + spec + post + sub post? local exec + ] ctx||571 [v only] ctx||629 [ + scheme + user-info + host + port + path + target + query + fragment + ref + ] ctx||818 [face]]] [ + random + reflect + to + form + mold + modify + absolute + add + divide + multiply + negate + power + remainder + round + subtract + even? + odd? + and~ + complement + or~ + xor~ + append + at + back + change + clear + copy + find + head + head? + index? + insert + length? + move + next + pick + poke + put + remove + reverse + select + sort + skip + swap + tail + tail? + take + trim + create + close + delete + open + open? + query + read + rename + update + write + ] [+ add - subtract * multiply / divide // modulo %"" remainder = equal? <> not-equal? == strict-equal? =? same? < lesser? > greater? <= lesser-or-equal? >= greater-or-equal? << shift-left >> shift-right ">>>" shift-logical ** power + and and~ + or or~ + xor xor~ is ctx||372~is~ + ] [datatype! + make unset! none! logic! block! string! integer! word! error! typeset! file! url! set-word! get-word! lit-word! refinement! binary! paren! char! issue! path! set-path! get-path! lit-path! native! action! op! function! routine! object! bitset! float! point! vector! map! hash! pair! percent! tuple! image! time! tag! email! handle! date! port! money! ref! event! none set true false random reflect to form mold modify absolute add divide multiply negate power remainder round subtract even? odd? complement append at back change clear copy find head head? index? insert length? move next pick poke put remove reverse select sort skip swap tail tail? take trim create close delete open open? query read rename update write if unless either any all while until loop repeat forever foreach forall remove-each func function does has switch case do reduce compose get print prin equal? not-equal? strict-equal? lesser? greater? lesser-or-equal? greater-or-equal? same? not type? stats bind in parse union unique intersect difference exclude complement? dehex enhex negative? positive? max min shift to-hex sine cosine tangent arcsine arccosine arctangent arctangent2 NaN? zero? log-2 log-10 log-e exp square-root construct value? try uppercase lowercase as-pair as-money break continue exit return throw catch extend debase enbase to-local-file wait checksum unset new-line new-line? context? set-env get-env list-env now sign? as call size? browse compress decompress recycle transcode quit-return set-quiet set-slot-quiet shift-right shift-left shift-logical last-lf? get-current-dir set-current-dir create-dir exists? os-info as-color as-ipv4 as-rgba count-chars read-clipboard write-clipboard write-stdout yes on no off tab cr newline lf escape slash sp space null crlf dot comma dbl-quote pi Rebol internal! external! number! scalar! any-word! all-word! any-list! any-path! any-block! any-function! any-object! any-string! series! immediate! default! any-type! aqua beige black blue brick brown coal coffee crimson cyan forest gold gray green ivory khaki leaf linen magenta maroon mint navy oldrab olive orange papaya pewter pink purple reblue rebolor red sienna silver sky snow tanned teal violet water wheat white yello yellow glass transparent routine alert also attempt comment quit empty? ?? probe quote first second third fourth fifth last spec-of body-of words-of class-of values-of bitset? binary? block? char? email? file? float? get-path? get-word? hash? integer? issue? lit-path? lit-word? logic? map? none? pair? paren? path? percent? refinement? set-path? set-word? string? tag? time? typeset? tuple? unset? url? word? image? date? money? ref? handle? error? action? native? datatype? function? object? op? routine? vector? any-list? any-block? any-function? any-object? any-path? any-string? any-word? series? number? immediate? scalar? all-word? to-bitset to-binary to-block to-char to-email to-file to-float to-get-path to-get-word to-hash to-integer to-issue to-lit-path to-lit-word to-logic to-map to-none to-pair to-paren to-path to-percent to-refinement to-set-path to-set-word to-string to-tag to-time to-typeset to-tuple to-unset to-url to-word to-image to-date to-money to-ref context alter offset? repend replace math charset body p-indent on-parse-event parse-trace suffix? scan load save cause-error pad mod modulo eval-set-path to-red-file dir? normalize-dir what-dir change-dir make-dir extract extract-boot-args collect flip-exe-flag split dirize clean-path split-path do-file path-thru exists-thru? read-thru load-thru do-thru cos sin tan acos asin atan atan2 sqrt to-UTC-date to-local-date transcode-trace rejoin sum average last? dt single? keys-of object halt system version build date git branch tag ahead commit message config config-name MSDOS OS Windows OS-version ABI link? debug? encap? build-prefix build-basename build-suffix format PE type dll target IA-32 cpu-version verbosity sub-system console runtime? use-natives? debug-safe? dev-mode? need-main? PIC? base-address dynamic-linker syscall Linux export-ABI stack-align-16? literal-pool? unicode? red-pass? red-only? red-store-bodies? red-strict-check? red-tracing? red-help? redbin-compress? legacy gui-console? libRed? libRedRT? libRedRT-update? GUI-engine native modules show command-line show-func-map? words platform catalog datatypes actions natives accessors errors code while-cond note no-load syntax invalid missing no-header no-rs-header bad-header malconstruct bad-char script no-value need-value not-defined not-in-context no-arg expect-arg expect-val expect-type cannot-use invalid-arg invalid-type invalid-type-spec invalid-op no-op-arg bad-op-spec invalid-data invalid-part not-same-type not-same-class not-related bad-func-def bad-func-arg bad-func-extern no-refine bad-refines bad-refine word-first empty-path invalid-path invalid-path-set invalid-path-get bad-path-type bad-path-set bad-field-set dup-vars past-end missing-arg out-of-range invalid-chars invalid-compare wrong-type invalid-refine-arg type-limit size-limit no-return throw-usage locked-word protected bad-bad bad-make-arg bad-to-arg invalid-months invalid-spec-field missing-spec-field move-bad too-long invalid-char bad-loop-series wrong-denom bad-denom invalid-obj-evt parse-rule parse-end parse-invalid-ref parse-block parse-unsupported parse-infinite parse-stack parse-keep parse-into-bad parse-into-type invalid-draw invalid-data-facet face-type not-window bad-window not-linked not-event-type invalid-facet-type vid-invalid-syntax rtd-invalid-syntax rtd-no-match react-bad-func react-not-enough react-no-match react-bad-obj react-gctx lib-invalid-arg buffer-not-enough zero-divide overflow positive access cannot-open cannot-close invalid-utf8 not-open no-connect no-scheme unknown-scheme invalid-spec invalid-port invalid-actor no-port-action no-create no-codec bad-media invalid-cmd reserved1 reserved2 user internal bad-path not-here no-memory wrong-mem stack-overflow limit-hit too-deep no-cycle feature-na not-done invalid-error routines red-system state interpreted? last-error trace codecs schemes ports locale language language* locale* months days currencies list on-change* on-deep-change* options boot home path cache thru-cache args do-arg debug secure quiet binary-base decimal-digits money-digits module-paths file-types float pretty? full? title header parent standard name file author needs port spec scheme actor awake data extra error id arg1 arg2 arg3 near where stack file-info size url-parts user-info host fragment ref info lexer pre-load exit-states + eof hex rawstring tracer lex view reactivity + - * / // %"" = <> == =? < > <= >= << >> ">>>" ** and or xor eval-path codecs png PNG mime-type suffixes encode decode codecs jpeg JPEG codecs bmp BMP codecs gif GIF codecs json Title Name JSON Mime-Type Suffixes BOM BOM-UTF-16? BOM-UTF-32? enquote high-surrogate? low-surrogate? translit json-to-red-escape-table red-to-json-escape-table json-esc-ch json-escaped red-esc-ch decode-backslash-escapes encode-backslash-escapes ctrl-char ws ws* ws+ sep digit non-zero-digit hex-char chars not-word-char word-1st word-char sign int frac number numeric-literal string-literal decode-unicode-char replace-unicode-escapes json-object property-list property json-name array-list json-array json-value push pop _out _res _tmp _str mark emit load-json indent indent-level normal-chars escapes init-state emit-indent emit-key-value red-to-json-value to-json codecs csv CSV ignore-empty? strict? quote-char double-quote quotable-chars parsed? non-aligned to-csv-line escape-value next-column-name make-header get-columns encode-map encode-maps encode-flat encode-blocks load-csv to-csv codecs redbin Redbin reactor! deep-reactor! reactor deep-reactor relations queue eat-events? source add-relation eval eval-reaction pending? check stop-reactor clear-reactions dump-reactions is react? react reactivity register-scheme url-parser =scheme =user-info =host =port =path =query =fragment vars alpha alpha-num hex-digit gen-delims sub-delims reserved unreserved pct-encoded alpha-num+ scheme-char url-rules scheme-part hier-part authority IP-literal path-abempty path-absolute path-rootless path-empty any-segments segment segment-nz segment-nz-nc pchar parse-url decode-url encode-url preprocessor exec protos macros syms depth active? trace? s do-quit throw-error syntax-error do-safe do-code count-args arg-mode? func-arity? value-path? fetch-next do-macro register-macro reset expand expand-directives version version platform options cache script args hex-to-rgb within? overlap? distance? event? face? size-text caret-to-offset offset-to-caret offset-to-char rich-text rtd color-stk out text s-idx pos v l cur pos1 col cols nested color f-args style! style tail-idx? push-color pop-color close-colors pop-all optimize rtd-layout line-height? line-count? metrics? set-flag find-flag? debug-info? on-face-deep-change* link-tabs-to-parent link-sub-to-parent update-font-faces face! face offset image menu enabled? visible? selected flags pane rate edge para font actors draw font! angle anti-alias? shadow para! origin padding scroll align v-align wrap? scroller! position page-size min-size max-size vertical? screens event-port metrics screen-size dpi paddings margins def-heights fixed-heights misc colors fonts fixed sans-serif serif VID handlers evt-names capture-events capturing? auto-sync? silent? view make-null-handle get-screen-size on-change-facet update-font update-para destroy-view update-view refresh-window redraw show-window make-view draw-image draw-face do-event-loop exit-event-loop request-font request-file request-dir text-box-metrics update-scroller init product view platform styles GUI-rules processors cancel-captions color-backgrounds color-tabpanel-children OK-Cancel general process containers default-font opts-proto size-x now? process-reactors calc-size align-faces resize-child-panels clean-style process-draw add-option add-flag fetch-value fetch-argument fetch-expr fetch-options make-actor layout view VID do-events stop-events do-actor unview center-face make-face dump-face get-scroller insert-event-func remove-event-func set-focus foreach-face modal value1 value console class values + else series pattern operator select-key* codecs paren codec codecs suffixes codecs mime mime-type Content-Type Content-Type lexer pre-load codecs codecs suffixes length k options path options path options path dir script args options args options boot options args keep flag options path Red c locale currencies list options so thru-cache cache thru-cache MD5 thru-cache timezone timezone timezone lexer tracer appended UTF-16-BE UTF-16-BE UTF-16-LE UTF-16-LE UTF-32-BE UTF-32-BE UTF-32-LE UTF-32-LE buf index key refs out-map line reactivity debug? reactivity source srs owned only reactivity debug? reactivity source result q pane f pane console x console size x obj field reaction actor schemes name name schemes url-obj scheme scheme host user-info user-info host port port path path path target target query query fragment fragment options args console halt-request where console res word i item left f-arity p | config rule build config str bin point x x y y y x x x y y y A offset B offset size size A1 x B2 x B1 x A2 x y y y y offset x offset x size x size x offset y offset y size y size y type _ entry bold italic underline strike backdrop text data data view metrics type options options class x y view debug? gui-console-ctx terminal box terminal box console win win caret caret view auto-sync? owner type screen moved faces parent type type window flags state enabled? view auto-sync? flags parent type type type type tab-panel visible? parent type type type type text options default options default type data data pane visible? selected visible? parent new parent parent state state state draw state state reactivity source type parent state state self default view auto-sync? view debug? view debug? state state state state parent parent detect event face handler type parent with parent stop type state view screens pane view screens view metrics margins view metrics paddings view metrics fixed-heights view metrics def-heights view metrics colors tab-panel view fonts platform font-fixed font-sans-serif font-serif platform view silent? silent blk later? type data txt text type drop-list scroller view metrics misc scroller min-sz x x y type area text text text text across middle below center view metrics margins at-offset options at-offset size view metrics margins type options class mar x x y y x x y y offset offset pane size view metrics paddings tab-panel x y x y pane size tmpl para parent para font parent font opts options options options font color view VID styles view evt-names size size text text data data image image color color size type size y size size-x type pane data panel pane offset size size size default-actor default-actor default-actor styled size-x template template size x size-x size type base data data image data image size-x size size-x oi size x size x size x size size y size size type data data data font font font face-font actors actors b actors actors actors actors view metrics paddings type x y x y size-x size-x size type text data font size-x size-x sz y y size size view metrics margins type size x y x y size type actors actors local actors actors top view VID styles window template pane pane pane view metrics paddings type svmp x x draw text color image view evt-names axis anti cursor spacing later view VID styles template st type actors actors actors actors view metrics def-heights type size y size y parent init init template type init init init init init w offset options at-offset view metrics margins type offset x x offset size offset size offset offset color type type color offset size now? time view metrics fixed-heights type type progress size y size x offset size offset size size y y size image size size size pane selected flags flags flags actors actors actors pane type view screens parent view screens pane state state state actors actors view evt-names state state state state action part state type type parent parent type parent extra extra extra actors actors on-create state parent state parent type view screens pane flags enabled? view auto-sync? state pane pane state state actors actors on-created type visible? view debug? view screens svs pane view screens type flags flags flags text text offset type view screens parent size size x offset x y offset x offset type offset offset offset view VID svv styles model template opts-proto reactors no-skip init init offset size pane pane view handlers view handlers parent type parent selected pane pane pane + ] [ + ctx||52: get-root-node2 102 + ctx||53: get-root-node2 105 + ctx||54: get-root-node2 108 + ctx||55: get-root-node2 111 + ctx||56: get-root-node2 114 + ctx||57: get-root-node2 117 + ctx||58: get-root-node2 120 + ctx||59: get-root-node2 123 + ctx||60: get-root-node2 126 + ctx||61: get-root-node2 129 + ctx||62: get-root-node2 132 + ctx||63: get-root-node2 135 + ctx||64: get-root-node2 138 + ctx||65: get-root-node2 141 + ctx||66: get-root-node2 144 + ctx||67: get-root-node2 147 + ctx||68: get-root-node2 150 + ctx||69: get-root-node2 153 + ctx||70: get-root-node2 156 + ctx||71: get-root-node2 159 + ctx||72: get-root-node2 162 + ctx||73: get-root-node2 165 + ctx||74: get-root-node2 168 + ctx||75: get-root-node2 171 + ctx||76: get-root-node2 174 + ctx||77: get-root-node2 177 + ctx||78: get-root-node2 180 + ctx||79: get-root-node2 183 + ctx||80: get-root-node2 186 + ctx||81: get-root-node2 189 + ctx||82: get-root-node2 192 + ctx||83: get-root-node2 195 + ctx||84: get-root-node2 198 + ctx||85: get-root-node2 201 + ctx||86: get-root-node2 204 + ctx||87: get-root-node2 207 + ctx||88: get-root-node2 210 + ctx||89: get-root-node2 213 + ctx||90: get-root-node2 216 + ctx||91: get-root-node2 219 + ctx||92: get-root-node2 222 + ctx||93: get-root-node2 225 + ctx||94: get-root-node2 228 + ctx||95: get-root-node2 231 + ctx||96: get-root-node2 234 + ctx||97: get-root-node2 237 + ctx||98: get-root-node2 240 + ctx||99: get-root-node2 243 + ctx||100: get-root-node2 246 + ctx||101: get-root-node2 249 + ctx||102: get-root-node2 252 + ctx||103: get-root-node2 255 + ctx||104: get-root-node2 258 + ctx||105: get-root-node2 261 + ctx||106: get-root-node2 264 + ctx||107: get-root-node2 267 + ctx||108: get-root-node2 270 + ctx||109: get-root-node2 273 + ctx||110: get-root-node2 276 + ctx||111: get-root-node2 279 + ctx||112: get-root-node2 282 + ctx||113: get-root-node2 285 + ctx||114: get-root-node2 288 + ctx||115: get-root-node2 291 + ctx||116: get-root-node2 294 + ctx||117: get-root-node2 297 + ctx||118: get-root-node2 300 + ctx||119: get-root-node2 303 + ctx||120: get-root-node2 306 + ctx||121: get-root-node2 309 + ctx||122: get-root-node2 312 + ctx||123: get-root-node2 315 + ctx||124: get-root-node2 318 + ctx||125: get-root-node2 321 + ctx||126: get-root-node2 324 + ctx||127: get-root-node2 327 + ctx||128: get-root-node2 330 + ctx||129: get-root-node2 333 + ctx||130: get-root-node2 336 + ctx||131: get-root-node2 339 + ctx||132: get-root-node2 342 + ctx||133: get-root-node2 345 + ctx||134: get-root-node2 348 + ctx||135: get-root-node2 351 + ctx||136: get-root-node2 354 + ctx||137: get-root-node2 357 + ctx||138: get-root-node2 360 + ctx||139: get-root-node2 363 + ctx||140: get-root-node2 366 + ctx||141: get-root-node2 369 + ctx||142: get-root-node2 372 + ctx||143: get-root-node2 375 + ctx||144: get-root-node2 378 + ctx||145: get-root-node2 381 + ctx||146: get-root-node2 384 + ctx||147: get-root-node2 387 + ctx||148: get-root-node2 390 + ctx||149: get-root-node2 393 + ctx||150: get-root-node2 396 + ctx||151: get-root-node2 399 + ctx||152: get-root-node2 402 + ctx||153: get-root-node2 405 + ctx||154: get-root-node2 408 + ctx||155: get-root-node2 411 + ctx||156: get-root-node2 414 + ctx||157: get-root-node2 417 + ctx||158: get-root-node2 420 + ctx||159: get-root-node2 423 + ctx||160: get-root-node2 426 + ctx||161: get-root-node2 429 + ctx||162: get-root-node2 432 + ctx||163: get-root-node2 435 + ctx||164: get-root-node2 438 + ctx||165: get-root-node2 441 + ctx||166: get-root-node2 444 + ctx||167: get-root-node2 447 + ctx||168: get-root-node2 450 + ctx||169: get-root-node2 453 + ctx||170: get-root-node2 456 + ctx||171: get-root-node2 459 + ctx||172: get-root-node2 462 + ctx||173: get-root-node2 465 + ctx||174: get-root-node2 468 + ctx||176: get-root-node2 469 + ctx||177: get-root-node2 472 + ctx||178: get-root-node2 475 + ctx||179: get-root-node2 478 + ctx||180: get-root-node2 481 + ctx||181: get-root-node2 484 + ctx||182: get-root-node2 487 + ctx||183: get-root-node2 490 + ctx||184: get-root-node2 493 + ctx||185: get-root-node2 496 + ctx||186: get-root-node2 499 + ctx||187: get-root-node2 502 + ctx||188: get-root-node2 505 + ctx||189: get-root-node2 508 + ctx||190: get-root-node2 511 + ctx||191: get-root-node2 514 + ctx||192: get-root-node2 517 + ctx||193: get-root-node2 520 + ctx||194: get-root-node2 523 + ctx||195: get-root-node2 526 + ctx||196: get-root-node2 529 + ctx||197: get-root-node2 532 + ctx||198: get-root-node2 535 + ctx||199: get-root-node2 538 + ctx||200: get-root-node2 541 + ctx||201: get-root-node2 544 + ctx||202: get-root-node2 547 + ctx||203: get-root-node2 550 + ctx||204: get-root-node2 553 + ctx||205: get-root-node2 556 + ctx||206: get-root-node2 559 + ctx||207: get-root-node2 562 + ctx||208: get-root-node2 565 + ctx||209: get-root-node2 568 + ctx||210: get-root-node2 571 + ctx||211: get-root-node2 574 + ctx||212: get-root-node2 577 + ctx||213: get-root-node2 580 + ctx||214: get-root-node2 583 + ctx||215: get-root-node2 586 + ctx||216: get-root-node2 589 + ctx||217: get-root-node2 592 + ctx||218: get-root-node2 595 + ctx||219: get-root-node2 598 + ctx||220: get-root-node2 601 + ctx||221: get-root-node2 604 + ctx||222: get-root-node2 607 + ctx||223: get-root-node2 610 + ctx||225: get-root-node2 612 + ctx||227: get-root-node2 613 + ctx||229: get-root-node2 616 + ctx||231: get-root-node2 620 + ctx||233: get-root-node2 622 + ctx||235: get-root-node2 623 + ctx||237: get-root-node2 630 + ctx||239: get-root-node2 633 + ctx||241: get-root-node2 642 + ctx||243: get-root-node2 733 + ctx||245: get-root-node2 738 + ctx||247: get-root-node2 755 + ctx||249: get-root-node2 757 + ctx||251: get-root-node2 759 + ctx||253: get-root-node2 762 + ctx||255: get-root-node2 777 + ctx||257: get-root-node2 778 + ctx||258: get-root-node2 781 + ctx||260: get-root-node2 782 + ctx||262: get-root-node2 785 + ctx||264: get-root-node2 787 + ctx||265: get-root-node2 790 + evt263: as node! 0 + ctx||266: get-root-node2 793 + ctx||268: get-root-node2 794 + ctx||270: get-root-node2 795 + evt269: as node! 0 + ctx||271: get-root-node2 798 + ctx||272: get-root-node2 801 + evt267: as node! 0 + ctx||273: get-root-node2 804 + ctx||275: get-root-node2 805 + ctx||277: get-root-node2 806 + ctx||279: get-root-node2 807 + ctx||281: get-root-node2 808 + ctx||283: get-root-node2 809 + ctx||285: get-root-node2 810 + ctx||287: get-root-node2 811 + ctx||289: get-root-node2 812 + ctx||291: get-root-node2 813 + ctx||293: get-root-node2 816 + ctx||297: get-root-node2 824 + ctx||301: get-root-node2 832 + ctx||305: get-root-node2 840 + ctx||309: get-root-node2 848 + ctx||316: get-root-node2 852 + ctx||317: get-root-node2 855 + ctx||318: get-root-node2 858 + ctx||320: get-root-node2 860 + ctx||321: get-root-node2 863 + ctx||322: get-root-node2 866 + ctx||323: get-root-node2 869 + ctx||324: get-root-node2 872 + ctx||325: get-root-node2 875 + ctx||326: get-root-node2 882 + ctx||327: get-root-node2 885 + ctx||328: get-root-node2 904 + ctx||329: get-root-node2 907 + ctx||330: get-root-node2 918 + ctx||331: get-root-node2 921 + ctx||332: get-root-node2 924 + ctx||333: get-root-node2 927 + ctx||334: get-root-node2 930 + ctx||336: get-root-node2 932 + ctx||337: get-root-node2 935 + ctx||338: get-root-node2 938 + ctx||339: get-root-node2 941 + ctx||340: get-root-node2 944 + ctx||342: get-root-node2 947 + ctx||345: get-root-node2 951 + ctx||346: get-root-node2 954 + ctx||347: get-root-node2 957 + ctx||349: get-root-node2 961 + ctx||350: get-root-node2 964 + ctx||351: get-root-node2 967 + ctx||352: get-root-node2 970 + ctx||353: get-root-node2 973 + ctx||354: get-root-node2 976 + ctx||355: get-root-node2 979 + ctx||356: get-root-node2 982 + ctx||357: get-root-node2 985 + ctx||358: get-root-node2 988 + ctx||359: get-root-node2 991 + ctx||361: get-root-node2 994 + ctx||364: get-root-node2 1002 + ctx||366: get-root-node2 1003 + evt365: as node! 0 + ctx||367: get-root-node2 1006 + ctx||369: get-root-node2 1007 + evt368: as node! 0 + ctx||370: get-root-node2 1010 + ctx||371: get-root-node2 1013 + ctx||372: get-root-node2 1016 + ctx||374: get-root-node2 1018 + ctx||375: get-root-node2 1021 + ctx||376: get-root-node2 1024 + ctx||377: get-root-node2 1027 + ctx||378: get-root-node2 1030 + ctx||379: get-root-node2 1033 + ctx||380: get-root-node2 1036 + ctx||381: get-root-node2 1039 + ctx||382: get-root-node2 1042 + ctx||383: get-root-node2 1045 + ctx||384: get-root-node2 1048 + ctx||386: get-root-node2 1051 + ctx||387: get-root-node2 1055 + ctx||389: get-root-node2 1065 + ctx||390: get-root-node2 1088 + ctx||391: get-root-node2 1091 + ctx||392: get-root-node2 1094 + ctx||393: get-root-node2 1097 + ctx||395: get-root-node2 1100 + ctx||396: get-root-node2 1103 + ctx||397: get-root-node2 1106 + ctx||398: get-root-node2 1109 + ctx||399: get-root-node2 1112 + ctx||400: get-root-node2 1115 + ctx||401: get-root-node2 1118 + ctx||402: get-root-node2 1121 + ctx||403: get-root-node2 1124 + ctx||404: get-root-node2 1127 + ctx||405: get-root-node2 1130 + ctx||406: get-root-node2 1133 + ctx||407: get-root-node2 1136 + ctx||408: get-root-node2 1139 + ctx||409: get-root-node2 1142 + ctx||410: get-root-node2 1145 + ctx||418: get-root-node2 1153 + ctx||419: get-root-node2 1156 + ctx||420: get-root-node2 1159 + ctx||421: get-root-node2 1162 + ctx||422: get-root-node2 1167 + ctx||423: get-root-node2 1170 + ctx||424: get-root-node2 1173 + ctx||425: get-root-node2 1176 + ctx||426: get-root-node2 1179 + ctx||427: get-root-node2 1182 + ctx||429: get-root-node2 1183 + ctx||431: get-root-node2 1190 + ctx||432: get-root-node2 1193 + ctx||433: get-root-node2 1196 + ctx||434: get-root-node2 1199 + ctx||435: get-root-node2 1202 + ctx||436: get-root-node2 1205 + ctx||437: get-root-node2 1208 + ctx||438: get-root-node2 1211 + ctx||439: get-root-node2 1214 + ctx||440: get-root-node2 1217 + ctx||441: get-root-node2 1220 + ctx||442: get-root-node2 1223 + ctx||443: get-root-node2 1226 + ctx||444: get-root-node2 1231 + ctx||445: get-root-node2 1234 + ctx||446: get-root-node2 1237 + ctx||447: get-root-node2 1240 + ctx||448: get-root-node2 1243 + ctx||449: get-root-node2 1246 + ctx||451: get-root-node2 1247 + ctx||452: get-root-node2 1250 + evt450: as node! 0 + ctx||453: get-root-node2 1253 + ctx||455: get-root-node2 1254 + ctx||456: get-root-node2 1257 + evt454: as node! 0 + ctx||457: get-root-node2 1260 + ctx||459: get-root-node2 1261 + evt458: as node! 0 + ctx||460: get-root-node2 1264 + ctx||462: get-root-node2 1265 + evt461: as node! 0 + ctx||463: get-root-node2 1268 + ctx||465: get-root-node2 1269 + ctx||467: get-root-node2 1270 + ctx||469: get-root-node2 1272 + ctx||470: get-root-node2 1275 + ctx||472: get-root-node2 1278 + ctx||474: get-root-node2 1321 + ctx||477: get-root-node2 1325 + ctx||478: get-root-node2 1328 + ctx||480: get-root-node2 1330 + ctx||482: get-root-node2 1331 + ctx||484: get-root-node2 1333 + ctx||485: get-root-node2 1336 + ctx||486: get-root-node2 1339 + ctx||487: get-root-node2 1345 + ctx||488: get-root-node2 1350 + ctx||490: get-root-node2 1351 + ctx||491: get-root-node2 1354 + ctx||492: get-root-node2 1357 + ctx||493: get-root-node2 1360 + ctx||494: get-root-node2 1363 + ctx||495: get-root-node2 1366 + ctx||496: get-root-node2 1369 + ctx||497: get-root-node2 1372 + ctx||498: get-root-node2 1375 + ctx||499: get-root-node2 1378 + ctx||500: get-root-node2 1381 + ctx||501: get-root-node2 1384 + ctx||502: get-root-node2 1387 + ctx||503: get-root-node2 1390 + ctx||504: get-root-node2 1393 + ctx||505: get-root-node2 1396 + ctx||508: get-root-node2 1399 + ctx||509: get-root-node2 1402 + ctx||510: get-root-node2 1405 + ctx||511: get-root-node2 1408 + ctx||512: get-root-node2 1411 + ctx||513: get-root-node2 1414 + ctx||514: get-root-node2 1417 + ctx||515: get-root-node2 1420 + ctx||516: get-root-node2 1423 + ctx||517: get-root-node2 1426 + ctx||518: get-root-node2 1429 + ctx||519: get-root-node2 1432 + ctx||520: get-root-node2 1435 + ctx||521: get-root-node2 1438 + ctx||522: get-root-node2 1441 + ctx||523: get-root-node2 1444 + ctx||524: get-root-node2 1447 + ctx||525: get-root-node2 1450 + ctx||571: get-root-node2 1526 + ctx||629: get-root-node2 1642 + ctx||818: get-root-node2 1739 + ] 1195 [%modules/view/view.red] [f_routine #[object! [ + spec: #[none] + body: #[none] + ]] ctx||52 [{Defines a function with a given Red spec and Red/System body} spec [block!] body [block!]] f_alert #[object! [ + msg: #[none] + ]] ctx||53 [msg [block! string!]] f_also #[object! [ + value1: #[none] + value2: #[none] + ]] ctx||54 [ + {Returns the first value, but also evaluates the second} + value1 [any-type!] + value2 [any-type!] + ] f_attempt #[object! [ + value: #[none] + safer: #[none] + ]] ctx||55 [ + {Tries to evaluate a block and returns result or NONE on error} + value [block!] + /safer "Capture all possible errors and exceptions" + ] f_comment #[object! [ + value: #[none] + ]] ctx||56 ["Consume but don't evaluate the next value" 'value] f_quit #[object! [ + return: #[none] + status: #[none] + ]] ctx||57 [ + "Stops evaluation and exits the program" + /return status [integer!] "Return an exit status" + ] f_empty? #[object! [ + series: #[none] + ]] ctx||58 [ + {Returns true if a series is at its tail or a map! is empty} + series [map! none! series!] + return: [logic!] + ] f_?? #[object! [ + value: #[none] + ]] ctx||59 [ + "Prints a word and the value it refers to (molded)" + 'value [path! word!] + ] f_probe #[object! [ + value: #[none] + ]] ctx||60 [ + "Returns a value after printing its molded form" + value [any-type!] + ] f_quote #[object! [ + value: #[none] + ]] ctx||61 [ + "Return but don't evaluate the next value" + :value + ] f_first #[object! [ + s: #[none] + ]] ctx||62 ["Returns the first value in a series" s [date! pair! series! time! tuple!]] f_second #[object! [ + s: #[none] + ]] ctx||63 ["Returns the second value in a series" s [date! pair! series! time! tuple!]] f_third #[object! [ + s: #[none] + ]] ctx||64 ["Returns the third value in a series" s [date! series! time! tuple!]] f_fourth #[object! [ + s: #[none] + ]] ctx||65 ["Returns the fourth value in a series" s [date! series! tuple!]] f_fifth #[object! [ + s: #[none] + ]] ctx||66 ["Returns the fifth value in a series" s [date! series! tuple!]] f_last #[object! [ + s: #[none] + ]] ctx||67 ["Returns the last value in a series" s [series! tuple!]] f_spec-of #[object! [ + value: #[none] + ]] ctx||68 [{Returns the spec of a value that supports reflection} value] f_body-of #[object! [ + value: #[none] + ]] ctx||69 [{Returns the body of a value that supports reflection} value] f_words-of #[object! [ + value: #[none] + ]] ctx||70 [{Returns the list of words of a value that supports reflection} value] f_class-of #[object! [ + value: #[none] + ]] ctx||71 ["Returns the class ID of an object" value] f_values-of #[object! [ + value: #[none] + ]] ctx||72 [{Returns the list of values of a value that supports reflection} value] f_bitset? #[object! [ + value: #[none] + ]] ctx||73 + ["Returns true if the value is this type" value [any-type!]] f_binary? #[object! [ + value: #[none] + ]] ctx||74 + ["Returns true if the value is this type" value [any-type!]] f_block? #[object! [ + value: #[none] + ]] ctx||75 + ["Returns true if the value is this type" value [any-type!]] f_char? #[object! [ + value: #[none] + ]] ctx||76 + ["Returns true if the value is this type" value [any-type!]] f_email? #[object! [ + value: #[none] + ]] ctx||77 + ["Returns true if the value is this type" value [any-type!]] f_file? #[object! [ + value: #[none] + ]] ctx||78 + ["Returns true if the value is this type" value [any-type!]] f_float? #[object! [ + value: #[none] + ]] ctx||79 + ["Returns true if the value is this type" value [any-type!]] f_get-path? #[object! [ + value: #[none] + ]] ctx||80 + ["Returns true if the value is this type" value [any-type!]] f_get-word? #[object! [ + value: #[none] + ]] ctx||81 + ["Returns true if the value is this type" value [any-type!]] f_hash? #[object! [ + value: #[none] + ]] ctx||82 + ["Returns true if the value is this type" value [any-type!]] f_integer? #[object! [ + value: #[none] + ]] ctx||83 + ["Returns true if the value is this type" value [any-type!]] f_issue? #[object! [ + value: #[none] + ]] ctx||84 + ["Returns true if the value is this type" value [any-type!]] f_lit-path? #[object! [ + value: #[none] + ]] ctx||85 + ["Returns true if the value is this type" value [any-type!]] f_lit-word? #[object! [ + value: #[none] + ]] ctx||86 + ["Returns true if the value is this type" value [any-type!]] f_logic? #[object! [ + value: #[none] + ]] ctx||87 + ["Returns true if the value is this type" value [any-type!]] f_map? #[object! [ + value: #[none] + ]] ctx||88 + ["Returns true if the value is this type" value [any-type!]] f_none? #[object! [ + value: #[none] + ]] ctx||89 + ["Returns true if the value is this type" value [any-type!]] f_pair? #[object! [ + value: #[none] + ]] ctx||90 + ["Returns true if the value is this type" value [any-type!]] f_paren? #[object! [ + value: #[none] + ]] ctx||91 + ["Returns true if the value is this type" value [any-type!]] f_path? #[object! [ + value: #[none] + ]] ctx||92 + ["Returns true if the value is this type" value [any-type!]] f_percent? #[object! [ + value: #[none] + ]] ctx||93 + ["Returns true if the value is this type" value [any-type!]] f_refinement? #[object! [ + value: #[none] + ]] ctx||94 + ["Returns true if the value is this type" value [any-type!]] f_set-path? #[object! [ + value: #[none] + ]] ctx||95 + ["Returns true if the value is this type" value [any-type!]] f_set-word? #[object! [ + value: #[none] + ]] ctx||96 + ["Returns true if the value is this type" value [any-type!]] f_string? #[object! [ + value: #[none] + ]] ctx||97 + ["Returns true if the value is this type" value [any-type!]] f_tag? #[object! [ + value: #[none] + ]] ctx||98 + ["Returns true if the value is this type" value [any-type!]] f_time? #[object! [ + value: #[none] + ]] ctx||99 + ["Returns true if the value is this type" value [any-type!]] f_typeset? #[object! [ + value: #[none] + ]] ctx||100 + ["Returns true if the value is this type" value [any-type!]] f_tuple? #[object! [ + value: #[none] + ]] ctx||101 + ["Returns true if the value is this type" value [any-type!]] f_unset? #[object! [ + value: #[none] + ]] ctx||102 + ["Returns true if the value is this type" value [any-type!]] f_url? #[object! [ + value: #[none] + ]] ctx||103 + ["Returns true if the value is this type" value [any-type!]] f_word? #[object! [ + value: #[none] + ]] ctx||104 + ["Returns true if the value is this type" value [any-type!]] f_image? #[object! [ + value: #[none] + ]] ctx||105 + ["Returns true if the value is this type" value [any-type!]] f_date? #[object! [ + value: #[none] + ]] ctx||106 + ["Returns true if the value is this type" value [any-type!]] f_money? #[object! [ + value: #[none] + ]] ctx||107 + ["Returns true if the value is this type" value [any-type!]] f_ref? #[object! [ + value: #[none] + ]] ctx||108 + ["Returns true if the value is this type" value [any-type!]] f_handle? #[object! [ + value: #[none] + ]] ctx||109 + ["Returns true if the value is this type" value [any-type!]] f_error? #[object! [ + value: #[none] + ]] ctx||110 + ["Returns true if the value is this type" value [any-type!]] f_action? #[object! [ + value: #[none] + ]] ctx||111 + ["Returns true if the value is this type" value [any-type!]] f_native? #[object! [ + value: #[none] + ]] ctx||112 + ["Returns true if the value is this type" value [any-type!]] f_datatype? #[object! [ + value: #[none] + ]] ctx||113 + ["Returns true if the value is this type" value [any-type!]] f_function? #[object! [ + value: #[none] + ]] ctx||114 + ["Returns true if the value is this type" value [any-type!]] f_object? #[object! [ + value: #[none] + ]] ctx||115 + ["Returns true if the value is this type" value [any-type!]] f_op? #[object! [ + value: #[none] + ]] ctx||116 + ["Returns true if the value is this type" value [any-type!]] f_routine? #[object! [ + value: #[none] + ]] ctx||117 + ["Returns true if the value is this type" value [any-type!]] f_vector? #[object! [ + value: #[none] + ]] ctx||118 + ["Returns true if the value is this type" value [any-type!]] f_any-list? #[object! [ + value: #[none] + ]] ctx||119 ["Returns true if the value is any type of any-list" value [any-type!]] f_any-block? #[object! [ + value: #[none] + ]] ctx||120 ["Returns true if the value is any type of any-block" value [any-type!]] f_any-function? #[object! [ + value: #[none] + ]] ctx||121 [{Returns true if the value is any type of any-function} value [any-type!]] f_any-object? #[object! [ + value: #[none] + ]] ctx||122 [{Returns true if the value is any type of any-object} value [any-type!]] f_any-path? #[object! [ + value: #[none] + ]] ctx||123 ["Returns true if the value is any type of any-path" value [any-type!]] f_any-string? #[object! [ + value: #[none] + ]] ctx||124 [{Returns true if the value is any type of any-string} value [any-type!]] f_any-word? #[object! [ + value: #[none] + ]] ctx||125 ["Returns true if the value is any type of any-word" value [any-type!]] f_series? #[object! [ + value: #[none] + ]] ctx||126 ["Returns true if the value is any type of series" value [any-type!]] f_number? #[object! [ + value: #[none] + ]] ctx||127 ["Returns true if the value is any type of number" value [any-type!]] f_immediate? #[object! [ + value: #[none] + ]] ctx||128 ["Returns true if the value is any type of immediate" value [any-type!]] f_scalar? #[object! [ + value: #[none] + ]] ctx||129 ["Returns true if the value is any type of scalar" value [any-type!]] f_all-word? #[object! [ + value: #[none] + ]] ctx||130 ["Returns true if the value is any type of all-word" value [any-type!]] f_to-bitset #[object! [ + value: #[none] + ]] ctx||131 ["Convert to bitset! value" value] f_to-binary #[object! [ + value: #[none] + ]] ctx||132 ["Convert to binary! value" value] f_to-block #[object! [ + value: #[none] + ]] ctx||133 ["Convert to block! value" value] f_to-char #[object! [ + value: #[none] + ]] ctx||134 ["Convert to char! value" value] f_to-email #[object! [ + value: #[none] + ]] ctx||135 ["Convert to email! value" value] f_to-file #[object! [ + value: #[none] + ]] ctx||136 ["Convert to file! value" value] f_to-float #[object! [ + value: #[none] + ]] ctx||137 ["Convert to float! value" value] f_to-get-path #[object! [ + value: #[none] + ]] ctx||138 ["Convert to get-path! value" value] f_to-get-word #[object! [ + value: #[none] + ]] ctx||139 ["Convert to get-word! value" value] f_to-hash #[object! [ + value: #[none] + ]] ctx||140 ["Convert to hash! value" value] f_to-integer #[object! [ + value: #[none] + ]] ctx||141 ["Convert to integer! value" value] f_to-issue #[object! [ + value: #[none] + ]] ctx||142 ["Convert to issue! value" value] f_to-lit-path #[object! [ + value: #[none] + ]] ctx||143 ["Convert to lit-path! value" value] f_to-lit-word #[object! [ + value: #[none] + ]] ctx||144 ["Convert to lit-word! value" value] f_to-logic #[object! [ + value: #[none] + ]] ctx||145 ["Convert to logic! value" value] f_to-map #[object! [ + value: #[none] + ]] ctx||146 ["Convert to map! value" value] f_to-none #[object! [ + value: #[none] + ]] ctx||147 ["Convert to none! value" value] f_to-pair #[object! [ + value: #[none] + ]] ctx||148 ["Convert to pair! value" value] f_to-paren #[object! [ + value: #[none] + ]] ctx||149 ["Convert to paren! value" value] f_to-path #[object! [ + value: #[none] + ]] ctx||150 ["Convert to path! value" value] f_to-percent #[object! [ + value: #[none] + ]] ctx||151 ["Convert to percent! value" value] f_to-refinement #[object! [ + value: #[none] + ]] ctx||152 ["Convert to refinement! value" value] f_to-set-path #[object! [ + value: #[none] + ]] ctx||153 ["Convert to set-path! value" value] f_to-set-word #[object! [ + value: #[none] + ]] ctx||154 ["Convert to set-word! value" value] f_to-string #[object! [ + value: #[none] + ]] ctx||155 ["Convert to string! value" value] f_to-tag #[object! [ + value: #[none] + ]] ctx||156 ["Convert to tag! value" value] f_to-time #[object! [ + value: #[none] + ]] ctx||157 ["Convert to time! value" value] f_to-typeset #[object! [ + value: #[none] + ]] ctx||158 ["Convert to typeset! value" value] f_to-tuple #[object! [ + value: #[none] + ]] ctx||159 ["Convert to tuple! value" value] f_to-unset #[object! [ + value: #[none] + ]] ctx||160 ["Convert to unset! value" value] f_to-url #[object! [ + value: #[none] + ]] ctx||161 ["Convert to url! value" value] f_to-word #[object! [ + value: #[none] + ]] ctx||162 ["Convert to word! value" value] f_to-image #[object! [ + value: #[none] + ]] ctx||163 ["Convert to image! value" value] f_to-date #[object! [ + value: #[none] + ]] ctx||164 ["Convert to date! value" value] f_to-money #[object! [ + value: #[none] + ]] ctx||165 ["Convert to money! value" value] f_to-ref #[object! [ + value: #[none] + ]] ctx||166 ["Convert to ref! value" value] f_context #[object! [ + spec: #[none] + ]] ctx||167 [ + "Makes a new object from an evaluated spec" + spec [block!] + ] f_alter #[object! [ + series: #[none] + value: #[none] + ]] ctx||168 [ + {If a value is not found in a series, append it; otherwise, remove it. Returns true if added} + series [series!] + value + ] f_offset? #[object! [ + series1: #[none] + series2: #[none] + ]] ctx||169 [ + "Returns the offset between two series positions" + series1 [series!] + series2 [series!] + ] f_repend #[object! [ + series: #[none] + value: #[none] + only: #[none] + ]] ctx||170 [ + {Appends a reduced value to a series and returns the series head} + series [series!] + value + /only "Appends a block value as a block" + ] f_replace #[object! [ + series: #[none] + pattern: #[none] + value: #[none] + all: #[none] + deep: #[none] + case: #[none] + local: #[none] + parse?: #[none] + form?: #[none] + quote?: #[none] + deep?: #[none] + rule: #[none] + many?: #[none] + size: #[none] + seek: #[none] + ]] ctx||171 [ + "Replaces values in a series, in place" + series [any-block! any-string! binary! vector!] "The series to be modified" + pattern "Specific value or parse rule pattern to match" + value "New value, replaces pattern in the series" + /all "Replace all occurrences, not just the first" + /deep "Replace pattern in all sub-lists as well" + /case "Case-sensitive replacement" + /local parse? form? quote? deep? rule many? size seek + ] f_math #[object! [ + datum: #[none] + local: #[none] + match: #[none] + order: #[none] + infix: #[none] + tally: #[none] + enter: #[none] + recur: #[none] + count: #[none] + operator: #[none] + ]] ctx||172 [ + "Evaluates expression using math precedence rules" + datum [block! paren!] "Expression to evaluate" + /local match + order infix tally enter recur count operator + ] f_charset #[object! [ + spec: #[none] + ]] ctx||173 [ + "Shortcut for `make bitset!`" + spec [binary! bitset! block! char! integer! string!] + ] f_ctx||174~on-parse-event #[object! [ + event: #[none] + match?: #[none] + rule: #[none] + input: #[none] + stack: #[none] + ]] ctx||176 [ + "Standard parse/trace callback used by PARSE-TRACE" + event [word!] {Trace events: push, pop, fetch, match, iterate, paren, end} + match? [logic!] "Result of last matching operation" + rule [block!] "Current rule at current position" + input [series!] "Input series at next position to match" + stack [block!] "Internal parse rules stack" + return: [logic!] {TRUE: continue parsing, FALSE: stop and exit parsing} + ] f_parse-trace #[object! [ + input: #[none] + rules: #[none] + case: #[none] + part: #[none] + limit: #[none] + ]] ctx||177 [ + {Wrapper for parse/trace using the default event processor} + input [series!] + rules [block!] + /case "Uses case-sensitive comparison" + /part "Limit to a length or position" + limit [integer!] + return: [logic! block!] + ] f_suffix? #[object! [ + path: #[none] + ]] ctx||178 [ + {Returns the suffix (extension) of a filename or url, or NONE if there is no suffix} + path [email! file! string! url!] + ] f_scan #[object! [ + buffer: #[none] + next: #[none] + fast: #[none] + ]] ctx||179 [ + {Returns the guessed type of the first serialized value from the input} + buffer [binary! string!] "Input UTF-8 buffer or string" + /next {Returns both the type and the input after the value} + /fast "Fast scanning, returns best guessed type" + return: [datatype! none!] "Recognized or guessed type, or NONE on empty input" + ] f_load #[object! [ + source: #[none] + header: #[none] + all: #[none] + trap: #[none] + next: #[none] + position: #[none] + part: #[none] + length: #[none] + into: #[none] + out: #[none] + as: #[none] + type: #[none] + local: #[none] + codec: #[none] + suffix: #[none] + name: #[none] + mime: #[none] + pre-load: #[none] + ]] ctx||180 [ + {Returns a value or block of values by reading and evaluating a source} + source [binary! file! string! url!] + /header "TBD" + /all {Load all values, returns a block. TBD: Don't evaluate Red header} + /trap "Load all values, returns [[values] position error]" + /next {Load the next value only, updates source series word} + position [word!] "Word updated with new series position" + /part "Limit to a length or position" + length [integer! string!] + /into {Put results in out block, instead of creating a new block} + out [block!] "Target block for results" + /as "Specify the type of data; use NONE to load as code" + type [none! word!] "E.g. bmp, gif, jpeg, png" + /local codec suffix name mime pre-load + ] f_save #[object! [ + where: #[none] + value: #[none] + header: #[none] + header-data: #[none] + all: #[none] + length: #[none] + as: #[none] + format: #[none] + local: #[none] + dst: #[none] + codec: #[none] + data: #[none] + suffix: #[none] + find-encoder?: #[none] + name: #[none] + pos: #[none] + header-str: #[none] + k: #[none] + v: #[none] + ]] ctx||181 [ + {Saves a value, block, or other data to a file, URL, binary, or string} + where [binary! file! none! string! url!] "Where to save" + value [any-type!] "Value(s) to save" + /header {Provide a Red header block (or output non-code datatypes)} + header-data [block! object!] + /all "TBD: Save in serialized format" + /length {Save the length of the script content in the header} + /as {Specify the format of data; use NONE to save as plain text} + format [none! word!] "E.g. bmp, gif, jpeg, png" + /local dst codec data suffix find-encoder? name pos header-str k v + ] f_cause-error #[object! [ + err-type: #[none] + err-id: #[none] + args: #[none] + ]] ctx||182 [ + {Causes an immediate error throw, with the provided information} + err-type [word!] + err-id [word!] + args [block! string!] + ] f_pad #[object! [ + str: #[none] + n: #[none] + left: #[none] + with: #[none] + c: #[none] + ]] ctx||183 [ + "Pad a FORMed value on right side with spaces" + str "Value to pad, FORM it if not a string" + n [integer!] "Total size (in characters) of the new string" + /left "Pad the string on left side" + /with "Pad with char" + c [char!] + return: [string!] "Modified input string at head" + ] f_mod #[object! [ + a: #[none] + b: #[none] + local: #[none] + r: #[none] + ]] ctx||184 [ + "Compute a nonnegative remainder of A divided by B" + a [char! money! number! pair! time! tuple! vector!] + b [char! money! number! pair! time! tuple! vector!] "Must be nonzero" + return: [number! money! char! pair! tuple! vector! time!] + /local r + ] f_modulo #[object! [ + a: #[none] + b: #[none] + local: #[none] + r: #[none] + ]] ctx||185 [ + {Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero} + a [char! money! number! pair! time! tuple! vector!] + b [char! money! number! pair! time! tuple! vector!] + return: [number! money! char! pair! tuple! vector! time!] + /local r + ] f_eval-set-path #[object! [ + value1: #[none] + ]] ctx||186 ["Internal Use Only" value1] f_to-red-file #[object! [ + path: #[none] + local: #[none] + colon?: #[none] + slash?: #[none] + len: #[none] + i: #[none] + c: #[none] + dst: #[none] + ]] ctx||187 [ + {Converts a local system file path to a Red file path} + path [file! string!] + return: [file!] + /local colon? slash? len i c dst + ] f_dir? #[object! [ + file: #[none] + ]] ctx||188 [{Returns TRUE if the value looks like a directory spec} file [file! url!]] f_normalize-dir #[object! [ + dir: #[none] + ]] ctx||189 [ + "Returns an absolute directory spec" + dir [file! path! word!] + ] f_what-dir #[object! [ + local: #[none] + path: #[none] + ]] ctx||190 [ + "Returns the active directory path" + /local path + ] f_change-dir #[object! [ + dir: #[none] + ]] ctx||191 [ + "Changes the active directory path" + dir [file! path! word!] {New active directory of relative path to the new one} + ] f_make-dir #[object! [ + path: #[none] + deep: #[none] + local: #[none] + dirs: #[none] + end: #[none] + created: #[none] + dir: #[none] + ]] ctx||192 [ + {Creates the specified directory. No error if already exists} + path [file!] + /deep "Create subdirectories too" + /local dirs end created dir + ] f_extract #[object! [ + series: #[none] + width: #[none] + index: #[none] + pos: #[none] + into: #[none] + output: #[none] + ]] ctx||193 [ + {Extracts a value from a series at regular intervals} + series [series!] + width [integer!] "Size of each entry (the skip)" + /index "Extract from an offset position" + pos [integer!] "The position" + /into {Provide an output series instead of creating a new one} + output [series!] "Output series" + ] f_extract-boot-args #[object! [ + local: #[none] + args: #[none] + at-arg2: #[none] + ws: #[none] + split-mode: #[none] + arg-end: #[none] + s': #[none] + e': #[none] + arg2-update: #[none] + s: #[none] + e: #[none] + ]] ctx||194 [ + {Process command-line arguments and store values in system/options (internal usage)} + /local args at-arg2 ws split-mode arg-end s' e' arg2-update s e + ] f_collect #[object! [ + body: #[none] + into: #[none] + collected: #[none] + local: #[none] + keep: #[none] + rule: #[none] + pos: #[none] + ]] ctx||195 [ + {Collect in a new block all the values passed to KEEP function from the body block} + body [block!] "Block to evaluate" + /into {Insert into a buffer instead (returns position after insert)} + collected [series!] "The buffer series (modified)" + /local keep rule pos + ] f_flip-exe-flag #[object! [ + path: #[none] + local: #[none] + file: #[none] + buffer: #[none] + flag: #[none] + ]] ctx||196 [ + {Flip the sub-system for the red.exe between console and GUI modes (Windows only)} + path [file!] "Path to the red.exe" + /local file buffer flag + ] f_split #[object! [ + series: #[none] + dlm: #[none] + local: #[none] + s: #[none] + num: #[none] + ]] ctx||197 [ + {Break a string series into pieces using the provided delimiters} + series [any-string!] dlm [bitset! char! string!] /local s + num + ] f_dirize #[object! [ + path: #[none] + ]] ctx||198 [ + "Returns a copy of the path turned into a directory" + path [file! string! url!] + ] f_clean-path #[object! [ + file: #[none] + only: #[none] + dir: #[none] + local: #[none] + out: #[none] + cnt: #[none] + f: #[none] + not-file?: #[none] + prot: #[none] + ]] ctx||199 [ + {Cleans-up '.' and '..' in path; returns the cleaned path} + file [file! string! url!] + /only "Do not prepend current directory" + /dir "Add a trailing / if missing" + /local out cnt f not-file? prot + ] f_split-path #[object! [ + target: #[none] + local: #[none] + dir: #[none] + pos: #[none] + ]] ctx||200 [ + {Splits a file or URL path. Returns a block containing path and target} + target [file! url!] + /local dir pos + ] f_do-file #[object! [ + file: #[none] + local: #[none] + ws: #[none] + saved: #[none] + src: #[none] + code: #[none] + new-path: #[none] + header: #[none] + list: #[none] + c: #[none] + ]] ctx||201 ["Internal Use Only" file [file! url!] + /local ws saved src code new-path header list c + ] f_path-thru #[object! [ + url: #[none] + local: #[none] + so: #[none] + hash: #[none] + file: #[none] + path: #[none] + ]] ctx||202 [ + "Returns the local disk cache path of a remote file" + url [url!] "Remote file address" + return: [file!] + /local so hash file path + ] f_exists-thru? #[object! [ + url: #[none] + ]] ctx||203 [ + {Returns true if the remote file is present in the local disk cache} + url [file! url!] "Remote file address" + ] f_read-thru #[object! [ + url: #[none] + update: #[none] + binary: #[none] + local: #[none] + path: #[none] + data: #[none] + ]] ctx||204 [ + "Reads a remote file through local disk cache" + url [url!] "Remote file address" + /update "Force a cache update" + /binary "Use binary mode" + /local path data + ] f_load-thru #[object! [ + url: #[none] + update: #[none] + as: #[none] + type: #[none] + local: #[none] + path: #[none] + file: #[none] + ]] ctx||205 [ + "Loads a remote file through local disk cache" + url [url!] "Remote file address" + /update "Force a cache update" + /as "Specify the type of data; use NONE to load as code" + type [none! word!] "E.g. bmp, gif, jpeg, png" + /local path file + ] f_do-thru #[object! [ + url: #[none] + update: #[none] + ]] ctx||206 [ + {Evaluates a remote Red script through local disk cache} + url [url!] "Remote file address" + /update "Force a cache update" + ] f_cos #[object! [ + angle: #[none] + ]] ctx||207 [ + "Returns the trigonometric cosine" + angle [float!] "Angle in radians" + ] f_sin #[object! [ + angle: #[none] + ]] ctx||208 [ + "Returns the trigonometric sine" + angle [float!] "Angle in radians" + ] f_tan #[object! [ + angle: #[none] + ]] ctx||209 [ + "Returns the trigonometric tangent" + angle [float!] "Angle in radians" + ] f_acos #[object! [ + cosine: #[none] + ]] ctx||210 [ + {Returns the trigonometric arccosine (in radians in range [0,pi])} + cosine [float!] "in range [-1,1]" + ] f_asin #[object! [ + sine: #[none] + ]] ctx||211 [ + {Returns the trigonometric arcsine (in radians in range [-pi/2,pi/2])} + sine [float!] "in range [-1,1]" + ] f_atan #[object! [ + tangent: #[none] + ]] ctx||212 [ + {Returns the trigonometric arctangent (in radians in range [-pi/2,+pi/2])} + tangent [float!] "in range [-inf,+inf]" + ] f_atan2 #[object! [ + y: #[none] + x: #[none] + ]] ctx||213 [ + {Returns the smallest angle between the vectors (1,0) and (x,y) in range (-pi,pi]} + y [number!] + x [number!] + return: [float!] + ] f_sqrt #[object! [ + number: #[none] + ]] ctx||214 [ + "Returns the square root of a number" + number [number!] + return: [float!] + ] f_to-UTC-date #[object! [ + date: #[none] + ]] ctx||215 [ + "Returns the date with UTC zone" + date [date!] + return: [date!] + ] f_to-local-date #[object! [ + date: #[none] + ]] ctx||216 [ + "Returns the date with local zone" + date [date!] + return: [date!] + ] f_transcode-trace #[object! [ + src: #[none] + ]] ctx||217 [ + {Shortcut function for transcoding while tracing all lexer events} + src [binary! string!] + ] f_rejoin #[object! [ + block: #[none] + ]] ctx||218 [ + "Reduces and joins a block of values." + block [block!] "Values to reduce and join" + ] f_sum #[object! [ + values: #[none] + local: #[none] + result: #[none] + value: #[none] + ]] ctx||219 [ + "Returns the sum of all values in a block" + values [block! hash! paren! vector!] + /local result value + ] f_average #[object! [ + block: #[none] + ]] ctx||220 [ + "Returns the average of all values in a block" + block [block! hash! paren! vector!] + ] f_last? #[object! [ + series: #[none] + ]] ctx||221 [ + "Returns TRUE if the series length is 1" + series [series!] + ] f_dt #[object! [ + body: #[none] + local: #[none] + t0: #[none] + ]] ctx||222 [ + "Returns the time required to evaluate a block" + body [block!] + return: [time!] + /local t0 + ] f_ctx||255~interpreted? #[object! [ + ]] ctx||257 ["Return TRUE if called from the interpreter"] f_ctx||262~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + ]] ctx||264 [word old new] f_ctx||262~on-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + ]] ctx||265 [owner word target action new index part] f_ctx||268~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + ]] ctx||270 [word old new] f_ctx||266~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + ]] ctx||271 [word old new] f_ctx||266~on-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + ]] ctx||272 [owner word target action new index part] f_ctx||289~lex #[object! [ + event: #[none] + input: #[none] + type: #[none] + line: #[none] + token: #[none] + ]] ctx||291 [ + event [word!] + input [binary! string!] + type [datatype! none! word!] + line [integer!] + token + return: [logic!] + ] f_ctx||309~encode #[object! [ + data: #[none] + where: #[none] + ]] ctx||316 [data [any-type!] where [file! none! url!]] f_ctx||309~decode #[object! [ + text: #[none] + ]] ctx||317 [text [binary! file! string!]] f_ctx||318~BOM-UTF-16? #[object! [ + data: #[none] + ]] ctx||320 [data [binary! string!]] f_ctx||318~BOM-UTF-32? #[object! [ + data: #[none] + ]] ctx||321 [data [binary! string!]] f_ctx||318~enquote #[object! [ + str: #[none] + ]] ctx||322 [str [string!] "(modified)"] f_ctx||318~high-surrogate? #[object! [ + codepoint: #[none] + ]] ctx||323 [codepoint [integer!]] f_ctx||318~low-surrogate? #[object! [ + codepoint: #[none] + ]] ctx||324 [codepoint [integer!]] f_ctx||318~translit #[object! [ + string: #[none] + rule: #[none] + xlat: #[none] + local: #[none] + val: #[none] + ]] ctx||325 [ + "Transliterate sub-strings in a string" + string [string!] "Input (modified)" + rule [bitset! block!] "What to change" + xlat [block! function!] {Translation table or function. MUST map a string! to a string!.} + /local val + ] f_ctx||318~decode-backslash-escapes #[object! [ + string: #[none] + ]] ctx||326 [string [string!] "(modified)"] f_ctx||318~encode-backslash-escapes #[object! [ + string: #[none] + ]] ctx||327 [string [string!] "(modified)"] f_ctx||318~decode-unicode-char #[object! [ + ch: #[none] + ]] ctx||328 [ + {Convert \uxxxx format (NOT simple JSON backslash escapes) to a Unicode char} + ch [string!] "4 hex digits" + ] f_ctx||318~replace-unicode-escapes #[object! [ + s: #[none] + local: #[none] + c: #[none] + ]] ctx||329 [ + s [string!] "(modified)" + /local c + ] f_ctx||318~push #[object! [ + val: #[none] + ]] ctx||330 [val] f_ctx||318~pop #[object! [ + ]] ctx||331 [] f_ctx||318~emit #[object! [ + value: #[none] + ]] ctx||332 [value] f_load-json #[object! [ + input: #[none] + ]] ctx||333 [ + "Convert a JSON string to Red data" + input [string!] "The JSON string" + ] f_ctx||334~init-state #[object! [ + ind: #[none] + ascii?: #[none] + ]] ctx||336 [ind ascii?] f_ctx||334~emit-indent #[object! [ + output: #[none] + level: #[none] + ]] ctx||337 [output level] f_ctx||334~emit-key-value #[object! [ + output: #[none] + sep: #[none] + map: #[none] + key: #[none] + local: #[none] + value: #[none] + ]] ctx||338 [output sep map key + /local value + ] f_ctx||334~red-to-json-value #[object! [ + output: #[none] + value: #[none] + local: #[none] + special-char: #[none] + mark1: #[none] + mark2: #[none] + escape: #[none] + v: #[none] + keys: #[none] + k: #[none] + ]] ctx||339 [output value + /local special-char mark1 mark2 escape v keys k + ] f_to-json #[object! [ + data: #[none] + pretty: #[none] + indent: #[none] + ascii: #[none] + local: #[none] + result: #[none] + ]] ctx||340 [ + "Convert Red data to a JSON string" + data + /pretty indent [string!] "Pretty format the output, using given indentation" + /ascii "Force ASCII output (instead of UTF-8)" + /local result + ] f_ctx||342~encode #[object! [ + data: #[none] + where: #[none] + ]] ctx||345 [data [any-type!] where [file! none! url!]] f_ctx||342~decode #[object! [ + text: #[none] + ]] ctx||346 [text [binary! file! string!]] f_ctx||347~to-csv-line #[object! [ + data: #[none] + delimiter: #[none] + ]] ctx||349 [ + {Join values as a string and put delimiter between them} + data [block!] "Series to join" + delimiter [char! string!] "Delimiter to put between values" + ] f_ctx||347~escape-value #[object! [ + value: #[none] + delimiter: #[none] + local: #[none] + quot?: #[none] + len: #[none] + ]] ctx||350 [ + {Escape quotes and when required, enclose value in quotes} + value [any-type!] "Value to escape (is formed)" + delimiter [char! string!] "Delimiter character to be escaped" + /local quot? len + ] f_ctx||347~next-column-name #[object! [ + name: #[none] + local: #[none] + length: #[none] + index: #[none] + position: #[none] + previous: #[none] + ]] ctx||351 [ + "Return name of next column (A->B, Z->AA, ...)" + name [char! string!] "Name of current column" + /local length index position previous + ] f_ctx||347~make-header #[object! [ + length: #[none] + local: #[none] + key: #[none] + ]] ctx||352 [ + "Return default header (A-Z, AA-ZZ, ...)" + length [integer!] "Required length of header" + /local key + ] f_ctx||347~get-columns #[object! [ + data: #[none] + local: #[none] + columns: #[none] + ]] ctx||353 [ + "Return all keywords from maps or objects" + data [block!] "Data must block of maps or objects" + /local columns + ] f_ctx||347~encode-map #[object! [ + data: #[none] + delimiter: #[none] + local: #[none] + output: #[none] + keys: #[none] + length: #[none] + key: #[none] + index: #[none] + line: #[none] + ]] ctx||354 [ + "Make CSV string from map! of columns" + data [map!] "Map of columns" + delimiter [char! string!] "Delimiter to use in CSV string" + /local output keys length key index line + ] f_ctx||347~encode-maps #[object! [ + data: #[none] + delimiter: #[none] + local: #[none] + columns: #[none] + value: #[none] + line: #[none] + column: #[none] + ]] ctx||355 [ + "Make CSV string from block of maps/objects" + data [block!] "Block of maps/objects" + delimiter [char! string!] "Delimiter to use in CSV string" + /local columns value line column + ] f_ctx||347~encode-flat #[object! [ + data: #[none] + delimiter: #[none] + size: #[none] + ]] ctx||356 [ + "Convert block of fixed size records to CSV string" + data [block!] "Block treated as fixed size records" + delimiter [char! string!] "Delimiter to use in CSV string" + size [integer!] "Size of record" + ] f_ctx||347~encode-blocks #[object! [ + data: #[none] + delimiter: #[none] + local: #[none] + length: #[none] + line: #[none] + csv-line: #[none] + ]] ctx||357 [ + "Convert block of records to CSV string" + data [block!] "Block of blocks, each block is one record" + delimiter [char! string!] "Delimiter to use in CSV string" + /local length line csv-line + ] f_load-csv #[object! [ + data: #[none] + with: #[none] + delimiter: #[none] + header: #[none] + as-columns: #[none] + as-records: #[none] + flat: #[none] + trim: #[none] + quote: #[none] + qt-char: #[none] + local: #[none] + disallowed: #[none] + refs: #[none] + output: #[none] + out-map: #[none] + longest: #[none] + line: #[none] + value: #[none] + newline: #[none] + quotchars: #[none] + valchars: #[none] + quoted-value: #[none] + char: #[none] + normal-value: #[none] + s: #[none] + e: #[none] + single-value: #[none] + values: #[none] + add-value: #[none] + add-line: #[none] + length: #[none] + index: #[none] + line-rule: #[none] + init: #[none] + parsed?: #[none] + mark: #[none] + key-index: #[none] + key: #[none] + ]] ctx||358 [ + {Converts CSV text to a block of rows, where each row is a block of fields.} + data [string!] "Text CSV data to load" + /with + delimiter [char! string!] "Delimiter to use (default is comma)" + /header {Treat first line as header; implies /as-columns if /as-records is not used} + /as-columns {Returns named columns; default names if /header is not used} + /as-records "Returns records instead of rows; implies /header" + /flat {Returns a flat block; you need to know the number of fields} + /trim "Ignore spaces between quotes and delimiter" + /quote + qt-char [char!] {Use different character for quotes than double quote (")} + /local disallowed refs output out-map longest line value newline quotchars valchars quoted-value char normal-value s e single-value values add-value add-line length index line-rule init parsed? mark key-index key + ] f_to-csv #[object! [ + data: #[none] + with: #[none] + delimiter: #[none] + skip: #[none] + size: #[none] + quote: #[none] + qt-char: #[none] + local: #[none] + longest: #[none] + keyval?: #[none] + types: #[none] + value: #[none] + ]] ctx||359 [ + "Make CSV data from input value" + data [block! map! object!] {May be block of fixed size records, block of block records, or map columns} + /with "Delimiter to use (default is comma)" + delimiter [char! string!] + /skip "Treat block as table of records with fixed length" + size [integer!] + /quote + qt-char [char!] {Use different character for quotes than double quote (")} + /local longest keyval? types value + ] f_ctx||364~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + local: #[none] + srs: #[none] + ]] ctx||366 [word old new + /local srs + ] f_ctx||367~on-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + ]] ctx||369 [owner word target action new index part] f_reactor #[object! [ + spec: #[none] + ]] ctx||370 [spec [block!]] f_deep-reactor #[object! [ + spec: #[none] + ]] ctx||371 [spec [block!]] f_ctx||372~add-relation #[object! [ + obj: #[none] + word: #[none] + reaction: #[none] + targets: #[none] + local: #[none] + new-rel: #[none] + ]] ctx||374 [ + obj [object!] + word + reaction [block! function!] + targets [block! none! object! set-word!] + /local new-rel + ] f_ctx||372~eval #[object! [ + code: #[none] + safe: #[none] + local: #[none] + result: #[none] + ]] ctx||375 [code [block!] /safe + /local result + ] f_ctx||372~eval-reaction #[object! [ + reactor: #[none] + reaction: #[none] + target: #[none] + mark: #[none] + ]] ctx||376 [reactor [object!] reaction [block! function!] target /mark] f_ctx||372~pending? #[object! [ + reactor: #[none] + reaction: #[none] + local: #[none] + q: #[none] + ]] ctx||377 [reactor [object!] reaction [block! function!] + /local q + ] f_ctx||372~check #[object! [ + reactor: #[none] + only: #[none] + field: #[none] + local: #[none] + pos: #[none] + reaction: #[none] + q: #[none] + q': #[none] + ]] ctx||378 [reactor [object!] /only field [set-word! word!] + /local pos reaction q q' + ] f_stop-reactor #[object! [ + face: #[none] + deep: #[none] + local: #[none] + list: #[none] + pos: #[none] + f: #[none] + ]] ctx||379 [ + face [object!] + /deep + /local list pos f + ] f_clear-reactions #[object! [ + ]] ctx||380 ["Removes all reactive relations"] f_dump-reactions #[object! [ + local: #[none] + limit: #[none] + count: #[none] + obj: #[none] + field: #[none] + reaction: #[none] + target: #[none] + list: #[none] + ]] ctx||381 [ + {Output all the current reactive relations for debugging purpose} + /local limit count obj field reaction target list + ] f_ctx||372~is~ #[object! [ + field: #[none] + reaction: #[none] + local: #[none] + obj: #[none] + rule: #[none] + item: #[none] + ]] ctx||382 [ + {Defines a reactive relation whose result is assigned to a word} + 'field [set-word!] {Set-word which will get set to the result of the reaction} + reaction [block!] "Reactive relation" + /local obj rule item + ] f_react? #[object! [ + reactor: #[none] + field: #[none] + target: #[none] + local: #[none] + pos: #[none] + ]] ctx||383 [ + {Returns a reactive relation if an object's field is a reactive source} + reactor [object!] "Object to check" + field [word!] "Field to check" + /target "Check if it's a target instead of a source" + return: [block! function! word! none!] "Returns reaction, type or NONE" + /local pos + ] f_react #[object! [ + reaction: #[none] + link: #[none] + objects: #[none] + unlink: #[none] + src: #[none] + later: #[none] + with: #[none] + ctx: #[none] + local: #[none] + objs: #[none] + found?: #[none] + rule: #[none] + item: #[none] + pos: #[none] + obj: #[none] + saved: #[none] + part: #[none] + path: #[none] + ]] ctx||384 [ + {Defines a new reactive relation between two or more objects} + reaction [block! function!] "Reactive relation" + /link "Link objects together using a reactive relation" + objects [block!] "Objects to link together" + /unlink "Removes an existing reactive relation" + src [block! object! word!] "'all word, or a reactor or a list of reactors" + /later "Run the reaction on next change instead of now" + /with "Specifies an optional face object (internal use)" + ctx [none! object! set-word!] "Optional context for VID faces or target set-word" + return: [block! function! none!] {The reactive relation or NONE if no relation was processed} + /local objs found? rule item pos obj saved part path + ] f_register-scheme #[object! [ + spec: #[none] + native: #[none] + dispatch: #[none] + ]] ctx||386 [ + "Registers a new scheme" + spec [object!] "Scheme definition" + /native + dispatch [handle!] + ] f_ctx||387~alpha-num+ #[object! [ + more: #[none] + ]] ctx||389 [more [string!]] f_ctx||387~parse-url #[object! [ + url: #[none] + throw-error: #[none] + local: #[none] + scheme: #[none] + user-info: #[none] + host: #[none] + port: #[none] + path: #[none] + target: #[none] + query: #[none] + fragment: #[none] + ref: #[none] + ]] ctx||390 [ + {Return object with URL components, or cause an error if not a valid URL} + url [string! url!] + /throw-error "Throw an error, instead of returning NONE." + /local scheme user-info host port path target query fragment ref + ] f_decode-url #[object! [ + url: #[none] + ]] ctx||391 [ + {Decode a URL into an object containing its constituent parts} + url [string! url!] + ] f_encode-url #[object! [ + url-obj: #[none] + local: #[none] + result: #[none] + ]] ctx||392 [url-obj [object!] "What you'd get from decode-url" + /local result + ] f_ctx||393~do-quit #[object! [ + ]] ctx||395 [] f_ctx||393~throw-error #[object! [ + error: #[none] + cmd: #[none] + code: #[none] + local: #[none] + w: #[none] + ]] ctx||396 [error [error!] cmd [issue!] code [block!] /local w] f_ctx||393~syntax-error #[object! [ + s: #[none] + e: #[none] + ]] ctx||397 [s [block! paren!] e [block! paren!]] f_ctx||393~do-safe #[object! [ + code: #[none] + manual: #[none] + with: #[none] + cmd: #[none] + local: #[none] + res: #[none] + t?: #[none] + src: #[none] + ]] ctx||398 [code [block! paren!] /manual /with cmd [issue!] /local res t? src] f_ctx||393~do-code #[object! [ + code: #[none] + cmd: #[none] + local: #[none] + p: #[none] + ]] ctx||399 [code [block! paren!] cmd [issue!] /local p] f_ctx||393~count-args #[object! [ + spec: #[none] + block: #[none] + local: #[none] + total: #[none] + pos: #[none] + ]] ctx||400 [spec [block!] /block /local total pos] f_ctx||393~arg-mode? #[object! [ + spec: #[none] + idx: #[none] + ]] ctx||401 [spec [block!] idx [integer!]] f_ctx||393~func-arity? #[object! [ + spec: #[none] + with: #[none] + path: #[none] + block: #[none] + local: #[none] + arity: #[none] + pos: #[none] + ]] ctx||402 [spec [block!] /with path [path!] /block /local arity pos] f_ctx||393~value-path? #[object! [ + path: #[none] + local: #[none] + value: #[none] + i: #[none] + item: #[none] + selectable: #[none] + ]] ctx||403 [path [path!] /local value i item selectable] f_ctx||393~fetch-next #[object! [ + code: #[none] + local: #[none] + i: #[none] + left: #[none] + item: #[none] + item2: #[none] + value: #[none] + fn-spec: #[none] + path: #[none] + f-arity: #[none] + at-op?: #[none] + op-mode: #[none] + ]] ctx||404 [code [block! paren!] /local i left item item2 value fn-spec path f-arity at-op? op-mode] f_ctx||393~eval #[object! [ + code: #[none] + cmd: #[none] + local: #[none] + after: #[none] + expr: #[none] + ]] ctx||405 [code [block! paren!] cmd [issue!] /local after expr] f_ctx||393~do-macro #[object! [ + name: #[none] + pos: #[none] + arity: #[none] + local: #[none] + cmd: #[none] + saved: #[none] + p: #[none] + v: #[none] + res: #[none] + ]] ctx||406 [name pos [block! paren!] arity [integer!] /local cmd saved p v res] f_ctx||393~register-macro #[object! [ + spec: #[none] + local: #[none] + cnt: #[none] + rule: #[none] + p: #[none] + name: #[none] + macro: #[none] + pos: #[none] + valid?: #[none] + named?: #[none] + ]] ctx||407 [spec [block!] /local cnt rule p name macro pos valid? named?] f_ctx||393~reset #[object! [ + job: #[none] + ]] ctx||408 [job [none! object!]] f_ctx||393~expand #[object! [ + code: #[none] + job: #[none] + clean: #[none] + local: #[none] + rule: #[none] + e: #[none] + pos: #[none] + cond: #[none] + value: #[none] + then: #[none] + else: #[none] + cases: #[none] + body: #[none] + keep?: #[none] + expr: #[none] + src: #[none] + saved: #[none] + file: #[none] + ]] ctx||409 [ + code [block! paren!] job [none! object!] + /clean + /local rule e pos cond value then else cases body keep? expr src saved file + ] f_expand-directives #[object! [ + code: #[none] + clean: #[none] + local: #[none] + job: #[none] + ]] ctx||410 [ + {Invokes the preprocessor on argument list, modifying and returning it} + code [block! paren!] "List of Red values to preprocess" + /clean "Clear all previously created macros and words" + /local job + ] f_hex-to-rgb #[object! [ + hex: #[none] + local: #[none] + str: #[none] + bin: #[none] + ]] ctx||418 [ + {Converts a color in hex format to a tuple value; returns NONE if it fails} + hex [issue!] "Accepts #rgb, #rrggbb, #rrggbbaa" + return: [tuple! none!] + /local str bin + ] f_within? #[object! [ + point: #[none] + offset: #[none] + size: #[none] + ]] ctx||419 [ + {Return TRUE if the point is within the rectangle bounds} + point [pair!] "XY position" + offset [pair!] "Offset of area" + size [pair!] "Size of area" + return: [logic!] + ] f_overlap? #[object! [ + A: #[none] + B: #[none] + local: #[none] + A1: #[none] + B1: #[none] + A2: #[none] + B2: #[none] + ]] ctx||420 [ + {Return TRUE if the two faces bounding boxes are overlapping} + A [object!] "First face" + B [object!] "Second face" + return: [logic!] "TRUE if overlapping" + /local A1 B1 A2 B2 + ] f_distance? #[object! [ + A: #[none] + B: #[none] + ]] ctx||421 [ + {Returns the distance between the center of two faces} + A [object!] "First face" + B [object!] "Second face" + return: [float!] "Distance between them" + ] f_face? #[object! [ + value: #[none] + ]] ctx||422 [ + value + return: [logic!] + ] f_size-text #[object! [ + face: #[none] + with: #[none] + text: #[none] + ]] ctx||423 [ + face [object!] + /with + text [string!] + return: [pair! none!] + ] f_caret-to-offset #[object! [ + face: #[none] + pos: #[none] + lower: #[none] + local: #[none] + opt: #[none] + ]] ctx||424 [ + face [object!] + pos [integer!] + /lower + return: [pair!] + /local opt + ] f_offset-to-caret #[object! [ + face: #[none] + pt: #[none] + ]] ctx||425 [ + face [object!] + pt [pair!] + return: [integer!] + ] f_offset-to-char #[object! [ + face: #[none] + pt: #[none] + ]] ctx||426 [ + face [object!] + pt [pair!] + return: [integer!] + ] f_ctx||429~tail-idx? #[object! [ + ]] ctx||431 [] f_ctx||429~push-color #[object! [ + c: #[none] + ]] ctx||432 [c [tuple!]] f_ctx||429~pop-color #[object! [ + local: #[none] + entry: #[none] + pos: #[none] + ]] ctx||433 [/local entry pos] f_ctx||429~close-colors #[object! [ + local: #[none] + pos: #[none] + ]] ctx||434 [/local pos] f_ctx||429~push #[object! [ + style: #[none] + ]] ctx||435 [style [block! word!]] f_ctx||429~pop #[object! [ + style: #[none] + local: #[none] + entry: #[none] + type: #[none] + ]] ctx||436 [style [word!] + /local entry type + ] f_ctx||429~pop-all #[object! [ + mark: #[none] + local: #[none] + first?: #[none] + i: #[none] + ]] ctx||437 [mark [block!] + /local first? i + ] f_ctx||429~optimize #[object! [ + local: #[none] + cur: #[none] + pos: #[none] + range: #[none] + pos1: #[none] + e: #[none] + s: #[none] + l: #[none] + mov: #[none] + ]] ctx||438 [ + /local cur pos range pos1 e s l mov + ] f_rtd-layout #[object! [ + spec: #[none] + only: #[none] + with: #[none] + face: #[none] + ]] ctx||439 [ + "Returns a rich-text face from a RTD source code" + spec [block!] "RTD source code" + /only "Returns only [text data] facets" + /with "Populate an existing face object" + face [object!] "Face object to populate" + return: [object! block!] + ] f_ctx||427~line-height? #[object! [ + face: #[none] + pos: #[none] + ]] ctx||440 [ + face [object!] + pos [integer!] + return: [integer!] + ] f_ctx||427~line-count? #[object! [ + face: #[none] + ]] ctx||441 [ + face [object!] + return: [integer!] + ] f_metrics? #[object! [ + face: #[none] + type: #[none] + total: #[none] + axis: #[none] + local: #[none] + res: #[none] + ]] ctx||442 [ + face [object!] + type [word!] + /total + axis [word!] + /local res + ] f_set-flag #[object! [ + face: #[none] + facet: #[none] + value: #[none] + local: #[none] + flags: #[none] + ]] ctx||443 [ + face [object!] + facet [word!] + value [any-type!] + /local flags + ] f_debug-info? #[object! [ + face: #[none] + ]] ctx||444 [face [object!] return: [logic!]] f_on-face-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + state: #[none] + forced?: #[none] + local: #[none] + faces: #[none] + face: #[none] + modal?: #[none] + pane: #[none] + ]] ctx||445 [owner word target action new index part state forced? + /local faces face modal? pane + ] f_link-tabs-to-parent #[object! [ + face: #[none] + init: #[none] + local: #[none] + faces: #[none] + visible?: #[none] + ]] ctx||446 [ + face [object!] + /init + /local faces visible? + ] f_link-sub-to-parent #[object! [ + face: #[none] + type: #[none] + old: #[none] + new: #[none] + local: #[none] + parent: #[none] + ]] ctx||447 [face [object!] type [word!] old new + /local parent + ] f_update-font-faces #[object! [ + parent: #[none] + local: #[none] + f: #[none] + ]] ctx||448 [parent [block! none!] + /local f + ] f_ctx||449~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + local: #[none] + srs: #[none] + same-pane?: #[none] + f: #[none] + saved: #[none] + ]] ctx||451 [word old new + /local srs same-pane? f saved + ] f_ctx||449~on-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + ]] ctx||452 [owner word target action new index part] f_ctx||453~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + ]] ctx||455 [word old new] f_ctx||453~on-deep-change* #[object! [ + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + ]] ctx||456 [owner word target action new index part] f_ctx||457~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + local: #[none] + f: #[none] + ]] ctx||459 [word old new + /local f + ] f_ctx||460~on-change* #[object! [ + word: #[none] + old: #[none] + new: #[none] + ]] ctx||462 [word old new] f_ctx||463~capture-events #[object! [ + face: #[none] + event: #[none] + local: #[none] + result: #[none] + ]] ctx||469 [face [object!] event [event!] /local result] f_ctx||463~awake #[object! [ + event: #[none] + with: #[none] + face: #[none] + local: #[none] + result: #[none] + handler: #[none] + ]] ctx||470 [event [event!] /with face /local result + handler + ] f_ctx||472~init #[object! [ + local: #[none] + svs: #[none] + colors: #[none] + fonts: #[none] + ]] ctx||474 [/local svs colors fonts] f_draw #[object! [ + image: #[none] + cmd: #[none] + transparent: #[none] + ]] ctx||477 [ + "Draws scalable vector graphics to an image" + image [image! pair!] "Image or size for an image" + cmd [block!] "Draw commands" + /transparent "Make a transparent image, if pair! spec is used" + return: [image!] + ] f_ctx||482~color-backgrounds #[object! [ + root: #[none] + ]] ctx||484 [ + {Color the background of faces with no color, with parent's background color} + root [object!] + ] f_ctx||482~color-tabpanel-children #[object! [ + root: #[none] + local: #[none] + gp: #[none] + ]] ctx||485 [ + {Color the background of faces with no color, with parent's background color} + root [object!] + /local gp + ] f_ctx||482~OK-Cancel #[object! [ + root: #[none] + local: #[none] + pos-x: #[none] + last-but: #[none] + pos-y: #[none] + f: #[none] + ]] ctx||486 [ + "Put Cancel buttons last" + root [object!] + /local pos-x last-but pos-y f + ] f_ctx||480~process #[object! [ + root: #[none] + local: #[none] + list: #[none] + name: #[none] + ]] ctx||487 [root [object!] + /local list name + ] f_ctx||478~throw-error #[object! [ + spec: #[none] + ]] ctx||490 [spec [block!]] f_ctx||478~process-reactors #[object! [ + reactors: #[none] + local: #[none] + res: #[none] + f: #[none] + blk: #[none] + later?: #[none] + ctx: #[none] + face: #[none] + ]] ctx||491 [reactors [block!] /local res + f blk later? ctx face + ] f_ctx||478~calc-size #[object! [ + face: #[none] + local: #[none] + min-sz: #[none] + data: #[none] + txt: #[none] + s: #[none] + len: #[none] + mark: #[none] + e: #[none] + new: #[none] + ]] ctx||492 [face [object!] + /local min-sz data txt s len mark e new + ] f_ctx||478~align-faces #[object! [ + pane: #[none] + dir: #[none] + align: #[none] + max-sz: #[none] + local: #[none] + edge?: #[none] + top-left?: #[none] + axis: #[none] + svmm: #[none] + face: #[none] + offset: #[none] + mar: #[none] + type: #[none] + ]] ctx||493 [pane [block!] dir [word!] align [word!] max-sz [integer!] + /local edge? top-left? axis svmm face offset mar type + ] f_ctx||478~resize-child-panels #[object! [ + tab: #[none] + local: #[none] + tp-size: #[none] + pad: #[none] + pane: #[none] + ]] ctx||494 [tab [object!] + /local tp-size pad pane + ] f_ctx||478~clean-style #[object! [ + tmpl: #[none] + type: #[none] + local: #[none] + para: #[none] + font: #[none] + ]] ctx||495 [tmpl [block!] type [word!] /local para font] f_ctx||478~process-draw #[object! [ + code: #[none] + local: #[none] + rule: #[none] + pos: #[none] + color: #[none] + ]] ctx||496 [code [block!] + /local rule pos color + ] f_ctx||478~pre-load #[object! [ + value: #[none] + local: #[none] + color: #[none] + ]] ctx||497 [value + /local color + ] f_ctx||478~add-option #[object! [ + opts: #[none] + spec: #[none] + local: #[none] + field: #[none] + value: #[none] + ]] ctx||498 [opts [object!] spec [block!] + /local field value + ] f_ctx||478~add-flag #[object! [ + obj: #[none] + facet: #[none] + field: #[none] + flag: #[none] + local: #[none] + blk: #[none] + ]] ctx||499 [obj [object!] facet [word!] field [word!] flag return: [logic!] + /local blk + ] f_ctx||478~fetch-value #[object! [ + blk: #[none] + local: #[none] + value: #[none] + ]] ctx||500 [blk + /local value + ] f_ctx||478~fetch-argument #[object! [ + expected: #[none] + pos: #[none] + local: #[none] + spec: #[none] + type: #[none] + value: #[none] + ]] ctx||501 [expected [datatype! typeset!] 'pos [word!] + /local spec type value + ] f_ctx||478~fetch-expr #[object! [ + code: #[none] + ]] ctx||502 [code [word!]] f_ctx||478~fetch-options #[object! [ + face: #[none] + opts: #[none] + style: #[none] + spec: #[none] + css: #[none] + reactors: #[none] + styling?: #[none] + no-skip: #[none] + local: #[none] + opt?: #[none] + divides: #[none] + calc-y?: #[none] + do-with: #[none] + obj-spec!: #[none] + rate!: #[none] + color!: #[none] + cursor!: #[none] + value: #[none] + match?: #[none] + drag-on: #[none] + default: #[none] + hint: #[none] + cursor: #[none] + tight?: #[none] + later?: #[none] + max-sz: #[none] + p: #[none] + words: #[none] + user-size?: #[none] + oi: #[none] + x: #[none] + font: #[none] + face-font: #[none] + field: #[none] + actors: #[none] + name: #[none] + f: #[none] + s: #[none] + b: #[none] + pad: #[none] + sz: #[none] + min-sz: #[none] + mar: #[none] + ]] ctx||503 [ + face [object!] opts [object!] style [block!] spec [block!] css [block!] reactors [block!] styling? [logic!] + /no-skip + return: [block!] + /local opt? divides calc-y? do-with obj-spec! rate! color! cursor! value match? drag-on default hint cursor tight? later? max-sz p words user-size? oi x font face-font field actors name f s b pad sz min-sz mar + ] f_ctx||478~make-actor #[object! [ + obj: #[none] + name: #[none] + body: #[none] + spec: #[none] + ]] ctx||504 [obj [object!] name [word!] body spec [block!]] f_layout #[object! [ + spec: #[none] + tight: #[none] + options: #[none] + user-opts: #[none] + flags: #[none] + flgs: #[none] + only: #[none] + parent: #[none] + panel: #[none] + divides: #[none] + styles: #[none] + css: #[none] + local: #[none] + axis: #[none] + anti: #[none] + background!: #[none] + list: #[none] + reactors: #[none] + local-styles: #[none] + pane-size: #[none] + direction: #[none] + align: #[none] + begin: #[none] + size: #[none] + max-sz: #[none] + current: #[none] + global?: #[none] + below?: #[none] + top-left: #[none] + bound: #[none] + cursor: #[none] + origin: #[none] + spacing: #[none] + opts: #[none] + opt-words: #[none] + re-align: #[none] + sz: #[none] + words: #[none] + reset: #[none] + focal-face: #[none] + svmp: #[none] + pad: #[none] + value: #[none] + anti2: #[none] + at-offset: #[none] + later?: #[none] + name: #[none] + styling?: #[none] + style: #[none] + styled?: #[none] + st: #[none] + actors: #[none] + face: #[none] + h: #[none] + pos: #[none] + styled: #[none] + w: #[none] + blk: #[none] + vid-align: #[none] + mar: #[none] + divide?: #[none] + index: #[none] + dir: #[none] + pad2: #[none] + image: #[none] + ]] ctx||505 [ + {Return a face with a pane built from a VID description} + spec [block!] "Dialect block of styles, attributes, and layouts" + /tight "Zero offset and origin" + /options + user-opts [block!] "Optional features in [name: value] format" + /flags + flgs [block! word!] "One or more window flags" + /only "Returns only the pane block" + /parent + panel [object!] + divides [integer! none!] + /styles "Use an existing styles list" + css [block!] "Styles list" + /local axis anti + background! list reactors local-styles pane-size direction align begin size max-sz current global? below? top-left bound cursor origin spacing opts opt-words re-align sz words reset focal-face svmp pad value anti2 at-offset later? name styling? style styled? st actors face h pos styled w blk vid-align mar divide? index dir pad2 image + ] f_do-events #[object! [ + no-wait: #[none] + local: #[none] + result: #[none] + win: #[none] + ]] ctx||508 [ + /no-wait + return: [logic! word!] + /local result + win + ] f_stop-events #[object! [ + ]] ctx||509 [] f_do-safe #[object! [ + code: #[none] + local: #[none] + result: #[none] + ]] ctx||510 [code [block!] /local result] f_do-actor #[object! [ + face: #[none] + event: #[none] + type: #[none] + local: #[none] + result: #[none] + act: #[none] + name: #[none] + ]] ctx||511 [face [object!] event [event! none!] type [word!] /local result + act name + ] f_show #[object! [ + face: #[none] + with: #[none] + parent: #[none] + force: #[none] + local: #[none] + show?: #[none] + f: #[none] + pending: #[none] + owner: #[none] + word: #[none] + target: #[none] + action: #[none] + new: #[none] + index: #[none] + part: #[none] + state: #[none] + new?: #[none] + p: #[none] + obj: #[none] + field: #[none] + pane: #[none] + ]] ctx||512 [ + face [block! object!] + /with + parent [object!] + /force + return: [logic!] + /local show? f pending owner word target action new index part state new? p obj field pane + ] f_unview #[object! [ + all: #[none] + only: #[none] + face: #[none] + local: #[none] + all?: #[none] + svs: #[none] + pane: #[none] + ]] ctx||513 [ + /all + /only + face [object!] + /local all? svs pane + ] f_view #[object! [ + spec: #[none] + tight: #[none] + options: #[none] + opts: #[none] + flags: #[none] + flgs: #[none] + no-wait: #[none] + ]] ctx||514 [ + spec [block! object!] + /tight + /options + opts [block!] + /flags + flgs [block! word!] + /no-wait + ] f_center-face #[object! [ + face: #[none] + x: #[none] + y: #[none] + with: #[none] + parent: #[none] + local: #[none] + pos: #[none] + ]] ctx||515 [ + face [object!] + /x + /y + /with + parent [object!] + return: [object!] + /local pos + ] f_make-face #[object! [ + style: #[none] + spec: #[none] + blk: #[none] + offset: #[none] + xy: #[none] + size: #[none] + wh: #[none] + local: #[none] + svv: #[none] + face: #[none] + styles: #[none] + model: #[none] + opts: #[none] + css: #[none] + ]] ctx||516 [ + style [word!] + /spec + blk [block!] + /offset + xy [pair!] + /size + wh [pair!] + /local + svv face styles model opts css + ] f_dump-face #[object! [ + face: #[none] + local: #[none] + depth: #[none] + f: #[none] + ]] ctx||517 [ + face [object!] + /local depth f + ] f_get-scroller #[object! [ + face: #[none] + orientation: #[none] + local: #[none] + position: #[none] + page: #[none] + min-size: #[none] + max-size: #[none] + parent: #[none] + vertical?: #[none] + ]] ctx||518 [ + face [object!] + orientation [word!] + return: [object!] + /local position page min-size max-size parent vertical? + ] f_insert-event-func #[object! [ + fun: #[none] + ]] ctx||519 [ + fun [block! function!] + ] f_remove-event-func #[object! [ + fun: #[none] + ]] ctx||520 [ + fun [function!] + ] f_request-font #[object! [ + font: #[none] + ft: #[none] + mono: #[none] + ]] ctx||521 [ + /font + ft [object!] + /mono + ] f_request-file #[object! [ + title: #[none] + text: #[none] + file: #[none] + name: #[none] + filter: #[none] + list: #[none] + save: #[none] + multi: #[none] + ]] ctx||522 [ + /title + text [string!] + /file + name [file! string!] + /filter + list [block!] + /save + /multi + ] f_request-dir #[object! [ + title: #[none] + text: #[none] + dir: #[none] + name: #[none] + filter: #[none] + list: #[none] + keep: #[none] + multi: #[none] + ]] ctx||523 [ + /title + text [string!] + /dir + name [file! string!] + /filter + list [block!] + /keep + /multi + ] f_set-focus #[object! [ + face: #[none] + local: #[none] + p: #[none] + ]] ctx||524 [ + face [object!] + /local p + ] f_foreach-face #[object! [ + face: #[none] + body: #[none] + with: #[none] + spec: #[none] + post: #[none] + sub: #[none] + post?: #[none] + local: #[none] + exec: #[none] + ]] ctx||525 [ + face [object!] + body [block! function!] + /with + spec [block! none!] + /post + /sub post? + /local exec + ] f_keep #[object! [ + v: #[none] + only: #[none] + ]] ctx||571 [v /only] + ]] \ No newline at end of file diff --git a/red/libRedRT-extras.r b/red/libRedRT-extras.r new file mode 100644 index 0000000..1ead70b --- /dev/null +++ b/red/libRedRT-extras.r @@ -0,0 +1 @@ +red/symbol/make-opt red/alloc-at-tail red/none/make-in red/unicode/to-utf16-len red/unicode/to-utf16 red/handle/make-at red/unicode/load-utf16 red/ownership/unbind-each red/image/resize red/image/delete red/date/make-at red/vector/make-at red/OS-image/delete red/float/abs red/image/any-resize red/OS-image/width? red/OS-image/height? red/binary/make-at red/OS-image/make-image red/file/to-OS-path red/string/rs-abs-at red/map/put red/collector/keep red/collector/register red/unicode/get-cache red/percent/rs-make-at red/string/sniff-chars \ No newline at end of file diff --git a/red/libRedRT-include.red b/red/libRedRT-include.red new file mode 100644 index 0000000..8badd72 --- /dev/null +++ b/red/libRedRT-include.red @@ -0,0 +1,1084 @@ + +red: context [ + #include %$ROOT-PATH$runtime/definitions.reds + #include %$ROOT-PATH$runtime/macros.reds + #include %$ROOT-PATH$runtime/datatypes/structures.reds + cell!: alias struct! [ + header [integer!] + data1 [integer!] + data2 [integer!] + data3 [integer!] + ] + series-buffer!: alias struct! [ + flags [integer!] + node [int-ptr!] + size [integer!] + offset [cell!] + tail [cell!] + ] + root-base: as cell! 0 + get-root: func [ + idx [integer!] + return: [red-block!] + ] [ + as red-block! root-base + idx + ] + get-root-node: func [ + idx [integer!] + return: [node!] + /local + obj [red-object!] + ] [ + obj: as red-object! get-root idx + obj/ctx + ] + #import [libRedRT-file stdcall [ + boot: "red/boot" [] + get-build-date: "red/get-build-date" [return: [c-string!]] + copy-cell: "red/copy-cell" [src [cell!] dst [cell!] return: [cell!]] + get-root-node2: "red/get-root-node2" [idx [integer!] return: [pointer! [integer!]]] + type-check-alt: "red/type-check-alt" [ref [cell!] expected [red-typeset!] index [integer!] arg [cell!] return: [cell!]] + type-check: "red/type-check" [expected [red-typeset!] index [integer!] arg [cell!] return: [cell!]] + set-int-path*: "red/set-int-path*" [parent [cell!] index [integer!]] + eval-int-path*: "red/eval-int-path*" [parent [cell!] index [integer!]] + set-path*: "red/set-path*" [parent [cell!] element [cell!]] + eval-path*: "red/eval-path*" [parent [cell!] element [cell!]] + eval-int-path: "red/eval-int-path" [parent [cell!] index [integer!] return: [cell!]] + eval-path: "red/eval-path" [parent [cell!] element [cell!] return: [cell!]] + select-key*: "red/select-key*" [sub? [logic!] fetch? [logic!] return: [cell!]] + alloc-bytes: "red/alloc-bytes" [size [integer!] return: [pointer! [integer!]]] + alloc-cells: "red/alloc-cells" [size [integer!] return: [pointer! [integer!]]] + get-cmdline-args: "red/get-cmdline-args" [return: [cell!]] + fire: "red/fire" [[variadic] count [integer!] list [pointer! [integer!]]] + set-type: "red/set-type" [cell [cell!] type [integer!]] + report: "red/report" [type [cell!] id [cell!] arg1 [cell!] arg2 [cell!] arg3 [cell!]] + f_routine: "f_routine" [] + f_alert: "f_alert" [] + f_also: "f_also" [] + f_attempt: "f_attempt" [] + f_comment: "f_comment" [] + f_quit: "f_quit" [] + f_empty?: "f_empty?" [] + f_??: "f_??" [] + f_probe: "f_probe" [] + f_quote: "f_quote" [] + f_first: "f_first" [] + f_second: "f_second" [] + f_third: "f_third" [] + f_fourth: "f_fourth" [] + f_fifth: "f_fifth" [] + f_last: "f_last" [] + f_spec-of: "f_spec-of" [] + f_body-of: "f_body-of" [] + f_words-of: "f_words-of" [] + f_class-of: "f_class-of" [] + f_values-of: "f_values-of" [] + f_bitset?: "f_bitset?" [] + f_binary?: "f_binary?" [] + f_block?: "f_block?" [] + f_char?: "f_char?" [] + f_email?: "f_email?" [] + f_file?: "f_file?" [] + f_float?: "f_float?" [] + f_get-path?: "f_get-path?" [] + f_get-word?: "f_get-word?" [] + f_hash?: "f_hash?" [] + f_integer?: "f_integer?" [] + f_issue?: "f_issue?" [] + f_lit-path?: "f_lit-path?" [] + f_lit-word?: "f_lit-word?" [] + f_logic?: "f_logic?" [] + f_map?: "f_map?" [] + f_none?: "f_none?" [] + f_pair?: "f_pair?" [] + f_paren?: "f_paren?" [] + f_path?: "f_path?" [] + f_percent?: "f_percent?" [] + f_refinement?: "f_refinement?" [] + f_set-path?: "f_set-path?" [] + f_set-word?: "f_set-word?" [] + f_string?: "f_string?" [] + f_tag?: "f_tag?" [] + f_time?: "f_time?" [] + f_typeset?: "f_typeset?" [] + f_tuple?: "f_tuple?" [] + f_unset?: "f_unset?" [] + f_url?: "f_url?" [] + f_word?: "f_word?" [] + f_image?: "f_image?" [] + f_date?: "f_date?" [] + f_money?: "f_money?" [] + f_ref?: "f_ref?" [] + f_handle?: "f_handle?" [] + f_error?: "f_error?" [] + f_action?: "f_action?" [] + f_native?: "f_native?" [] + f_datatype?: "f_datatype?" [] + f_function?: "f_function?" [] + f_object?: "f_object?" [] + f_op?: "f_op?" [] + f_routine?: "f_routine?" [] + f_vector?: "f_vector?" [] + f_any-list?: "f_any-list?" [] + f_any-block?: "f_any-block?" [] + f_any-function?: "f_any-function?" [] + f_any-object?: "f_any-object?" [] + f_any-path?: "f_any-path?" [] + f_any-string?: "f_any-string?" [] + f_any-word?: "f_any-word?" [] + f_series?: "f_series?" [] + f_number?: "f_number?" [] + f_immediate?: "f_immediate?" [] + f_scalar?: "f_scalar?" [] + f_all-word?: "f_all-word?" [] + f_to-bitset: "f_to-bitset" [] + f_to-binary: "f_to-binary" [] + f_to-block: "f_to-block" [] + f_to-char: "f_to-char" [] + f_to-email: "f_to-email" [] + f_to-file: "f_to-file" [] + f_to-float: "f_to-float" [] + f_to-get-path: "f_to-get-path" [] + f_to-get-word: "f_to-get-word" [] + f_to-hash: "f_to-hash" [] + f_to-integer: "f_to-integer" [] + f_to-issue: "f_to-issue" [] + f_to-lit-path: "f_to-lit-path" [] + f_to-lit-word: "f_to-lit-word" [] + f_to-logic: "f_to-logic" [] + f_to-map: "f_to-map" [] + f_to-none: "f_to-none" [] + f_to-pair: "f_to-pair" [] + f_to-paren: "f_to-paren" [] + f_to-path: "f_to-path" [] + f_to-percent: "f_to-percent" [] + f_to-refinement: "f_to-refinement" [] + f_to-set-path: "f_to-set-path" [] + f_to-set-word: "f_to-set-word" [] + f_to-string: "f_to-string" [] + f_to-tag: "f_to-tag" [] + f_to-time: "f_to-time" [] + f_to-typeset: "f_to-typeset" [] + f_to-tuple: "f_to-tuple" [] + f_to-unset: "f_to-unset" [] + f_to-url: "f_to-url" [] + f_to-word: "f_to-word" [] + f_to-image: "f_to-image" [] + f_to-date: "f_to-date" [] + f_to-money: "f_to-money" [] + f_to-ref: "f_to-ref" [] + f_context: "f_context" [] + f_alter: "f_alter" [] + f_offset?: "f_offset?" [] + f_repend: "f_repend" [] + f_replace: "f_replace" [] + f_math: "f_math" [] + f_charset: "f_charset" [] + f_ctx||174~on-parse-event: "f_ctx||174~on-parse-event" [octx [pointer! [integer!]]] + f_parse-trace: "f_parse-trace" [octx [pointer! [integer!]]] + f_suffix?: "f_suffix?" [] + f_scan: "f_scan" [] + f_load: "f_load" [] + f_save: "f_save" [] + f_cause-error: "f_cause-error" [] + f_pad: "f_pad" [] + f_mod: "f_mod" [] + f_modulo: "f_modulo" [] + f_eval-set-path: "f_eval-set-path" [] + f_to-red-file: "f_to-red-file" [] + f_dir?: "f_dir?" [] + f_normalize-dir: "f_normalize-dir" [] + f_what-dir: "f_what-dir" [] + f_change-dir: "f_change-dir" [] + f_make-dir: "f_make-dir" [] + f_extract: "f_extract" [] + f_extract-boot-args: "f_extract-boot-args" [] + f_collect: "f_collect" [] + f_flip-exe-flag: "f_flip-exe-flag" [] + f_split: "f_split" [] + f_dirize: "f_dirize" [] + f_clean-path: "f_clean-path" [] + f_split-path: "f_split-path" [] + f_do-file: "f_do-file" [] + f_path-thru: "f_path-thru" [] + f_exists-thru?: "f_exists-thru?" [] + f_read-thru: "f_read-thru" [] + f_load-thru: "f_load-thru" [] + f_do-thru: "f_do-thru" [] + f_cos: "f_cos" [] + f_sin: "f_sin" [] + f_tan: "f_tan" [] + f_acos: "f_acos" [] + f_asin: "f_asin" [] + f_atan: "f_atan" [] + f_atan2: "f_atan2" [] + f_sqrt: "f_sqrt" [] + f_to-UTC-date: "f_to-UTC-date" [] + f_to-local-date: "f_to-local-date" [] + f_transcode-trace: "f_transcode-trace" [] + f_rejoin: "f_rejoin" [] + f_sum: "f_sum" [] + f_average: "f_average" [] + f_last?: "f_last?" [] + f_dt: "f_dt" [] + f_ctx||255~interpreted?: "f_ctx||255~interpreted?" [octx [pointer! [integer!]]] + f_ctx||262~on-change*: "f_ctx||262~on-change*" [octx [pointer! [integer!]]] + f_ctx||262~on-deep-change*: "f_ctx||262~on-deep-change*" [octx [pointer! [integer!]]] + f_ctx||268~on-change*: "f_ctx||268~on-change*" [octx [pointer! [integer!]]] + f_ctx||266~on-change*: "f_ctx||266~on-change*" [octx [pointer! [integer!]]] + f_ctx||266~on-deep-change*: "f_ctx||266~on-deep-change*" [octx [pointer! [integer!]]] + f_ctx||289~lex: "f_ctx||289~lex" [octx [pointer! [integer!]]] + f_ctx||309~encode: "f_ctx||309~encode" [octx [pointer! [integer!]]] + f_ctx||309~decode: "f_ctx||309~decode" [octx [pointer! [integer!]]] + f_ctx||318~BOM-UTF-16?: "f_ctx||318~BOM-UTF-16?" [octx [pointer! [integer!]]] + f_ctx||318~BOM-UTF-32?: "f_ctx||318~BOM-UTF-32?" [octx [pointer! [integer!]]] + f_ctx||318~enquote: "f_ctx||318~enquote" [octx [pointer! [integer!]]] + f_ctx||318~high-surrogate?: "f_ctx||318~high-surrogate?" [octx [pointer! [integer!]]] + f_ctx||318~low-surrogate?: "f_ctx||318~low-surrogate?" [octx [pointer! [integer!]]] + f_ctx||318~translit: "f_ctx||318~translit" [octx [pointer! [integer!]]] + f_ctx||318~decode-backslash-escapes: "f_ctx||318~decode-backslash-escapes" [octx [pointer! [integer!]]] + f_ctx||318~encode-backslash-escapes: "f_ctx||318~encode-backslash-escapes" [octx [pointer! [integer!]]] + f_ctx||318~decode-unicode-char: "f_ctx||318~decode-unicode-char" [octx [pointer! [integer!]]] + f_ctx||318~replace-unicode-escapes: "f_ctx||318~replace-unicode-escapes" [octx [pointer! [integer!]]] + f_ctx||318~push: "f_ctx||318~push" [octx [pointer! [integer!]]] + f_ctx||318~pop: "f_ctx||318~pop" [octx [pointer! [integer!]]] + f_ctx||318~emit: "f_ctx||318~emit" [octx [pointer! [integer!]]] + f_load-json: "f_load-json" [octx [pointer! [integer!]]] + f_ctx||334~init-state: "f_ctx||334~init-state" [octx [pointer! [integer!]]] + f_ctx||334~emit-indent: "f_ctx||334~emit-indent" [octx [pointer! [integer!]]] + f_ctx||334~emit-key-value: "f_ctx||334~emit-key-value" [octx [pointer! [integer!]]] + f_ctx||334~red-to-json-value: "f_ctx||334~red-to-json-value" [octx [pointer! [integer!]]] + f_to-json: "f_to-json" [octx [pointer! [integer!]]] + f_ctx||342~encode: "f_ctx||342~encode" [octx [pointer! [integer!]]] + f_ctx||342~decode: "f_ctx||342~decode" [octx [pointer! [integer!]]] + f_ctx||347~to-csv-line: "f_ctx||347~to-csv-line" [octx [pointer! [integer!]]] + f_ctx||347~escape-value: "f_ctx||347~escape-value" [octx [pointer! [integer!]]] + f_ctx||347~next-column-name: "f_ctx||347~next-column-name" [octx [pointer! [integer!]]] + f_ctx||347~make-header: "f_ctx||347~make-header" [octx [pointer! [integer!]]] + f_ctx||347~get-columns: "f_ctx||347~get-columns" [octx [pointer! [integer!]]] + f_ctx||347~encode-map: "f_ctx||347~encode-map" [octx [pointer! [integer!]]] + f_ctx||347~encode-maps: "f_ctx||347~encode-maps" [octx [pointer! [integer!]]] + f_ctx||347~encode-flat: "f_ctx||347~encode-flat" [octx [pointer! [integer!]]] + f_ctx||347~encode-blocks: "f_ctx||347~encode-blocks" [octx [pointer! [integer!]]] + f_load-csv: "f_load-csv" [octx [pointer! [integer!]]] + f_to-csv: "f_to-csv" [octx [pointer! [integer!]]] + f_ctx||364~on-change*: "f_ctx||364~on-change*" [octx [pointer! [integer!]]] + f_ctx||367~on-change*: "f_ctx||367~on-change*" [octx [pointer! [integer!]]] + f_ctx||367~on-deep-change*: "f_ctx||367~on-deep-change*" [octx [pointer! [integer!]]] + f_reactor: "f_reactor" [] + f_deep-reactor: "f_deep-reactor" [] + f_ctx||372~add-relation: "f_ctx||372~add-relation" [octx [pointer! [integer!]]] + f_ctx||372~eval: "f_ctx||372~eval" [octx [pointer! [integer!]]] + f_ctx||372~eval-reaction: "f_ctx||372~eval-reaction" [octx [pointer! [integer!]]] + f_ctx||372~pending?: "f_ctx||372~pending?" [octx [pointer! [integer!]]] + f_ctx||372~check: "f_ctx||372~check" [octx [pointer! [integer!]]] + f_stop-reactor: "f_stop-reactor" [octx [pointer! [integer!]]] + f_clear-reactions: "f_clear-reactions" [octx [pointer! [integer!]]] + f_dump-reactions: "f_dump-reactions" [octx [pointer! [integer!]]] + f_ctx||372~is~: "f_ctx||372~is~" [octx [pointer! [integer!]]] + f_react?: "f_react?" [octx [pointer! [integer!]]] + f_react: "f_react" [octx [pointer! [integer!]]] + f_register-scheme: "f_register-scheme" [] + f_ctx||387~alpha-num+: "f_ctx||387~alpha-num+" [octx [pointer! [integer!]]] + f_ctx||387~parse-url: "f_ctx||387~parse-url" [octx [pointer! [integer!]]] + f_decode-url: "f_decode-url" [octx [pointer! [integer!]]] + f_encode-url: "f_encode-url" [octx [pointer! [integer!]]] + f_ctx||393~do-quit: "f_ctx||393~do-quit" [octx [pointer! [integer!]]] + f_ctx||393~throw-error: "f_ctx||393~throw-error" [octx [pointer! [integer!]]] + f_ctx||393~syntax-error: "f_ctx||393~syntax-error" [octx [pointer! [integer!]]] + f_ctx||393~do-safe: "f_ctx||393~do-safe" [octx [pointer! [integer!]]] + f_ctx||393~do-code: "f_ctx||393~do-code" [octx [pointer! [integer!]]] + f_ctx||393~count-args: "f_ctx||393~count-args" [octx [pointer! [integer!]]] + f_ctx||393~arg-mode?: "f_ctx||393~arg-mode?" [octx [pointer! [integer!]]] + f_ctx||393~func-arity?: "f_ctx||393~func-arity?" [octx [pointer! [integer!]]] + f_ctx||393~value-path?: "f_ctx||393~value-path?" [octx [pointer! [integer!]]] + f_ctx||393~fetch-next: "f_ctx||393~fetch-next" [octx [pointer! [integer!]]] + f_ctx||393~eval: "f_ctx||393~eval" [octx [pointer! [integer!]]] + f_ctx||393~do-macro: "f_ctx||393~do-macro" [octx [pointer! [integer!]]] + f_ctx||393~register-macro: "f_ctx||393~register-macro" [octx [pointer! [integer!]]] + f_ctx||393~reset: "f_ctx||393~reset" [octx [pointer! [integer!]]] + f_ctx||393~expand: "f_ctx||393~expand" [octx [pointer! [integer!]]] + f_expand-directives: "f_expand-directives" [octx [pointer! [integer!]]] + f_hex-to-rgb: "f_hex-to-rgb" [] + f_within?: "f_within?" [] + f_overlap?: "f_overlap?" [] + f_distance?: "f_distance?" [] + f_face?: "f_face?" [] + f_size-text: "f_size-text" [] + f_caret-to-offset: "f_caret-to-offset" [] + f_offset-to-caret: "f_offset-to-caret" [] + f_offset-to-char: "f_offset-to-char" [] + f_ctx||429~tail-idx?: "f_ctx||429~tail-idx?" [octx [pointer! [integer!]]] + f_ctx||429~push-color: "f_ctx||429~push-color" [octx [pointer! [integer!]]] + f_ctx||429~pop-color: "f_ctx||429~pop-color" [octx [pointer! [integer!]]] + f_ctx||429~close-colors: "f_ctx||429~close-colors" [octx [pointer! [integer!]]] + f_ctx||429~push: "f_ctx||429~push" [octx [pointer! [integer!]]] + f_ctx||429~pop: "f_ctx||429~pop" [octx [pointer! [integer!]]] + f_ctx||429~pop-all: "f_ctx||429~pop-all" [octx [pointer! [integer!]]] + f_ctx||429~optimize: "f_ctx||429~optimize" [octx [pointer! [integer!]]] + f_rtd-layout: "f_rtd-layout" [octx [pointer! [integer!]]] + f_ctx||427~line-height?: "f_ctx||427~line-height?" [octx [pointer! [integer!]]] + f_ctx||427~line-count?: "f_ctx||427~line-count?" [octx [pointer! [integer!]]] + f_metrics?: "f_metrics?" [] + f_set-flag: "f_set-flag" [] + f_debug-info?: "f_debug-info?" [] + f_on-face-deep-change*: "f_on-face-deep-change*" [] + f_link-tabs-to-parent: "f_link-tabs-to-parent" [] + f_link-sub-to-parent: "f_link-sub-to-parent" [] + f_update-font-faces: "f_update-font-faces" [] + f_ctx||449~on-change*: "f_ctx||449~on-change*" [octx [pointer! [integer!]]] + f_ctx||449~on-deep-change*: "f_ctx||449~on-deep-change*" [octx [pointer! [integer!]]] + f_ctx||453~on-change*: "f_ctx||453~on-change*" [octx [pointer! [integer!]]] + f_ctx||453~on-deep-change*: "f_ctx||453~on-deep-change*" [octx [pointer! [integer!]]] + f_ctx||457~on-change*: "f_ctx||457~on-change*" [octx [pointer! [integer!]]] + f_ctx||460~on-change*: "f_ctx||460~on-change*" [octx [pointer! [integer!]]] + f_ctx||463~capture-events: "f_ctx||463~capture-events" [octx [pointer! [integer!]]] + f_ctx||463~awake: "f_ctx||463~awake" [octx [pointer! [integer!]]] + f_ctx||472~init: "f_ctx||472~init" [octx [pointer! [integer!]]] + f_draw: "f_draw" [] + f_ctx||482~color-backgrounds: "f_ctx||482~color-backgrounds" [octx [pointer! [integer!]]] + f_ctx||482~color-tabpanel-children: "f_ctx||482~color-tabpanel-children" [octx [pointer! [integer!]]] + f_ctx||482~OK-Cancel: "f_ctx||482~OK-Cancel" [octx [pointer! [integer!]]] + f_ctx||480~process: "f_ctx||480~process" [octx [pointer! [integer!]]] + f_ctx||478~throw-error: "f_ctx||478~throw-error" [octx [pointer! [integer!]]] + f_ctx||478~process-reactors: "f_ctx||478~process-reactors" [octx [pointer! [integer!]]] + f_ctx||478~calc-size: "f_ctx||478~calc-size" [octx [pointer! [integer!]]] + f_ctx||478~align-faces: "f_ctx||478~align-faces" [octx [pointer! [integer!]]] + f_ctx||478~resize-child-panels: "f_ctx||478~resize-child-panels" [octx [pointer! [integer!]]] + f_ctx||478~clean-style: "f_ctx||478~clean-style" [octx [pointer! [integer!]]] + f_ctx||478~process-draw: "f_ctx||478~process-draw" [octx [pointer! [integer!]]] + f_ctx||478~pre-load: "f_ctx||478~pre-load" [octx [pointer! [integer!]]] + f_ctx||478~add-option: "f_ctx||478~add-option" [octx [pointer! [integer!]]] + f_ctx||478~add-flag: "f_ctx||478~add-flag" [octx [pointer! [integer!]]] + f_ctx||478~fetch-value: "f_ctx||478~fetch-value" [octx [pointer! [integer!]]] + f_ctx||478~fetch-argument: "f_ctx||478~fetch-argument" [octx [pointer! [integer!]]] + f_ctx||478~fetch-expr: "f_ctx||478~fetch-expr" [octx [pointer! [integer!]]] + f_ctx||478~fetch-options: "f_ctx||478~fetch-options" [octx [pointer! [integer!]]] + f_ctx||478~make-actor: "f_ctx||478~make-actor" [octx [pointer! [integer!]]] + f_layout: "f_layout" [octx [pointer! [integer!]]] + f_do-events: "f_do-events" [] + f_stop-events: "f_stop-events" [] + f_do-safe: "f_do-safe" [] + f_do-actor: "f_do-actor" [] + f_show: "f_show" [] + f_unview: "f_unview" [] + f_view: "f_view" [] + f_center-face: "f_center-face" [] + f_make-face: "f_make-face" [] + f_dump-face: "f_dump-face" [] + f_get-scroller: "f_get-scroller" [] + f_insert-event-func: "f_insert-event-func" [] + f_remove-event-func: "f_remove-event-func" [] + f_request-font: "f_request-font" [] + f_request-file: "f_request-file" [] + f_request-dir: "f_request-dir" [] + f_set-focus: "f_set-focus" [] + f_foreach-face: "f_foreach-face" [] + f_keep: "f_keep" [] + quit-return: "quit-return" [status [integer!]] + set-quiet: "set-quiet" [word [cell!] value [cell!]] + set-slot-quiet: "set-slot-quiet" [series [cell!] value [cell!]] + shift-right: "shift-right" [data [integer!] bits [integer!]] + shift-left: "shift-left" [data [integer!] bits [integer!]] + shift-logical: "shift-logical" [data [integer!] bits [integer!]] + last-lf?: "last-lf?" [] + get-current-dir: "get-current-dir" [] + set-current-dir: "set-current-dir" [path [red-string!]] + create-dir: "create-dir" [path [red-file!]] + exists?: "exists?" [path [red-file!] return: [logic!]] + os-info: "os-info" [] + as-color: "as-color" [r [integer!] g [integer!] b [integer!]] + as-ipv4: "as-ipv4" [a [integer!] b [integer!] c [integer!] d [integer!]] + count-chars: "count-chars" [start [red-binary!] pos [red-binary!] return: [integer!]] + read-clipboard: "read-clipboard" [return: [cell!]] + write-clipboard: "write-clipboard" [data [cell!] return: [logic!]] + write-stdout: "write-stdout" [data [cell!]] + __make-sys-object: "__make-sys-object" [] + ctx||293~encode: "ctx||293~encode" [img [red-image!] where [cell!]] + ctx||293~decode: "ctx||293~decode" [data [cell!]] + ctx||297~encode: "ctx||297~encode" [img [red-image!] where [cell!]] + ctx||297~decode: "ctx||297~decode" [data [cell!]] + ctx||301~encode: "ctx||301~encode" [img [red-image!] where [cell!]] + ctx||301~decode: "ctx||301~decode" [data [cell!]] + ctx||305~encode: "ctx||305~encode" [img [red-image!] where [cell!]] + ctx||305~decode: "ctx||305~decode" [data [cell!]] + ctx||361~encode: "ctx||361~encode" [data [cell!] where [cell!]] + ctx||361~decode: "ctx||361~decode" [payload [cell!]] + event?: "event?" [value [cell!] return: [logic!]] + find-flag?: "find-flag?" [facet [cell!] flag [red-word!]] + ctx||472~make-null-handle: "ctx||472~make-null-handle" [] + ctx||472~get-screen-size: "ctx||472~get-screen-size" [id [integer!]] + ctx||472~size-text: "ctx||472~size-text" [face [red-object!] value [cell!]] + ctx||472~on-change-facet: "ctx||472~on-change-facet" [owner [red-object!] word [red-word!] value [cell!] action [red-word!] new [cell!] index [integer!] part [integer!]] + ctx||472~update-font: "ctx||472~update-font" [font [red-object!] flags [integer!]] + ctx||472~update-para: "ctx||472~update-para" [face [red-object!] flags [integer!]] + ctx||472~destroy-view: "ctx||472~destroy-view" [face [red-object!] empty? [logic!]] + ctx||472~update-view: "ctx||472~update-view" [face [red-object!]] + ctx||472~refresh-window: "ctx||472~refresh-window" [h [red-handle!]] + ctx||472~redraw: "ctx||472~redraw" [face [red-object!]] + ctx||472~show-window: "ctx||472~show-window" [id [red-handle!]] + ctx||472~make-view: "ctx||472~make-view" [face [red-object!] parent [red-handle!]] + ctx||472~draw-image: "ctx||472~draw-image" [image [red-image!] cmds [red-block!]] + ctx||472~draw-face: "ctx||472~draw-face" [face [red-object!] cmds [red-block!]] + ctx||472~do-event-loop: "ctx||472~do-event-loop" [no-wait? [logic!]] + ctx||472~exit-event-loop: "ctx||472~exit-event-loop" [] + ctx||472~request-font: "ctx||472~request-font" [font [red-object!] selected [red-object!] mono? [logic!]] + ctx||472~request-file: "ctx||472~request-file" [title [red-string!] name [red-file!] filter [red-block!] save? [logic!] multi? [logic!]] + ctx||472~request-dir: "ctx||472~request-dir" [title [red-string!] dir [red-file!] filter [red-block!] keep? [logic!] multi? [logic!]] + ctx||472~text-box-metrics: "ctx||472~text-box-metrics" [box [red-object!] arg0 [cell!] type [integer!]] + ctx||472~update-scroller: "ctx||472~update-scroller" [scroller [red-object!] flags [integer!]] + throw-draw-error: "throw-draw-error" [cmds [red-block!] cmd [cell!] catch? [logic!]] + transparent-color?: "transparent-color?" [color [red-tuple!] return: [logic!]] + get-color-int: "get-color-int" [tp [red-tuple!] alpha? [pointer! [integer!]] return: [integer!]] + get-float: "get-float" [int [red-integer!] return: [float!]] + get-float32: "get-float32" [int [red-integer!] return: [float32!]] + reverse-int-array: "reverse-int-array" [array [pointer! [integer!]] count [integer!]] + reverse-float32-array: "reverse-float32-array" [array [pointer! [float32!]] count [integer!]] + old-gradient-pen: "old-gradient-pen" [DC [draw-ctx!] cmds [red-block!] start [cell!] tail [cell!] cmd [cell!] sym [integer!] catch? [logic!] return: [cell!]] + check-pen: "check-pen" [DC [draw-ctx!] cmds [red-block!] start [cell!] tail [cell!] cmd [cell!] sym [integer!] catch? [logic!] return: [cell!]] + check-line: "check-line" [DC [draw-ctx!] cmds [red-block!] start [cell!] tail [cell!] cmd [cell!] sym [integer!] catch? [logic!] return: [cell!]] + parse-shape: "parse-shape" [DC [draw-ctx!] cmds [red-block!] draw? [logic!] catch? [logic!]] + parse-draw: "parse-draw" [DC [draw-ctx!] cmds [red-block!] catch? [logic!]] + do-draw: "do-draw" [handle [pointer! [integer!]] img [red-image!] cmds [red-block!] on-graphic? [logic!] cache? [logic!] paint? [logic!] catch? [logic!]] + parse-text-styles: "parse-text-styles" [dc [pointer! [integer!]] layout [pointer! [integer!]] cmds [red-block!] text [red-string!] catch? [logic!]] + as-rgba: "as-ipv4" [a [integer!] b [integer!] c [integer!] d [integer!]] + f_single?: "f_last?" [] + f_keys-of: "f_words-of" [] + f_object: "f_context" [] + f_halt: "f_quit" [] + root: "red/root" [red-block!] + unset-value: "red/unset-value" [cell!] + none-value: "red/none-value" [cell!] + true-value: "red/true-value" [cell!] + false-value: "red/false-value" [cell!] + boot?: "red/boot?" [logic!] + ]] + redbin: context [ + #import [libRedRT-file stdcall [ + boot-load: "red/redbin/boot-load" [payload [pointer! [byte!]] keep? [logic!] return: [cell!]] + ]] + ] + platform: context [ + #import [libRedRT-file stdcall [ + prin*: "red/platform/prin*" [s [c-string!] return: [c-string!]] + prin-int*: "red/platform/prin-int*" [i [integer!] return: [integer!]] + prin-hex*: "red/platform/prin-hex*" [i [integer!] return: [integer!]] + prin-2hex*: "red/platform/prin-2hex*" [i [integer!] return: [integer!]] + prin-float*: "red/platform/prin-float*" [f [float!] return: [float!]] + prin-float32*: "red/platform/prin-float32*" [f [float32!] return: [float32!]] + ]] + ] + stack: context [ + #import [libRedRT-file stdcall [ + mark: "red/stack/mark" [fun [red-word!] type [integer!]] + mark-native: "red/stack/mark-native" [fun [red-word!]] + mark-func: "red/stack/mark-func" [fun [red-word!] ctx-name [pointer! [integer!]]] + mark-loop: "red/stack/mark-loop" [fun [red-word!]] + mark-try: "red/stack/mark-try" [fun [red-word!]] + mark-try-all: "red/stack/mark-try-all" [fun [red-word!]] + mark-catch: "red/stack/mark-catch" [fun [red-word!]] + mark-func-body: "red/stack/mark-func-body" [fun [red-word!]] + unwind: "red/stack/unwind" [] + unwind-last: "red/stack/unwind-last" [return: [cell!]] + reset: "red/stack/reset" [return: [cell!]] + keep: "red/stack/keep" [return: [cell!]] + push: "red/stack/push" [value [cell!] return: [cell!]] + check-call: "red/stack/check-call" [] + unroll: "red/stack/unroll" [flags [integer!]] + unroll-loop: "red/stack/unroll-loop" [inner? [logic!]] + revert: "red/stack/revert" [] + adjust-post-try: "red/stack/adjust-post-try" [] + pop: "red/stack/pop" [positions [integer!]] + set-last: "red/stack/set-last" [last [cell!] return: [cell!]] + push*: "red/stack/push*" [return: [cell!]] + arguments: "red/stack/arguments" [cell!] + top: "red/stack/top" [cell!] + bottom: "red/stack/bottom" [cell!] + ]] + #enum flags! [FRAME_FUNCTION: 16777216] + ] + interpreter: context [ + #import [libRedRT-file stdcall [ + eval-path: "red/interpreter/eval-path" [value [cell!] pc [cell!] end [cell!] set? [logic!] get? [logic!] sub? [logic!] case? [logic!] return: [cell!]] + ]] + ] + lexer: context [ + #import [libRedRT-file stdcall [ + scan: "red/lexer/scan" [dst [cell!] src [pointer! [byte!]] size [integer!] one? [logic!] scan? [logic!] load? [logic!] wrap? [logic!] len [pointer! [integer!]] fun [red-function!] ser [red-series!] out [red-block!] return: [integer!]] + scan-alt: "red/lexer/scan-alt" [dst [cell!] str [red-string!] size [integer!] one? [logic!] scan? [logic!] load? [logic!] wrap? [logic!] len [pointer! [integer!]] fun [red-function!] out [red-block!] return: [integer!]] + ]] + ] + none: context [ + #import [libRedRT-file stdcall [ + push-last: "red/none/push-last" [return: [cell!]] + push: "red/none/push" [return: [cell!]] + ]] + ] + logic: context [ + #import [libRedRT-file stdcall [ + false?: "red/logic/false?" [return: [logic!]] + true?: "red/logic/true?" [return: [logic!]] + push: "red/logic/push" [value [logic!] return: [red-logic!]] + get: "red/logic/get" [value [cell!] return: [logic!]] + box: "red/logic/box" [value [logic!] return: [red-logic!]] + make-in: "red/logic/make-in" [parent [red-block!] value [logic!] return: [red-logic!]] + ]] + ] + refinement: context [ + #import [libRedRT-file stdcall [ + push-local: "red/refinement/push-local" [node [pointer! [integer!]] index [integer!] return: [red-refinement!]] + push: "red/refinement/push" [w [red-word!]] + ]] + ] + lit-word: context [ + #import [libRedRT-file stdcall [ + push-local: "red/lit-word/push-local" [node [pointer! [integer!]] index [integer!] return: [red-word!]] + push: "red/lit-word/push" [w [red-word!] return: [red-word!]] + ]] + ] + binary: context [ + #import [libRedRT-file stdcall [ + push: "red/binary/push" [bin [red-binary!]] + rs-head: "red/binary/rs-head" [bin [red-binary!] return: [pointer! [byte!]]] + rs-tail: "red/binary/rs-tail" [bin [red-binary!] return: [pointer! [byte!]]] + rs-length?: "red/binary/rs-length?" [bin [red-binary!] return: [integer!]] + ]] + ] + block: context [ + #import [libRedRT-file stdcall [ + push: "red/block/push" [blk [red-block!]] + push-only*: "red/block/push-only*" [size [integer!] return: [red-block!]] + insert-thru: "red/block/insert-thru" [] + append-thru: "red/block/append-thru" [] + rs-head: "red/block/rs-head" [blk [red-block!] return: [cell!]] + rs-next: "red/block/rs-next" [blk [red-block!] return: [logic!]] + rs-tail?: "red/block/rs-tail?" [blk [red-block!] return: [logic!]] + rs-length?: "red/block/rs-length?" [blk [red-block!] return: [integer!]] + rs-abs-at: "red/block/rs-abs-at" [blk [red-block!] pos [integer!] return: [cell!]] + rs-append: "red/block/rs-append" [blk [red-block!] value [cell!] return: [cell!]] + rs-tail: "red/block/rs-tail" [blk [red-block!] return: [cell!]] + rs-clear: "red/block/rs-clear" [blk [red-block!]] + make-at: "red/block/make-at" [blk [red-block!] size [integer!] return: [red-block!]] + select-word: "red/block/select-word" [blk [red-block!] word [red-word!] case? [logic!] return: [cell!]] + find: "red/block/find" [blk [red-block!] value [cell!] part [cell!] only? [logic!] case? [logic!] same? [logic!] any? [logic!] with-arg [red-string!] skip [red-integer!] last? [logic!] reverse? [logic!] tail? [logic!] match? [logic!] return: [cell!]] + ]] + ] + char: context [ + #import [libRedRT-file stdcall [ + push: "red/char/push" [value [integer!] return: [red-char!]] + ]] + ] + datatype: context [ + #import [libRedRT-file stdcall [ + push: "red/datatype/push" [type [integer!] return: [red-datatype!]] + register: "red/datatype/register" [[variadic] count [integer!] list [pointer! [integer!]]] + ]] + ] + date: context [ + #import [libRedRT-file stdcall [ + push: "red/date/push" [date [integer!] time [float!] return: [red-date!]] + ]] + ] + email: context [ + #import [libRedRT-file stdcall [ + push: "red/email/push" [email [red-email!]] + ]] + ] + file: context [ + #import [libRedRT-file stdcall [ + push: "red/file/push" [file [red-file!]] + ]] + ] + float: context [ + #import [libRedRT-file stdcall [ + push: "red/float/push" [value [float!] return: [red-float!]] + push64: "red/float/push64" [high [integer!] low [integer!] return: [red-float!]] + get: "red/float/get" [value [cell!] return: [float!]] + box: "red/float/box" [value [float!] return: [red-float!]] + ]] + ] + _function: context [ + #import [libRedRT-file stdcall [ + push: "red/_function/push" [spec [red-block!] body [red-block!] ctx [pointer! [integer!]] code [integer!] obj-ctx [pointer! [integer!]] return: [pointer! [integer!]]] + init-locals: "red/_function/init-locals" [nb [integer!]] + ]] + ] + get-path: context [ + #import [libRedRT-file stdcall [ + push: "red/get-path/push" [p [red-block!]] + ]] + ] + get-word: context [ + #import [libRedRT-file stdcall [ + push: "red/get-word/push" [w [red-word!] return: [red-word!]] + get: "red/get-word/get" [word [red-word!] return: [cell!]] + ]] + ] + integer: context [ + #import [libRedRT-file stdcall [ + push: "red/integer/push" [value [integer!] return: [red-integer!]] + get-any*: "red/integer/get-any*" [return: [integer!]] + get*: "red/integer/get*" [return: [integer!]] + get: "red/integer/get" [value [cell!] return: [integer!]] + make-at: "red/integer/make-at" [slot [cell!] value [integer!] return: [red-integer!]] + form-signed: "red/integer/form-signed" [i [integer!] return: [c-string!]] + box: "red/integer/box" [value [integer!] return: [red-integer!]] + make-in: "red/integer/make-in" [parent [red-block!] value [integer!] return: [red-integer!]] + ]] + ] + issue: context [ + #import [libRedRT-file stdcall [ + push: "red/issue/push" [w [red-word!]] + ]] + ] + lit-path: context [ + #import [libRedRT-file stdcall [ + push: "red/lit-path/push" [p [red-block!]] + ]] + ] + map: context [ + #import [libRedRT-file stdcall [ + push: "red/map/push" [map [red-hash!]] + ]] + ] + money: context [ + #import [libRedRT-file stdcall [ + push: "red/money/push" [sign [logic!] currency [integer!] amount [c-string!] return: [red-money!]] + ]] + ] + object: context [ + #import [libRedRT-file stdcall [ + push: "red/object/push" [ctx [pointer! [integer!]] evt [pointer! [integer!]] class [integer!] idx-s [integer!] loc-s [integer!] idx-d [integer!] loc-d [integer!] return: [red-object!]] + duplicate: "red/object/duplicate" [src [pointer! [integer!]] dst [pointer! [integer!]] copy? [logic!]] + transfer: "red/object/transfer" [src [pointer! [integer!]] dst [pointer! [integer!]]] + init-push: "red/object/init-push" [node [pointer! [integer!]] class [integer!] return: [red-object!]] + init-events: "red/object/init-events" [ctx [pointer! [integer!]] idx-s [integer!] loc-s [integer!] idx-d [integer!] loc-d [integer!] return: [pointer! [integer!]]] + loc-fire-on-set*: "red/object/loc-fire-on-set*" [parent [cell!] field [red-word!]] + loc-ctx-fire-on-set*: "red/object/loc-ctx-fire-on-set*" [parent-ctx [pointer! [integer!]] field [red-word!]] + fire-on-set*: "red/object/fire-on-set*" [parent [red-word!] field [red-word!]] + get-values: "red/object/get-values" [obj [red-object!] return: [cell!]] + unchanged?: "red/object/unchanged?" [word [red-word!] id [integer!] return: [logic!]] + unchanged2?: "red/object/unchanged2?" [node [pointer! [integer!]] index [integer!] id [integer!] return: [logic!]] + get-word: "red/object/get-word" [obj [pointer! [integer!]] index [integer!] return: [cell!]] + rs-find: "red/object/rs-find" [obj [red-object!] value [cell!] return: [integer!]] + path-parent: "red/object/path-parent" [cell!] + field-parent: "red/object/field-parent" [cell!] + ]] + ] + op: context [ + #import [libRedRT-file stdcall [ + push: "red/op/push" [] + ]] + ] + pair: context [ + #import [libRedRT-file stdcall [ + push: "red/pair/push" [x [integer!] y [integer!] return: [red-pair!]] + ]] + ] + paren: context [ + #import [libRedRT-file stdcall [ + push: "red/paren/push" [paren [red-paren!]] + ]] + ] + path: context [ + #import [libRedRT-file stdcall [ + push: "red/path/push" [p [red-path!]] + ]] + ] + percent: context [ + #import [libRedRT-file stdcall [ + push: "red/percent/push" [value [float!] return: [red-float!]] + push64: "red/percent/push64" [high [integer!] low [integer!] return: [red-float!]] + ]] + ] + ref: context [ + #import [libRedRT-file stdcall [ + push: "red/ref/push" [ref [red-ref!]] + ]] + ] + routine: context [ + #import [libRedRT-file stdcall [ + push: "red/routine/push" [spec [red-block!] body [red-block!] code [integer!] ret-type [integer!] extern? [logic!] return: [red-routine!]] + ]] + ] + set-path: context [ + #import [libRedRT-file stdcall [ + push: "red/set-path/push" [p [red-block!]] + ]] + ] + set-word: context [ + #import [libRedRT-file stdcall [ + push: "red/set-word/push" [w [red-word!] return: [red-word!]] + push-local: "red/set-word/push-local" [node [pointer! [integer!]] index [integer!] return: [red-word!]] + ]] + ] + string: context [ + #import [libRedRT-file stdcall [ + push: "red/string/push" [str [red-string!] return: [red-string!]] + rs-head: "red/string/rs-head" [str [red-string!] return: [pointer! [byte!]]] + rs-tail?: "red/string/rs-tail?" [str [red-string!] return: [logic!]] + equal?: "red/string/equal?" [str1 [red-string!] str2 [red-string!] op [integer!] match? [logic!] return: [integer!]] + rs-make-at: "red/string/rs-make-at" [slot [cell!] size [integer!] return: [red-string!]] + get-char: "red/string/get-char" [p [pointer! [byte!]] unit [integer!] return: [integer!]] + rs-reset: "red/string/rs-reset" [str [red-string!]] + concatenate: "red/string/concatenate" [str1 [red-string!] str2 [red-string!] part [integer!] offset [integer!] keep? [logic!] insert? [logic!]] + rs-length?: "red/string/rs-length?" [str [red-string!] return: [integer!]] + concatenate-literal: "red/string/concatenate-literal" [str [red-string!] p [c-string!] return: [series-buffer!]] + append-char: "red/string/append-char" [s [series-buffer!] cp [integer!] return: [series-buffer!]] + insert-char: "red/string/insert-char" [s [series-buffer!] offset [integer!] cp [integer!] return: [series-buffer!]] + rs-abs-length?: "red/string/rs-abs-length?" [str [red-string!] return: [integer!]] + remove-char: "red/string/remove-char" [str [red-string!] offset [integer!] return: [red-string!]] + poke-char: "red/string/poke-char" [s [series-buffer!] p [pointer! [byte!]] cp [integer!] return: [series-buffer!]] + remove-part: "red/string/remove-part" [str [red-string!] offset [integer!] part [integer!] return: [red-string!]] + to-hex: "red/string/to-hex" [value [integer!] char? [logic!] return: [c-string!]] + make-at: "red/string/make-at" [slot [cell!] size [integer!] unit [integer!] return: [red-string!]] + load: "red/string/load" [src [c-string!] size [integer!] encoding [integer!] return: [red-string!]] + load-at: "red/string/load-at" [src [c-string!] size [integer!] slot [cell!] encoding [integer!] return: [red-string!]] + ]] + ] + tag: context [ + #import [libRedRT-file stdcall [ + push: "red/tag/push" [tag [red-tag!]] + ]] + ] + time: context [ + #import [libRedRT-file stdcall [ + push: "red/time/push" [time [float!] return: [red-time!]] + ]] + ] + tuple: context [ + #import [libRedRT-file stdcall [ + push: "red/tuple/push" [size [integer!] arr1 [integer!] arr2 [integer!] arr3 [integer!] return: [red-tuple!]] + ]] + ] + typeset: context [ + #import [libRedRT-file stdcall [ + push: "red/typeset/push" [sets [red-typeset!]] + ]] + ] + unset: context [ + #import [libRedRT-file stdcall [ + push: "red/unset/push" [return: [red-unset!]] + ]] + ] + url: context [ + #import [libRedRT-file stdcall [ + push: "red/url/push" [url [red-url!]] + ]] + ] + vector: context [ + #import [libRedRT-file stdcall [ + push: "red/vector/push" [vec [red-vector!]] + rs-head: "red/vector/rs-head" [vec [red-vector!] return: [pointer! [byte!]]] + rs-tail: "red/vector/rs-tail" [vec [red-vector!] return: [pointer! [byte!]]] + rs-tail?: "red/vector/rs-tail?" [vec [red-vector!] return: [logic!]] + rs-length?: "red/vector/rs-length?" [vec [red-vector!] return: [integer!]] + rs-skip: "red/vector/rs-skip" [vec [red-vector!] len [integer!] return: [logic!]] + rs-next: "red/vector/rs-next" [vec [red-vector!] return: [logic!]] + rs-clear: "red/vector/rs-clear" [vec [red-vector!]] + rs-append: "red/vector/rs-append" [vec [red-vector!] value [cell!] return: [cell!]] + rs-append-int: "red/vector/rs-append-int" [vec [red-vector!] n [integer!]] + rs-overwrite: "red/vector/rs-overwrite" [vec [red-vector!] offset [integer!] value [cell!] return: [series-buffer!]] + rs-insert: "red/vector/rs-insert" [vec [red-vector!] offset [integer!] value [cell!] return: [series-buffer!]] + get-value: "red/vector/get-value" [p [pointer! [byte!]] unit [integer!] type [integer!] return: [cell!]] + get-value-int: "red/vector/get-value-int" [p [pointer! [integer!]] unit [integer!] return: [integer!]] + get-value-float: "red/vector/get-value-float" [p [pointer! [byte!]] unit [integer!] return: [float!]] + set-value: "red/vector/set-value" [p [pointer! [byte!]] value [cell!] unit [integer!]] + ]] + ] + word: context [ + #import [libRedRT-file stdcall [ + push: "red/word/push" [word [red-word!] return: [red-word!]] + get: "red/word/get" [word [red-word!] return: [cell!]] + get-local: "red/word/get-local" [node [pointer! [integer!]] index [integer!] return: [cell!]] + get-any: "red/word/get-any" [word [red-word!] return: [cell!]] + get-in: "red/word/get-in" [node [pointer! [integer!]] index [integer!] return: [cell!]] + set-in: "red/word/set-in" [node [pointer! [integer!]] index [integer!] return: [cell!]] + set-in-ctx: "red/word/set-in-ctx" [node [pointer! [integer!]] index [integer!]] + set: "red/word/set" [] + replace: "red/word/replace" [node [pointer! [integer!]] index [integer!]] + from: "red/word/from" [node [pointer! [integer!]] index [integer!] return: [red-word!]] + load: "red/word/load" [str [c-string!] return: [red-word!]] + push-local: "red/word/push-local" [node [pointer! [integer!]] index [integer!] return: [red-word!]] + duplicate: "red/word/duplicate" [w [red-word!] return: [red-word!]] + push*: "red/word/push*" [id [integer!] return: [red-word!]] + make-at: "red/word/make-at" [id [integer!] pos [cell!] return: [red-word!]] + push-in: "red/word/push-in" [id [integer!] blk [red-block!] return: [red-word!]] + ]] + ] + _context: context [ + #import [libRedRT-file stdcall [ + get: "red/_context/get" [word [red-word!] return: [cell!]] + clone-words: "red/_context/clone-words" [slot [red-block!] type [context-type!] return: [pointer! [integer!]]] + set-integer: "red/_context/set-integer" [word [red-word!] value [integer!] return: [integer!]] + set: "red/_context/set" [word [red-word!] value [cell!] return: [cell!]] + ]] + ] + handle: context [ + #import [libRedRT-file stdcall [ + box: "red/handle/box" [value [integer!] return: [red-handle!]] + make-in: "red/handle/make-in" [parent [red-block!] value [integer!] return: [red-handle!]] + ]] + ] + _series: context [ + #import [libRedRT-file stdcall [ + copy: "red/_series/copy" [ser [red-series!] new [red-series!] part-arg [cell!] deep? [logic!] types [cell!] return: [red-series!]] + remove: "red/_series/remove" [ser [red-series!] part-arg [cell!] key-arg [cell!] return: [red-series!]] + ]] + ] + symbol: context [ + #import [libRedRT-file stdcall [ + make: "red/symbol/make" [s [c-string!] return: [integer!]] + resolve: "red/symbol/resolve" [id [integer!] return: [integer!]] + ]] + ] + unicode: context [ + #import [libRedRT-file stdcall [ + load-utf8: "red/unicode/load-utf8" [src [c-string!] size [integer!] return: [pointer! [integer!]]] + decode-utf8-char: "red/unicode/decode-utf8-char" [src [c-string!] cnt [pointer! [integer!]] return: [integer!]] + to-utf8: "red/unicode/to-utf8" [str [red-string!] len [pointer! [integer!]] return: [c-string!]] + load-utf8-buffer: "red/unicode/load-utf8-buffer" [src [c-string!] size [integer!] dst [series-buffer!] remain [pointer! [integer!]] convert? [logic!] return: [pointer! [integer!]]] + load-utf8-stream: "red/unicode/load-utf8-stream" [src [c-string!] size [integer!] output [red-string!] remain [pointer! [integer!]] return: [pointer! [integer!]]] + ]] + ] + natives: context [ + #import [libRedRT-file stdcall [ + repeat-init*: "red/natives/repeat-init*" [cell [cell!] return: [integer!]] + repeat-set: "red/natives/repeat-set" [cell [cell!] value [integer!]] + remove-each-init: "red/natives/remove-each-init" [] + remove-each-next: "red/natives/remove-each-next" [size [integer!]] + foreach-next-block: "red/natives/foreach-next-block" [size [integer!] return: [logic!]] + foreach-next: "red/natives/foreach-next" [return: [logic!]] + forall-loop: "red/natives/forall-loop" [return: [logic!]] + forall-next: "red/natives/forall-next" [] + forall-end: "red/natives/forall-end" [] + forall-end-adjust: "red/natives/forall-end-adjust" [] + coerce-counter*: "red/natives/coerce-counter*" [] + if*: "red/natives/if*" [check? [logic!]] + unless*: "red/natives/unless*" [check? [logic!]] + either*: "red/natives/either*" [check? [logic!]] + any*: "red/natives/any*" [check? [logic!]] + all*: "red/natives/all*" [check? [logic!]] + while*: "red/natives/while*" [check? [logic!]] + until*: "red/natives/until*" [check? [logic!]] + loop*: "red/natives/loop*" [[catch] check? [logic!]] + repeat*: "red/natives/repeat*" [check? [logic!]] + forever*: "red/natives/forever*" [check? [logic!]] + foreach*: "red/natives/foreach*" [check? [logic!]] + forall*: "red/natives/forall*" [check? [logic!]] + func*: "red/natives/func*" [check? [logic!]] + function*: "red/natives/function*" [check? [logic!]] + does*: "red/natives/does*" [check? [logic!]] + has*: "red/natives/has*" [check? [logic!]] + switch*: "red/natives/switch*" [check? [logic!] default? [integer!]] + case*: "red/natives/case*" [check? [logic!] all? [integer!]] + do*: "red/natives/do*" [check? [logic!] expand? [integer!] args [integer!] next [integer!] return: [integer!]] + get*: "red/natives/get*" [check? [logic!] any? [integer!] case? [integer!]] + set*: "red/natives/set*" [check? [logic!] _any? [integer!] case? [integer!] _only? [integer!] _some? [integer!]] + print*: "red/natives/print*" [check? [logic!]] + prin*: "red/natives/prin*" [check? [logic!]] + equal?*: "red/natives/equal?*" [check? [logic!] return: [red-logic!]] + not-equal?*: "red/natives/not-equal?*" [check? [logic!] return: [red-logic!]] + strict-equal?*: "red/natives/strict-equal?*" [check? [logic!] return: [red-logic!]] + lesser?*: "red/natives/lesser?*" [check? [logic!] return: [red-logic!]] + greater?*: "red/natives/greater?*" [check? [logic!] return: [red-logic!]] + lesser-or-equal?*: "red/natives/lesser-or-equal?*" [check? [logic!] return: [red-logic!]] + greater-or-equal?*: "red/natives/greater-or-equal?*" [check? [logic!] return: [red-logic!]] + same?*: "red/natives/same?*" [check? [logic!] return: [red-logic!]] + not*: "red/natives/not*" [check? [logic!]] + type?*: "red/natives/type?*" [check? [logic!] word? [integer!] return: [cell!]] + reduce*: "red/natives/reduce*" [check? [logic!] into [integer!]] + compose*: "red/natives/compose*" [check? [logic!] deep [integer!] only [integer!] into [integer!]] + stats*: "red/natives/stats*" [check? [logic!] show [integer!] info [integer!]] + bind*: "red/natives/bind*" [check? [logic!] copy [integer!]] + in*: "red/natives/in*" [check? [logic!]] + parse*: "red/natives/parse*" [check? [logic!] case? [integer!] part [integer!] trace [integer!] return: [integer!]] + union*: "red/natives/union*" [check? [logic!] cased [integer!] skip [integer!]] + intersect*: "red/natives/intersect*" [check? [logic!] cased [integer!] skip [integer!]] + unique*: "red/natives/unique*" [check? [logic!] cased [integer!] skip [integer!]] + difference*: "red/natives/difference*" [check? [logic!] cased [integer!] skip [integer!]] + exclude*: "red/natives/exclude*" [check? [logic!] cased [integer!] skip [integer!]] + complement?*: "red/natives/complement?*" [check? [logic!] return: [red-logic!]] + dehex*: "red/natives/dehex*" [check? [logic!] return: [red-string!]] + enhex*: "red/natives/enhex*" [check? [logic!] return: [red-string!]] + negative?*: "red/natives/negative?*" [check? [logic!] return: [red-logic!]] + positive?*: "red/natives/positive?*" [check? [logic!] return: [red-logic!]] + max*: "red/natives/max*" [check? [logic!]] + min*: "red/natives/min*" [check? [logic!]] + shift*: "red/natives/shift*" [check? [logic!] left [integer!] logical [integer!]] + to-hex*: "red/natives/to-hex*" [check? [logic!] size [integer!]] + sine*: "red/natives/sine*" [check? [logic!] radians [integer!]] + cosine*: "red/natives/cosine*" [check? [logic!] radians [integer!]] + tangent*: "red/natives/tangent*" [check? [logic!] radians [integer!]] + arcsine*: "red/natives/arcsine*" [check? [logic!] radians [integer!]] + arccosine*: "red/natives/arccosine*" [check? [logic!] radians [integer!]] + arctangent*: "red/natives/arctangent*" [check? [logic!] radians [integer!]] + arctangent2*: "red/natives/arctangent2*" [check? [logic!] radians [integer!]] + NaN?*: "red/natives/NaN?*" [check? [logic!] return: [red-logic!]] + log-2*: "red/natives/log-2*" [check? [logic!]] + log-10*: "red/natives/log-10*" [check? [logic!]] + log-e*: "red/natives/log-e*" [check? [logic!]] + exp*: "red/natives/exp*" [check? [logic!]] + square-root*: "red/natives/square-root*" [check? [logic!]] + construct*: "red/natives/construct*" [check? [logic!] _with [integer!] only [integer!]] + value?*: "red/natives/value?*" [check? [logic!]] + try*: "red/natives/try*" [check? [logic!] _all [integer!] return: [integer!]] + uppercase*: "red/natives/uppercase*" [check? [logic!] part [integer!]] + lowercase*: "red/natives/lowercase*" [check? [logic!] part [integer!]] + as-pair*: "red/natives/as-pair*" [check? [logic!]] + break*: "red/natives/break*" [check? [logic!] returned [integer!]] + continue*: "red/natives/continue*" [check? [logic!]] + exit*: "red/natives/exit*" [check? [logic!]] + return*: "red/natives/return*" [check? [logic!]] + throw*: "red/natives/throw*" [check? [logic!] name [integer!]] + catch*: "red/natives/catch*" [check? [logic!] name [integer!]] + extend*: "red/natives/extend*" [check? [logic!] case? [integer!]] + debase*: "red/natives/debase*" [check? [logic!] base-arg [integer!]] + to-local-file*: "red/natives/to-local-file*" [check? [logic!] full? [integer!]] + wait*: "red/natives/wait*" [check? [logic!] all? [integer!]] + checksum*: "red/natives/checksum*" [check? [logic!] _with [integer!]] + unset*: "red/natives/unset*" [check? [logic!]] + new-line*: "red/natives/new-line*" [check? [logic!] _all [integer!] skip [integer!]] + new-line?*: "red/natives/new-line?*" [check? [logic!]] + enbase*: "red/natives/enbase*" [check? [logic!] base-arg [integer!]] + handle-thrown-error: "red/natives/handle-thrown-error" [] + now*: "red/natives/now*" [check? [logic!] year [integer!] month [integer!] day [integer!] time [integer!] zone [integer!] _date [integer!] weekday [integer!] yearday [integer!] precise [integer!] utc [integer!]] + get-env*: "red/natives/get-env*" [check? [logic!]] + set-env*: "red/natives/set-env*" [check? [logic!]] + list-env*: "red/natives/list-env*" [check? [logic!]] + sign?*: "red/natives/sign?*" [check? [logic!] return: [red-integer!]] + as*: "red/natives/as*" [check? [logic!]] + call*: "red/natives/call*" [check? [logic!] wait [integer!] show [integer!] console [integer!] shell [integer!] input [integer!] output [integer!] error [integer!] return: [red-integer!]] + zero?*: "red/natives/zero?*" [check? [logic!] return: [red-logic!]] + size?*: "red/natives/size?*" [check? [logic!]] + browse*: "red/natives/browse*" [check? [logic!]] + context?*: "red/natives/context?*" [check? [logic!]] + compress*: "red/natives/compress*" [check? [logic!] zlib [integer!] _deflate [integer!]] + decompress*: "red/natives/decompress*" [check? [logic!] zlib [integer!] _deflate [integer!]] + recycle*: "red/natives/recycle*" [check? [logic!] on? [integer!] off? [integer!]] + transcode*: "red/natives/transcode*" [check? [logic!] next [integer!] one [integer!] prescan [integer!] scan [integer!] part [integer!] into [integer!] trace [integer!]] + as-money*: "red/natives/as-money*" [check? [logic!]] + buffer-blk: "red/natives/buffer-blk" [red-block!] + ]] + ] + actions: context [ + #import [libRedRT-file stdcall [ + make*: "red/actions/make*" [return: [cell!]] + random*: "red/actions/random*" [seed [integer!] secure [integer!] only [integer!] return: [cell!]] + reflect*: "red/actions/reflect*" [return: [red-block!]] + to*: "red/actions/to*" [return: [cell!]] + form*: "red/actions/form*" [part [integer!]] + mold*: "red/actions/mold*" [only [integer!] _all [integer!] flat [integer!] part [integer!]] + eval-path*: "red/actions/eval-path*" [set? [logic!] return: [cell!]] + compare: "red/actions/compare" [value1 [cell!] value2 [cell!] op [comparison-op!] return: [logic!]] + absolute*: "red/actions/absolute*" [return: [cell!]] + add*: "red/actions/add*" [return: [cell!]] + divide*: "red/actions/divide*" [return: [cell!]] + multiply*: "red/actions/multiply*" [return: [cell!]] + negate*: "red/actions/negate*" [return: [cell!]] + power*: "red/actions/power*" [return: [cell!]] + remainder*: "red/actions/remainder*" [return: [cell!]] + round*: "red/actions/round*" [_to [integer!] even [integer!] down [integer!] half-down [integer!] floor [integer!] ceil [integer!] half-ceil [integer!]] + subtract*: "red/actions/subtract*" [return: [cell!]] + even?*: "red/actions/even?*" [return: [red-logic!]] + odd?*: "red/actions/odd?*" [return: [red-logic!]] + and~*: "red/actions/and~*" [return: [cell!]] + complement*: "red/actions/complement*" [] + or~*: "red/actions/or~*" [return: [cell!]] + xor~*: "red/actions/xor~*" [return: [cell!]] + append*: "red/actions/append*" [part [integer!] only [integer!] dup [integer!]] + at*: "red/actions/at*" [return: [cell!]] + back*: "red/actions/back*" [return: [cell!]] + change*: "red/actions/change*" [part [integer!] only [integer!] dup [integer!] return: [red-series!]] + clear*: "red/actions/clear*" [return: [cell!]] + copy*: "red/actions/copy*" [part [integer!] deep [integer!] types [integer!] return: [cell!]] + find*: "red/actions/find*" [part [integer!] only [integer!] case-arg [integer!] same-arg [integer!] any-arg [integer!] with-arg [integer!] skip [integer!] last [integer!] reverse [integer!] tail [integer!] match [integer!]] + head*: "red/actions/head*" [return: [cell!]] + head?*: "red/actions/head?*" [return: [cell!]] + index?*: "red/actions/index?*" [return: [cell!]] + insert*: "red/actions/insert*" [part [integer!] only [integer!] dup [integer!]] + move*: "red/actions/move*" [part [integer!] return: [cell!]] + length?*: "red/actions/length?*" [return: [red-integer!]] + next*: "red/actions/next*" [return: [cell!]] + pick*: "red/actions/pick*" [return: [cell!]] + poke*: "red/actions/poke*" [return: [cell!]] + put*: "red/actions/put*" [case? [integer!]] + remove*: "red/actions/remove*" [part [integer!] key [integer!]] + reverse*: "red/actions/reverse*" [part [integer!] skip [integer!]] + select*: "red/actions/select*" [part [integer!] only [integer!] case-arg [integer!] same-arg [integer!] any-arg [integer!] with-arg [integer!] skip [integer!] last [integer!] reverse [integer!]] + sort*: "red/actions/sort*" [case-arg [integer!] skip-arg [integer!] compare [integer!] part [integer!] all-arg [integer!] reverse [integer!] stable [integer!]] + skip*: "red/actions/skip*" [return: [cell!]] + swap*: "red/actions/swap*" [return: [red-series!]] + tail*: "red/actions/tail*" [return: [cell!]] + tail?*: "red/actions/tail?*" [return: [cell!]] + take*: "red/actions/take*" [part [integer!] deep [integer!] last [integer!] return: [cell!]] + trim*: "red/actions/trim*" [head [integer!] tail [integer!] auto [integer!] lines [integer!] _all [integer!] with-arg [integer!] return: [red-series!]] + create*: "red/actions/create*" [return: [cell!]] + close*: "red/actions/close*" [return: [cell!]] + delete*: "red/actions/delete*" [return: [cell!]] + modify*: "red/actions/modify*" [case? [integer!] return: [cell!]] + open*: "red/actions/open*" [new [integer!] read [integer!] write [integer!] seek [integer!] allow [integer!]] + query*: "red/actions/query*" [] + read*: "red/actions/read*" [part [integer!] seek [integer!] binary? [integer!] lines? [integer!] info? [integer!] as-arg [integer!] return: [cell!]] + rename*: "red/actions/rename*" [return: [cell!]] + update*: "red/actions/update*" [return: [cell!]] + write*: "red/actions/write*" [binary? [integer!] lines? [integer!] info? [integer!] append? [integer!] part [integer!] seek [integer!] allow [integer!] as-arg [integer!] return: [cell!]] + ]] + ] + ownership: context [ + #import [libRedRT-file stdcall [ + bind: "red/ownership/bind" [container [cell!] owner [red-object!] word [red-word!]] + check: "red/ownership/check" [value [cell!] action [red-word!] new [cell!] index [integer!] part [integer!] return: [logic!]] + ]] + ] + image: context [ + #import [libRedRT-file stdcall [ + init-image: "red/image/init-image" [img [red-image!] handle [pointer! [integer!]] return: [red-image!]] + push: "red/image/push" [img [red-image!]] + acquire-buffer: "red/image/acquire-buffer" [img [red-image!] bitmap [pointer! [integer!]] return: [pointer! [integer!]]] + release-buffer: "red/image/release-buffer" [img [red-image!] bitmap [integer!] modified? [logic!]] + ]] + ] + OS-image: context [ + #import [libRedRT-file stdcall [ + lock-bitmap: "red/OS-image/lock-bitmap" [img [red-image!] write? [logic!] return: [integer!]] + get-data: "red/OS-image/get-data" [handle [integer!] stride [pointer! [integer!]] return: [pointer! [integer!]]] + unlock-bitmap: "red/OS-image/unlock-bitmap" [img [red-image!] data [integer!]] + ]] + ] collector: context [ + #import [libRedRT-file stdcall [ + active?: "red/collector/active?" [logic!] + ]] + ] + words: context [ + red/boot?: yes + _body: red/word/load "" + _anon: red/word/load "" + _remove: red/word/load "remove" + _take: red/word/load "take" + _clear: red/word/load "clear" + _insert: red/word/load "insert" + _poke: red/word/load "poke" + _put: red/word/load "put" + _moved: red/word/load "moved" + _changed: red/word/load "changed" + _reverse: red/word/load "reverse" + _lowercase: red/word/load "lowercase" + _uppercase: red/word/load "uppercase" + type: red/symbol/make "type" + face: red/symbol/make "face" + window: red/symbol/make "window" + offset: red/symbol/make "offset" + key: red/symbol/make "key" + picked: red/symbol/make "picked" + flags: red/symbol/make "flags" + away?: red/symbol/make "away?" + down?: red/symbol/make "down?" + mid-down?: red/symbol/make "mid-down?" + alt-down?: red/symbol/make "alt-down?" + aux-down?: red/symbol/make "aux-down?" + ctrl?: red/symbol/make "ctrl?" + shift?: red/symbol/make "shift?" + red/boot?: no + ] +] \ No newline at end of file diff --git a/red/libRedRT.dll b/red/libRedRT.dll new file mode 100644 index 0000000..729b1bb Binary files /dev/null and b/red/libRedRT.dll differ diff --git a/red/print-message.exe b/red/print-message.exe new file mode 100644 index 0000000..18ebde1 Binary files /dev/null and b/red/print-message.exe differ diff --git a/red/print-message.red b/red/print-message.red new file mode 100644 index 0000000..546e731 --- /dev/null +++ b/red/print-message.red @@ -0,0 +1,2 @@ +Red [ Title: "My program" needs: 'view] +view [ text "Its a great big world!" button "Quit" [quit] ] \ No newline at end of file diff --git a/red/print-name.exe b/red/print-name.exe new file mode 100644 index 0000000..7c9828e Binary files /dev/null and b/red/print-name.exe differ diff --git a/red/print-name.red b/red/print-name.red new file mode 100644 index 0000000..56d816f --- /dev/null +++ b/red/print-name.red @@ -0,0 +1,3 @@ +Red [Needs: 'View] + +view [name: field button "Hi" [print ["Hi" name/text]]] \ No newline at end of file diff --git a/ruby/get_number.rb b/ruby/get_number.rb new file mode 100644 index 0000000..c8ff689 --- /dev/null +++ b/ruby/get_number.rb @@ -0,0 +1,60 @@ +# Get My Number Game +# written by: you! + +puts "Welcome to 'Get My Number!'" + +print "What's your name? " + +input = gets + +name = input.chomp + +puts "Welcome, #{name}!" + +# Store a random number for the player to guess. + +puts "I've got a number between 1 and 100." + +puts "Can you guess it?" + +target = rand(100) + 1 + +# Track how many gueses the player has made. + +num_guesses = 0 + +# Track whether the player has guessed correctly + +guessed_it = false + +until num_guesses == 10 || guessed_it + + puts "You've got #{10 - num_guesses} guesses left." + + print "Make a guess." + + guess = gets.to_i + + num_guesses += 1 + + # Compare the guess to the target. + # Print the appropriate message. + + if guess < target + puts "Oops. Your guess was LOW." + elsif guess > target + puts "Oops. Your guess was HIGH." + elsif guess == target + puts "Good job, #{name}!" + puts "You guessed my number in #{num_guesses} gueses!" + guessed_it = true + end + +end + +# If player ran out of turns, tell them what the nubmer was. + +unless guessed_it + puts "Sorry. You didn't get my number. (It was #{target}.)" +end + diff --git a/ruby/soda_methods.rb b/ruby/soda_methods.rb new file mode 100644 index 0000000..8ab0480 --- /dev/null +++ b/ruby/soda_methods.rb @@ -0,0 +1,13 @@ +def order_soda(flavor, size = "medium", quantity = 1) + if quantity == 1 + plural = "soda" + else + plural = "sodas" + end + puts "#{quantity} #{size} #{flavor} #{plural}!" +end + + +order_soda("orange") +order_soda("lemon-lime", "small", 2) +order_soda("grape", "large") \ No newline at end of file diff --git a/ruby/sort.rb b/ruby/sort.rb new file mode 100644 index 0000000..05a0bb4 --- /dev/null +++ b/ruby/sort.rb @@ -0,0 +1,3 @@ +numbers = [5, 3, 2, 4, 1] + +print numbers.sort \ No newline at end of file diff --git a/ruby/vehicle_methods.rb b/ruby/vehicle_methods.rb new file mode 100644 index 0000000..152b0ee --- /dev/null +++ b/ruby/vehicle_methods.rb @@ -0,0 +1,29 @@ +def accelerate + puts "Stepping on the gas" + puts "Speeding up" +end + +def sound_horn + puts "Pressing the horn button" + puts "Beep beep!" +end + +def use_headlights(brightness) + puts "Turning on #{brightness} headlights" + puts "Watch out for deer!" +end + +def use_headlights(brightness = "low-beam") + puts "Turning on #{brightness} headlights" + puts "Watch out for deer!" +end + +def mileage(miles_driven, gas_used) + return miles_driven / gas_used +end + +trip_mileage = mileage(400, 12) +puts "You got #{trip_mileage} MPG on this trip." + +lifetime_mileage = mileage(11432, 366) +puts "This car averages #{lifetime_mileage} MPG." \ No newline at end of file