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:
crc 2024-09-09 11:50:15 +00:00
parent 5c52887aa8
commit 9281b1b737
8 changed files with 1155 additions and 1032 deletions

View file

@ -34,6 +34,7 @@
at `TempStringMax` at `TempStringMax`
- `s:temp` now truncates strings longer than `TempStringMax` - `s:temp` now truncates strings longer than `TempStringMax`
- `s:filter` 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 - library

View file

@ -1,3 +1,3 @@
~~~ ~~~
#1 'BUILD const #2 'BUILD const
~~~ ~~~

View file

@ -698,6 +698,7 @@ below.
| class | link to the class handler function | d:class | | class | link to the class handler function | d:class |
| source | source identifier | d:source | | source | source identifier | d:source |
| hash | hash of the word name | d:hash | | hash | hash of the word name | d:hash |
| source | pointer to stack comment | d:stack |
| name | zero terminated string | d:name | | name | zero terminated string | d:name |
The initial dictionary is constructed at the end of this file. 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 class:primitive
r source-file r source-file
d 0 d 0
d 0
s dup s dup
: 0001 : 0001
@ -717,6 +719,7 @@ It'll take a form like this:
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s drop s drop
: 0002 : 0002
@ -724,6 +727,7 @@ It'll take a form like this:
r _swap r _swap
r class:primitive r class:primitive
d 0 d 0
d 0
s swap s swap
Each entry starts with a pointer to the prior entry (with a Each entry starts with a pointer to the prior entry (with a
@ -762,9 +766,13 @@ d 3
i liadre.. i liadre..
d 4 d 4
: d:name : d:stack
i liadre.. i liadre..
d 5 d 5
: d:name
i liadre..
d 6
~~~ ~~~
A traditional Forth has `create` to make a new dictionary entry A traditional Forth has `create` to make a new dictionary entry
@ -799,6 +807,9 @@ r comma
i lilica.. i lilica..
d 0 d 0
r comma r comma
i lilica..
d 0
r comma
i lica.... i lica....
r comma:string r comma:string
i polist.. i polist..
@ -1550,6 +1561,7 @@ r _dup
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s dup s dup
: 0001 : 0001
r 0000 r 0000
@ -1557,6 +1569,7 @@ r _drop
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s drop s drop
: 0002 : 0002
r 0001 r 0001
@ -1564,6 +1577,7 @@ r _swap
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s swap s swap
: 0003 : 0003
r 0002 r 0002
@ -1571,6 +1585,7 @@ r _call
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s call s call
: 0004 : 0004
r 0003 r 0003
@ -1578,6 +1593,7 @@ r _eq
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s eq? s eq?
: 0005 : 0005
r 0004 r 0004
@ -1585,6 +1601,7 @@ r _neq
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s -eq? s -eq?
: 0006 : 0006
r 0005 r 0005
@ -1592,6 +1609,7 @@ r _lt
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s lt? s lt?
: 0007 : 0007
r 0006 r 0006
@ -1599,6 +1617,7 @@ r _gt
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s gt? s gt?
: 0008 : 0008
r 0007 r 0007
@ -1606,6 +1625,7 @@ r _fetch
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s fetch s fetch
: 0009 : 0009
r 0008 r 0008
@ -1613,6 +1633,7 @@ r _store
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s store s store
: 0010 : 0010
r 0009 r 0009
@ -1620,6 +1641,7 @@ r _add
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s + s +
: 0011 : 0011
r 0010 r 0010
@ -1627,6 +1649,7 @@ r _sub
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s - s -
: 0012 : 0012
r 0011 r 0011
@ -1634,6 +1657,7 @@ r _mul
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s * s *
: 0013 : 0013
r 0012 r 0012
@ -1641,6 +1665,7 @@ r _divmod
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s /mod s /mod
: 0014 : 0014
r 0013 r 0013
@ -1648,6 +1673,7 @@ r _and
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s and s and
: 0015 : 0015
r 0014 r 0014
@ -1655,6 +1681,7 @@ r _or
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s or s or
: 0016 : 0016
r 0015 r 0015
@ -1662,6 +1689,7 @@ r _xor
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s xor s xor
: 0017 : 0017
r 0016 r 0016
@ -1669,6 +1697,7 @@ r _shift
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s shift s shift
: 0018 : 0018
r 0017 r 0017
@ -1676,6 +1705,7 @@ r push
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s push s push
: 0019 : 0019
r 0018 r 0018
@ -1683,6 +1713,7 @@ r pop
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s pop s pop
: 0020 : 0020
r 0019 r 0019
@ -1690,6 +1721,7 @@ r 0;
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s 0; s 0;
: 0021 : 0021
r 0020 r 0020
@ -1697,6 +1729,7 @@ r fetch-next
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s fetch-next s fetch-next
: 0022 : 0022
r 0021 r 0021
@ -1704,6 +1737,7 @@ r store-next
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s store-next s store-next
: 0023 : 0023
r 0022 r 0022
@ -1711,6 +1745,7 @@ r s:to-number
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s s:to-number s s:to-number
: 0024 : 0024
r 0023 r 0023
@ -1718,6 +1753,7 @@ r s:eq
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s s:eq? s s:eq?
: 0025 : 0025
r 0024 r 0024
@ -1725,6 +1761,7 @@ r s:length
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s s:length s s:length
: 0026 : 0026
r 0025 r 0025
@ -1732,6 +1769,7 @@ r choose
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s choose s choose
: 0027 : 0027
r 0026 r 0026
@ -1739,6 +1777,7 @@ r if
r class:primitive r class:primitive
r source-file r source-file
d 0 d 0
d 0
s if s if
: 0028 : 0028
r 0027 r 0027
@ -1746,6 +1785,7 @@ r -if
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s -if s -if
: 0029 : 0029
r 0028 r 0028
@ -1753,6 +1793,7 @@ r sigil:(
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s sigil:( s sigil:(
: 0030 : 0030
r 0029 r 0029
@ -1760,6 +1801,7 @@ r Compiler
r class:data r class:data
r source-file r source-file
d 0 d 0
d 0
s Compiler s Compiler
: 0031 : 0031
r 0030 r 0030
@ -1767,6 +1809,7 @@ r Heap
r class:data r class:data
r source-file r source-file
d 0 d 0
d 0
s Heap s Heap
: 0032 : 0032
r 0031 r 0031
@ -1774,6 +1817,7 @@ r comma
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s , s ,
: 0033 : 0033
r 0032 r 0032
@ -1781,6 +1825,7 @@ r comma:string
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s s, s s,
: 0034 : 0034
r 0033 r 0033
@ -1788,6 +1833,7 @@ r ;
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s ; s ;
: 0035 : 0035
r 0034 r 0034
@ -1795,6 +1841,7 @@ r [
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s [ s [
: 0036 : 0036
r 0035 r 0035
@ -1802,6 +1849,7 @@ r ]
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s ] s ]
: 0037 : 0037
r 0036 r 0036
@ -1809,6 +1857,7 @@ r Dictionary
r class:data r class:data
r source-file r source-file
d 0 d 0
d 0
s Dictionary s Dictionary
: 0038 : 0038
r 0037 r 0037
@ -1816,6 +1865,7 @@ r d:link
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:link s d:link
: 0039 : 0039
r 0038 r 0038
@ -1823,6 +1873,7 @@ r d:xt
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:xt s d:xt
: 0040 : 0040
r 0039 r 0039
@ -1830,6 +1881,7 @@ r d:class
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:class s d:class
: 0041 : 0041
r 0040 r 0040
@ -1837,6 +1889,7 @@ r d:name
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:name s d:name
: 0042 : 0042
r 0041 r 0041
@ -1844,6 +1897,7 @@ r class:word
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s class:word s class:word
: 0043 : 0043
r 0042 r 0042
@ -1851,6 +1905,7 @@ r class:macro
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s class:macro s class:macro
: 0044 : 0044
r 0043 r 0043
@ -1858,6 +1913,7 @@ r class:data
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s class:data s class:data
: 0045 : 0045
r 0044 r 0044
@ -1865,6 +1921,7 @@ r d:add-header
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:add-header s d:add-header
: 0046 : 0046
r 0045 r 0045
@ -1872,6 +1929,7 @@ r sigil:#
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s sigil:# s sigil:#
: 0047 : 0047
r 0046 r 0046
@ -1879,6 +1937,7 @@ r sigil::
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s sigil:: s sigil::
: 0048 : 0048
r 0047 r 0047
@ -1886,6 +1945,7 @@ r sigil:&
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s sigil:& s sigil:&
: 0049 : 0049
r 0048 r 0048
@ -1893,6 +1953,7 @@ r sigil:$
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s sigil:$ s sigil:$
: 0050 : 0050
r 0049 r 0049
@ -1900,6 +1961,7 @@ r repeat
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s repeat s repeat
: 0051 : 0051
r 0050 r 0050
@ -1907,6 +1969,7 @@ r again
r class:macro r class:macro
r source-file r source-file
d 0 d 0
d 0
s again s again
: 0052 : 0052
r 0051 r 0051
@ -1914,6 +1977,7 @@ r interpret
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s interpret s interpret
: 0053 : 0053
r 0052 r 0052
@ -1921,6 +1985,7 @@ r d:lookup
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:lookup s d:lookup
: 0054 : 0054
r 0053 r 0053
@ -1928,6 +1993,7 @@ r class:primitive
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s class:primitive s class:primitive
: 0055 : 0055
r 0054 r 0054
@ -1935,6 +2001,7 @@ r Version
r class:data r class:data
r source-file r source-file
d 0 d 0
d 0
s Version s Version
: 0056 : 0056
r 0055 r 0055
@ -1942,6 +2009,7 @@ r muri:i
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s i s i
: 0057 : 0057
r 0056 r 0056
@ -1949,6 +2017,7 @@ r comma
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d s d
: 0058 : 0058
r 0057 r 0057
@ -1956,6 +2025,7 @@ r muri:r
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s r s r
: 0059 : 0059
r 0058 r 0058
@ -1963,6 +2033,7 @@ r Base
r class:data r class:data
r source-file r source-file
d 0 d 0
d 0
s Base s Base
: 0060 : 0060
r 0059 r 0059
@ -1970,6 +2041,7 @@ r pack
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s pack s pack
: 0061 : 0061
r 0060 r 0060
@ -1977,6 +2049,7 @@ r unpack
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s unpack s unpack
: 0062 : 0062
r 0061 r 0061
@ -1984,6 +2057,7 @@ r d:source
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:source s d:source
: 0063 : 0063
r 0062 r 0062
@ -1991,13 +2065,23 @@ r d:hash
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s d:hash s d:hash
: 9999 : 0064
r 0063 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 err:notfound
r class:word r class:word
r source-file r source-file
d 0 d 0
d 0
s err:notfound s err:notfound
~~~ ~~~

BIN
ngaImage

Binary file not shown.

View file

@ -35,7 +35,8 @@
#define D_OFFSET_CLASS 2 #define D_OFFSET_CLASS 2
#define D_OFFSET_SOURCE 3 #define D_OFFSET_SOURCE 3
#define D_OFFSET_HASH 4 #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. */ /* These settings can be overridden at compile time. */

File diff suppressed because it is too large Load diff

View file

@ -49,7 +49,8 @@
#define D_OFFSET_LINK 0 /* Dictionary Format Info. Update if */ #define D_OFFSET_LINK 0 /* Dictionary Format Info. Update if */
#define D_OFFSET_XT 1 /* you change the dictionary fields. */ #define D_OFFSET_XT 1 /* you change the dictionary fields. */
#define D_OFFSET_CLASS 2 #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 */ #define NUM_DEVICES 1 /* Set the number of I/O devices */

View file

@ -17,7 +17,7 @@ const
D_OFFSET_LINK = 0; D_OFFSET_LINK = 0;
D_OFFSET_XT = 1; D_OFFSET_XT = 1;
D_OFFSET_CLASS = 2; D_OFFSET_CLASS = 2;
D_OFFSET_NAME = 4; D_OFFSET_NAME = 6;
TIB = 1471; TIB = 1471;
var var