1. 0 [IF]
|
1. 0 [IF]
|
2. Forth to HTML converter
|
2. Forth to XML converter
|
3.
4. Main contributors:
5. Brad Eckert brad1NO@SPAMtinyboot.com Original author
|
3.
4. Main contributors:
5. Brad Eckert brad1NO@SPAMtinyboot.com Original author
|
6. Ed Beroset berosetNO@SPAMmindspring.com Fixed HTML bugs
|
6. Ed Beroset berosetNO@SPAMmindspring.com XML, XSLT, some fixes
|
7. Dirk Busch dirkNO@SPAMschneider-busch.de Added some features
8.
|
7. Dirk Busch dirkNO@SPAMschneider-busch.de Added some features
8.
|
9. Revision 10. See bottom for revision history.
|
9. Revision 11. See bottom for revision history.
|
10.
|
10.
|
11. This ANS Forth program is public domain. It translates ANS Forth to colorized
12. HTML. Hyperlinks to the ANS Forth draft standard are inserted for all ANS
|
11. This ANS Forth program is public domain. It translates ANS Forth to XML with
12. the intent that the XML is then postprocesed by XSLT to create documentation
13. of the Forth program.
14.
15. Hyperlinks to the ANS Forth draft standard are inserted for all ANS
|
13. standard words. Hyperlinks to user definitions are included.
14.
|
16. standard words. Hyperlinks to user definitions are included.
17.
|
15. Usage: HTML FileName Generates HTML file from Forth source.
|
18. Usage: XML FileName Generates XML file from Forth source.
|
16. Output file is Filename with .HTM extension.
|
19. Output file is Filename with .HTM extension.
|
17. Q [forth code] Outputs HTML for 1 line to screen
|
20. q [forth code] Outputs XML for 1 line to screen
|
18.
19. Keep in mind that whatever path you use for the input filename will be in the
|
21.
22. Keep in mind that whatever path you use for the input filename will be in the
|
20. output files, so don't use a drive letter etc. if the HTML is intended for
|
23. output files, so don't use a drive letter etc. if the XML is intended for
|
21. distribution on CD or a web site.
22.
|
24. distribution on CD or a web site.
25.
|
23. A framed version of the output file has a "_f.htm" extension. The left frame
24. is an index of words and the words that use them. The right frame is source.
25. If you open the index file (_i.htm extension) and click on links, source will
26. be in a separate window. Still usable but frames are easier.
27.
|
|
28. Q is for debugging. You can use "linenum ?" to show the line number if an
|
26. Q is for debugging. You can use "linenum ?" to show the line number if an
|
29. ABORT occurs. The HTML is about 8 times as big as the Forth source because of
|
27. ABORT occurs. The XML is about 6 times as big as the Forth source because of
|
30. all the links, color changes and whitespace.
31.
|
28. all the links, color changes and whitespace.
29.
|
32. INCLUDEd files produce corresponding HTML pages. If a file can't be found,
|
30. INCLUDEd files produce corresponding XML pages. If a file can't be found,
|
33. it is skipped. Otherwise it is nested.
34.
35. When you INCLUDE this file some redefinition complaints may occur. That's
36. okay since you won't be loading an application on top of this. You can make
37. a text version of this file by cut-and-paste to a text editor. The browser's
38. save-as-text function will work too. This file is only 80 columns wide. Note
39. that the browser may wrap after 80 columns when saving as a text file.
40.
41. Users of specific Forths can extend the hyperlink table to point to anchors
42. in a glossary for that particular Forth.
43.
44. This code has been tested under Win32forth, SwiftForth, VFX and Gforth.
45.
|
31. it is skipped. Otherwise it is nested.
32.
33. When you INCLUDE this file some redefinition complaints may occur. That's
34. okay since you won't be loading an application on top of this. You can make
35. a text version of this file by cut-and-paste to a text editor. The browser's
36. save-as-text function will work too. This file is only 80 columns wide. Note
37. that the browser may wrap after 80 columns when saving as a text file.
38.
39. Users of specific Forths can extend the hyperlink table to point to anchors
40. in a glossary for that particular Forth.
41.
42. This code has been tested under Win32forth, SwiftForth, VFX and Gforth.
43.
|
46. You can change the following bold/italic/nestable options:
|
44. You can change the following nestable options:
|
47. [THEN]
48.
49. ONLY FORTH ALSO DEFINITIONS
50. \ ------------------------------------------------------------------------------
|
45. [THEN]
46.
47. ONLY FORTH ALSO DEFINITIONS
48. \ ------------------------------------------------------------------------------
|
51. \ Configuration - You can change the options:
52. 0 VALUE bold \ T if bold text
53. 0 VALUE italic \ T if italic comments
|
49. \ Configuration - You can change this option:
|
54. 1 VALUE nestable \ T if INCLUDE nested files
|
50. 1 VALUE nestable \ T if INCLUDE nested files
|
55. 1 VALUE linksource \ T link to the org. file /7/
56. 1 VALUE frames \ T if using frames /9/
57. : dpanspath S" .\" ; \ path to the ANS-Files /7/
58. : copyright S" " ; \ copyright to output at /7/
59. \ the bottom of the HTML-file
60. 0 CONSTANT scheme ( Color scheme ) \ 0 = light background, 1=dark
|
|
61. \ ------------------------------------------------------------------------------
62.
63. : undefined ( <name> -- f ) BL WORD FIND NIP 0= ;
64. undefined NOOP [IF] : NOOP ; [THEN]
65. undefined BOUNDS [IF] : BOUNDS OVER + SWAP ; [THEN]
66. undefined /STRING [IF] : /STRING TUCK - >R CHARS + R> ; [THEN]
67. undefined C+! [IF] : C+! SWAP OVER C@ + SWAP C! ; [THEN]
68. undefined FDROP [IF] : FDROP ; ( no floating point? fake it ) [THEN]
69. undefined >FLOAT [IF] : >FLOAT DROP C@ [CHAR] 0 [CHAR] 9 1+ WITHIN ; [THEN]
70. undefined SCAN [IF] : SCAN ( addr len char -- addr' len' )
71. >R BEGIN DUP WHILE OVER C@ R@ <> WHILE 1 /STRING REPEAT THEN R> DROP ; [THEN]
72. undefined SKIP [IF] : SKIP ( addr len char -- addr' len' )
73. >R BEGIN DUP WHILE OVER C@ R@ = WHILE 1 /STRING REPEAT THEN R> DROP ; [THEN]
74. : +PLACE ( addr len a -- ) 2DUP 2>R COUNT CHARS + SWAP MOVE 2R> C+! ;
75. : PLACE ( addr len a -- ) 0 OVER C! +PLACE ;
76. : UPC ( c -- C ) DUP [CHAR] a [CHAR] z 1+ WITHIN IF 32 - THEN ;
|
51. \ ------------------------------------------------------------------------------
52.
53. : undefined ( <name> -- f ) BL WORD FIND NIP 0= ;
54. undefined NOOP [IF] : NOOP ; [THEN]
55. undefined BOUNDS [IF] : BOUNDS OVER + SWAP ; [THEN]
56. undefined /STRING [IF] : /STRING TUCK - >R CHARS + R> ; [THEN]
57. undefined C+! [IF] : C+! SWAP OVER C@ + SWAP C! ; [THEN]
58. undefined FDROP [IF] : FDROP ; ( no floating point? fake it ) [THEN]
59. undefined >FLOAT [IF] : >FLOAT DROP C@ [CHAR] 0 [CHAR] 9 1+ WITHIN ; [THEN]
60. undefined SCAN [IF] : SCAN ( addr len char -- addr' len' )
61. >R BEGIN DUP WHILE OVER C@ R@ <> WHILE 1 /STRING REPEAT THEN R> DROP ; [THEN]
62. undefined SKIP [IF] : SKIP ( addr len char -- addr' len' )
63. >R BEGIN DUP WHILE OVER C@ R@ = WHILE 1 /STRING REPEAT THEN R> DROP ; [THEN]
64. : +PLACE ( addr len a -- ) 2DUP 2>R COUNT CHARS + SWAP MOVE 2R> C+! ;
65. : PLACE ( addr len a -- ) 0 OVER C! +PLACE ;
66. : UPC ( c -- C ) DUP [CHAR] a [CHAR] z 1+ WITHIN IF 32 - THEN ;
|
|
67. : STRING, ( addr len -- ) DUP C, HERE SWAP DUP ALLOT MOVE ;
|
77.
78. 0 VALUE outf \ output to file
79. 1 VALUE screen-only \ screen is for testing
80. : werr ABORT" Error writing file" ;
81. : out screen-only IF TYPE ELSE outf WRITE-FILE werr THEN ;
82. : outln screen-only IF TYPE CR ELSE outf WRITE-LINE werr THEN ;
83.
84. WORDLIST CONSTANT hyperlinks \ list of hyperlinks
85. WORDLIST CONSTANT superlinks \ hyperlinks that can't change
86.
|
68.
69. 0 VALUE outf \ output to file
70. 1 VALUE screen-only \ screen is for testing
71. : werr ABORT" Error writing file" ;
72. : out screen-only IF TYPE ELSE outf WRITE-FILE werr THEN ;
73. : outln screen-only IF TYPE CR ELSE outf WRITE-LINE werr THEN ;
74.
75. WORDLIST CONSTANT hyperlinks \ list of hyperlinks
76. WORDLIST CONSTANT superlinks \ hyperlinks that can't change
77.
|
|
78. CREATE quot 34 C,
79. : onequote ( -- ) quot 1 out ;
80. : quote ( c-addr -- )
81. onequote COUNT out onequote ;
82.
|
87. VARIABLE attrib
88. : /a ( -- ) attrib @ IF S" </a>" out THEN 0 attrib ! ;
89. : ,$ ( a len -- ) DUP C, BOUNDS ?DO I C@ C, LOOP ; \ text to dictionary
90. : ,| ( <text> -- ) [CHAR] | WORD COUNT -TRAILING ,$ ;
91. : line ( a line# -- ) 0 ?DO COUNT + LOOP COUNT out ; \ output one string
92. : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ;
|
83. VARIABLE attrib
84. : /a ( -- ) attrib @ IF S" </a>" out THEN 0 attrib ! ;
85. : ,$ ( a len -- ) DUP C, BOUNDS ?DO I C@ C, LOOP ; \ text to dictionary
86. : ,| ( <text> -- ) [CHAR] | WORD COUNT -TRAILING ,$ ;
87. : line ( a line# -- ) 0 ?DO COUNT + LOOP COUNT out ; \ output one string
88. : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ;
|
93. : ital( ( -- ) italic IF S" <i>" out THEN ;
94. : )ital ( -- ) italic IF S" </i>" out THEN ;
|
|
95. : newline ( -- ) S" <br />" outln ;
|
89. : newline ( -- ) S" <br />" outln ;
|
96. : xcr ( -- ) S" " outln ; \ /9/
|
90. : .< ( -- ) S" <" out ;
91. : .> ( -- ) S" >" out ;
92. : ./ ( -- ) S" /" out ;
|
97.
98. CREATE misctext \ various attribute strings
99. ,| <a href=" | \ 0
|
93.
94. CREATE misctext \ various attribute strings
95. ,| <a href=" | \ 0
|
100. ,| <a name="x |
101. ,| "> |
102. ,| <a href="#x |
103. ,| " |
104. ,| <span style="color:# |
105. ,| <hr /><h1> |
106. ,| </h1><hr /> |
107. ,| </span> |
108. ,| </a> |
109. ,| <HEAD><TITLE> | \ 10
110. ,| </TITLE></HEAD> |
111. ,| <FRAMESET cols="25%,75%"> |
112. ,| <FRAME SRC=" |
113. ,| " name="idx" target="_self"> |
114. ,| " name="main" target="_self"> |
115. ,| </FRAMESET> |
116. ,| " target="main"> | \ 17
117. ,| " target="idx"> |
|
96. ,| <a name="x | \ 1
97. ,| "> | \ 2
98. ,| <a href="#x | \ 3
99. ,| <a std="# | \ 4
100. ,| <a file=" | \ 5
101. ,| " href="#x | \ 6
|
118. 0 C,
119.
|
102. 0 C,
103.
|
120. VARIABLE color \ current color
121. VARIABLE infont \ within <font> tag
|
104. VARIABLE tagtype \ current tagtype
105. VARIABLE intag \ within tag
|
122.
123. : <href=" misctext 0 line ;
|
106.
107. : <href=" misctext 0 line ;
|
|
108. : <anchor=" misctext 1 line ;
|
124. : "> misctext 2 line ;
|
109. : "> misctext 2 line ;
|
|
110. : <#ref=" misctext 3 line ;
111. : <std=" misctext 4 line ;
112. : <file=" misctext 5 line ;
113. : with_href misctext 6 line ;
114.
115. : emittag ( tagtype -- ) \ change font tagtype
116. 1 intag !
117. S" <tag type=" out quote .> ;
118.
119. : tag ( <tagname> <string> -- )
120. CREATE BL WORD COUNT STRING,
121. DOES> tagtype ! ;
122.
123. \ NAME STRING
124. \ ---- ------
125. tag unknown unknown
126. tag commentary commentary
127. tag numeric numeric
128. tag errors errors
129. tag values values
130. tag userwords userwords
131. tag userdefiner userdefiner
132. tag variables variables
133. tag core_ws core_ws
134. tag core_ext_ws core_ext_ws
135. tag block_ws block_ws
136. tag double_ws double_ws
137. tag exception_ws exception_ws
138. tag facilities_ws facilities_ws
139. tag file_ws file_ws
140. tag fp_ws fp_ws
141. tag local_ws local_ws
142. tag malloc_ws malloc_ws
143. tag progtools_ws progtools_ws
144. tag searchord_ws searchord_ws
145. tag string_ws string_ws
|
125.
|
146.
|
126. : fontcolor ( color -- ) \ change font color
127. 1 infont !
128. misctext 5 line 0 HEX <# # # # # # # #> out "> ;
129.
130. : col ( color <name> -- ) \ define a font color
131. CREATE , DOES> @ color ! ;
132.
133. HEX
134. scheme 0 = [IF] \ light background
135. 808080 col unknown
136. 008000 col commentary
137. 990000 col numeric
138. FF0000 col errors
139. 990080 col values
140. 000000 col userwords
141. 009999 col userdefiner
142. CC00CC col variables
143. 0000FF col core_ws \ core is slightly lighter blue
144. 0000FF col core_ext_ws
145. 0000FF col block_ws
146. 0000FF col double_ws
147. 0000FF col exception_ws
148. 0000FF col facilities_ws
149. 0000FF col file_ws
150. 0000FF col fp_ws
151. 0000FF col local_ws
152. 0000FF col malloc_ws
153. 0000FF col progtools_ws
154. 0000FF col searchord_ws
155. 0000FF col string_ws
156. [ELSE] \ black background
157. 808080 col unknown
158. 00FF00 col commentary
159. FF8080 col numeric
160. FF0000 col errors
161. FF00FF col values
162. FFFFFF col userwords
163. 00FFFF col userdefiner
164. FF80FF col variables
165. 8080FF col core_ws
166. 8080FF col core_ext_ws
167. 0000FF col block_ws
168. 0000FF col double_ws
169. 0000FF col exception_ws
170. 0000FF col facilities_ws
171. 0000FF col file_ws
172. 0000FF col fp_ws
173. 0000FF col local_ws
174. 0000FF col malloc_ws
175. 0000FF col progtools_ws
176. 0000FF col searchord_ws
177. 0000FF col string_ws
178. [THEN]
179. DECIMAL
180.
181. CREATE begin_header \ begin of HTML file part 1
|
147. CREATE begin_header \ begin of XML file
|
182. ,| <?xml version="1.0"?> |
|
148. ,| <?xml version="1.0"?> |
|
183. ,| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
184. ,| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
185. ,| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
186. ,| <head> |
187. ,| <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1" />|
188. ,| <meta name="GENERATOR" content="Forth2HTML ver 10" /> |
189. ,| <style type="text/css"> |
190. scheme 0 = [IF] ,| body {background: #FFFFEE;} | [THEN] \ light background
191. scheme 1 = [IF] ,| body {background: #000000;} | [THEN] \ black background
192. scheme 0 = [IF] ,| h1 {color: #000000;} | [THEN]
193. scheme 1 = [IF] ,| h1 {color: #FFFFFF;} | [THEN]
194. ,| p {font-family: monospace;} |
195. ,| a {text-decoration:none;} |
196. ,| </style> |
197. ,| <title> |
|
149. ,| <forth> |
|
198. 0 C,
199.
|
150. 0 C,
151.
|
200. CREATE mid_header \ begin of HTML file part 2
201. ,| </title></head> |
202. ,| <body> |
|
152. CREATE end_header_part1 \ end of XML file part 1 /7/
153. ,| </forth> |
|
203. 0 C,
204.
|
154. 0 C,
155.
|
205. CREATE end_header_part1 \ end of HTML file part 1 /7/
206. ,| </p><hr /> |
207. ,| <h4 style="color:black"> |
208. 0 C,
209.
210. CREATE end_header_part2 \ end of HTML file part 2 /8/
211. ,| <p><a href="http://www.tinyboot.com/ANS/color.htm"><font color="#C0C0C0">|
212. ,| HTMLized by <u>Forth2HTML</u> ver 10</font></a></p> |
213. ,| </h4> |
214. ,| </body></html> |
215. 0 C,
|
156. : settagtype ( -- ) \ select next tagtype
157. tagtype @ emittag ;
|
216.
|
158.
|
217. : setcolor ( -- ) \ select next color
218. color @ fontcolor ;
219.
220. : closefont ( -- )
221. infont @ IF
222. misctext 8 line 0 infont ! THEN ;
|
159. : closetag ( -- )
160. intag @ IF
161. S" </tag>" out 0 intag ! THEN ;
|
223.
224. \ In order to represent all ASCII chars as text, some puncuation needs to be
|
162.
163. \ In order to represent all ASCII chars as text, some puncuation needs to be
|
225. \ changed to make it HTML compatible.
|
164. \ changed to make it XML compatible.
|
226.
227. VARIABLE bltally
|
165.
166. VARIABLE bltally
|
228. : outh ( a n -- ) \ HTMLized text output
229. 999 bltally !
|
167. : outh ( a n -- ) \ XMLized text output
168. 0 bltally !
|
230. BOUNDS ?DO I C@ CASE
231. [CHAR] & OF S" &" out ENDOF
232. [CHAR] < OF S" <" out ENDOF
233. [CHAR] > OF S" >" out ENDOF
234. [CHAR] " OF S" "" out ENDOF
|
169. BOUNDS ?DO I C@ CASE
170. [CHAR] & OF S" &" out ENDOF
171. [CHAR] < OF S" <" out ENDOF
172. [CHAR] > OF S" >" out ENDOF
173. [CHAR] " OF S" "" out ENDOF
|
235. [CHAR] © OF S" ©" out ENDOF \ /7/
236. BL OF bltally @ 0= IF S" " ELSE S" " THEN out
|
174. 169 OF S" ©" out ENDOF
175. BL OF bltally @ 0= IF S" " ELSE S"  " THEN out
|
237. 1 bltally +! ENDOF
238. I 1 out 0 bltally !
239. ENDCASE LOOP ;
240.
|
176. 1 bltally +! ENDOF
177. I 1 out 0 bltally !
178. ENDCASE LOOP ;
179.
|
241. : outhattr ( a n -- ) \ HTMLized text output
|
180. : outhattr ( a n -- ) \ XMLized text output
|
242. BOUNDS ?DO I C@ CASE
243. [CHAR] & OF S" amp" out ENDOF
244. [CHAR] < OF S" lt" out ENDOF
245. [CHAR] > OF S" gt" out ENDOF
246. [CHAR] " OF S" quot" out ENDOF
247. [CHAR] + OF S" plus" out ENDOF
248. [CHAR] ! OF S" bang" out ENDOF
249. [CHAR] / OF S" slash" out ENDOF
250. [CHAR] \ OF S" backslash" out ENDOF
251. [CHAR] ' OF S" apos" out ENDOF
252. [CHAR] = OF S" equal" out ENDOF
253. [CHAR] - OF S" dash" out ENDOF
254. [CHAR] @ OF S" at" out ENDOF
255. [CHAR] ; OF S" semi" out ENDOF
256. [CHAR] * OF S" star" out ENDOF
257. [CHAR] ? OF S" question" out ENDOF
258. [CHAR] ~ OF S" tilde" out ENDOF
259. [CHAR] # OF S" pound" out ENDOF
260. [CHAR] , OF S" comma" out ENDOF
261. [CHAR] $ OF S" dollar" out ENDOF
262. [CHAR] | OF S" bar" out ENDOF
263. [CHAR] [ OF S" ltbracket" out ENDOF
264. [CHAR] ( OF S" ltparen" out ENDOF
265. [CHAR] { OF S" ltbrace" out ENDOF
266. [CHAR] ] OF S" rtbracket" out ENDOF
267. [CHAR] ) OF S" rtparen" out ENDOF
268. [CHAR] } OF S" rtbrace" out ENDOF
|
181. BOUNDS ?DO I C@ CASE
182. [CHAR] & OF S" amp" out ENDOF
183. [CHAR] < OF S" lt" out ENDOF
184. [CHAR] > OF S" gt" out ENDOF
185. [CHAR] " OF S" quot" out ENDOF
186. [CHAR] + OF S" plus" out ENDOF
187. [CHAR] ! OF S" bang" out ENDOF
188. [CHAR] / OF S" slash" out ENDOF
189. [CHAR] \ OF S" backslash" out ENDOF
190. [CHAR] ' OF S" apos" out ENDOF
191. [CHAR] = OF S" equal" out ENDOF
192. [CHAR] - OF S" dash" out ENDOF
193. [CHAR] @ OF S" at" out ENDOF
194. [CHAR] ; OF S" semi" out ENDOF
195. [CHAR] * OF S" star" out ENDOF
196. [CHAR] ? OF S" question" out ENDOF
197. [CHAR] ~ OF S" tilde" out ENDOF
198. [CHAR] # OF S" pound" out ENDOF
199. [CHAR] , OF S" comma" out ENDOF
200. [CHAR] $ OF S" dollar" out ENDOF
201. [CHAR] | OF S" bar" out ENDOF
202. [CHAR] [ OF S" ltbracket" out ENDOF
203. [CHAR] ( OF S" ltparen" out ENDOF
204. [CHAR] { OF S" ltbrace" out ENDOF
205. [CHAR] ] OF S" rtbracket" out ENDOF
206. [CHAR] ) OF S" rtparen" out ENDOF
207. [CHAR] } OF S" rtbrace" out ENDOF
|
|
208. 169 OF S" copy" out ENDOF
|
269. BL OF S" _" out ENDOF
270. I 1 out
271. ENDCASE LOOP ;
272.
|
209. BL OF S" _" out ENDOF
210. I 1 out
211. ENDCASE LOOP ;
212.
|
273. : end_header ( -- ) \ output end of HTML file /7/
274. end_header_part1 boiler
275. copyright ?DUP IF outh ELSE drop THEN
276. end_header_part2 boiler ;
|
213. : end_header ( -- ) \ output end of XML file /7/
214. end_header_part1 boiler ;
|
277.
278. : label ( addr len -- ) /a \ associate a label with a word
|
215.
216. : label ( addr len -- ) /a \ associate a label with a word
|
279. misctext 1 line outhattr
|
217. <anchor=" outhattr
|
280. "> 1 attrib ! ;
281.
282. \ Assuming this is running on a PC, we allocate enough storage that crashes from
283. \ string overflows can't happen.
284.
285. CREATE inbuf 260 CHARS ALLOT \ current line from file
286. CREATE token 260 CHARS ALLOT \ last blank delimited string
287. CREATE XPAD 260 CHARS ALLOT \ temporary pad for word storage
288. CREATE EPAD 260 CHARS ALLOT \ temporary pad for evaluation
289. CREATE fn 260 CHARS ALLOT \ file name
290. CREATE fn1 260 CHARS ALLOT \ file name backup
291. CREATE fn2 260 CHARS ALLOT \ global file name
292. CREATE fn3 260 CHARS ALLOT \ index file name
293. CREATE "str" 260 CHARS ALLOT \ parsed string storage
294. CREATE uname 260 CHARS ALLOT \ : definition name
295. 0 VALUE inf
296. VARIABLE nufile \ T if nesting a file
297. VARIABLE utype \ type of defined word
298. VARIABLE hstate
299. VARIABLE linenum
300. VARIABLE special \ special action, 0=none
301.
|
218. "> 1 attrib ! ;
219.
220. \ Assuming this is running on a PC, we allocate enough storage that crashes from
221. \ string overflows can't happen.
222.
223. CREATE inbuf 260 CHARS ALLOT \ current line from file
224. CREATE token 260 CHARS ALLOT \ last blank delimited string
225. CREATE XPAD 260 CHARS ALLOT \ temporary pad for word storage
226. CREATE EPAD 260 CHARS ALLOT \ temporary pad for evaluation
227. CREATE fn 260 CHARS ALLOT \ file name
228. CREATE fn1 260 CHARS ALLOT \ file name backup
229. CREATE fn2 260 CHARS ALLOT \ global file name
230. CREATE fn3 260 CHARS ALLOT \ index file name
231. CREATE "str" 260 CHARS ALLOT \ parsed string storage
232. CREATE uname 260 CHARS ALLOT \ : definition name
233. 0 VALUE inf
234. VARIABLE nufile \ T if nesting a file
235. VARIABLE utype \ type of defined word
236. VARIABLE hstate
237. VARIABLE linenum
238. VARIABLE special \ special action, 0=none
239.
|
302. \ Defining word for hyperlinks to words in HTML standards files.
|
240. \ Defining word for hyperlinks to words in XML standards files.
|
303.
|
241.
|
304. : std ( word 2nd_fn color filename label -- )
305. CREATE ' , ' , BL WORD COUNT ,$ BL WORD COUNT ,$
|
242. : std ( word 2nd_fn tagtype label -- )
243. CREATE ' , ' , BL WORD COUNT ,$
|
306. DOES> /a DUP >R 2 CELLS +
|
244. DOES> /a DUP >R 2 CELLS +
|
307. <href=" \ begin hyperlink
308. dpanspath out \ output path to ANS files /7/
309. COUNT 2DUP + >R out S" #" out \ output file name
310. R> COUNT out "> \ and anchor name
|
245. <std=" COUNT out "> \ place hyperlink
|
311. 1 attrib !
312. R> 2@ SWAP EXECUTE EXECUTE ; \ extra attributes
313.
|
246. 1 attrib !
247. R> 2@ SWAP EXECUTE EXECUTE ; \ extra attributes
248.
|
314. : genHTML ( -- ) \ generate pending HTML
315. token COUNT DUP IF setcolor THEN outh closefont /a 0 token ! ;
|
249. : genXML ( -- ) \ generate pending XML
250. token COUNT DUP IF settagtype THEN outh closetag /a 0 token ! ;
|
316.
317. : isnumber? ( addr len -- f ) \ string converts to number?
318. 0 0 2SWAP >NUMBER NIP NIP NIP 0= ;
319.
320. : hparse ( a len char -- a' len' )
321. >R 2DUP R@ SKIP R> SCAN BL SCAN
322. 2SWAP 2 PICK - token +PLACE ;
323.
324. : >XPAD ( -- ) token COUNT BL SKIP XPAD PLACE ; \ move to temporary pad
325.
326. : hint ( addr len -- ) \ interpret one line...
327. BEGIN
328. 0 token ! BL hparse token C@
|
251.
252. : isnumber? ( addr len -- f ) \ string converts to number?
253. 0 0 2SWAP >NUMBER NIP NIP NIP 0= ;
254.
255. : hparse ( a len char -- a' len' )
256. >R 2DUP R@ SKIP R> SCAN BL SCAN
257. 2SWAP 2 PICK - token +PLACE ;
258.
259. : >XPAD ( -- ) token COUNT BL SKIP XPAD PLACE ; \ move to temporary pad
260.
261. : hint ( addr len -- ) \ interpret one line...
262. BEGIN
263. 0 token ! BL hparse token C@
|
329. WHILE unknown \ default color
|
264. WHILE unknown \ default tagtype
|
330. >XPAD XPAD COUNT superlinks SEARCH-WORDLIST 0= \ fixed hyperlink?
331. IF XPAD COUNT hyperlinks SEARCH-WORDLIST \ got a hyperlink for this?
332. ELSE TRUE
333. THEN
334. IF DEPTH >R EXECUTE
|
265. >XPAD XPAD COUNT superlinks SEARCH-WORDLIST 0= \ fixed hyperlink?
266. IF XPAD COUNT hyperlinks SEARCH-WORDLIST \ got a hyperlink for this?
267. ELSE TRUE
268. THEN
269. IF DEPTH >R EXECUTE
|
335. R> DEPTH <> ABORT" stack depth change in HTML generator"
|
270. R> DEPTH <> ABORT" stack depth change in XML generator"
|
336. ELSE
337. XPAD COUNT BASE @ 10 = IF
338. >FLOAT IF FDROP numeric THEN \ valid float or integer
339. ELSE
340. isnumber? IF numeric THEN
341. THEN
|
271. ELSE
272. XPAD COUNT BASE @ 10 = IF
273. >FLOAT IF FDROP numeric THEN \ valid float or integer
274. ELSE
275. isnumber? IF numeric THEN
276. THEN
|
342. THEN genHTML
|
277. THEN genXML
|
343. REPEAT 2DROP newline ;
344.
345. : shortname ( -- )
346. fn COUNT 2DUP [CHAR] . SCAN NIP - EPAD PLACE ;
347.
348. : ofn ( -- addr len ) \ output file name
|
278. REPEAT 2DROP newline ;
279.
280. : shortname ( -- )
281. fn COUNT 2DUP [CHAR] . SCAN NIP - EPAD PLACE ;
282.
283. : ofn ( -- addr len ) \ output file name
|
349. shortname S" .htm" EPAD +PLACE EPAD COUNT ;
350.
351. : mfn ( -- addr len ) \ main file name
352. shortname S" _f.htm" EPAD +PLACE EPAD COUNT ;
|
284. shortname S" .xml" EPAD +PLACE EPAD COUNT ;
|
353.
354. : hcreate ( addr len -- )
355. DUP 0= IF 2DROP S" fakename" THEN \ in case the name is missing
356. S" CREATE " EPAD PLACE EPAD +PLACE
357. GET-CURRENT >R hyperlinks SET-CURRENT
358. EPAD COUNT EVALUATE R> SET-CURRENT ; \ create a hyperlink generator
359.
360. \ The user defined words use the following data structure:
361. \ CELL xt of coloring word
362. \ CELL pointer to index \ /9/
363. \ STRING name of reference word
364. \ STRING name of file
365.
366. \ An index is a list of all of the words that call a defined word. The master
367. \ index is a list of indexes.
368.
369. variable index 0 index ! \ index is a SLL of SLLs.
370. variable ulast 0 ulast ! \ last compiled definition name
371. variable tally 0 tally ! \ tally of defined words
372.
373. \ Each index entry consists of a pointer to the previous index entry and a SLL.
374. \ The SLL (single linked list) starts out empty so upon creation it is 0.
375.
376. \ index --> link_to_next
377. \ link_to_usedby_list <-- 'index
378. \ link to defined name structure
379. \ tally
380.
|
285.
286. : hcreate ( addr len -- )
287. DUP 0= IF 2DROP S" fakename" THEN \ in case the name is missing
288. S" CREATE " EPAD PLACE EPAD +PLACE
289. GET-CURRENT >R hyperlinks SET-CURRENT
290. EPAD COUNT EVALUATE R> SET-CURRENT ; \ create a hyperlink generator
291.
292. \ The user defined words use the following data structure:
293. \ CELL xt of coloring word
294. \ CELL pointer to index \ /9/
295. \ STRING name of reference word
296. \ STRING name of file
297.
298. \ An index is a list of all of the words that call a defined word. The master
299. \ index is a list of indexes.
300.
301. variable index 0 index ! \ index is a SLL of SLLs.
302. variable ulast 0 ulast ! \ last compiled definition name
303. variable tally 0 tally ! \ tally of defined words
304.
305. \ Each index entry consists of a pointer to the previous index entry and a SLL.
306. \ The SLL (single linked list) starts out empty so upon creation it is 0.
307.
308. \ index --> link_to_next
309. \ link_to_usedby_list <-- 'index
310. \ link to defined name structure
311. \ tally
312.
|
381. : <idx> ( n -- ) \ create link to index n
382. frames if \ links undesirable if no frames
383. 1 attrib ! \ or for W3C HTML validation
384. <href=" fn3 count out S" #x" out \ <a href="index.htm#x
385. HEX 0 <# #S #> out misctext 18 line \ ..." target="idx">
386. else drop then ;
387.
|
|
388. : newindex ( -- 'index ) \ add an index to the list
389. HERE index @ , HERE SWAP 0 , index ! 0 , \ /9/
390. 1 tally +! tally @ , ;
391.
392. \ 'index -> link_to_next
393. \ link to usedby name structure
394.
395. : newlink ( 'index -- 'index ) \ add a name to the index /9/
396. dup @ @ ?dup if \ non-empty sublist?
397. cell+ @ ulast @ = if exit then \ duplicate entry
398. then
399. HERE OVER @ @ , ulast @ , OVER @ ! ;
400.
401. variable indexing
402.
403. : deflink ( addr -- ) \ defined word makes hyperlink
|
313. : newindex ( -- 'index ) \ add an index to the list
314. HERE index @ , HERE SWAP 0 , index ! 0 , \ /9/
315. 1 tally +! tally @ , ;
316.
317. \ 'index -> link_to_next
318. \ link to usedby name structure
319.
320. : newlink ( 'index -- 'index ) \ add a name to the index /9/
321. dup @ @ ?dup if \ non-empty sublist?
322. cell+ @ ulast @ = if exit then \ duplicate entry
323. then
324. HERE OVER @ @ , ulast @ , OVER @ ! ;
325.
326. variable indexing
327.
328. : deflink ( addr -- ) \ defined word makes hyperlink
|
404. DUP @ EXECUTE CELL+ \ set color
|
329. DUP @ EXECUTE CELL+ \ set tagtype
|
405. ulast @ IF newlink THEN CELL+ \ /9/ optional addition to index
406. DUP COUNT + COUNT ofn COMPARE \ in an external file?
|
330. ulast @ IF newlink THEN CELL+ \ /9/ optional addition to index
331. DUP COUNT + COUNT ofn COMPARE \ in an external file?
|
407. IF <href=" DUP COUNT + COUNT out \ yes, put the file name
408. S" #x" out COUNT outhattr
409. ELSE misctext 3 line COUNT outhattr \ no, just the label name
410. misctext 4 line
|
332. IF <file=" DUP COUNT + COUNT out \ yes, put the file name
333. with_href COUNT outhattr
334. ELSE <#ref=" COUNT outhattr \ no, just the label name
|
411. THEN
|
335. THEN
|
412. misctext indexing @ if 17 else 2 then line \ an index link needs a target
|
336. "> \ an index link needs a target
|
413. 1 attrib ! ;
414.
|
337. 1 attrib ! ;
338.
|
415. : showlink ( addr bold? -- ) \ output hyperlink for index
416. >R dup deflink
417. R@ if S" <b>" out then
418. 2 cells + count outh
419. R> if S" </b>" out then
420. /a S" " out ;
421.
422. : outdex ( sll -- ) \ output list of client words
423. 0 ulast !
424. begin ?dup while dup cell+ @ 0 showlink @ repeat ;
425.
426. : iname ( a -- ) \ display index root name
427. @ 1 showlink ;
428.
|
|
429. : defx ( a len xt -- a' len' )
430. newindex >R
|
339. : defx ( a len xt -- a' len' )
340. newindex >R
|
431. >R genHTML BL hparse >XPAD \ output defining word
|
341. >R genXML BL hparse >XPAD \ output defining word
|
432. XPAD COUNT 2DUP hcreate R> HERE SWAP ,
433. R@ CELL+ ! \ resolve link to definition name
434. R> , ,$ ofn ,$ \ rest of structure
435. DOES> deflink ;
436.
|
342. XPAD COUNT 2DUP hcreate R> HERE SWAP ,
343. R@ CELL+ ! \ resolve link to definition name
344. R> , ,$ ofn ,$ \ rest of structure
345. DOES> deflink ;
346.
|
437. : labelnow XPAD COUNT label /a tally @ <idx> genHTML /a ;
|
347. : labelnow XPAD COUNT label genXML /a ;
|
438. : defdat ['] numeric defx numeric labelnow ;
439. : defvar ['] variables defx variables labelnow ;
440. : defusr ['] userwords defx userwords labelnow ;
441. : defval ['] values defx values labelnow ;
442. : defdef ['] userdefiner defx userdefiner labelnow ;
443.
444. : hstate=0 ( -- ) 0 hstate ! ;
445. : hstate=1 ( -- ) 1 hstate ! ;
446. : spec=zero ( -- ) 1 special ! ;
447. : NONE ( -- ) 0 special ! ; \ plain word
448. : skip) ( a len -- a' len' ) [CHAR] ) hparse ;
449. : skip} ( a len -- a' len' ) [CHAR] } hparse ; \ /7/
450. : skipw ( a len -- a' len' ) BL hparse ;
451. : skipc ( a len -- a len ) hstate @ 0= IF numeric skipw THEN ;
452. : skip" ( a len -- a' len' ) \ copy string to "str"
|
348. : defdat ['] numeric defx numeric labelnow ;
349. : defvar ['] variables defx variables labelnow ;
350. : defusr ['] userwords defx userwords labelnow ;
351. : defval ['] values defx values labelnow ;
352. : defdef ['] userdefiner defx userdefiner labelnow ;
353.
354. : hstate=0 ( -- ) 0 hstate ! ;
355. : hstate=1 ( -- ) 1 hstate ! ;
356. : spec=zero ( -- ) 1 special ! ;
357. : NONE ( -- ) 0 special ! ; \ plain word
358. : skip) ( a len -- a' len' ) [CHAR] ) hparse ;
359. : skip} ( a len -- a' len' ) [CHAR] } hparse ; \ /7/
360. : skipw ( a len -- a' len' ) BL hparse ;
361. : skipc ( a len -- a len ) hstate @ 0= IF numeric skipw THEN ;
362. : skip" ( a len -- a' len' ) \ copy string to "str"
|
453. genHTML [CHAR] " hparse token COUNT 1- 0 MAX "str" PLACE ; \ /10/
|
363. genXML [CHAR] " hparse token COUNT 1- 0 MAX "str" PLACE ; \ /10/
|
454.
455. \ ------------------------------------------------------------------------------
456. \ ":" definitions might be defining words, so they can't be assumed to be defusr
457. \ types. ":" makes a label and saves the name for later use by ";" which makes
458. \ a hyperlink or a hyperlink defining word.
459.
460. :NONAME \ normal : definition
461. ulast @ if \ ending a : definition?
462. uname COUNT ['] userwords defx 2DROP 0 token !
463. then
464. ; CONSTANT normal_def
465.
466. :NONAME
467. newindex >R
468. uname COUNT 2DUP hcreate HERE ['] userwords , R@ CELL+ ! R> , ,$ ofn ,$
469. DOES> deflink defdef
470. ; CONSTANT defining_def
471.
472. \ ULAST points to a data structure containing the hyperlink to the word being
473. \ defined. It is used when building the index because it can't wait until ;
474. \ resolves the definition before requiring the hyperlink.
475.
476. : defunk ( a len -- a' len' ) \ starting unknown definition
477. hstate=1 normal_def utype ! \ save name of : definition
|
364.
365. \ ------------------------------------------------------------------------------
366. \ ":" definitions might be defining words, so they can't be assumed to be defusr
367. \ types. ":" makes a label and saves the name for later use by ";" which makes
368. \ a hyperlink or a hyperlink defining word.
369.
370. :NONAME \ normal : definition
371. ulast @ if \ ending a : definition?
372. uname COUNT ['] userwords defx 2DROP 0 token !
373. then
374. ; CONSTANT normal_def
375.
376. :NONAME
377. newindex >R
378. uname COUNT 2DUP hcreate HERE ['] userwords , R@ CELL+ ! R> , ,$ ofn ,$
379. DOES> deflink defdef
380. ; CONSTANT defining_def
381.
382. \ ULAST points to a data structure containing the hyperlink to the word being
383. \ defined. It is used when building the index because it can't wait until ;
384. \ resolves the definition before requiring the hyperlink.
385.
386. : defunk ( a len -- a' len' ) \ starting unknown definition
387. hstate=1 normal_def utype ! \ save name of : definition
|
478. genHTML skipw userwords token COUNT BL SKIP
479. 2DUP label /a tally @ 1+ <idx> \ link to index
|
388. genXML skipw userwords token COUNT BL SKIP
389. 2DUP label \ link to index
|
480. 2DUP HERE ulast ! ['] NOOP , PAD , ,$ ofn ,$ \ save name of definition /9/
481. uname PLACE ;
482.
483. : resunk ( -- ) \ resolve unknown defined word
|
390. 2DUP HERE ulast ! ['] NOOP , PAD , ,$ ofn ,$ \ save name of definition /9/
391. uname PLACE ;
392.
393. : resunk ( -- ) \ resolve unknown defined word
|
484. genHTML utype @ EXECUTE hstate=0
|
394. genXML utype @ EXECUTE hstate=0
|
485. 0 ulast ! ; \ indexing off
486.
487. : created ( -- ) hstate @
488. IF defining_def utype ! \ make ; create a defining word
489. ELSE defdat \ not compiling
490. THEN ;
491.
492. \ ------------------------------------------------------------------------------
493.
|
395. 0 ulast ! ; \ indexing off
396.
397. : created ( -- ) hstate @
398. IF defining_def utype ! \ make ; create a defining word
399. ELSE defdat \ not compiling
400. THEN ;
401.
402. \ ------------------------------------------------------------------------------
403.
|
494. : header ( -- ) \ output big header text /8/9/
495. fn count
496. misctext 6 line
497. linksource
498. IF <href="
499. 2dup out ">
500. outln misctext 9 line
501. ELSE outln
502. THEN misctext 7 line ;
503.
|
|
504. : _incfil ( addr -- ) \ trigger file nesting /4/
505. nestable 0= IF DROP EXIT THEN \ don't nest files if disabled
506. COUNT BL SKIP 2DUP R/O OPEN-FILE \ can the file be opened?
507. IF DROP 2DROP \ no
508. ELSE CLOSE-FILE DROP \ yes
509. fn COUNT fn1 PLACE fn PLACE 1 nufile !
510. THEN ;
511.
512. : incfile ( a len -- a' len' ) \ include a file
|
404. : _incfil ( addr -- ) \ trigger file nesting /4/
405. nestable 0= IF DROP EXIT THEN \ don't nest files if disabled
406. COUNT BL SKIP 2DUP R/O OPEN-FILE \ can the file be opened?
407. IF DROP 2DROP \ no
408. ELSE CLOSE-FILE DROP \ yes
409. fn COUNT fn1 PLACE fn PLACE 1 nufile !
410. THEN ;
411.
412. : incfile ( a len -- a' len' ) \ include a file
|
513. genHTML skipw token _incfil ;
|
413. genXML skipw token _incfil ;
|
514.
515. : "incfil ( a len -- a' len' ) \ include file from S" filename"
516. skipw "str" _incfil ;
517.
518. : hfill ( -- len ior ) \ read next line of file
519. inbuf 256 BL FILL
520. XPAD 256 inf READ-LINE ABORT" Error reading file"
521. >R >R 0 XPAD R> BOUNDS ( idx . . )
522. ?DO I C@ 9 = IF 3 RSHIFT 1+ 3 LSHIFT \ tab
523. ELSE I C@ OVER 255 AND CHARS inbuf + C!
524. 1+ DUP 256 = IF CR ." Input line too long" THEN
525. THEN
526. LOOP R>
527. 1 linenum +! ;
528.
529. \ OPEN and CLOSE input files
530.
531. : open ( -- ) CR ." Reading " fn COUNT TYPE ." at line " linenum @ decimal .
532. 0 linenum !
533. fn COUNT R/O OPEN-FILE ABORT" Error opening source file" TO inf ;
534.
535. : close ( -- ) CR ." closing " fn COUNT TYPE
536. inf CLOSE-FILE ABORT" Error closing file" ;
537.
538. : .title ( addr len -- ) \ output as title string
539. BOUNDS ?DO I C@ BL = IF S" %20" out ELSE I 1 out THEN LOOP ;
540.
541. \ OPEN and CLOSE output files
542.
543. : ocreate ( addr len -- )
544. W/O CREATE-FILE ABORT" Error creating file" TO outf ;
545.
546. : oopen ( -- ) \ create new output file
547. ofn ocreate begin_header boiler \ begin boilerplate
|
414.
415. : "incfil ( a len -- a' len' ) \ include file from S" filename"
416. skipw "str" _incfil ;
417.
418. : hfill ( -- len ior ) \ read next line of file
419. inbuf 256 BL FILL
420. XPAD 256 inf READ-LINE ABORT" Error reading file"
421. >R >R 0 XPAD R> BOUNDS ( idx . . )
422. ?DO I C@ 9 = IF 3 RSHIFT 1+ 3 LSHIFT \ tab
423. ELSE I C@ OVER 255 AND CHARS inbuf + C!
424. 1+ DUP 256 = IF CR ." Input line too long" THEN
425. THEN
426. LOOP R>
427. 1 linenum +! ;
428.
429. \ OPEN and CLOSE input files
430.
431. : open ( -- ) CR ." Reading " fn COUNT TYPE ." at line " linenum @ decimal .
432. 0 linenum !
433. fn COUNT R/O OPEN-FILE ABORT" Error opening source file" TO inf ;
434.
435. : close ( -- ) CR ." closing " fn COUNT TYPE
436. inf CLOSE-FILE ABORT" Error closing file" ;
437.
438. : .title ( addr len -- ) \ output as title string
439. BOUNDS ?DO I C@ BL = IF S" %20" out ELSE I 1 out THEN LOOP ;
440.
441. \ OPEN and CLOSE output files
442.
443. : ocreate ( addr len -- )
444. W/O CREATE-FILE ABORT" Error creating file" TO outf ;
445.
446. : oopen ( -- ) \ create new output file
447. ofn ocreate begin_header boiler \ begin boilerplate
|
548. fn COUNT .title mid_header boiler \ title and end boilerplate
549. bold IF S" <b>" out THEN ;
|
448. S" <module>" out
449. fn COUNT .title
450. S" </module>" out ; \ title
|
550.
551. : fclose ( -- )
552. outf CLOSE-FILE ABORT" Error closing file" ;
553.
554. : new-output ( -- ) \ start a new output file /9/
|
451.
452. : fclose ( -- )
453. outf CLOSE-FILE ABORT" Error closing file" ;
454.
455. : new-output ( -- ) \ start a new output file /9/
|
555. open oopen header S" <p>" out ;
|
456. open oopen ;
|
556.
|
457.
|
557. \ Create index and frame files
|
458. \ Convert Forth source file(s) to XML
|
558.
|
459.
|
559. : make-index ( -- ) \ make index /9/
560. cr ." building index "
561. 1 indexing !
562. fn2 count fn place
563. cr ." Framed version: " mfn type
564. mfn ocreate \ create the main file
565. misctext 10 line fn count .title
566. ofn xpad place
567. fn3 COUNT fn PLACE \ filename for index
568. misctext 11 line xcr misctext 12 line xcr \ <FRAMESET>
569. misctext 13 line ofn out misctext 14 line xcr \ <FRAME SRC= ...
570. misctext 13 line xpad count out misctext 15 line xcr \ <FRAME SRC= ...
571. misctext 16 line xcr \ </FRAMESET>
572. fclose
573. cr ." Index file " ofn type
574. oopen S" <p>" out \ start the menu frame file
575. index @ begin ?dup while \ for all index entries:
576. dup cell+ dup cell+ dup cell+ @
577. misctext 1 line HEX 0 <# #S #> out \ <a name="x
578. "> misctext 9 line \ a></a>
579. iname \ root name
580. @ outdex newline \ list of client words
581. @ repeat
582. S" </p></body></html>" outln \ end index
583. fclose ;
584.
585. \ Convert Forth source file(s) to HTML
586.
587. : HTML ( <infile> -- )
|
460. : XML ( <infile> -- )
|
588. S" /basic-links/" hyperlinks SEARCH-WORDLIST
589. IF EXECUTE THEN \ remove user hyperlinks
590. GET-CURRENT >R hyperlinks SET-CURRENT \ replace the fence
591. S" MARKER /basic-links/" EVALUATE
592. R> SET-CURRENT
593. 0 TO outf \ no output file yet
594. 0 TO screen-only 0 nufile ! 1 linenum ! \ force usage of file
595. 0 ulast ! 0 index ! 0 tally ! \ clear index
596. 0 indexing !
597. BL WORD COUNT 2dup fn2 place \ save global filename /9/
598. fn PLACE shortname S" _i.htm" epad +place epad count fn3 place \ index name
599. new-output \ open input and output files
600. -1 DUP >R outf >R \ file nest uses stacks
601. hstate=0
602. BEGIN
603. BEGIN 0 special ! \ process line
604. nufile @ \ nest a file?
605. IF inf outf
606. new-output outf >R \ open new files
607. 0 nufile !
608. THEN hfill
609. WHILE inbuf SWAP hint
610. REPEAT DROP
611. close fn1 COUNT fn PLACE \ restore file name
612. DUP -1 <>
613. IF TO outf TO inf FALSE \ unnest files
614. ELSE TRUE
615. THEN
616. UNTIL DROP
617. BEGIN R> DUP -1 <> \ close all output files
618. WHILE TO outf
|
461. S" /basic-links/" hyperlinks SEARCH-WORDLIST
462. IF EXECUTE THEN \ remove user hyperlinks
463. GET-CURRENT >R hyperlinks SET-CURRENT \ replace the fence
464. S" MARKER /basic-links/" EVALUATE
465. R> SET-CURRENT
466. 0 TO outf \ no output file yet
467. 0 TO screen-only 0 nufile ! 1 linenum ! \ force usage of file
468. 0 ulast ! 0 index ! 0 tally ! \ clear index
469. 0 indexing !
470. BL WORD COUNT 2dup fn2 place \ save global filename /9/
471. fn PLACE shortname S" _i.htm" epad +place epad count fn3 place \ index name
472. new-output \ open input and output files
473. -1 DUP >R outf >R \ file nest uses stacks
474. hstate=0
475. BEGIN
476. BEGIN 0 special ! \ process line
477. nufile @ \ nest a file?
478. IF inf outf
479. new-output outf >R \ open new files
480. 0 nufile !
481. THEN hfill
482. WHILE inbuf SWAP hint
483. REPEAT DROP
484. close fn1 COUNT fn PLACE \ restore file name
485. DUP -1 <>
486. IF TO outf TO inf FALSE \ unnest files
487. ELSE TRUE
488. THEN
489. UNTIL DROP
490. BEGIN R> DUP -1 <> \ close all output files
491. WHILE TO outf
|
619. bold IF S" </b>" out THEN end_header
|
492. end_header
|
620. fclose
|
493. fclose
|
621. REPEAT DROP
622. make-index ;
|
494. REPEAT DROP ;
|
623.
624. : q ( -- ) 1 TO screen-only \ single line test
625. -1 WORD COUNT inbuf PLACE inbuf COUNT hint ;
626.
627. \ 0 [IF] is often used as a comment. If it is used as a comment, scan the file
628. \ for a [THEN]. [THEN] must be on the next line or beyond.
629.
630. CREATE terminator 16 CHARS ALLOT \ multiline comment terminator
631.
632. : multicomment ( a len searchstring -- a' len' )
633. terminator PLACE
|
495.
496. : q ( -- ) 1 TO screen-only \ single line test
497. -1 WORD COUNT inbuf PLACE inbuf COUNT hint ;
498.
499. \ 0 [IF] is often used as a comment. If it is used as a comment, scan the file
500. \ for a [THEN]. [THEN] must be on the next line or beyond.
501.
502. CREATE terminator 16 CHARS ALLOT \ multiline comment terminator
503.
504. : multicomment ( a len searchstring -- a' len' )
505. terminator PLACE
|
634. genHTML commentary ital( setcolor outh \ finish up this line
635. BEGIN hfill newline
|
506. genXML commentary settagtype outh \ finish up this line
507. BEGIN hfill
|
636. WHILE >R inbuf EPAD R@ MOVE
637. EPAD R@ BOUNDS ?DO I C@ UPC I C! LOOP \ uppercase for search
638. EPAD R@ terminator COUNT SEARCH
|
508. WHILE >R inbuf EPAD R@ MOVE
509. EPAD R@ BOUNDS ?DO I C@ UPC I C! LOOP \ uppercase for search
510. EPAD R@ terminator COUNT SEARCH
|
639. IF DROP EPAD - inbuf OVER token PLACE \ before [THEN] is comment
640. genHTML
|
511. IF S" <z/>" out
512. DROP EPAD - inbuf OVER token PLACE \ before [THEN] is comment
513. genXML
|
641. inbuf R> ROT /STRING
|
514. inbuf R> ROT /STRING
|
642. )ital closefont EXIT
643. ELSE 2DROP inbuf R> outh \ whole line is comment
|
515. closetag EXIT
516. ELSE 2DROP S" <z>" out
517. inbuf R> outh
518. S" </z>" outln \ whole line is comment
|
644. THEN
|
519. THEN
|
645. REPEAT inbuf SWAP )ital closefont ; \ EOF found
|
520. REPEAT inbuf SWAP closetag ; \ EOF found
|
646.
647. : bigif ( a len -- a len ) special @ 1 =
648. IF S" [THEN]" multicomment THEN ;
649.
650. \ =============================================================================
651.
652. : _DEFINITIONS DEFINITIONS ;
653. \ : _order order ; : _words words ; : _see see ;
654.
655. superlinks SET-CURRENT \ These hyperlinks cannot be overridden.
656.
657. \ The following words are not in the ANS standard but are very common.
658. : VOCABULARY defusr ;
659. : DEFER defusr ;
660. : INCLUDE hstate @ 0= IF incfile THEN ;
661. : FLOAD hstate @ 0= IF incfile THEN ;
662. : SYS-FLOAD hstate @ 0= IF incfile THEN ;
663. : BINARY 2 BASE ! ;
664. : OCTAL 8 BASE ! ;
665. : 0 numeric spec=zero ;
666. : 1 numeric ;
667. : -1 numeric ;
668. : COMMENT: S" COMMENT;" multicomment ;
669. : (( S" ))" multicomment ;
670.
671. \ The following words are not in the ANS standard but are used in Win32Forth
672. : ANEW skipw ; \ /7/
673. : CallBack: defunk ; \ /7/
674. : :M defunk ; \ /7/
675. : ;M resunk ; \ /7/
676. : z" numeric skip" ;
677.
678. \ Forth Inc uses { for comment while others use it for locals. } on the same
679. \ line indicates locals, which are grayed. Otherwise a multiline comment.
680.
681. : { 2DUP [CHAR] } SCAN NIP 0=
|
521.
522. : bigif ( a len -- a len ) special @ 1 =
523. IF S" [THEN]" multicomment THEN ;
524.
525. \ =============================================================================
526.
527. : _DEFINITIONS DEFINITIONS ;
528. \ : _order order ; : _words words ; : _see see ;
529.
530. superlinks SET-CURRENT \ These hyperlinks cannot be overridden.
531.
532. \ The following words are not in the ANS standard but are very common.
533. : VOCABULARY defusr ;
534. : DEFER defusr ;
535. : INCLUDE hstate @ 0= IF incfile THEN ;
536. : FLOAD hstate @ 0= IF incfile THEN ;
537. : SYS-FLOAD hstate @ 0= IF incfile THEN ;
538. : BINARY 2 BASE ! ;
539. : OCTAL 8 BASE ! ;
540. : 0 numeric spec=zero ;
541. : 1 numeric ;
542. : -1 numeric ;
543. : COMMENT: S" COMMENT;" multicomment ;
544. : (( S" ))" multicomment ;
545.
546. \ The following words are not in the ANS standard but are used in Win32Forth
547. : ANEW skipw ; \ /7/
548. : CallBack: defunk ; \ /7/
549. : :M defunk ; \ /7/
550. : ;M resunk ; \ /7/
551. : z" numeric skip" ;
552.
553. \ Forth Inc uses { for comment while others use it for locals. } on the same
554. \ line indicates locals, which are grayed. Otherwise a multiline comment.
555.
556. : { 2DUP [CHAR] } SCAN NIP 0=
|
682. IF S" }" multicomment ELSE genHTML skip} THEN ;
|
557. IF S" }" multicomment ELSE genXML skip} THEN ;
|
683.
684. \ The rest is ANS Forth standard
685.
|
558.
559. \ The rest is ANS Forth standard
560.
|
686. : \ commentary genHTML ital( token PLACE genHTML )ital token 0 ;
|
561. : \ commentary genXML token PLACE genXML token 0 ;
|
687.
|
562.
|
688. ( NAME ACTION COLOR FILENAME REFERENCE )
689. ( ------------------ ------ -------------- ----------- --------- )
690. std ( skip) commentary dpans6.htm 6.1.0080
691. std ." skip" numeric dpans6.htm 6.1.0190
692. std : defunk core_ws dpans6.htm 6.1.0450
693. std ; resunk core_ws dpans6.htm 6.1.0460
694. std ABORT" skip" errors dpans6.htm 6.1.0680
695. std CHAR skipc core_ws dpans6.htm 6.1.0895
696. std CONSTANT defdat core_ws dpans6.htm 6.1.0950
697. std CREATE created core_ws dpans6.htm 6.1.1000
698. std DECIMAL DECIMAL core_ws dpans6.htm 6.1.1170
699. std S" skip" numeric dpans6.htm 6.1.2165
700. std VARIABLE defvar core_ws dpans6.htm 6.1.2410
701. std [ hstate=0 core_ws dpans6.htm 6.1.2500
702. std [CHAR] skipw numeric dpans6.htm 6.1.2520
703. std ] hstate=1 core_ws dpans6.htm 6.1.2540
704. std .( skip) commentary dpans6.htm 6.2.0200
705. std C" skip" numeric dpans6.htm 6.2.0855
706. std FALSE spec=zero numeric dpans6.htm 6.2.1485
707. std HEX HEX core_ext_ws dpans6.htm 6.2.1660
708. std MARKER defusr core_ext_ws dpans6.htm 6.2.1850
709. std VALUE defval core_ext_ws dpans6.htm 6.2.2405
710. std 2CONSTANT defdat double_ws dpans8.htm 8.6.1.0360
711. std 2VARIABLE defvar double_ws dpans8.htm 8.6.1.0440
712. std INCLUDED "incfil file_ws dpans11.htm 11.6.1.1718
713. std FCONSTANT defdat fp_ws dpans12.htm 12.6.1.1492
714. std FVARIABLE defvar fp_ws dpans12.htm 12.6.1.1630
715. std ;CODE resunk progtools_ws dpans15.htm 15.6.2.0470
716. std CODE defusr progtools_ws dpans15.htm 15.6.2.0930
717. std [IF] bigif progtools_ws dpans15.htm 15.6.2.2532
|
563. ( NAME ACTION TYPE REFERENCE )
564. ( ------------------ ------ -------------- --------- )
565. std ( skip) commentary 6.1.0080
566. std ." skip" numeric 6.1.0190
567. std : defunk core_ws 6.1.0450
568. std ; resunk core_ws 6.1.0460
569. std ABORT" skip" errors 6.1.0680
570. std CHAR skipc core_ws 6.1.0895
571. std CONSTANT defdat core_ws 6.1.0950
572. std CREATE created core_ws 6.1.1000
573. std DECIMAL DECIMAL core_ws 6.1.1170
574. std S" skip" numeric 6.1.2165
575. std VARIABLE defvar core_ws 6.1.2410
576. std [ hstate=0 core_ws 6.1.2500
577. std [CHAR] skipw numeric 6.1.2520
578. std ] hstate=1 core_ws 6.1.2540
579. std .( skip) commentary 6.2.0200
580. std C" skip" numeric 6.2.0855
581. std FALSE spec=zero numeric 6.2.1485
582. std HEX HEX core_ext_ws 6.2.1660
583. std MARKER defusr core_ext_ws 6.2.1850
584. std VALUE defval core_ext_ws 6.2.2405
585. std 2CONSTANT defdat double_ws 8.6.1.0360
586. std 2VARIABLE defvar double_ws 8.6.1.0440
587. std INCLUDED "incfil file_ws 11.6.1.1718
588. std FCONSTANT defdat fp_ws 12.6.1.1492
589. std FVARIABLE defvar fp_ws 12.6.1.1630
590. std ;CODE resunk progtools_ws 15.6.2.0470
591. std CODE defusr progtools_ws 15.6.2.0930
592. std [IF] bigif progtools_ws 15.6.2.2532
|
718.
719. hyperlinks SET-CURRENT \ These hyperlinks can be overridden.
720.
|
593.
594. hyperlinks SET-CURRENT \ These hyperlinks can be overridden.
595.
|
721. std ['] NONE numeric dpans6.htm 6.1.2510
722. std ! NONE core_ws dpans6.htm 6.1.0010
723. std # NONE core_ws dpans6.htm 6.1.0030
724. std #> NONE core_ws dpans6.htm 6.1.0040
725. std #S NONE core_ws dpans6.htm 6.1.0050
726. std ' NONE core_ws dpans6.htm 6.1.0070
727. std * NONE core_ws dpans6.htm 6.1.0090
728. std */ NONE core_ws dpans6.htm 6.1.0100
729. std */MOD NONE core_ws dpans6.htm 6.1.0110
730. std + NONE core_ws dpans6.htm 6.1.0120
731. std +! NONE core_ws dpans6.htm 6.1.0130
732. std +LOOP NONE core_ws dpans6.htm 6.1.0140
733. std , NONE core_ws dpans6.htm 6.1.0150
734. std - NONE core_ws dpans6.htm 6.1.0160
735. std . NONE core_ws dpans6.htm 6.1.0180
736. std / NONE core_ws dpans6.htm 6.1.0230
737. std /MOD NONE core_ws dpans6.htm 6.1.0240
738. std 0< NONE core_ws dpans6.htm 6.1.0250
739. std 0= NONE core_ws dpans6.htm 6.1.0270
740. std 1+ NONE core_ws dpans6.htm 6.1.0290
741. std 1- NONE core_ws dpans6.htm 6.1.0300
742. std 2! NONE core_ws dpans6.htm 6.1.0310
743. std 2* NONE core_ws dpans6.htm 6.1.0320
744. std 2/ NONE core_ws dpans6.htm 6.1.0330
745. std 2@ NONE core_ws dpans6.htm 6.1.0350
746. std 2DROP NONE core_ws dpans6.htm 6.1.0370
747. std 2DUP NONE core_ws dpans6.htm 6.1.0380
748. std 2OVER NONE core_ws dpans6.htm 6.1.0400
749. std 2SWAP NONE core_ws dpans6.htm 6.1.0430
750. std < NONE core_ws dpans6.htm 6.1.0480
751. std <# NONE core_ws dpans6.htm 6.1.0490
752. std = NONE core_ws dpans6.htm 6.1.0530
753. std > NONE core_ws dpans6.htm 6.1.0540
754. std >BODY NONE core_ws dpans6.htm 6.1.0550
755. std >IN NONE core_ws dpans6.htm 6.1.0560
756. std >NUMBER NONE core_ws dpans6.htm 6.1.0570
757. std >R NONE core_ws dpans6.htm 6.1.0580
758. std ?DUP NONE core_ws dpans6.htm 6.1.0630
759. std @ NONE core_ws dpans6.htm 6.1.0650
760. std ABORT NONE core_ws dpans6.htm 6.1.0670
761. std ABS NONE core_ws dpans6.htm 6.1.0690
762. std ACCEPT NONE core_ws dpans6.htm 6.1.0695
763. std ALIGN NONE core_ws dpans6.htm 6.1.0705
764. std ALIGNED NONE core_ws dpans6.htm 6.1.0706
765. std ALLOT NONE core_ws dpans6.htm 6.1.0710
766. std AND NONE core_ws dpans6.htm 6.1.0720
767. std BASE NONE core_ws dpans6.htm 6.1.0750
768. std BEGIN NONE core_ws dpans6.htm 6.1.0760
769. std BL NONE numeric dpans6.htm 6.1.0770
770. std C! NONE core_ws dpans6.htm 6.1.0850
771. std C, NONE core_ws dpans6.htm 6.1.0860
772. std C@ NONE core_ws dpans6.htm 6.1.0870
773. std CELL+ NONE core_ws dpans6.htm 6.1.0880
774. std CELLS NONE core_ws dpans6.htm 6.1.0890
775. std CHAR+ NONE core_ws dpans6.htm 6.1.0897
776. std CHARS NONE core_ws dpans6.htm 6.1.0898
777. std COUNT NONE core_ws dpans6.htm 6.1.0980
778. std CR NONE core_ws dpans6.htm 6.1.0990
779. std DEPTH NONE core_ws dpans6.htm 6.1.1200
780. std DO NONE core_ws dpans6.htm 6.1.1240
781. std DOES> NONE core_ws dpans6.htm 6.1.1250
782. std DROP NONE core_ws dpans6.htm 6.1.1260
783. std DUP NONE core_ws dpans6.htm 6.1.1290
784. std ELSE NONE core_ws dpans6.htm 6.1.1310
785. std EMIT NONE core_ws dpans6.htm 6.1.1320
786. std ENVIRONMENT? NONE core_ws dpans6.htm 6.1.1345
787. std EVALUATE NONE core_ws dpans6.htm 6.1.1360
788. std EXECUTE NONE core_ws dpans6.htm 6.1.1370
789. std EXIT NONE core_ws dpans6.htm 6.1.1380
790. std FILL NONE core_ws dpans6.htm 6.1.1540
791. std FIND NONE core_ws dpans6.htm 6.1.1550
792. std FM/MOD NONE core_ws dpans6.htm 6.1.1561
793. std HERE NONE core_ws dpans6.htm 6.1.1650
794. std HOLD NONE core_ws dpans6.htm 6.1.1670
795. std I NONE core_ws dpans6.htm 6.1.1680
796. std IF NONE core_ws dpans6.htm 6.1.1700
797. std IMMEDIATE NONE core_ws dpans6.htm 6.1.1710
798. std INVERT NONE core_ws dpans6.htm 6.1.1720
799. std J NONE core_ws dpans6.htm 6.1.1730
800. std KEY NONE core_ws dpans6.htm 6.1.1750
801. std LEAVE NONE core_ws dpans6.htm 6.1.1760
802. std LITERAL NONE core_ws dpans6.htm 6.1.1780
803. std LOOP NONE core_ws dpans6.htm 6.1.1800
804. std LSHIFT NONE core_ws dpans6.htm 6.1.1805
805. std M* NONE core_ws dpans6.htm 6.1.1810
806. std MAX NONE core_ws dpans6.htm 6.1.1870
807. std MIN NONE core_ws dpans6.htm 6.1.1880
808. std MOD NONE core_ws dpans6.htm 6.1.1890
809. std MOVE NONE core_ws dpans6.htm 6.1.1900
810. std NEGATE NONE core_ws dpans6.htm 6.1.1910
811. std OR NONE core_ws dpans6.htm 6.1.1980
812. std OVER NONE core_ws dpans6.htm 6.1.1990
813. std POSTPONE NONE core_ws dpans6.htm 6.1.2033
814. std QUIT NONE core_ws dpans6.htm 6.1.2050
815. std R> NONE core_ws dpans6.htm 6.1.2060
816. std R@ NONE core_ws dpans6.htm 6.1.2070
817. std RECURSE NONE core_ws dpans6.htm 6.1.2120
818. std REPEAT NONE core_ws dpans6.htm 6.1.2140
819. std ROT NONE core_ws dpans6.htm 6.1.2160
820. std RSHIFT NONE core_ws dpans6.htm 6.1.2162
821. std S>D NONE core_ws dpans6.htm 6.1.2170
822. std SIGN NONE core_ws dpans6.htm 6.1.2210
823. std SM/REM NONE core_ws dpans6.htm 6.1.2214
824. std SOURCE NONE core_ws dpans6.htm 6.1.2216
825. std SPACE NONE core_ws dpans6.htm 6.1.2220
826. std SPACES NONE core_ws dpans6.htm 6.1.2230
827. std STATE NONE core_ws dpans6.htm 6.1.2250
828. std SWAP NONE core_ws dpans6.htm 6.1.2260
829. std THEN NONE core_ws dpans6.htm 6.1.2270
830. std TYPE NONE core_ws dpans6.htm 6.1.2310
831. std U. NONE core_ws dpans6.htm 6.1.2320
832. std U< NONE core_ws dpans6.htm 6.1.2340
833. std UM* NONE core_ws dpans6.htm 6.1.2360
834. std UM/MOD NONE core_ws dpans6.htm 6.1.2370
835. std UNLOOP NONE core_ws dpans6.htm 6.1.2380
836. std UNTIL NONE core_ws dpans6.htm 6.1.2390
837. std WHILE NONE core_ws dpans6.htm 6.1.2430
838. std WORD NONE core_ws dpans6.htm 6.1.2450
839. std XOR NONE core_ws dpans6.htm 6.1.2490
840. std #TIB NONE core_ext_ws dpans6.htm 6.2.0060
841. std .R NONE core_ext_ws dpans6.htm 6.2.0210
842. std 0<> NONE core_ext_ws dpans6.htm 6.2.0260
843. std 0> NONE core_ext_ws dpans6.htm 6.2.0280
844. std 2>R NONE core_ext_ws dpans6.htm 6.2.0340
845. std 2R> NONE core_ext_ws dpans6.htm 6.2.0410
846. std 2R@ NONE core_ext_ws dpans6.htm 6.2.0415
847. std :NONAME NONE core_ext_ws dpans6.htm 6.2.0455
848. std <> NONE core_ext_ws dpans6.htm 6.2.0500
849. std ?DO NONE core_ext_ws dpans6.htm 6.2.0620
850. std AGAIN NONE core_ext_ws dpans6.htm 6.2.0700
851. std CASE NONE core_ext_ws dpans6.htm 6.2.0873
852. std COMPILE, NONE core_ext_ws dpans6.htm 6.2.0945
853. std CONVERT NONE core_ext_ws dpans6.htm 6.2.0970
854. std ENDCASE NONE core_ext_ws dpans6.htm 6.2.1342
855. std ENDOF NONE core_ext_ws dpans6.htm 6.2.1343
856. std ERASE NONE core_ext_ws dpans6.htm 6.2.1350
857. std EXPECT NONE core_ext_ws dpans6.htm 6.2.1390
858. std NIP NONE core_ext_ws dpans6.htm 6.2.1930
859. std OF NONE core_ext_ws dpans6.htm 6.2.1950
860. std PAD NONE core_ext_ws dpans6.htm 6.2.2000
861. std PARSE NONE core_ext_ws dpans6.htm 6.2.2008
862. std PICK NONE core_ext_ws dpans6.htm 6.2.2030
863. std QUERY NONE core_ext_ws dpans6.htm 6.2.2040
864. std REFILL NONE core_ext_ws dpans6.htm 6.2.2125
865. std RESTORE-INPUT NONE core_ext_ws dpans6.htm 6.2.2148
866. std ROLL NONE core_ext_ws dpans6.htm 6.2.2150
867. std SAVE-INPUT NONE core_ext_ws dpans6.htm 6.2.2182
868. std SOURCE-ID NONE core_ext_ws dpans6.htm 6.2.2218
869. std SPAN NONE core_ext_ws dpans6.htm 6.2.2240
870. std TIB NONE core_ext_ws dpans6.htm 6.2.2290
871. std TO NONE core_ext_ws dpans6.htm 6.2.2295
872. std TRUE NONE numeric dpans6.htm 6.2.2298
873. std TUCK NONE core_ext_ws dpans6.htm 6.2.2300
874. std U.R NONE core_ext_ws dpans6.htm 6.2.2330
875. std U> NONE core_ext_ws dpans6.htm 6.2.2350
876. std UNUSED NONE core_ext_ws dpans6.htm 6.2.2395
877. std WITHIN NONE core_ext_ws dpans6.htm 6.2.2440
878. std [COMPILE] NONE core_ext_ws dpans6.htm 6.2.2530
879. std BLK NONE block_ws dpans7.htm 7.6.1.0790
880. std BLOCK NONE block_ws dpans7.htm 7.6.1.0800
881. std BUFFER NONE block_ws dpans7.htm 7.6.1.0820
882. std FLUSH NONE block_ws dpans7.htm 7.6.1.1559
883. std LOAD NONE block_ws dpans7.htm 7.6.1.1790
884. std SAVE-BUFFERS NONE block_ws dpans7.htm 7.6.1.2180
885. std UPDATE NONE block_ws dpans7.htm 7.6.1.2400
886. std EMPTY-BUFFERS NONE block_ws dpans7.htm 7.6.2.1330
887. std LIST NONE block_ws dpans7.htm 7.6.2.1770
888. std SCR NONE block_ws dpans7.htm 7.6.2.2190
889. std THRU NONE block_ws dpans7.htm 7.6.2.2280
890. std 2LITERAL NONE double_ws dpans8.htm 8.6.1.0390
891. std D+ NONE double_ws dpans8.htm 8.6.1.1040
892. std D- NONE double_ws dpans8.htm 8.6.1.1050
893. std D. NONE double_ws dpans8.htm 8.6.1.1060
894. std D.R NONE double_ws dpans8.htm 8.6.1.1070
895. std D0< NONE double_ws dpans8.htm 8.6.1.1075
896. std D0= NONE double_ws dpans8.htm 8.6.1.1080
897. std D2* NONE double_ws dpans8.htm 8.6.1.1090
898. std D2/ NONE double_ws dpans8.htm 8.6.1.1100
899. std D< NONE double_ws dpans8.htm 8.6.1.1110
900. std D= NONE double_ws dpans8.htm 8.6.1.1120
901. std D>S NONE double_ws dpans8.htm 8.6.1.1140
902. std DABS NONE double_ws dpans8.htm 8.6.1.1160
903. std DMAX NONE double_ws dpans8.htm 8.6.1.1210
904. std DMIN NONE double_ws dpans8.htm 8.6.1.1220
905. std DNEGATE NONE double_ws dpans8.htm 8.6.1.1230
906. std M*/ NONE double_ws dpans8.htm 8.6.1.1820
907. std M+ NONE double_ws dpans8.htm 8.6.1.1830
908. std 2ROT NONE double_ws dpans8.htm 8.6.2.0420
909. std DU< NONE double_ws dpans8.htm 8.6.2.1270
910. std CATCH NONE exception_ws dpans9.htm 9.6.1.0875
911. std THROW NONE exception_ws dpans9.htm 9.6.1.2275
912. std AT-XY NONE facilities_ws dpans10.htm 10.6.1.0742
913. std KEY? NONE facilities_ws dpans10.htm 10.6.1.1755
914. std PAGE NONE facilities_ws dpans10.htm 10.6.1.2005
915. std EKEY NONE facilities_ws dpans10.htm 10.6.2.1305
916. std EKEY<CHAR NONE facilities_ws dpans10.htm 10.6.2.1306
917. std EKEY? NONE facilities_ws dpans10.htm 10.6.2.1307
918. std EMIT? NONE facilities_ws dpans10.htm 10.6.2.1325
919. std MS NONE facilities_ws dpans10.htm 10.6.2.1905
920. std TIME&DATE NONE facilities_ws dpans10.htm 10.6.2.2292
921. std BIN NONE file_ws dpans11.htm 11.6.1.0765
922. std CLOSE-FILE NONE file_ws dpans11.htm 11.6.1.0900
923. std CREATE-FILE NONE file_ws dpans11.htm 11.6.1.1010
924. std DELETE-FILE NONE file_ws dpans11.htm 11.6.1.1190
925. std FILE-POSITION NONE file_ws dpans11.htm 11.6.1.1520
926. std FILE-SIZE NONE file_ws dpans11.htm 11.6.1.1522
927. std INCLUDE-FILE NONE file_ws dpans11.htm 11.6.1.1717
928. std OPEN-FILE NONE file_ws dpans11.htm 11.6.1.1970
929. std R/O NONE file_ws dpans11.htm 11.6.1.2054
930. std R/W NONE file_ws dpans11.htm 11.6.1.2056
931. std READ-FILE NONE file_ws dpans11.htm 11.6.1.2080
932. std READ-LINE NONE file_ws dpans11.htm 11.6.1.2090
933. std REPOSITION-FILE NONE file_ws dpans11.htm 11.6.1.2142
934. std RESIZE-FILE NONE file_ws dpans11.htm 11.6.1.2147
935. std W/O NONE file_ws dpans11.htm 11.6.1.2425
936. std WRITE-FILE NONE file_ws dpans11.htm 11.6.1.2480
937. std WRITE-LINE NONE file_ws dpans11.htm 11.6.1.2485
938. std FILE-STATUS NONE file_ws dpans11.htm 11.6.2.1524
939. std FLUSH-FILE NONE file_ws dpans11.htm 11.6.2.1560
940. std RENAME-FILE NONE file_ws dpans11.htm 11.6.2.2130
941. std >FLOAT NONE fp_ws dpans12.htm 12.6.1.0558
942. std D>F NONE fp_ws dpans12.htm 12.6.1.1130
943. std F! NONE fp_ws dpans12.htm 12.6.1.1400
944. std F* NONE fp_ws dpans12.htm 12.6.1.1410
945. std F+ NONE fp_ws dpans12.htm 12.6.1.1420
946. std F- NONE fp_ws dpans12.htm 12.6.1.1425
947. std F/ NONE fp_ws dpans12.htm 12.6.1.1430
948. std F0< NONE fp_ws dpans12.htm 12.6.1.1440
949. std F0= NONE fp_ws dpans12.htm 12.6.1.1450
950. std F< NONE fp_ws dpans12.htm 12.6.1.1460
951. std F>D NONE fp_ws dpans12.htm 12.6.1.1460
952. std F@ NONE fp_ws dpans12.htm 12.6.1.1472
953. std FALIGN NONE fp_ws dpans12.htm 12.6.1.1479
954. std FALIGNED NONE fp_ws dpans12.htm 12.6.1.1483
955. std FDEPTH NONE fp_ws dpans12.htm 12.6.1.1497
956. std FDROP NONE fp_ws dpans12.htm 12.6.1.1500
957. std FDUP NONE fp_ws dpans12.htm 12.6.1.1510
958. std FLITERAL NONE fp_ws dpans12.htm 12.6.1.1552
959. std FLOAT+ NONE fp_ws dpans12.htm 12.6.1.1555
960. std FLOATS NONE fp_ws dpans12.htm 12.6.1.1556
961. std FLOOR NONE fp_ws dpans12.htm 12.6.1.1558
962. std FMAX NONE fp_ws dpans12.htm 12.6.1.1562
963. std FMIN NONE fp_ws dpans12.htm 12.6.1.1565
964. std FNEGATE NONE fp_ws dpans12.htm 12.6.1.1567
965. std FOVER NONE fp_ws dpans12.htm 12.6.1.1600
966. std FROT NONE fp_ws dpans12.htm 12.6.1.1610
967. std FROUND NONE fp_ws dpans12.htm 12.6.1.1612
968. std FSWAP NONE fp_ws dpans12.htm 12.6.1.1620
969. std REPRESENT NONE fp_ws dpans12.htm 12.6.1.2143
970. std DF! NONE fp_ws dpans12.htm 12.6.2.1203
971. std DF@ NONE fp_ws dpans12.htm 12.6.2.1204
972. std DFALIGN NONE fp_ws dpans12.htm 12.6.2.1205
973. std DFALIGNED NONE fp_ws dpans12.htm 12.6.2.1207
974. std DFLOAT+ NONE fp_ws dpans12.htm 12.6.2.1208
975. std DFLOATS NONE fp_ws dpans12.htm 12.6.2.1209
976. std F** NONE fp_ws dpans12.htm 12.6.2.1415
977. std F. NONE fp_ws dpans12.htm 12.6.2.1427
978. std FABS NONE fp_ws dpans12.htm 12.6.2.1474
979. std FACOS NONE fp_ws dpans12.htm 12.6.2.1476
980. std FACOSH NONE fp_ws dpans12.htm 12.6.2.1477
981. std FALOG NONE fp_ws dpans12.htm 12.6.2.1484
982. std FASIN NONE fp_ws dpans12.htm 12.6.2.1486
983. std FASINH NONE fp_ws dpans12.htm 12.6.2.1487
984. std FATAN NONE fp_ws dpans12.htm 12.6.2.1488
985. std FATAN2 NONE fp_ws dpans12.htm 12.6.2.1489
986. std FATANH NONE fp_ws dpans12.htm 12.6.2.1491
987. std FCOS NONE fp_ws dpans12.htm 12.6.2.1493
988. std FCOSH NONE fp_ws dpans12.htm 12.6.2.1494
989. std FE. NONE fp_ws dpans12.htm 12.6.2.1513
990. std FEXP NONE fp_ws dpans12.htm 12.6.2.1515
991. std FEXPM1 NONE fp_ws dpans12.htm 12.6.2.1516
992. std FLN NONE fp_ws dpans12.htm 12.6.2.1553
993. std FLNP1 NONE fp_ws dpans12.htm 12.6.2.1554
994. std FLOG NONE fp_ws dpans12.htm 12.6.2.1557
995. std FS. NONE fp_ws dpans12.htm 12.6.2.1613
996. std FSIN NONE fp_ws dpans12.htm 12.6.2.1614
997. std FSINCOS NONE fp_ws dpans12.htm 12.6.2.1616
998. std FSINH NONE fp_ws dpans12.htm 12.6.2.1617
999. std FSQRT NONE fp_ws dpans12.htm 12.6.2.1618
1000. std FTAN NONE fp_ws dpans12.htm 12.6.2.1625
1001. std FTANH NONE fp_ws dpans12.htm 12.6.2.1626
1002. std F~ NONE fp_ws dpans12.htm 12.6.2.1640
1003. std PRECISION NONE fp_ws dpans12.htm 12.6.2.2035
1004. std SET-PRECISION NONE fp_ws dpans12.htm 12.6.2.2200
1005. std SF! NONE fp_ws dpans12.htm 12.6.2.2202
1006. std SF@ NONE fp_ws dpans12.htm 12.6.2.2203
1007. std SFALIGN NONE fp_ws dpans12.htm 12.6.2.2204
1008. std SFALIGNED NONE fp_ws dpans12.htm 12.6.2.2206
1009. std SFLOAT+ NONE fp_ws dpans12.htm 12.6.2.2207
1010. std SFLOATS NONE fp_ws dpans12.htm 12.6.2.2208
1011. std (LOCAL) NONE local_ws dpans13.htm 13.6.1.0086
1012. std LOCALS| NONE local_ws dpans13.htm 13.6.2.1795
1013. std ALLOCATE NONE malloc_ws dpans14.htm 14.6.1.0707
1014. std FREE NONE malloc_ws dpans14.htm 14.6.1.1605
1015. std RESIZE NONE malloc_ws dpans14.htm 14.6.1.2145
1016. std .S NONE progtools_ws dpans15.htm 15.6.1.0220
1017. std ? NONE progtools_ws dpans15.htm 15.6.1.0600
1018. std DUMP NONE progtools_ws dpans15.htm 15.6.1.1280
1019. std SEE NONE progtools_ws dpans15.htm 15.6.1.2194
1020. std WORDS NONE progtools_ws dpans15.htm 15.6.1.2465
1021. std AHEAD NONE progtools_ws dpans15.htm 15.6.2.0702
1022. std ASSEMBLER NONE progtools_ws dpans15.htm 15.6.2.0740
1023. std BYE NONE progtools_ws dpans15.htm 15.6.2.0830
1024. std CS-PICK NONE progtools_ws dpans15.htm 15.6.2.1015
1025. std CS-ROLL NONE progtools_ws dpans15.htm 15.6.2.1020
1026. std EDITOR NONE progtools_ws dpans15.htm 15.6.2.1300
1027. std FORGET NONE progtools_ws dpans15.htm 15.6.2.1580
1028. std [ELSE] NONE progtools_ws dpans15.htm 15.6.2.2531
1029. std [THEN] NONE progtools_ws dpans15.htm 15.6.2.2533
1030. std DEFINITIONS NONE searchord_ws dpans16.htm 16.6.1.1180
1031. std FORTH-WORDLIST NONE searchord_ws dpans16.htm 16.6.1.1595
1032. std GET-CURRENT NONE searchord_ws dpans16.htm 16.6.1.1643
1033. std GET-ORDER NONE searchord_ws dpans16.htm 16.6.1.1647
1034. std SEARCH-WORDLIST NONE searchord_ws dpans16.htm 16.6.1.2192
1035. std SET-CURRENT NONE searchord_ws dpans16.htm 16.6.1.2195
1036. std SET-ORDER NONE searchord_ws dpans16.htm 16.6.1.2197
1037. std WORDLIST NONE searchord_ws dpans16.htm 16.6.1.2460
1038. std ALSO NONE searchord_ws dpans16.htm 16.6.2.0715
1039. std FORTH NONE searchord_ws dpans16.htm 16.6.2.1590
1040. std ONLY NONE searchord_ws dpans16.htm 16.6.2.1965
1041. std ORDER NONE searchord_ws dpans16.htm 16.6.2.1985
1042. std PREVIOUS NONE searchord_ws dpans16.htm 16.6.2.2037
1043. std -TRAILING NONE string_ws dpans17.htm 17.6.1.0170
1044. std /STRING NONE string_ws dpans17.htm 17.6.1.0245
1045. std BLANK NONE string_ws dpans17.htm 17.6.1.0780
1046. std CMOVE NONE string_ws dpans17.htm 17.6.1.0910
1047. std CMOVE> NONE string_ws dpans17.htm 17.6.1.0920
1048. std COMPARE NONE string_ws dpans17.htm 17.6.1.0935
1049. std SEARCH NONE string_ws dpans17.htm 17.6.1.2191
1050. std SLITERAL NONE string_ws dpans17.htm 17.6.1.2212
|
596. std ['] NONE numeric 6.1.2510
597. std ! NONE core_ws 6.1.0010
598. std # NONE core_ws 6.1.0030
599. std #> NONE core_ws 6.1.0040
600. std #S NONE core_ws 6.1.0050
601. std ' NONE core_ws 6.1.0070
602. std * NONE core_ws 6.1.0090
603. std */ NONE core_ws 6.1.0100
604. std */MOD NONE core_ws 6.1.0110
605. std + NONE core_ws 6.1.0120
606. std +! NONE core_ws 6.1.0130
607. std +LOOP NONE core_ws 6.1.0140
608. std , NONE core_ws 6.1.0150
609. std - NONE core_ws 6.1.0160
610. std . NONE core_ws 6.1.0180
611. std / NONE core_ws 6.1.0230
612. std /MOD NONE core_ws 6.1.0240
613. std 0< NONE core_ws 6.1.0250
614. std 0= NONE core_ws 6.1.0270
615. std 1+ NONE core_ws 6.1.0290
616. std 1- NONE core_ws 6.1.0300
617. std 2! NONE core_ws 6.1.0310
618. std 2* NONE core_ws 6.1.0320
619. std 2/ NONE core_ws 6.1.0330
620. std 2@ NONE core_ws 6.1.0350
621. std 2DROP NONE core_ws 6.1.0370
622. std 2DUP NONE core_ws 6.1.0380
623. std 2OVER NONE core_ws 6.1.0400
624. std 2SWAP NONE core_ws 6.1.0430
625. std < NONE core_ws 6.1.0480
626. std <# NONE core_ws 6.1.0490
627. std = NONE core_ws 6.1.0530
628. std > NONE core_ws 6.1.0540
629. std >BODY NONE core_ws 6.1.0550
630. std >IN NONE core_ws 6.1.0560
631. std >NUMBER NONE core_ws 6.1.0570
632. std >R NONE core_ws 6.1.0580
633. std ?DUP NONE core_ws 6.1.0630
634. std @ NONE core_ws 6.1.0650
635. std ABORT NONE core_ws 6.1.0670
636. std ABS NONE core_ws 6.1.0690
637. std ACCEPT NONE core_ws 6.1.0695
638. std ALIGN NONE core_ws 6.1.0705
639. std ALIGNED NONE core_ws 6.1.0706
640. std ALLOT NONE core_ws 6.1.0710
641. std AND NONE core_ws 6.1.0720
642. std BASE NONE core_ws 6.1.0750
643. std BEGIN NONE core_ws 6.1.0760
644. std BL NONE numeric 6.1.0770
645. std C! NONE core_ws 6.1.0850
646. std C, NONE core_ws 6.1.0860
647. std C@ NONE core_ws 6.1.0870
648. std CELL+ NONE core_ws 6.1.0880
649. std CELLS NONE core_ws 6.1.0890
650. std CHAR+ NONE core_ws 6.1.0897
651. std CHARS NONE core_ws 6.1.0898
652. std COUNT NONE core_ws 6.1.0980
653. std CR NONE core_ws 6.1.0990
654. std DEPTH NONE core_ws 6.1.1200
655. std DO NONE core_ws 6.1.1240
656. std DOES> NONE core_ws 6.1.1250
657. std DROP NONE core_ws 6.1.1260
658. std DUP NONE core_ws 6.1.1290
659. std ELSE NONE core_ws 6.1.1310
660. std EMIT NONE core_ws 6.1.1320
661. std ENVIRONMENT? NONE core_ws 6.1.1345
662. std EVALUATE NONE core_ws 6.1.1360
663. std EXECUTE NONE core_ws 6.1.1370
664. std EXIT NONE core_ws 6.1.1380
665. std FILL NONE core_ws 6.1.1540
666. std FIND NONE core_ws 6.1.1550
667. std FM/MOD NONE core_ws 6.1.1561
668. std HERE NONE core_ws 6.1.1650
669. std HOLD NONE core_ws 6.1.1670
670. std I NONE core_ws 6.1.1680
671. std IF NONE core_ws 6.1.1700
672. std IMMEDIATE NONE core_ws 6.1.1710
673. std INVERT NONE core_ws 6.1.1720
674. std J NONE core_ws 6.1.1730
675. std KEY NONE core_ws 6.1.1750
676. std LEAVE NONE core_ws 6.1.1760
677. std LITERAL NONE core_ws 6.1.1780
678. std LOOP NONE core_ws 6.1.1800
679. std LSHIFT NONE core_ws 6.1.1805
680. std M* NONE core_ws 6.1.1810
681. std MAX NONE core_ws 6.1.1870
682. std MIN NONE core_ws 6.1.1880
683. std MOD NONE core_ws 6.1.1890
684. std MOVE NONE core_ws 6.1.1900
685. std NEGATE NONE core_ws 6.1.1910
686. std OR NONE core_ws 6.1.1980
687. std OVER NONE core_ws 6.1.1990
688. std POSTPONE NONE core_ws 6.1.2033
689. std QUIT NONE core_ws 6.1.2050
690. std R> NONE core_ws 6.1.2060
691. std R@ NONE core_ws 6.1.2070
692. std RECURSE NONE core_ws 6.1.2120
693. std REPEAT NONE core_ws 6.1.2140
694. std ROT NONE core_ws 6.1.2160
695. std RSHIFT NONE core_ws 6.1.2162
696. std S>D NONE core_ws 6.1.2170
697. std SIGN NONE core_ws 6.1.2210
698. std SM/REM NONE core_ws 6.1.2214
699. std SOURCE NONE core_ws 6.1.2216
700. std SPACE NONE core_ws 6.1.2220
701. std SPACES NONE core_ws 6.1.2230
702. std STATE NONE core_ws 6.1.2250
703. std SWAP NONE core_ws 6.1.2260
704. std THEN NONE core_ws 6.1.2270
705. std TYPE NONE core_ws 6.1.2310
706. std U. NONE core_ws 6.1.2320
707. std U< NONE core_ws 6.1.2340
708. std UM* NONE core_ws 6.1.2360
709. std UM/MOD NONE core_ws 6.1.2370
710. std UNLOOP NONE core_ws 6.1.2380
711. std UNTIL NONE core_ws 6.1.2390
712. std WHILE NONE core_ws 6.1.2430
713. std WORD NONE core_ws 6.1.2450
714. std XOR NONE core_ws 6.1.2490
715. std #TIB NONE core_ext_ws 6.2.0060
716. std .R NONE core_ext_ws 6.2.0210
717. std 0<> NONE core_ext_ws 6.2.0260
718. std 0> NONE core_ext_ws 6.2.0280
719. std 2>R NONE core_ext_ws 6.2.0340
720. std 2R> NONE core_ext_ws 6.2.0410
721. std 2R@ NONE core_ext_ws 6.2.0415
722. std :NONAME NONE core_ext_ws 6.2.0455
723. std <> NONE core_ext_ws 6.2.0500
724. std ?DO NONE core_ext_ws 6.2.0620
725. std AGAIN NONE core_ext_ws 6.2.0700
726. std CASE NONE core_ext_ws 6.2.0873
727. std COMPILE, NONE core_ext_ws 6.2.0945
728. std CONVERT NONE core_ext_ws 6.2.0970
729. std ENDCASE NONE core_ext_ws 6.2.1342
730. std ENDOF NONE core_ext_ws 6.2.1343
731. std ERASE NONE core_ext_ws 6.2.1350
732. std EXPECT NONE core_ext_ws 6.2.1390
733. std NIP NONE core_ext_ws 6.2.1930
734. std OF NONE core_ext_ws 6.2.1950
735. std PAD NONE core_ext_ws 6.2.2000
736. std PARSE NONE core_ext_ws 6.2.2008
737. std PICK NONE core_ext_ws 6.2.2030
738. std QUERY NONE core_ext_ws 6.2.2040
739. std REFILL NONE core_ext_ws 6.2.2125
740. std RESTORE-INPUT NONE core_ext_ws 6.2.2148
741. std ROLL NONE core_ext_ws 6.2.2150
742. std SAVE-INPUT NONE core_ext_ws 6.2.2182
743. std SOURCE-ID NONE core_ext_ws 6.2.2218
744. std SPAN NONE core_ext_ws 6.2.2240
745. std TIB NONE core_ext_ws 6.2.2290
746. std TO NONE core_ext_ws 6.2.2295
747. std TRUE NONE numeric 6.2.2298
748. std TUCK NONE core_ext_ws 6.2.2300
749. std U.R NONE core_ext_ws 6.2.2330
750. std U> NONE core_ext_ws 6.2.2350
751. std UNUSED NONE core_ext_ws 6.2.2395
752. std WITHIN NONE core_ext_ws 6.2.2440
753. std [COMPILE] NONE core_ext_ws 6.2.2530
754. std BLK NONE block_ws 7.6.1.0790
755. std BLOCK NONE block_ws 7.6.1.0800
756. std BUFFER NONE block_ws 7.6.1.0820
757. std FLUSH NONE block_ws 7.6.1.1559
758. std LOAD NONE block_ws 7.6.1.1790
759. std SAVE-BUFFERS NONE block_ws 7.6.1.2180
760. std UPDATE NONE block_ws 7.6.1.2400
761. std EMPTY-BUFFERS NONE block_ws 7.6.2.1330
762. std LIST NONE block_ws 7.6.2.1770
763. std SCR NONE block_ws 7.6.2.2190
764. std THRU NONE block_ws 7.6.2.2280
765. std 2LITERAL NONE double_ws 8.6.1.0390
766. std D+ NONE double_ws 8.6.1.1040
767. std D- NONE double_ws 8.6.1.1050
768. std D. NONE double_ws 8.6.1.1060
769. std D.R NONE double_ws 8.6.1.1070
770. std D0< NONE double_ws 8.6.1.1075
771. std D0= NONE double_ws 8.6.1.1080
772. std D2* NONE double_ws 8.6.1.1090
773. std D2/ NONE double_ws 8.6.1.1100
774. std D< NONE double_ws 8.6.1.1110
775. std D= NONE double_ws 8.6.1.1120
776. std D>S NONE double_ws 8.6.1.1140
777. std DABS NONE double_ws 8.6.1.1160
778. std DMAX NONE double_ws 8.6.1.1210
779. std DMIN NONE double_ws 8.6.1.1220
780. std DNEGATE NONE double_ws 8.6.1.1230
781. std M*/ NONE double_ws 8.6.1.1820
782. std M+ NONE double_ws 8.6.1.1830
783. std 2ROT NONE double_ws 8.6.2.0420
784. std DU< NONE double_ws 8.6.2.1270
785. std CATCH NONE exception_ws 9.6.1.0875
786. std THROW NONE exception_ws 9.6.1.2275
787. std AT-XY NONE facilities_ws 10.6.1.0742
788. std KEY? NONE facilities_ws 10.6.1.1755
789. std PAGE NONE facilities_ws 10.6.1.2005
790. std EKEY NONE facilities_ws 10.6.2.1305
791. std EKEY<CHAR NONE facilities_ws 10.6.2.1306
792. std EKEY? NONE facilities_ws 10.6.2.1307
793. std EMIT? NONE facilities_ws 10.6.2.1325
794. std MS NONE facilities_ws 10.6.2.1905
795. std TIME&DATE NONE facilities_ws 10.6.2.2292
796. std BIN NONE file_ws 11.6.1.0765
797. std CLOSE-FILE NONE file_ws 11.6.1.0900
798. std CREATE-FILE NONE file_ws 11.6.1.1010
799. std DELETE-FILE NONE file_ws 11.6.1.1190
800. std FILE-POSITION NONE file_ws 11.6.1.1520
801. std FILE-SIZE NONE file_ws 11.6.1.1522
802. std INCLUDE-FILE NONE file_ws 11.6.1.1717
803. std OPEN-FILE NONE file_ws 11.6.1.1970
804. std R/O NONE file_ws 11.6.1.2054
805. std R/W NONE file_ws 11.6.1.2056
806. std READ-FILE NONE file_ws 11.6.1.2080
807. std READ-LINE NONE file_ws 11.6.1.2090
808. std REPOSITION-FILE NONE file_ws 11.6.1.2142
809. std RESIZE-FILE NONE file_ws 11.6.1.2147
810. std W/O NONE file_ws 11.6.1.2425
811. std WRITE-FILE NONE file_ws 11.6.1.2480
812. std WRITE-LINE NONE file_ws 11.6.1.2485
813. std FILE-STATUS NONE file_ws 11.6.2.1524
814. std FLUSH-FILE NONE file_ws 11.6.2.1560
815. std RENAME-FILE NONE file_ws 11.6.2.2130
816. std >FLOAT NONE fp_ws 12.6.1.0558
817. std D>F NONE fp_ws 12.6.1.1130
818. std F! NONE fp_ws 12.6.1.1400
819. std F* NONE fp_ws 12.6.1.1410
820. std F+ NONE fp_ws 12.6.1.1420
821. std F- NONE fp_ws 12.6.1.1425
822. std F/ NONE fp_ws 12.6.1.1430
823. std F0< NONE fp_ws 12.6.1.1440
824. std F0= NONE fp_ws 12.6.1.1450
825. std F< NONE fp_ws 12.6.1.1460
826. std F>D NONE fp_ws 12.6.1.1460
827. std F@ NONE fp_ws 12.6.1.1472
828. std FALIGN NONE fp_ws 12.6.1.1479
829. std FALIGNED NONE fp_ws 12.6.1.1483
830. std FDEPTH NONE fp_ws 12.6.1.1497
831. std FDROP NONE fp_ws 12.6.1.1500
832. std FDUP NONE fp_ws 12.6.1.1510
833. std FLITERAL NONE fp_ws 12.6.1.1552
834. std FLOAT+ NONE fp_ws 12.6.1.1555
835. std FLOATS NONE fp_ws 12.6.1.1556
836. std FLOOR NONE fp_ws 12.6.1.1558
837. std FMAX NONE fp_ws 12.6.1.1562
838. std FMIN NONE fp_ws 12.6.1.1565
839. std FNEGATE NONE fp_ws 12.6.1.1567
840. std FOVER NONE fp_ws 12.6.1.1600
841. std FROT NONE fp_ws 12.6.1.1610
842. std FROUND NONE fp_ws 12.6.1.1612
843. std FSWAP NONE fp_ws 12.6.1.1620
844. std REPRESENT NONE fp_ws 12.6.1.2143
845. std DF! NONE fp_ws 12.6.2.1203
846. std DF@ NONE fp_ws 12.6.2.1204
847. std DFALIGN NONE fp_ws 12.6.2.1205
848. std DFALIGNED NONE fp_ws 12.6.2.1207
849. std DFLOAT+ NONE fp_ws 12.6.2.1208
850. std DFLOATS NONE fp_ws 12.6.2.1209
851. std F** NONE fp_ws 12.6.2.1415
852. std F. NONE fp_ws 12.6.2.1427
853. std FABS NONE fp_ws 12.6.2.1474
854. std FACOS NONE fp_ws 12.6.2.1476
855. std FACOSH NONE fp_ws 12.6.2.1477
856. std FALOG NONE fp_ws 12.6.2.1484
857. std FASIN NONE fp_ws 12.6.2.1486
858. std FASINH NONE fp_ws 12.6.2.1487
859. std FATAN NONE fp_ws 12.6.2.1488
860. std FATAN2 NONE fp_ws 12.6.2.1489
861. std FATANH NONE fp_ws 12.6.2.1491
862. std FCOS NONE fp_ws 12.6.2.1493
863. std FCOSH NONE fp_ws 12.6.2.1494
864. std FE. NONE fp_ws 12.6.2.1513
865. std FEXP NONE fp_ws 12.6.2.1515
866. std FEXPM1 NONE fp_ws 12.6.2.1516
867. std FLN NONE fp_ws 12.6.2.1553
868. std FLNP1 NONE fp_ws 12.6.2.1554
869. std FLOG NONE fp_ws 12.6.2.1557
870. std FS. NONE fp_ws 12.6.2.1613
871. std FSIN NONE fp_ws 12.6.2.1614
872. std FSINCOS NONE fp_ws 12.6.2.1616
873. std FSINH NONE fp_ws 12.6.2.1617
874. std FSQRT NONE fp_ws 12.6.2.1618
875. std FTAN NONE fp_ws 12.6.2.1625
876. std FTANH NONE fp_ws 12.6.2.1626
877. std F~ NONE fp_ws 12.6.2.1640
878. std PRECISION NONE fp_ws 12.6.2.2035
879. std SET-PRECISION NONE fp_ws 12.6.2.2200
880. std SF! NONE fp_ws 12.6.2.2202
881. std SF@ NONE fp_ws 12.6.2.2203
882. std SFALIGN NONE fp_ws 12.6.2.2204
883. std SFALIGNED NONE fp_ws 12.6.2.2206
884. std SFLOAT+ NONE fp_ws 12.6.2.2207
885. std SFLOATS NONE fp_ws 12.6.2.2208
886. std (LOCAL) NONE local_ws 13.6.1.0086
887. std LOCALS| NONE local_ws 13.6.2.1795
888. std ALLOCATE NONE malloc_ws 14.6.1.0707
889. std FREE NONE malloc_ws 14.6.1.1605
890. std RESIZE NONE malloc_ws 14.6.1.2145
891. std .S NONE progtools_ws 15.6.1.0220
892. std ? NONE progtools_ws 15.6.1.0600
893. std DUMP NONE progtools_ws 15.6.1.1280
894. std SEE NONE progtools_ws 15.6.1.2194
895. std WORDS NONE progtools_ws 15.6.1.2465
896. std AHEAD NONE progtools_ws 15.6.2.0702
897. std ASSEMBLER NONE progtools_ws 15.6.2.0740
898. std BYE NONE progtools_ws 15.6.2.0830
899. std CS-PICK NONE progtools_ws 15.6.2.1015
900. std CS-ROLL NONE progtools_ws 15.6.2.1020
901. std EDITOR NONE progtools_ws 15.6.2.1300
902. std FORGET NONE progtools_ws 15.6.2.1580
903. std [ELSE] NONE progtools_ws 15.6.2.2531
904. std [THEN] NONE progtools_ws 15.6.2.2533
905. std DEFINITIONS NONE searchord_ws 16.6.1.1180
906. std FORTH-WORDLIST NONE searchord_ws 16.6.1.1595
907. std GET-CURRENT NONE searchord_ws 16.6.1.1643
908. std GET-ORDER NONE searchord_ws 16.6.1.1647
909. std SEARCH-WORDLIST NONE searchord_ws 16.6.1.2192
910. std SET-CURRENT NONE searchord_ws 16.6.1.2195
911. std SET-ORDER NONE searchord_ws 16.6.1.2197
912. std WORDLIST NONE searchord_ws 16.6.1.2460
913. std ALSO NONE searchord_ws 16.6.2.0715
914. std FORTH NONE searchord_ws 16.6.2.1590
915. std ONLY NONE searchord_ws 16.6.2.1965
916. std ORDER NONE searchord_ws 16.6.2.1985
917. std PREVIOUS NONE searchord_ws 16.6.2.2037
918. std -TRAILING NONE string_ws 17.6.1.0170
919. std /STRING NONE string_ws 17.6.1.0245
920. std BLANK NONE string_ws 17.6.1.0780
921. std CMOVE NONE string_ws 17.6.1.0910
922. std CMOVE> NONE string_ws 17.6.1.0920
923. std COMPARE NONE string_ws 17.6.1.0935
924. std SEARCH NONE string_ws 17.6.1.2191
925. std SLITERAL NONE string_ws 17.6.1.2212
|
1051.
1052. _DEFINITIONS
1053.
1054. \ Revision history
1055. \ 0. 1st release to guinea pigs via comp.lang.forth
1056. \ 1. (BNE) Added multi-line comment 0 [IF]. Colored CHAR outside definitions.
1057. \ 2. (EJB) Added missing definitions for common but nonstandard words
1058. \ and cleaned up to account for case sensitivity.
1059. \ 3. (EJB) Fixed up to create conforming XHTML 1.0 Strict
1060. \ 4. (BNE) File check before nesting, moved file names to the hyperlink table,
1061. \ added some option flags, cleared hyperlink list for each run. Added more
1062. \ multiline comment words. Expands tabs to spaces. Title uses %20 for blanks.
1063. \ 5. (BNE) Added multiline { comment. Replaced -1 WORD with [CHAR] |.
1064. \ Put hyperlinks that should not be overridden in a separate wordlist.
1065. \ 6. (BNE) Limited this text to 80 columns, cleaned up comments a bit. Added
1066. \ option for different color schemes.
1067. \ 7. (DBU) Added dpanspath to configure the path to the dpans-files. Added
1068. \ linksource to output a hyperlink to the original source file. Added
1069. \ some words used in Win32Forth. Added copyright to output a copyright text
|
926.
927. _DEFINITIONS
928.
929. \ Revision history
930. \ 0. 1st release to guinea pigs via comp.lang.forth
931. \ 1. (BNE) Added multi-line comment 0 [IF]. Colored CHAR outside definitions.
932. \ 2. (EJB) Added missing definitions for common but nonstandard words
933. \ and cleaned up to account for case sensitivity.
934. \ 3. (EJB) Fixed up to create conforming XHTML 1.0 Strict
935. \ 4. (BNE) File check before nesting, moved file names to the hyperlink table,
936. \ added some option flags, cleared hyperlink list for each run. Added more
937. \ multiline comment words. Expands tabs to spaces. Title uses %20 for blanks.
938. \ 5. (BNE) Added multiline { comment. Replaced -1 WORD with [CHAR] |.
939. \ Put hyperlinks that should not be overridden in a separate wordlist.
940. \ 6. (BNE) Limited this text to 80 columns, cleaned up comments a bit. Added
941. \ option for different color schemes.
942. \ 7. (DBU) Added dpanspath to configure the path to the dpans-files. Added
943. \ linksource to output a hyperlink to the original source file. Added
944. \ some words used in Win32Forth. Added copyright to output a copyright text
|
1070. \ at the bottom of the HTML-file.
|
945. \ at the bottom of the XML-file.
|
1071. \ 8. (BNE) Put in Dirk's link to source file in header. Changed ['] to be
|
946. \ 8. (BNE) Put in Dirk's link to source file in header. Changed ['] to be
|
1072. \ simple colored link. Added Forth2HTML link at bottom.
|
947. \ simple colored link. Added Forth2XML link at bottom.
|
1073. \ 9. (BNE) Added index creation, fixed UPC & minor file nesting bug.
1074. \ 10. (BNE) Fixed glass jaw in SKIP". S" etc crashed if nothing else was on the
|
948. \ 9. (BNE) Added index creation, fixed UPC & minor file nesting bug.
949. \ 10. (BNE) Fixed glass jaw in SKIP". S" etc crashed if nothing else was on the
|
1075. \ line. Fixed link generation bug in multi-file HTML.
1076.
|
950. \ line. Fixed link generation bug in multi-file XML.
951. \ 11. (EJB) Converted to XML output.
|
1077.
|
952.
|