home *** CD-ROM | disk | FTP | other *** search
- VOCABULARY RELATED WORDS:
- copyright (C) 1983 by E. E. Bergmann
- definitions in alphabetical(ASCII) order
- :
- ::
- *********************************************************
- * *
- * PISTOL-Portably Implemented Stack Oriented Language *
- * Version 2.0 *
- * (C) 1983 by Ernest E. Bergmann *
- * Physics, Building #16 *
- * Lehigh Univerisity *
- * Bethlehem, Pa. 18015 *
- * *
- * Permission is hereby granted for all reproduction and *
- * distribution of this material provided this notice is *
- * included. *
- * *
- *********************************************************
- :
- ::
- (PISTOL<) Variable that contains pointer to most recent
- definition in the PISTOL< vocabulary branch;
- see PISTOL<, below.
-
- (UNLINKED<) Variable that contains pointer to most recent
- definition in the UNLINKED< vocabulary branch;
- see UNLINKED<, below.
-
- .V --> (pointer to top of vocabulary stack)
- It is the vocabulary stack pointer.
-
- > Pops (removes from) the top of the Vocabulary
- Stack, which contains a list of Vocabulary
- Branches to be searched by the interpreter or
- by the FIND command.
-
- ADDRESS '<name> --> (its address)
- If the word is not found, an error diagnostic
- is provided.
-
- BLIST Utility that types out a list of all Vocabulary
- Branches that exist ("Branch List").
-
- BRANCH Creates a new "catagory" or "heading" for
- definitions; creates a new vocabulary whose
- name is what has been placed on the stack.
- For example:
- X> 'SPECIAL< BRANCH
- X> SPECIAL< DEFINITIONS
- X> 'FIRST : .... ;
- .
- .
- X> > DEFINITIONS % finish definitions for
- X> % SPECIAL< vocabulary
-
- CURRENT Variable containing pointer to Vocabulary
- Branch into which the next word definition
- will be placed. Normally, this pointer points
- at the last definition.
-
- DEFINITIONS Changes the CURRENT pointer to match the latest
- Vocabulary Branch on the Vocabulary Stack.
- Thus, further word definitions will be placed
- in the Branch that is currently on the top of
- the Vocabulary stack (see the example given
- above for BRANCH).
-
- FENCE Variable containing lower limit for FORGET, see
- below.
-
- FIND '<name> --> (its address) if found
- --> FALSE if not found
-
- FORGET '<name> -->
- Removes all definitions recently defined back
- back to and including the defintion of <name>.
- Will ABORT if the address of <name> is below
- (before) the value of FENCE, see above.
-
- NAME TOS -->
- Takes the TOS as an address of a definition or
- a "primitive" ( an "opcode" that can be
- interpreted, even so it is not an address)
- and prints its name. NAME is used by the
- disassembler, by TRACE, and by the definition
- listers, such as NEXT10, below.
-
- NEXT10 TOS --> ADDR
- Takes the TOS as the address of a definition;
- That definition and the preceding 9 definitions
- in the same vocabulary are listed by address
- and NAME. Upon completion, the address of the
- next logically listable definition, ADDR, is
- left on stack. So, for example, to list the
- last thirty definitions one could type:
- X> TOP10 NEXT10 NEXT10 DROP
-
- PISTOL< Accesses the original vocabulary branch of
- PISTOL. Invoking this word will place
- (PISTOL<) on the top of the vocabulary stack
- so that this branch will be first in the
- search path.
-
- PREVIOUS Variable that contains the address of the
- previous link to the definition last found
- by FIND or VFIND. It is used by UNLINK and
- RELINK to obtain the link to the item searched
- for.
-
- PRIMITIVE? TOS --> TRUE|FALSE
- Decides whether the TOS is a suitable value to
- be an "opcode" to be executed directly by the
- PISTOL "primitive" interpreter, PINT, as
- opposed to the address of a higher level
- definition. It is used by NAME to decide
- that TOS is not the address of a definition
- entry.
-
- RELINK '<name> -->
- Searches the UNLINKED< Vocabulary Branch for
- the <name> definition; if found, it is removed
- from that Branch and (re)attached to the
- Vocabulary Branch that is at the top of the
- Vocabulary Stack.
-
- TOP10 --> ADDR
- Lists the ten most recent definitions in the
- CURRENT vocabulary branch. It leaves the
- address of the next definition to be listed
- on the stack to be available for NEXT10; see
- the example of use above for NEXT10.
-
- UNLINK '<name> -->
- Searches for the <name> definition; if found,
- it is removed from its vocabulary branch and
- attached to the UNLINKED< vocabulary branch.
- It is used to removed from the usual search
- path those definitions which are no longer of
- use or which are too dangerous to be easily
- accessible.
-
- UNLINKED< Vocabulary branch into which all UNLINKed
- definitions are placed (see UNLINK, RELINK).
- Invoking UNLINKED< will place (UNLINKED<)
- at the top of the vocabulary stack.
-
- VADDRESS '<name> VOCAB --> (address)
- Similar to ADDRESS, but only the specified
- vocabulary branch is searched.
-
- VFIND '<name> VOCAB --> (address)|FALSE
- Similar to FIND, except that only the specified
- vocabulary branch is searched.
-
- VLIST --> ADDR
- Lists the ten most recent definitions in the
- topmost branch on vocabulary stack. It leaves
- the address of the next definition to be listed
- on the stack to be available for NEXT10;
- similar to TOP10 (see above).
-
- :
- r NEXT10