mirror of
https://git.sr.ht/~crc_/retroforth
synced 2024-11-16 19:48:56 +01:00
add a short document on stack comments
FossilOrigin-Name: a89d9d182a7f490a2e7503bc52c45abc66a2934514c57c70fe47ddf9bef0238f
This commit is contained in:
parent
50ab2b8ff0
commit
6bf147fbb9
1 changed files with 26 additions and 0 deletions
26
doc/StackComments.md
Normal file
26
doc/StackComments.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
Most words in RETRO have a stack comment. These look like:
|
||||
|
||||
(-)
|
||||
(nn-n)
|
||||
|
||||
As with all comments, a stack comment begins with ( and should end with
|
||||
a ). There are two parts to the comment. On the left side of the - is
|
||||
what the word *consumes*. On the right is what it *leaves*.
|
||||
|
||||
RETRO uses a short notation, with one character per value taken or left.
|
||||
In general, the following symbols represent certain types of values.
|
||||
|
||||
b, n, m, o, x, y, z are generic numeric values
|
||||
s represents a string
|
||||
v represents a variable
|
||||
p, a represent pointers
|
||||
q represents a quotation
|
||||
d represents a dictionary header
|
||||
f represents a `TRUE` or `FALSE` flag.
|
||||
|
||||
In the case of something like: (xyz-m)
|
||||
RETRO expects z to be on the top of the stack, with y below it and x below
|
||||
the y value. And after execution, a single value (m) will be left on the
|
||||
stack.
|
||||
|
||||
Words with no stack effect have a comment of (-)
|
Loading…
Reference in a new issue