Fix stack notation

This commit is contained in:
Koichi Nakamura 2021-01-02 09:29:30 +09:00
parent 9a8257c238
commit 8c59b2fd67

View file

@ -9,37 +9,37 @@ $ cat helloworld.fs | ./planck
# Builtin Words # Builtin Words
| code | name | stack effect | semantics | | code | name | stack effect | semantics |
|:----:|:---------|:---------------|:-----------------------------| |:----:|:---------|:----------------|:-----------------------------|
| Q | quit | ( -- ) | Exit the process | | Q | quit | ( -- ) | Exit the process |
| C | cell | ( -- n ) | The size of Cells | | C | cell | ( -- n ) | The size of Cells |
| h | here | ( -- addr ) | The address of 'here' cell | | h | &here | ( -- c-addr ) | The address of 'here' cell |
| l | latest | ( -- addr ) | The address of 'latest' cell | | l | &latest | ( -- c-addr ) | The address of 'latest' cell |
| k | key | ( -- c ) | Read character | | k | key | ( -- c ) | Read character |
| t | type | ( c -- ) | Print character | | t | type | ( c -- ) | Print character |
| j | jump | ( -- ) | Unconditional branch | | j | jump | ( -- ) | Unconditional branch |
| J | 0jump | ( a -- ) | Jump if a == 0 | | J | 0jump | ( n -- ) | Jump if a == 0 |
| f | find | ( c -- xt ) | Get execution token of c | | f | find | ( c -- xt ) | Get execution token of c |
| x | execute | ( xt -- ... ) | Run the execution token | | x | execute | ( xt -- ... ) | Run the execution token |
| @ | fetch | ( addr -- a ) | Load value from addr | | @ | fetch | ( a-addr -- w ) | Load value from addr |
| ! | store | ( a addr -- ) | Store value to addr | | ! | store | ( w a-addr -- ) | Store value to addr |
| ? | cfetch | ( addr -- c ) | Load byte from addr | | ? | cfetch | ( c-addr -- c ) | Load byte from addr |
| $ | cstore | ( c addr -- ) | Store byte to addr | | $ | cstore | ( c c-addr -- ) | Store byte to addr |
| d | dfetch | ( -- addr ) | Get data stack pointer | | d | dfetch | ( -- a-addr ) | Get data stack pointer |
| D | dstore | ( addr -- ) | Set data stack pointer | | D | dstore | ( a-addr -- ) | Set data stack pointer |
| r | rfetch | ( -- addr ) | Get return stack pointer | | r | rfetch | ( -- a-addr ) | Get return stack pointer |
| R | rstore | ( addr -- ) | Set return stack pointer | | R | rstore | ( a-addr -- ) | Set return stack pointer |
| i | docol | ( -- addr ) | Get the interpreter function | | i | docol | ( -- a-addr ) | Get the interpreter function |
| e | exit | ( -- ) | Exit current function | | e | exit | ( -- ) | Exit current function |
| L | lit | ( -- a ) | Load immediate | | L | lit | ( -- a ) | Load immediate |
| S | string | ( -- addr len) | Load string literal | | S | string | ( -- c-addr u ) | Load string literal |
| + | add | ( a b -- c ) | c = (a + b) | | + | add | ( a b -- c ) | c = (a + b) |
| - | sub | ( a b -- c ) | c = (a - b) | | - | sub | ( a b -- c ) | c = (a - b) |
| * | mul | ( a b -- c ) | c = (a * b) | | * | mul | ( a b -- c ) | c = (a * b) |
| / | div | ( a b -- c ) | c = (a / b) | | / | div | ( a b -- c ) | c = (a / b) |
| % | mod | ( a b -- c ) | c = (a % b) | | % | mod | ( a b -- c ) | c = (a % b) |
| & | and | ( a b -- c ) | c = (a & b) | | & | and | ( a b -- c ) | c = (a & b) |
| \| | or | ( a b -- c ) | c = (a \| b) | | \| | or | ( a b -- c ) | c = (a \| b) |
| ^ | xor | ( a b -- c ) | c = (a ^ b) | | ^ | xor | ( a b -- c ) | c = (a ^ b) |
| < | less | ( a b -- c ) | c = (a < b) | | < | less | ( a b -- c ) | c = (a < b) |
| = | equal | ( a b -- c ) | c = (a == b) | | = | equal | ( a b -- c ) | c = (a == b) |