Table of Contents


17. The optional String word set


17.1 Introduction


17.2 Additional terms and notation

None.


17.3 Additional usage requirements

Append table 17.1 to table 3.5.

See: 3.2.6 Environmental queries

Table 17.1 - Environmental query strings

String         Value data type    Constant?   Meaning
------         ---------------    ---------   -------
STRING          flag              no          string word set present
STRING-EXT      flag              no          string extensions word set present


17.4 Additional documentation requirements

None.


17.5 Compliance and labeling


17.5.1 ANS Forth systems

The phrase Providing the String word set shall be appended to the label of any Standard System that provides all of the String word set.

The phrase Providing name(s) from the String Extensions word set shall be appended to the label of any Standard System that provides portions of the String Extensions word set.

The phrase Providing the String Extensions word set shall be appended to the label of any Standard System that provides all of the String and String Extensions word sets.


17.5.2 ANS Forth programs

The phrase Requiring the String word set shall be appended to the label of Standard Programs that require the system to provide the String word set.

The phrase Requiring name(s) from the String Extensions word set shall be appended to the label of Standard Programs that require the system to provide portions of the String Extensions word set.

The phrase Requiring the String Extensions word set shall be appended to the label of Standard Programs that require the system to provide all of the String and String Extensions word sets.


17.6 Glossary


17.6.1 String words


17.6.1.0170 -TRAILING
dash-trailing STRING
	( c-addr u1 -- c-addr u2 )

If u1 is greater than zero, u2 is equal to u1 less the number of spaces at the end of the character string specified by c-addr u1. If u1 is zero or the entire string consists of spaces, u2 is zero.


17.6.1.0245 /STRING
slash-string STRING
	( c-addr1 u1 n -- c-addr2 u2 )

Adjust the character string at c-addr1 by n characters. The resulting character string, specified by c-addr2 u2, begins at c-addr1 plus n characters and is u1 minus n characters long.

See: A.17.6.1.0245 /STRING


17.6.1.0780 BLANK
STRING
	( c-addr u -- )

If u is greater than zero, store the character value for space in u consecutive character positions beginning at c-addr.


17.6.1.0910 CMOVE
c-move STRING
	( c-addr1 c-addr2 u -- )

If u is greater than zero, copy u consecutive characters from the data space starting at c-addr1 to that starting at c-addr2, proceeding character-by-character from lower addresses to higher addresses.

See: A.17.6.1.0910 CMOVE , 17.6.1.0920 CMOVE>


17.6.1.0920 CMOVE>
c-move-up STRING
	( c-addr1 c-addr2 u -- )

If u is greater than zero, copy u consecutive characters from the data space starting at c-addr1 to that starting at c-addr2, proceeding character-by-character from higher addresses to lower addresses.

See: 17.6.1.0910 CMOVE , A.17.6.1.0920 CMOVE>


17.6.1.0935 COMPARE
STRING
	( c-addr1 u1 c-addr2 u2 -- n )

Compare the string specified by c-addr1 u1 to the string specified by c-addr2 u2. The strings are compared, beginning at the given addresses, character by character, up to the length of the shorter string or until a difference is found. If the two strings are identical, n is zero. If the two strings are identical up to the length of the shorter string, n is minus-one (-1) if u1 is less than u2 and one (1) otherwise. If the two strings are not identical up to the length of the shorter string, n is minus-one (-1) if the first non-matching character in the string specified by c-addr1 u1 has a lesser numeric value than the corresponding character in the string specified by c-addr2 u2 and one (1) otherwise.

See: A.17.6.1.0935 COMPARE


17.6.1.2191 SEARCH
STRING
	( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag )

Search the string specified by c-addr1 u1 for the string specified by c-addr2 u2. If flag is true, a match was found at c-addr3 with u3 characters remaining. If flag is false there was no match and c-addr3 is c-addr1 and u3 is u1.

See: A.17.6.1.2191 SEARCH


17.6.1.2212 SLITERAL
STRING

	Interpretation: Interpretation semantics for this word are undefined.
        Compilation: ( c-addr1 u -- )

Append the run-time semantics given below to the current definition.

        Run-time:       ( -- c-addr2 u )

Return c-addr2 u describing a string consisting of the characters specified by c-addr1 u during compilation. A program shall not alter the returned string.

See: A.17.6.1.2212 SLITERAL


17.6.2 String extension words

None

Table of Contents
Next Section