- Documentation extraction program for chew.- Copyright (C) 1990-2026 Free Software Foundation, Inc.- This file is part of BFD, the Binary File Descriptor library.- This program 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.- chew.c keywords defined here put output into doc/*.texi files- from comments in the source. See also proto.str.- True if SYNOPSIS was seen.variable synopsis_seen: DOCDD skip_past_newline get_stuff_in_command kill_bogus_lines catstr ;: ENDDD skip_past_newline ;: EXAMPLE skip_past_newline get_stuff_in_command kill_bogus_lines do_fancy_stuff translatecomments courierize catstr ;: INODE "@node " catstr skip_past_newline copy_past_newline catstr ;: CODE_FRAGMENT EXAMPLE ;: COMMENT skip_past_newline get_stuff_in_command drop ;: SYNOPSIS skip_past_newline 1 synopsis_seen ! "@deftypefn {Function} " catstr get_stuff_in_command kill_bogus_lines collapse_whitespace indent catstr "\n" catstr ;: func "@findex " - a skip_past_newline copy_past_newline dup - a x x "@subsubsection @code{" - a x x b swap remchar "}\n" - a x b x c catstr catstr catstr catstr catstr ;: bodytext get_stuff_in_command bulletize kill_bogus_lines do_fancy_stuff courierize catstr "\n" catstr ;: asection skip_past_newline catstr copy_past_newline do_fancy_stuff catstr bodytext ;: SECTION "@section " asection ;: SUBSECTION "@subsection " asection ;: SUBSUBSECTION "@subsubsection " asection ;: subhead skip_past_newline bodytext ;: DESCRIPTION subhead "@end deftypefn\n" synopsis_seen @ catstrif 0 synopsis_seen ! ;: FUNCTION func ;: INTERNAL_FUNCTION func ;: DEFINITION func ;: INTERNAL_DEFINITION func ;: EXTERNAL COMMENT ;: INTERNAL COMMENT ;: SENUM skip_past_newline "Here are the possible values for @code{enum " copy_past_newline remchar catstr "}:\n\n" catstr catstr ;: ENUM skip_past_newline "@deffn {} " copy_past_newline catstr catstr ;: ENUMX skip_past_newline "@deffnx {} " copy_past_newline catstr catstr ;: ENUMEQ skip_past_newline "@deffn {} " copy_past_newline catstr catstr skip_past_newline ;: ENUMEQX skip_past_newline "@deffnx {} " copy_past_newline catstr catstr skip_past_newline ;: ENUMDOC skip_past_newline get_stuff_in_command strip_trailing_newlines catstr "\n@end deffn\n" catstr ;
- Documentation extraction program for chew.
- Copyright (C) 1990-2026 Free Software Foundation, Inc.
- This file is part of BFD, the Binary File Descriptor library.
- This program 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 3 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- chew.c keywords defined here put output into doc/*.texi files
- from comments in the source. See also proto.str.
- True if SYNOPSIS was seen.
variable synopsis_seen
: DOCDD
skip_past_newline
get_stuff_in_command kill_bogus_lines catstr
;
: ENDDD
skip_past_newline
;
: EXAMPLE
skip_past_newline
get_stuff_in_command kill_bogus_lines do_fancy_stuff translatecomments
courierize catstr
;
: INODE
"@node " catstr skip_past_newline copy_past_newline catstr
;
: CODE_FRAGMENT
EXAMPLE
;
: COMMENT
skip_past_newline
get_stuff_in_command
drop
;
: SYNOPSIS
skip_past_newline
1 synopsis_seen !
"@deftypefn {Function} " catstr
get_stuff_in_command
kill_bogus_lines
collapse_whitespace
indent
catstr
"\n" catstr
;
: func
"@findex " - a
skip_past_newline
copy_past_newline
dup - a x x
"@subsubsection @code{" - a x x b
swap
remchar
"}\n" - a x b x c
catstr catstr catstr catstr catstr
;
: bodytext
get_stuff_in_command
bulletize
kill_bogus_lines
do_fancy_stuff
courierize
catstr
"\n" catstr
;
: asection
skip_past_newline
catstr
copy_past_newline
do_fancy_stuff catstr
bodytext
;
: SECTION
"@section " asection ;
: SUBSECTION
"@subsection " asection ;
: SUBSUBSECTION
"@subsubsection " asection ;
: subhead
skip_past_newline
bodytext
;
: DESCRIPTION
subhead
"@end deftypefn\n" synopsis_seen @ catstrif
0 synopsis_seen !
;
: FUNCTION
func ;
: INTERNAL_FUNCTION
func ;
: DEFINITION
func ;
: INTERNAL_DEFINITION
func ;
: EXTERNAL
COMMENT ;
: INTERNAL
COMMENT ;
: SENUM
skip_past_newline
"Here are the possible values for @code{enum "
copy_past_newline remchar catstr
"}:\n\n" catstr catstr
;
: ENUM
skip_past_newline
"@deffn {} "
copy_past_newline catstr catstr
;
: ENUMX
skip_past_newline
"@deffnx {} "
copy_past_newline catstr
catstr
;
: ENUMEQ
skip_past_newline
"@deffn {} "
copy_past_newline catstr catstr
skip_past_newline
;
: ENUMEQX
skip_past_newline
"@deffnx {} "
copy_past_newline catstr
catstr
skip_past_newline
;
: ENUMDOC
skip_past_newline
get_stuff_in_command
strip_trailing_newlines
catstr
"\n@end deffn\n" catstr
;