add a d:stack field to hold a pointer to a stack comment for a word (currently unused)
FossilOrigin-Name: 638db3d5baf3d12cf5686941e23d726c3dc3e78837ac08f1ce897e82303a1245
This commit is contained in:
parent
5c52887aa8
commit
9281b1b737
8 changed files with 1155 additions and 1032 deletions
|
@ -34,6 +34,7 @@
|
|||
at `TempStringMax`
|
||||
- `s:temp` now truncates strings longer than `TempStringMax`
|
||||
- `s:filter` now truncates strings longer than `TempStringMax`
|
||||
- added new `d:stack` field for storing a stack comment
|
||||
|
||||
- library
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
~~~
|
||||
#1 'BUILD const
|
||||
#2 'BUILD const
|
||||
~~~
|
||||
|
|
|
@ -698,6 +698,7 @@ below.
|
|||
| class | link to the class handler function | d:class |
|
||||
| source | source identifier | d:source |
|
||||
| hash | hash of the word name | d:hash |
|
||||
| source | pointer to stack comment | d:stack |
|
||||
| name | zero terminated string | d:name |
|
||||
|
||||
The initial dictionary is constructed at the end of this file.
|
||||
|
@ -709,6 +710,7 @@ It'll take a form like this:
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s dup
|
||||
|
||||
: 0001
|
||||
|
@ -717,6 +719,7 @@ It'll take a form like this:
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s drop
|
||||
|
||||
: 0002
|
||||
|
@ -724,6 +727,7 @@ It'll take a form like this:
|
|||
r _swap
|
||||
r class:primitive
|
||||
d 0
|
||||
d 0
|
||||
s swap
|
||||
|
||||
Each entry starts with a pointer to the prior entry (with a
|
||||
|
@ -762,9 +766,13 @@ d 3
|
|||
i liadre..
|
||||
d 4
|
||||
|
||||
: d:name
|
||||
: d:stack
|
||||
i liadre..
|
||||
d 5
|
||||
|
||||
: d:name
|
||||
i liadre..
|
||||
d 6
|
||||
~~~
|
||||
|
||||
A traditional Forth has `create` to make a new dictionary entry
|
||||
|
@ -799,6 +807,9 @@ r comma
|
|||
i lilica..
|
||||
d 0
|
||||
r comma
|
||||
i lilica..
|
||||
d 0
|
||||
r comma
|
||||
i lica....
|
||||
r comma:string
|
||||
i polist..
|
||||
|
@ -1550,6 +1561,7 @@ r _dup
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s dup
|
||||
: 0001
|
||||
r 0000
|
||||
|
@ -1557,6 +1569,7 @@ r _drop
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s drop
|
||||
: 0002
|
||||
r 0001
|
||||
|
@ -1564,6 +1577,7 @@ r _swap
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s swap
|
||||
: 0003
|
||||
r 0002
|
||||
|
@ -1571,6 +1585,7 @@ r _call
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s call
|
||||
: 0004
|
||||
r 0003
|
||||
|
@ -1578,6 +1593,7 @@ r _eq
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s eq?
|
||||
: 0005
|
||||
r 0004
|
||||
|
@ -1585,6 +1601,7 @@ r _neq
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s -eq?
|
||||
: 0006
|
||||
r 0005
|
||||
|
@ -1592,6 +1609,7 @@ r _lt
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s lt?
|
||||
: 0007
|
||||
r 0006
|
||||
|
@ -1599,6 +1617,7 @@ r _gt
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s gt?
|
||||
: 0008
|
||||
r 0007
|
||||
|
@ -1606,6 +1625,7 @@ r _fetch
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s fetch
|
||||
: 0009
|
||||
r 0008
|
||||
|
@ -1613,6 +1633,7 @@ r _store
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s store
|
||||
: 0010
|
||||
r 0009
|
||||
|
@ -1620,6 +1641,7 @@ r _add
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s +
|
||||
: 0011
|
||||
r 0010
|
||||
|
@ -1627,6 +1649,7 @@ r _sub
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s -
|
||||
: 0012
|
||||
r 0011
|
||||
|
@ -1634,6 +1657,7 @@ r _mul
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s *
|
||||
: 0013
|
||||
r 0012
|
||||
|
@ -1641,6 +1665,7 @@ r _divmod
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s /mod
|
||||
: 0014
|
||||
r 0013
|
||||
|
@ -1648,6 +1673,7 @@ r _and
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s and
|
||||
: 0015
|
||||
r 0014
|
||||
|
@ -1655,6 +1681,7 @@ r _or
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s or
|
||||
: 0016
|
||||
r 0015
|
||||
|
@ -1662,6 +1689,7 @@ r _xor
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s xor
|
||||
: 0017
|
||||
r 0016
|
||||
|
@ -1669,6 +1697,7 @@ r _shift
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s shift
|
||||
: 0018
|
||||
r 0017
|
||||
|
@ -1676,6 +1705,7 @@ r push
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s push
|
||||
: 0019
|
||||
r 0018
|
||||
|
@ -1683,6 +1713,7 @@ r pop
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s pop
|
||||
: 0020
|
||||
r 0019
|
||||
|
@ -1690,6 +1721,7 @@ r 0;
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s 0;
|
||||
: 0021
|
||||
r 0020
|
||||
|
@ -1697,6 +1729,7 @@ r fetch-next
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s fetch-next
|
||||
: 0022
|
||||
r 0021
|
||||
|
@ -1704,6 +1737,7 @@ r store-next
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s store-next
|
||||
: 0023
|
||||
r 0022
|
||||
|
@ -1711,6 +1745,7 @@ r s:to-number
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s s:to-number
|
||||
: 0024
|
||||
r 0023
|
||||
|
@ -1718,6 +1753,7 @@ r s:eq
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s s:eq?
|
||||
: 0025
|
||||
r 0024
|
||||
|
@ -1725,6 +1761,7 @@ r s:length
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s s:length
|
||||
: 0026
|
||||
r 0025
|
||||
|
@ -1732,6 +1769,7 @@ r choose
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s choose
|
||||
: 0027
|
||||
r 0026
|
||||
|
@ -1739,6 +1777,7 @@ r if
|
|||
r class:primitive
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s if
|
||||
: 0028
|
||||
r 0027
|
||||
|
@ -1746,6 +1785,7 @@ r -if
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s -if
|
||||
: 0029
|
||||
r 0028
|
||||
|
@ -1753,6 +1793,7 @@ r sigil:(
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s sigil:(
|
||||
: 0030
|
||||
r 0029
|
||||
|
@ -1760,6 +1801,7 @@ r Compiler
|
|||
r class:data
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s Compiler
|
||||
: 0031
|
||||
r 0030
|
||||
|
@ -1767,6 +1809,7 @@ r Heap
|
|||
r class:data
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s Heap
|
||||
: 0032
|
||||
r 0031
|
||||
|
@ -1774,6 +1817,7 @@ r comma
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s ,
|
||||
: 0033
|
||||
r 0032
|
||||
|
@ -1781,6 +1825,7 @@ r comma:string
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s s,
|
||||
: 0034
|
||||
r 0033
|
||||
|
@ -1788,6 +1833,7 @@ r ;
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s ;
|
||||
: 0035
|
||||
r 0034
|
||||
|
@ -1795,6 +1841,7 @@ r [
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s [
|
||||
: 0036
|
||||
r 0035
|
||||
|
@ -1802,6 +1849,7 @@ r ]
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s ]
|
||||
: 0037
|
||||
r 0036
|
||||
|
@ -1809,6 +1857,7 @@ r Dictionary
|
|||
r class:data
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s Dictionary
|
||||
: 0038
|
||||
r 0037
|
||||
|
@ -1816,6 +1865,7 @@ r d:link
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:link
|
||||
: 0039
|
||||
r 0038
|
||||
|
@ -1823,6 +1873,7 @@ r d:xt
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:xt
|
||||
: 0040
|
||||
r 0039
|
||||
|
@ -1830,6 +1881,7 @@ r d:class
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:class
|
||||
: 0041
|
||||
r 0040
|
||||
|
@ -1837,6 +1889,7 @@ r d:name
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:name
|
||||
: 0042
|
||||
r 0041
|
||||
|
@ -1844,6 +1897,7 @@ r class:word
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s class:word
|
||||
: 0043
|
||||
r 0042
|
||||
|
@ -1851,6 +1905,7 @@ r class:macro
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s class:macro
|
||||
: 0044
|
||||
r 0043
|
||||
|
@ -1858,6 +1913,7 @@ r class:data
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s class:data
|
||||
: 0045
|
||||
r 0044
|
||||
|
@ -1865,6 +1921,7 @@ r d:add-header
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:add-header
|
||||
: 0046
|
||||
r 0045
|
||||
|
@ -1872,6 +1929,7 @@ r sigil:#
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s sigil:#
|
||||
: 0047
|
||||
r 0046
|
||||
|
@ -1879,6 +1937,7 @@ r sigil::
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s sigil::
|
||||
: 0048
|
||||
r 0047
|
||||
|
@ -1886,6 +1945,7 @@ r sigil:&
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s sigil:&
|
||||
: 0049
|
||||
r 0048
|
||||
|
@ -1893,6 +1953,7 @@ r sigil:$
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s sigil:$
|
||||
: 0050
|
||||
r 0049
|
||||
|
@ -1900,6 +1961,7 @@ r repeat
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s repeat
|
||||
: 0051
|
||||
r 0050
|
||||
|
@ -1907,6 +1969,7 @@ r again
|
|||
r class:macro
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s again
|
||||
: 0052
|
||||
r 0051
|
||||
|
@ -1914,6 +1977,7 @@ r interpret
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s interpret
|
||||
: 0053
|
||||
r 0052
|
||||
|
@ -1921,6 +1985,7 @@ r d:lookup
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:lookup
|
||||
: 0054
|
||||
r 0053
|
||||
|
@ -1928,6 +1993,7 @@ r class:primitive
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s class:primitive
|
||||
: 0055
|
||||
r 0054
|
||||
|
@ -1935,6 +2001,7 @@ r Version
|
|||
r class:data
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s Version
|
||||
: 0056
|
||||
r 0055
|
||||
|
@ -1942,6 +2009,7 @@ r muri:i
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s i
|
||||
: 0057
|
||||
r 0056
|
||||
|
@ -1949,6 +2017,7 @@ r comma
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d
|
||||
: 0058
|
||||
r 0057
|
||||
|
@ -1956,6 +2025,7 @@ r muri:r
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s r
|
||||
: 0059
|
||||
r 0058
|
||||
|
@ -1963,6 +2033,7 @@ r Base
|
|||
r class:data
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s Base
|
||||
: 0060
|
||||
r 0059
|
||||
|
@ -1970,6 +2041,7 @@ r pack
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s pack
|
||||
: 0061
|
||||
r 0060
|
||||
|
@ -1977,6 +2049,7 @@ r unpack
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s unpack
|
||||
: 0062
|
||||
r 0061
|
||||
|
@ -1984,6 +2057,7 @@ r d:source
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:source
|
||||
: 0063
|
||||
r 0062
|
||||
|
@ -1991,13 +2065,23 @@ r d:hash
|
|||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:hash
|
||||
: 9999
|
||||
: 0064
|
||||
r 0063
|
||||
r d:stack
|
||||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s d:stack
|
||||
: 9999
|
||||
r 0064
|
||||
r err:notfound
|
||||
r class:word
|
||||
r source-file
|
||||
d 0
|
||||
d 0
|
||||
s err:notfound
|
||||
~~~
|
||||
|
||||
|
|
BIN
ngaImage
BIN
ngaImage
Binary file not shown.
|
@ -35,7 +35,8 @@
|
|||
#define D_OFFSET_CLASS 2
|
||||
#define D_OFFSET_SOURCE 3
|
||||
#define D_OFFSET_HASH 4
|
||||
#define D_OFFSET_NAME 5
|
||||
#define D_OFFSET_STACK 5
|
||||
#define D_OFFSET_NAME 6
|
||||
|
||||
|
||||
/* These settings can be overridden at compile time. */
|
||||
|
|
2088
vm/nga-c/image.c
2088
vm/nga-c/image.c
File diff suppressed because it is too large
Load diff
|
@ -49,7 +49,8 @@
|
|||
#define D_OFFSET_LINK 0 /* Dictionary Format Info. Update if */
|
||||
#define D_OFFSET_XT 1 /* you change the dictionary fields. */
|
||||
#define D_OFFSET_CLASS 2
|
||||
#define D_OFFSET_NAME 5
|
||||
#define D_OFFSET_STACK 5
|
||||
#define D_OFFSET_NAME 6
|
||||
|
||||
#define NUM_DEVICES 1 /* Set the number of I/O devices */
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ const
|
|||
D_OFFSET_LINK = 0;
|
||||
D_OFFSET_XT = 1;
|
||||
D_OFFSET_CLASS = 2;
|
||||
D_OFFSET_NAME = 4;
|
||||
D_OFFSET_NAME = 6;
|
||||
TIB = 1471;
|
||||
|
||||
var
|
||||
|
|
Loading…
Reference in a new issue