Diff for /gforth/ds2texi.fs between versions 1.13 and 1.29

version 1.13, 1997/02/12 00:25:34 version 1.29, 2005/10/02 11:30:32
Line 1 Line 1
 \ documentation source to texi format converter  \ documentation source to texi format converter
   
 \ Copyright (C) 1995 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,1999,2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 Line 16
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program; if not, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 \ documentation source can contain lines in the form `doc-word' and  \ documentation source can contain lines in the form `doc-word' and
 \ `short-word'. These are converted to appropriate full or short  \ `short-word'. These are converted to appropriate full or short
Line 27 Line 27
   
 script? [IF]  script? [IF]
     warnings off      warnings off
       require search.fs
     require extend.fs      require extend.fs
     require search-order.fs  
     require glocals.fs      require glocals.fs
     require float.fs      require float.fs
     require struct.fs      require struct.fs
     require debugging.fs      require debugs.fs
 [THEN]  [THEN]
   
 wordlist constant documentation  wordlist constant documentation
   
 struct  struct
     2 cells: field doc-name      cell% 2* field doc-name
     2 cells: field doc-stack-effect      cell% 2* field doc-stack-effect
     2 cells: field doc-wordset      cell% 2* field doc-wordset
     2 cells: field doc-pronounciation      cell% 2* field doc-pronounciation
     2 cells: field doc-description      cell% 2* field doc-description
 end-struct doc-entry  end-struct doc-entry
   
 create description-buffer 4096 chars allot  create description-buffer 4096 chars allot
Line 60  create description-buffer 4096 chars all Line 60  create description-buffer 4096 chars all
     repeat then      repeat then
     description-buffer tuck - ;      description-buffer tuck - ;
   
   : skip-prefix ( c-addr1 u1 -- c-addr2 u2 )
       2dup s" --" string-prefix?
       IF
           [char] - skip [char] - scan 1 /string
       THEN ;
   
 : replace-_ ( c-addr u -- )  : replace-_ ( c-addr u -- )
     \ replaces _ with -      \ replaces _ with -
     chars bounds      chars bounds
Line 88  create description-buffer 4096 chars all Line 94  create description-buffer 4096 chars all
 : make-doc ( -- )  : make-doc ( -- )
     get-current documentation set-current      get-current documentation set-current
     create      create
         last @ name>string 2,           \ name          latest name>string skip-prefix 2,               \ name
         [char] ) parse save-mem 2,      \ stack-effect          [char] ) parse save-mem 2,      \ stack-effect
         bl parse-word condition-wordset 2,      \ wordset          bl sword condition-wordset 2,   \ wordset
         bl parse-word dup               \ pronounciation          bl sword dup    \ pronounciation
         if          if
             condition-pronounciation              condition-pronounciation
         else          else
             2drop last @ name>string              2drop latest name>string skip-prefix
         endif          endif
         2,          2,
         get-description save-mem 2,          get-description save-mem 2,
Line 127  create description-buffer 4096 chars all Line 133  create description-buffer 4096 chars all
     ." @cindex "      ." @cindex "
     ." @code{" r@ doc-name 2@ typetexi ." }"      ." @code{" r@ doc-name 2@ typetexi ." }"
     cr      cr
       r@ doc-name 2@ drop c@ [char] : <> if
           \ cut out words starting with :, info-lookup cannot handle them
           \ !! deal with : by replacing it here and in info-lookup?
           ." @kindex "
           r@ doc-name 2@ typetexi
           cr
       endif
     ." @format" cr      ." @format" cr
     ." @code{" r@ doc-name 2@ typetexi ." }       "      ." @code{" r@ doc-name 2@ typetexi ." }       "
     ." @i{" r@ doc-stack-effect 2@ type ." }       "      ." @i{" r@ doc-stack-effect 2@ type ." }       "
Line 139  create description-buffer 4096 chars all Line 152  create description-buffer 4096 chars all
     r@ print-short      r@ print-short
     r@ doc-description 2@ dup 0<>      r@ doc-description 2@ dup 0<>
     if      if
         ." @iftex" cr ." @vskip-3ex" cr ." @end iftex" cr          \ ." @iftex" cr ." @vskip-0ex" cr ." @end iftex" cr
         type cr cr \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr          type cr cr
           \ ." @ifinfo" cr ." @*" cr ." @end ifinfo" cr cr
     else      else
         2drop cr          2drop cr
     endif      endif
Line 151  create description-buffer 4096 chars all Line 165  create description-buffer 4096 chars all
     \ with the prefix addr2 u2 and continuing with a word in the      \ with the prefix addr2 u2 and continuing with a word in the
     \ wordlist `documentation'. f is true if xt is executed.      \ wordlist `documentation'. f is true if xt is executed.
     >r dup >r      >r dup >r
     3 pick over compare 0=      3 pick over str=
     if \ addr2 u2 is a prefix of addr1 u1      if \ addr2 u2 is a prefix of addr1 u1
         r> /string documentation search-wordlist          r> /string -trailing documentation search-wordlist
         if \ the rest of addr1 u1 is in documentation          if \ the rest of addr1 u1 is in documentation
             execute r> execute true              execute r> execute true
         else          else
Line 189  create docline doclinelength chars allot Line 203  create docline doclinelength chars allot
   
 : compare-ci ( addr1 u1 addr2 u2 -- n )  : compare-ci ( addr1 u1 addr2 u2 -- n )
     \ case insensitive string compare      \ case insensitive string compare
       \ !! works correctly only for comparing for equality
     2 pick swap -      2 pick swap -
     ?dup-0=-if      ?dup-0=-if
         capscomp          capscomp

Removed from v.1.13  
changed lines
  Added in v.1.29


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>