Diff for /gforth/ds2texi.fs between versions 1.7 and 1.11

version 1.7, 1995/10/07 17:38:11 version 1.11, 1996/09/30 13:16:08
Line 1 Line 1
 \ documentation source to texi format converter  \ 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  \ 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
 \ (without the description) glossary entries for word.  \ (without the description) glossary entries for word.
Line 10 Line 28
 script? [IF]  script? [IF]
 warnings off  warnings off
 require search-order.fs  require search-order.fs
   require glocals.fs
 require float.fs  require float.fs
 require struct.fs  require struct.fs
 require debugging.fs  require debugging.fs
Line 40  create description-buffer 4096 chars all Line 59  create description-buffer 4096 chars all
     repeat then      repeat then
     description-buffer tuck - ;      description-buffer tuck - ;
   
   : replace-_ ( c-addr u -- )
       \ replaces _ with -
       chars bounds
       +DO
           i c@ [char] _ =
           if
               [char] - i c!
           endif
           1 chars
       +loop ;
       
   : condition-stack-effect ( c-addr1 u1 -- c-addr2 u2 )
       save-mem 2dup replace-_ ;
       
   : condition-wordset ( c-addr1 u1 -- c-addr2 u2 )
       dup 0=
       if
           2drop s" unknown"
       else
           save-mem
       endif ;
   
   : condition-pronounciation ( c-addr1 u1 -- c-addr2 u2 )
       save-mem 2dup replace-_ ;
   
 : make-doc ( -- )  : make-doc ( -- )
     get-current documentation set-current      get-current documentation set-current
     create      create
         last @ name>string 2,           \ name          last @ name>string 2,           \ name
         [char] ) parse save-string 2,   \ stack-effect          [char] ) parse save-mem 2,      \ stack-effect
         bl parse-word save-string 2,    \ wordset          bl parse-word condition-wordset 2,      \ wordset
         bl parse-word dup               \ pronounciation          bl parse-word dup               \ pronounciation
         if          if
             save-string              condition-pronounciation
         else          else
             2drop last @ name>string              2drop last @ name>string
         endif          endif
         2,          2,
         get-description save-string 2,          get-description save-mem 2,
     set-current ;      set-current ;
   
 : emittexi ( c -- )  : emittexi ( c -- )
Line 139  create docline doclinelength chars allot Line 183  create docline doclinelength chars allot
     repeat      repeat
     drop rdrop ;      drop rdrop ;
   
 script? [IF]  : compare-ci ( addr1 u1 addr2 u2 -- n )
 require prims2x.fs      \ case insensitive string compare
 s" primitives.b" ' register-doc process-file      2 pick swap -
 require doc.fd      ?dup-0=-if
 require crossdoc.fd          capscomp
 s" gforth.ds" r/o open-file throw ds2texi bye      else
 [THEN]          nip nip nip
           0<
           if
               -1
           else
               1
           endif
       endif  ;
   
   : answord ( "name wordset pronounciation" -- )
       \ check the documentaion of an ans word
       name { D: wordname }
       name { D: wordset }
       name { D: pronounciation }
       wordname documentation search-wordlist
       if
           execute { doc }
           wordset doc doc-wordset 2@ compare-ci
           if 
               ." wordset: " wordname type ." : '"  doc doc-wordset 2@ type ." ' instead of '" wordset type ." '" cr
           endif
           pronounciation doc doc-pronounciation 2@ compare-ci
           if
               ." pronounciation: " wordname type ." : '" doc doc-pronounciation 2@ type ." ' instead of '" pronounciation type ." '" cr
           endif
       else
           ." undocumented: " wordname type cr
       endif ;

Removed from v.1.7  
changed lines
  Added in v.1.11


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