1 |
/* GNU m4 -- A simple macro processor |
/* GNU m4 -- A simple macro processor |
2 |
Copyright 1989-1994, 1999, 2000 Free Software Foundation, Inc. |
Copyright 1989-1994, 1999, 2000, 2003 Free Software Foundation, Inc. |
3 |
|
|
4 |
This program is free software; you can redistribute it and/or modify |
This program is free software; you can redistribute it and/or modify |
5 |
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
183 |
while (0) |
while (0) |
184 |
|
|
185 |
/* The name this program was run with. */ |
/* The name this program was run with. */ |
186 |
const char *program_name; |
#ifdef _LIBC |
187 |
|
/* In the GNU C library, there is a predefined variable for this. */ |
188 |
|
# define program_name program_invocation_name |
189 |
|
#endif |
190 |
|
extern const char *program_name; |
191 |
|
|
192 |
/* Option flags (defined in utility.c; set in m4.c). */ |
/* Option flags (defined in utility.c; set in m4.c). */ |
193 |
int interactive; /* -e */ |
extern int interactive; /* -e */ |
194 |
int sync_output; /* -s */ |
extern int sync_output; /* -s */ |
195 |
int debug_level; /* -d */ |
extern int debug_level; /* -d */ |
196 |
int hash_table_size; /* -H */ |
extern int hash_table_size; /* -H */ |
197 |
int no_gnu_extensions; /* -G */ |
extern int no_gnu_extensions; /* -G */ |
198 |
int prefix_all_builtins; /* -P */ |
extern int prefix_all_builtins; /* -P */ |
199 |
int max_debug_argument_length; /* -l */ |
extern int max_debug_argument_length; /* -l */ |
200 |
int suppress_warnings; /* -Q */ |
extern int suppress_warnings; /* -Q */ |
201 |
int warning_status; /* -E */ |
extern int warning_status; /* -E */ |
202 |
int nesting_limit; /* -L */ |
extern int nesting_limit; /* -L */ |
203 |
int discard_comments; /* -c */ |
extern int discard_comments; /* -c */ |
204 |
|
|
205 |
/* left and right quote, begin and end comment */ |
/* left and right quote, begin and end comment */ |
206 |
m4_string lquote; |
extern m4_string lquote; |
207 |
m4_string rquote; |
extern m4_string rquote; |
208 |
|
|
209 |
m4_string bcomm; |
extern m4_string bcomm; |
210 |
m4_string ecomm; |
extern m4_string ecomm; |
211 |
|
|
212 |
#define DEF_LQUOTE "`" |
#define DEF_LQUOTE "`" |
213 |
#define DEF_RQUOTE "\'" |
#define DEF_RQUOTE "\'" |
214 |
#define DEF_BCOMM "#" |
#define DEF_BCOMM "#" |
215 |
#define DEF_ECOMM "\n" |
#define DEF_ECOMM "\n" |
216 |
|
|
217 |
boolean m4_bad_argc (int, m4_token **, int, int); |
extern boolean m4_bad_argc (int, m4_token **, int, int); |
218 |
const char *m4_skip_space (const char *); |
extern const char *m4_skip_space (const char *); |
219 |
boolean m4_numeric_arg (int, m4_token **, int, int *); |
extern boolean m4_numeric_arg (int, m4_token **, int, int *); |
220 |
void m4_shipout_int (struct obstack *, int); |
extern void m4_shipout_int (struct obstack *, int); |
221 |
void m4_shipout_string (struct obstack*, const char*, int, boolean); |
extern void m4_shipout_string (struct obstack*, const char*, int, boolean); |
222 |
void m4_dump_args (struct obstack *obs, int argc, m4_token **argv, const char *sep, boolean quoted); |
extern void m4_dump_args (struct obstack *obs, int argc, m4_token **argv, const char *sep, boolean quoted); |
223 |
|
|
224 |
|
|
225 |
|
|
226 |
/* --- RUNTIME DEBUGGING --- */ |
/* --- RUNTIME DEBUGGING --- */ |
227 |
|
|
228 |
FILE *m4_debug; |
extern FILE *m4_debug; |
229 |
|
|
230 |
/* The value of debug_level is a bitmask of the following. */ |
/* The value of debug_level is a bitmask of the following. */ |
231 |
|
|
315 |
} \ |
} \ |
316 |
while (0) |
while (0) |
317 |
|
|
318 |
void m4_debug_init (void); |
extern void m4_debug_init (void); |
319 |
void m4_debug_exit (void); |
extern void m4_debug_exit (void); |
320 |
int m4_debug_decode (const char *); |
extern int m4_debug_decode (const char *); |
321 |
void m4_debug_flush_files (void); |
extern void m4_debug_flush_files (void); |
322 |
boolean m4_debug_set_output (const char *); |
extern boolean m4_debug_set_output (const char *); |
323 |
void m4_debug_message_prefix (void); |
extern void m4_debug_message_prefix (void); |
324 |
|
|
325 |
void m4_trace_prepre (const char *, int); |
extern void m4_trace_prepre (const char *, int); |
326 |
void m4_trace_pre (const char *, int, int, m4_token **); |
extern void m4_trace_pre (const char *, int, int, m4_token **); |
327 |
void m4_trace_post (const char *, int, int, m4_token **, |
extern void m4_trace_post (const char *, int, int, m4_token **, |
328 |
const char *); |
const char *); |
329 |
|
|
330 |
/* Exit code from last "syscmd" command. */ |
/* Exit code from last "syscmd" command. */ |
331 |
int m4_sysval; |
extern int m4_sysval; |
332 |
int m4_expansion_level; |
extern int m4_expansion_level; |
333 |
|
|
334 |
const char *m4_expand_ranges (const char *s, struct obstack *obs); |
extern const char *m4_expand_ranges (const char *s, struct obstack *obs); |
335 |
void m4_expand_input (void); |
extern void m4_expand_input (void); |
336 |
void m4_call_macro (m4_symbol *, int, m4_token **, struct obstack *); |
extern void m4_call_macro (m4_symbol *, int, m4_token **, struct obstack *); |
337 |
void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_token **argv); |
extern void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_token **argv); |
338 |
|
|
339 |
|
|
340 |
|
|
341 |
/* --- SYNTAX TABLE DEFINITIONS --- */ |
/* --- SYNTAX TABLE DEFINITIONS --- */ |
342 |
|
|
343 |
/* Please read the comment at the top of input.c for details */ |
/* Please read the comment at the top of input.c for details */ |
344 |
unsigned short m4_syntax_table[256]; |
extern unsigned short m4_syntax_table[256]; |
345 |
|
|
346 |
extern void m4_syntax_init (void); |
extern void m4_syntax_init (void); |
347 |
extern void m4_syntax_exit (void); |
extern void m4_syntax_exit (void); |
403 |
/* --- TOKENISATION AND INPUT --- */ |
/* --- TOKENISATION AND INPUT --- */ |
404 |
|
|
405 |
/* current input file, and line */ |
/* current input file, and line */ |
406 |
const char *m4_current_file; |
extern const char *m4_current_file; |
407 |
int m4_current_line; |
extern int m4_current_line; |
408 |
|
|
409 |
extern void m4_input_init (void); |
extern void m4_input_init (void); |
410 |
extern void m4_input_exit (void); |
extern void m4_input_exit (void); |
427 |
extern void m4_set_comment (const char *, const char *); |
extern void m4_set_comment (const char *, const char *); |
428 |
extern void m4_set_syntax (char, const unsigned char *); |
extern void m4_set_syntax (char, const unsigned char *); |
429 |
|
|
430 |
int m4_current_diversion; |
extern int m4_current_diversion; |
431 |
int m4_output_current_line; |
extern int m4_output_current_line; |
432 |
|
|
433 |
extern void m4_output_init (void); |
extern void m4_output_init (void); |
434 |
extern void m4_output_exit (void); |
extern void m4_output_exit (void); |