diff options
Diffstat (limited to 'core.e')
| -rw-r--r-- | core.e | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/core.e b/core.e index bbe1ba8..44f9fd5 100644 --- a/core.e +++ b/core.e @@ -68,6 +68,12 @@ ~ ~ We begin by outputting the actual docol routine, the one that codewords ~ should point to. Note that this is before we've done any word header. +~ +~ : This is the actual docol routine, the interpreter which is pointed to by +~ : the codeword of every interpreted word. It does not itself have an entry +~ : in the dictionary; the word "docol" will return a pointer to this routine. +~ : The word's entry follows immediately after the routine. +~ : indent here @ dup L!' docol-codeword-value :rsi pack-pushcontrol @@ -76,6 +82,7 @@ dup L!' docol-codeword-value pack-next 8 packalign here ! +~ : deindent ~ We can't use colon to create docol, not even the part that's a word, ~ because colon tries to dynamically invoke docol to fill in the codeword. @@ -87,6 +94,7 @@ L@' docol-codeword-value :rax mov-reg64-imm64 pack-next 8 packalign here ! +~ : deindent ~ Now that we have docol, colon will work and we can define words the normal ~ way. |