1/* cmds.h -- declarations for cmds.c.
2   $Id: cmds.h,v 1.9 2004/11/26 00:48:35 karl Exp $
3
4   Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation,
5   Inc.
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 2, or (at your option)
10   any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License along
18   with this program; if not, write to the Free Software Foundation, Inc.,
19   59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20
21#ifndef CMDS_H
22#define CMDS_H
23
24/* The three arguments a command can get are a flag saying whether it is
25   before argument parsing (START) or after (END), the starting position
26   of the arguments, and the ending position.  */
27typedef void COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */
28
29/* Each command has an associated function.  When the command is
30   encountered in the text, the associated function is called with START
31   as the argument.  If the function expects arguments in braces, it
32   remembers itself on the stack.  When the corresponding close brace is
33   encountered, the function is called with END as the argument. */
34#define START 0
35#define END 1
36
37/* Does the command expect braces?  */
38#define NO_BRACE_ARGS 0
39#define BRACE_ARGS 1
40#define MAYBE_BRACE_ARGS 2
41
42typedef struct
43{
44  char *name;
45  COMMAND_FUNCTION *proc;
46  int argument_in_braces;
47} COMMAND;
48
49extern COMMAND command_table[];
50
51typedef struct acronym_desc
52{
53  struct acronym_desc *next;
54  char *acronym;
55  char *description;
56} ACRONYM_DESC;
57
58/* Texinfo commands.  */
59extern void insert_self (int arg),
60  insert_space (int arg),
61  cm_ignore_line (void),
62  cm_ignore_arg (int arg, int start_pos, int end_pos),
63  cm_comment (void),
64  cm_no_op (void);
65
66/* Document structure and meta information.  */
67extern void cm_setfilename (void),
68  cm_settitle (void),
69  cm_documentdescription (void),
70  cm_node (void),
71  cm_menu (void),
72  cm_detailmenu (void),
73  cm_dircategory (void),
74  cm_direntry (void),
75  cm_bye (void);
76
77/* File inclusion.  */
78extern void cm_include (void),
79  cm_verbatiminclude (void);
80
81/* Cross referencing commands.  */
82extern void cm_anchor (int arg),
83  cm_xref (int arg),
84  cm_pxref (int arg),
85  cm_ref (int arg),
86  cm_inforef (int arg),
87  cm_uref (int arg);
88
89/* Special insertions.  */
90extern void cm_LaTeX (int arg),
91  cm_TeX (int arg),
92  cm_bullet (int arg),
93  cm_colon (void),
94  cm_comma (int arg),
95  cm_copyright (int arg),
96  cm_dots (int arg),
97  cm_enddots (int arg),
98  cm_equiv (int arg),
99  cm_error (int arg),
100  cm_expansion (int arg),
101  cm_image (int arg),
102  cm_insert_copying (void),
103  cm_minus (int arg),
104  cm_point (int arg),
105  cm_print (int arg),
106  cm_punct (int arg),
107  cm_registeredsymbol (int arg),
108  cm_result (int arg);
109
110/* Emphasis and markup.  */
111extern void cm_acronym (int arg),
112  cm_abbr (int arg),
113  cm_b (int arg),
114  cm_cite (int arg, int position),
115  cm_code (int arg),
116  cm_dfn (int arg, int position),
117  cm_dmn (int arg),
118  cm_email (int arg),
119  cm_emph (int arg),
120  cm_i (int arg),
121  cm_kbd (int arg),
122  cm_key (int arg),
123  cm_math (int arg),
124  cm_not_fixed_width (int arg, int start, int end),
125  cm_r (int arg),
126  cm_sansserif (int arg),
127  cm_sc (int arg, int start_pos, int end_pos),
128  cm_slanted (int arg),
129  cm_strong (int arg, int start_pos, int end_pos),
130  cm_tt (int arg),
131  cm_indicate_url (int arg, int start, int end),
132  cm_var (int arg, int start_pos, int end_pos),
133  cm_verb (int arg);
134
135/* Block environments.  */
136extern void cm_cartouche (void),
137  cm_group (void),
138  cm_display (void),
139  cm_smalldisplay (void),
140  cm_example (void),
141  cm_smallexample (void),
142  cm_smalllisp (void),
143  cm_lisp (void),
144  cm_format (void),
145  cm_smallformat (void),
146  cm_quotation (void),
147  cm_copying (void),
148  cm_flushleft (void),
149  cm_flushright (void),
150  cm_verbatim (void),
151  cm_end (void);
152
153/* Tables, lists, enumerations.  */
154extern void cm_table (void),
155  cm_ftable (void),
156  cm_vtable (void),
157  cm_itemize (void),
158  cm_enumerate (void),
159  cm_multitable (void),
160  cm_headitem (void),
161  cm_item (void),
162  cm_itemx (void),
163  cm_tab (void);
164
165extern void cm_center (void),
166  cm_exdent (void),
167  cm_indent (void),
168  cm_noindent (void),
169  cm_noindent_cmd (void);
170
171/* Line and page breaks.  */
172extern void cm_asterisk (void),
173  cm_sp (void),
174  cm_page (void);
175
176/* Non breaking words.  */
177extern void cm_tie (int arg),
178  cm_w (int arg);
179
180/* Title page creation.  */
181extern void cm_titlepage (void),
182  cm_author (void),
183  cm_titlepage_cmds (void),
184  cm_titlefont (int arg),
185  cm_today (int arg);
186
187/* Floats.  */
188extern void cm_float (void),
189  cm_caption (int arg),
190  cm_shortcaption (void),
191  cm_listoffloats (void);
192
193/* Indices.  */
194extern void cm_kindex (void),
195  cm_cindex (void),
196  cm_findex (void),
197  cm_pindex (void),
198  cm_vindex (void),
199  cm_tindex (void),
200  cm_defindex (void),
201  cm_defcodeindex (void),
202  cm_synindex (void),
203  cm_printindex (void);
204
205/* Conditionals. */
206extern void cm_set (void),
207  cm_clear (void),
208  cm_ifset (void),
209  cm_ifclear (void),
210  cm_ifeq (void),
211  cm_value (int arg, int start_pos, int end_pos);
212
213#endif /* !CMDS_H */
214