DSTRINGS WORDS IMPLEMENTED IN ANS FORTH AND PFE Version 1.0.0 David N. Williams September 14, 2010 Below is a functional listing of all the words in the ANS Forth implementation of dynamic strings in the file dstrings.fs. The only word in the pfe DSTRINGS-EXT environment not in dstrings.fs is (DROP-$FRAME). The complete list of words in pfe consists of (DROP-$FRAME), the words in the Dynamic-Strings word set listed below, and the set of other public words listed below as shared with pfe. DYNAMIC-STRINGS WORD SET ------------------------ CONSTANTS MAX-MCOUNT /MCOUNT \n$ empty$ VARIABLES dstrings FSTRING AND MSTRING EXTENSIONS (m!) parse>s s` m,s -mcount mcount mcount@ mcount! COMMENTS ($: STRING SPACE $unused /$buf make-$space max-#$frames 0strings $garbage? $gc-off $gc-on $gc-lock@ $gc-lock! collect-$garbage LOAD AND STORE $! $" $@ $` $constant $variable parse>$ STRING STACK $. $type $depth $drop $dup $swap $nip $over $tuck $2drop $2dup $pick $exchange $s> $,s $s@ >$s >$s-copy $pop $push-ext CONCATENATION $+ $+" $+` ENDCAT parse-s+ s+ ARGUMENTS #$args $ARGS{ $frame $frame-depth drop-$frame find-$arg th-$arg OTHER PUBLIC WORDS SHARED WITH PFE ---------------------------------- STRING SPACE $bufp@ cat$p@ $breakp@ $fbreakp@ $fsp0@ $fsp@ $fsp! $sp0@ $sp@ /$frame-item /$frame-stack /$space-header 0$space in-$buffer? OTHER PUBLIC WORDS IN DSTRINGS.FS --------------------------------- PARSING LIBRARY (unless parsing.fs or pfe parsing module loaded) white? skip scan first-word s-after separate-word parse-area@ parse-area! parse-name preparse-name parse-name-away next-instream-name STRING CASE CONTROL STRUCTURE ENDSOF ENDSCASE SCASE SOF STRUCTURE DEFINITION STRUCT /STRUCT: PRIVATE WORDS IN DSTRINGS.FS ---------------------------- CONSTANTS &mempty CHAR-COUNT-FIELD DEFAULT-/$BUF DEFAULT-MAX-#$FRAMES UCELL-MAX FSTRING AND MSTRING EXTENSIONS 0fill-aligned STRUCTURE DEFINITION +DS-FIELD ds-field: ds-cfield: STRUCTURE FIELDS >dbody >mbody /$bf max-#$f $bufp $brkp $sp $sp0 $fbrkp $fsp $fsp0 cat$p $gbg $gc-lock /$space-header $fbrk STRING SPACE $room? ?$room ?cat STRING STACK SUPPORT $sp-- $sp++ --$sp@ $sp@++ /$stack ?$s-under ($push) CONCATENATION cat$-$! onto-cat$ ARGUMENTS ?$frame-under ARGUMENT INTERPRETER [cat-$arg] args>$frame cat-$arg compile-with-$args skip&postpone