156160Sru/* cmds.h -- declarations for cmds.c.
2146515Sru   $Id: cmds.h,v 1.9 2004/11/26 00:48:35 karl Exp $
356160Sru
4146515Sru   Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation,
5146515Sru   Inc.
656160Sru
756160Sru   This program is free software; you can redistribute it and/or modify
856160Sru   it under the terms of the GNU General Public License as published by
956160Sru   the Free Software Foundation; either version 2, or (at your option)
1056160Sru   any later version.
1156160Sru
1256160Sru   This program is distributed in the hope that it will be useful,
1356160Sru   but WITHOUT ANY WARRANTY; without even the implied warranty of
1456160Sru   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1556160Sru   GNU General Public License for more details.
1656160Sru
1756160Sru   You should have received a copy of the GNU General Public License along
1856160Sru   with this program; if not, write to the Free Software Foundation, Inc.,
1956160Sru   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
2056160Sru
2156160Sru#ifndef CMDS_H
2256160Sru#define CMDS_H
2356160Sru
2456160Sru/* The three arguments a command can get are a flag saying whether it is
2556160Sru   before argument parsing (START) or after (END), the starting position
2656160Sru   of the arguments, and the ending position.  */
2756160Srutypedef void COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */
2856160Sru
2956160Sru/* Each command has an associated function.  When the command is
3056160Sru   encountered in the text, the associated function is called with START
3156160Sru   as the argument.  If the function expects arguments in braces, it
3256160Sru   remembers itself on the stack.  When the corresponding close brace is
3356160Sru   encountered, the function is called with END as the argument. */
3456160Sru#define START 0
3556160Sru#define END 1
3656160Sru
3756160Sru/* Does the command expect braces?  */
3856160Sru#define NO_BRACE_ARGS 0
3956160Sru#define BRACE_ARGS 1
4056160Sru#define MAYBE_BRACE_ARGS 2
4156160Sru
4256160Srutypedef struct
4356160Sru{
4456160Sru  char *name;
4556160Sru  COMMAND_FUNCTION *proc;
4656160Sru  int argument_in_braces;
4756160Sru} COMMAND;
4856160Sru
4956160Sruextern COMMAND command_table[];
5056160Sru
51146515Srutypedef struct acronym_desc
52146515Sru{
53146515Sru  struct acronym_desc *next;
54146515Sru  char *acronym;
55146515Sru  char *description;
56146515Sru} ACRONYM_DESC;
57114472Sru
58146515Sru/* Texinfo commands.  */
59146515Sruextern void insert_self (int arg),
60146515Sru  insert_space (int arg),
61146515Sru  cm_ignore_line (void),
62146515Sru  cm_ignore_arg (int arg, int start_pos, int end_pos),
63146515Sru  cm_comment (void),
64146515Sru  cm_no_op (void);
65146515Sru
66146515Sru/* Document structure and meta information.  */
67146515Sruextern void cm_setfilename (void),
68146515Sru  cm_settitle (void),
69146515Sru  cm_documentdescription (void),
70146515Sru  cm_node (void),
71146515Sru  cm_menu (void),
72146515Sru  cm_detailmenu (void),
73146515Sru  cm_dircategory (void),
74146515Sru  cm_direntry (void),
75146515Sru  cm_bye (void);
76146515Sru
77146515Sru/* File inclusion.  */
78146515Sruextern void cm_include (void),
79146515Sru  cm_verbatiminclude (void);
80146515Sru
81146515Sru/* Cross referencing commands.  */
82146515Sruextern void cm_anchor (int arg),
83146515Sru  cm_xref (int arg),
84146515Sru  cm_pxref (int arg),
85146515Sru  cm_ref (int arg),
86146515Sru  cm_inforef (int arg),
87146515Sru  cm_uref (int arg);
88146515Sru
89146515Sru/* Special insertions.  */
90146515Sruextern void cm_LaTeX (int arg),
91146515Sru  cm_TeX (int arg),
92146515Sru  cm_bullet (int arg),
93146515Sru  cm_colon (void),
94146515Sru  cm_comma (int arg),
95146515Sru  cm_copyright (int arg),
96146515Sru  cm_dots (int arg),
97146515Sru  cm_enddots (int arg),
98146515Sru  cm_equiv (int arg),
99146515Sru  cm_error (int arg),
100146515Sru  cm_expansion (int arg),
101146515Sru  cm_image (int arg),
102146515Sru  cm_insert_copying (void),
103146515Sru  cm_minus (int arg),
104146515Sru  cm_point (int arg),
105146515Sru  cm_print (int arg),
106146515Sru  cm_punct (int arg),
107146515Sru  cm_registeredsymbol (int arg),
108146515Sru  cm_result (int arg);
109146515Sru
110146515Sru/* Emphasis and markup.  */
111146515Sruextern void cm_acronym (int arg),
112146515Sru  cm_abbr (int arg),
113146515Sru  cm_b (int arg),
114146515Sru  cm_cite (int arg, int position),
115146515Sru  cm_code (int arg),
116146515Sru  cm_dfn (int arg, int position),
117146515Sru  cm_dmn (int arg),
118146515Sru  cm_email (int arg),
119146515Sru  cm_emph (int arg),
120146515Sru  cm_i (int arg),
121146515Sru  cm_kbd (int arg),
122146515Sru  cm_key (int arg),
123146515Sru  cm_math (int arg),
124146515Sru  cm_not_fixed_width (int arg, int start, int end),
125146515Sru  cm_r (int arg),
126146515Sru  cm_sansserif (int arg),
127146515Sru  cm_sc (int arg, int start_pos, int end_pos),
128146515Sru  cm_slanted (int arg),
129146515Sru  cm_strong (int arg, int start_pos, int end_pos),
130146515Sru  cm_tt (int arg),
131146515Sru  cm_indicate_url (int arg, int start, int end),
132146515Sru  cm_var (int arg, int start_pos, int end_pos),
133146515Sru  cm_verb (int arg);
134146515Sru
135146515Sru/* Block environments.  */
136146515Sruextern void cm_cartouche (void),
137146515Sru  cm_group (void),
138146515Sru  cm_display (void),
139146515Sru  cm_smalldisplay (void),
140146515Sru  cm_example (void),
141146515Sru  cm_smallexample (void),
142146515Sru  cm_smalllisp (void),
143146515Sru  cm_lisp (void),
144146515Sru  cm_format (void),
145146515Sru  cm_smallformat (void),
146146515Sru  cm_quotation (void),
147146515Sru  cm_copying (void),
148146515Sru  cm_flushleft (void),
149146515Sru  cm_flushright (void),
150146515Sru  cm_verbatim (void),
151146515Sru  cm_end (void);
152146515Sru
153146515Sru/* Tables, lists, enumerations.  */
154146515Sruextern void cm_table (void),
155146515Sru  cm_ftable (void),
156146515Sru  cm_vtable (void),
157146515Sru  cm_itemize (void),
158146515Sru  cm_enumerate (void),
159146515Sru  cm_multitable (void),
160146515Sru  cm_headitem (void),
161146515Sru  cm_item (void),
162146515Sru  cm_itemx (void),
163146515Sru  cm_tab (void);
164146515Sru
165146515Sruextern void cm_center (void),
166146515Sru  cm_exdent (void),
167146515Sru  cm_indent (void),
168146515Sru  cm_noindent (void),
169146515Sru  cm_noindent_cmd (void);
170146515Sru
171146515Sru/* Line and page breaks.  */
172146515Sruextern void cm_asterisk (void),
173146515Sru  cm_sp (void),
174146515Sru  cm_page (void);
175146515Sru
176146515Sru/* Non breaking words.  */
177146515Sruextern void cm_tie (int arg),
178146515Sru  cm_w (int arg);
179146515Sru
180146515Sru/* Title page creation.  */
181146515Sruextern void cm_titlepage (void),
182146515Sru  cm_author (void),
183146515Sru  cm_titlepage_cmds (void),
184146515Sru  cm_titlefont (int arg),
185146515Sru  cm_today (int arg);
186146515Sru
187146515Sru/* Floats.  */
188146515Sruextern void cm_float (void),
189146515Sru  cm_caption (int arg),
190146515Sru  cm_shortcaption (void),
191146515Sru  cm_listoffloats (void);
192146515Sru
193146515Sru/* Indices.  */
194146515Sruextern void cm_kindex (void),
195146515Sru  cm_cindex (void),
196146515Sru  cm_findex (void),
197146515Sru  cm_pindex (void),
198146515Sru  cm_vindex (void),
199146515Sru  cm_tindex (void),
200146515Sru  cm_defindex (void),
201146515Sru  cm_defcodeindex (void),
202146515Sru  cm_synindex (void),
203146515Sru  cm_printindex (void);
204146515Sru
205146515Sru/* Conditionals. */
206146515Sruextern void cm_set (void),
207146515Sru  cm_clear (void),
208146515Sru  cm_ifset (void),
209146515Sru  cm_ifclear (void),
210146515Sru  cm_ifeq (void),
211146515Sru  cm_value (int arg, int start_pos, int end_pos);
212146515Sru
21356160Sru#endif /* !CMDS_H */
214