[gforth] / gforth / ds2texi.fs  

gforth: gforth/ds2texi.fs

Diff for /gforth/ds2texi.fs between version 1.16 and 1.31

version 1.16, Thu Jul 31 16:17:08 1997 UTC version 1.31, Mon Dec 31 18:40:24 2007 UTC
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,2005 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ modify it under the terms of the GNU General Public License
 \ as published by the Free Software Foundation; either version 2  \ as published by the Free Software Foundation, either version 3
 \ of the License, or (at your option) any later version.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 
Line 15 
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ 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, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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 26 
   
 script? [IF]  script? [IF]
     warnings off      warnings off
     require extend.fs  
     require search.fs      require search.fs
       require extend.fs
     require glocals.fs      require glocals.fs
     require float.fs      require float.fs
     require struct.fs      require struct.fs
Line 60 
Line 59 
     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 
Line 93 
 : 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 
Line 132 
     ." @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 152 
Line 164 
     \ 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 190 
Line 202 
   
 : 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


Generate output suitable for use with a patch program
Legend:
Removed from v.1.16  
changed lines
  Added in v.1.31

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help