--- gforth/ds2texi.fs 1995/10/16 18:33:06 1.8 +++ gforth/ds2texi.fs 1997/07/31 16:17:08 1.16 @@ -1,5 +1,23 @@ \ documentation source to texi format converter +\ Copyright (C) 1995 Free Software Foundation, Inc. + +\ This file is part of Gforth. + +\ Gforth is free software; you can redistribute it and/or +\ modify it under the terms of the GNU General Public License +\ as published by the Free Software Foundation; either version 2 +\ of the License, or (at your option) any later version. + +\ This program is distributed in the hope that it will be useful, +\ but WITHOUT ANY WARRANTY; without even the implied warranty of +\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +\ GNU General Public License for more details. + +\ You should have received a copy of the GNU General Public License +\ along with this program; if not, write to the Free Software +\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + \ documentation source can contain lines in the form `doc-word' and \ `short-word'. These are converted to appropriate full or short \ (without the description) glossary entries for word. @@ -8,22 +26,23 @@ \ `documentation'. Each word resides there under its own name. script? [IF] -warnings off -require search-order.fs -require glocals.fs -require float.fs -require struct.fs -require debugging.fs + warnings off + require extend.fs + require search.fs + require glocals.fs + require float.fs + require struct.fs + require debugs.fs [THEN] wordlist constant documentation struct - 2 cells: field doc-name - 2 cells: field doc-stack-effect - 2 cells: field doc-wordset - 2 cells: field doc-pronounciation - 2 cells: field doc-description + cell% 2* field doc-name + cell% 2* field doc-stack-effect + cell% 2* field doc-wordset + cell% 2* field doc-pronounciation + cell% 2* field doc-description end-struct doc-entry create description-buffer 4096 chars allot @@ -53,24 +72,24 @@ create description-buffer 4096 chars all +loop ; : condition-stack-effect ( c-addr1 u1 -- c-addr2 u2 ) - save-string 2dup replace-_ ; + save-mem 2dup replace-_ ; : condition-wordset ( c-addr1 u1 -- c-addr2 u2 ) dup 0= if 2drop s" unknown" else - save-string + save-mem endif ; : condition-pronounciation ( c-addr1 u1 -- c-addr2 u2 ) - save-string 2dup replace-_ ; + save-mem 2dup replace-_ ; : make-doc ( -- ) get-current documentation set-current create last @ name>string 2, \ name - [char] ) parse save-string 2, \ stack-effect + [char] ) parse save-mem 2, \ stack-effect bl parse-word condition-wordset 2, \ wordset bl parse-word dup \ pronounciation if @@ -79,7 +98,7 @@ create description-buffer 4096 chars all 2drop last @ name>string endif 2, - get-description save-string 2, + get-description save-mem 2, set-current ; : emittexi ( c -- ) @@ -105,6 +124,9 @@ create description-buffer 4096 chars all ." @var{ " r@ doc-stack-effect 2@ type ." } " r@ doc-wordset 2@ type cr + ." @cindex " + ." @code{" r@ doc-name 2@ typetexi ." }" + cr ." @format" cr ." @code{" r@ doc-name 2@ typetexi ." } " ." @i{" r@ doc-stack-effect 2@ type ." } " @@ -117,8 +139,9 @@ create description-buffer 4096 chars all r@ print-short r@ doc-description 2@ dup 0<> if - ." @iftex" cr ." @vskip-3ex" cr ." @end iftex" cr - type cr cr \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr + \ ." @iftex" cr ." @vskip-0ex" cr ." @end iftex" cr + type cr cr + \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr else 2drop cr endif @@ -199,10 +222,3 @@ create docline doclinelength chars allot else ." undocumented: " wordname type cr endif ; - -script? [IF] -require prims2x.fs -s" primitives.b" ' register-doc process-file -require crossdoc.fd -require doc.fd -[THEN]