SourceForge!
PFE 0.33.70


Homepage
SourceForge
Download
 
Documentation
-Overview
-The PFE Manual
  old manual / (book)
-ChangeLog
-Authors
-License (LGPL)  
-Wordsets / (book)
-Functions .. (book)
-Dp of ANS Forth
-The 4thTutor
-Forthprimer.pdf
-   Old Wordsets
-   Old Words List
 

Forth Links
* Forth Repository
* Taygeta Compilation
* TinyBoot FirmWare
* FiCL, Free Forth
* Research Vienna
* Research Bournemouth
* zForth WebRing
 

Other Links
* Tektronix/MPT
* Forth Org. (FIG)
* Forth Inc.
* MPE Ltd. Forths
* SF Win32Forth
* PD Win32Forth
* Neil Bawd
 

 

generated
(C) Guido U. Draheim
guidod@gmx.de

ZCHAR-EXT

- zero-terminated C-like charstrings

Z"( [chars<">] -- z* )  => [FORTH]

scan the input to the next doublequote and create a buffer that holds the chars - return the address of that zero-terminated string-buffer, either POCKET-PAD or ALLOTed into the dictionary.

compiling word = [p4_z_quote]


ZCOUNT( z* -- z* len )  => [FORTH]

push length of z-string, additionally to the string addr itself.

  : ZSTRLEN ZCOUNT NIP ;

(see libc strlen(3)) / compare with COUNT / ZSTRLEN

primitive code = [p4_zcount]


ZSTRLEN( z* -- len )  => [FORTH]

push length of z-string.

  : ZSTRLEN ZCOUNT NIP ;

(see libc strlen(3)) / compare with ZMOVE / CMOVE

primitive code = [p4_zstrlen]


ZMOVE( zsrc* zdest* -- )  => [FORTH]

copy a zero terminated string (see libc strcpy(3)) / compare with ZSTRLEN / COUNT

primitive code = [p4_zmove]


ZPLACE( addr* len zaddr* -- )  => [FORTH]

copy string and place as 0 terminated (see libc strncpy(3)) / see also +ZPLACE / Z+PLACE

primitive code = [p4_zplace]


+ZPLACE( caddr* u zdest* -- )  => [FORTH]

Add the string defined by CADDR LEN to the zero terminated string at ZDEST - (for older scripts the SYNONYM named APPENDZ exists) (see libc strncat(3)) / compare with ZPLACE / +PLACE

primitive code = [p4_appendz]


S\"( [backslashed-strings_<">] -- str cnt )  => [FORTH]

scan the following text to create a literal just like S" does, but backslashes can be used to escape special chars. The rules for the backslashes follow C literals, implemented techniques are \n \r \b \a \f \v \e \777 and all non-alnum chars represent themselves, esp. \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera. most importantly the doublequote itself can be escaped. but be also informed that the usage of \' and \" is not portable as some systems preferred to map [\'] into ["]. Here I use the experimental addition to map [\q] to ["] and [\i] to [']

compiling word = [p4_s_backslash_quote]


C\"( [backslashed-strings_<">] -- bstr* )  => [FORTH]

scan the following text to create a literal just like C" does, but backslashes can be used to escape special chars. The rules for the backslashes follow C literals, implemented techniques are \n \r \b \a \f \v \e \777 and all non-alnum chars represent themselves, esp. \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera. most importantly the doublequote itself can be escaped. but be also informed that the usage of \' and \" is not portable as some systems preferred to map [\'] into ["]. Here I use the experimental addition to map [\q] to ["] and [\i] to [']

compiling word = [p4_c_backslash_quote]


Z\"( [backslashed-strings_<">] -- zstr* )  => [FORTH]

scan the following text to create a literal just like Z" does, but backslashes can be used to escape special chars. The rules for the backslashes follow C literals, implemented techniques are \n \r \b \a \f \v \e \777 and all non-alnum chars represent themselves, esp. \" \' \ \? \! \% \( \) \[ \] \{ \} etcetera. most importantly the doublequote itself can be escaped but be also informed that the usage of \' and \" is not portable as some systems preferred to map [\'] into ["]. Here I use the experimental addition to map [\q] to ["] and [\i] to [']

compiling word = [p4_z_backslash_quote]