84 |
|
|
85 |
extern boolean m4_bad_argc (m4 *, int, m4_symbol_value **, |
extern boolean m4_bad_argc (m4 *, int, m4_symbol_value **, |
86 |
int, int); |
int, int); |
|
extern const char * m4_skip_space (m4 *, const char *); |
|
87 |
extern boolean m4_numeric_arg (m4 *, int, m4_symbol_value **, |
extern boolean m4_numeric_arg (m4 *, int, m4_symbol_value **, |
88 |
int, int *); |
int, int *); |
89 |
extern void m4_dump_args (m4 *, m4_obstack *, int, |
extern void m4_dump_args (m4 *, m4_obstack *, int, |
90 |
m4_symbol_value **, const char *, |
m4_symbol_value **, const char *, |
91 |
boolean); |
boolean); |
|
extern const char * m4_expand_ranges (const char *, m4_obstack *); |
|
92 |
|
|
93 |
/* Error handling. */ |
/* Error handling. */ |
94 |
#define M4ERROR(Arglist) (error Arglist) |
#define M4ERROR(Arglist) (error Arglist) |
267 |
extern boolean m4_debug_set_output (m4 *, const char *); |
extern boolean m4_debug_set_output (m4 *, const char *); |
268 |
extern void m4_debug_message_prefix (m4 *); |
extern void m4_debug_message_prefix (m4 *); |
269 |
|
|
|
#define M4_DEBUG_PRINT1(C, Fmt, Arg1) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
fprintf (m4_get_debug_file (C), Fmt, Arg1); } M4_STMT_END |
|
|
|
|
|
#define M4_DEBUG_PRINT2(Fmt, Arg1, Arg2) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
fprintf (m4_get_debug_file (C), Fmt, Arg1, Arg2);} M4_STMT_END |
|
|
|
|
|
#define M4_DEBUG_PRINT3(Fmt, Arg1, Arg2, Arg3) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
fprintf (m4_get_debug_file (C), Fmt, Arg1, Arg2, Arg3); } M4_STMT_END |
|
|
|
|
|
#define M4_DEBUG_MESSAGE(C, Fmt) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
{ \ |
|
|
m4_debug_message_prefix (C); \ |
|
|
fprintf (m4_get_debug_file (C), Fmt); \ |
|
|
putc ('\n', m4_get_debug_file (C)); \ |
|
|
} } M4_STMT_END |
|
|
|
|
|
#define M4_DEBUG_MESSAGE1(C, Fmt, Arg1) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
{ \ |
|
|
m4_debug_message_prefix (C); \ |
|
|
fprintf (m4_get_debug_file (C), Fmt, Arg1); \ |
|
|
putc ('\n', m4_get_debug_file (C)); \ |
|
|
} } M4_STMT_END |
|
|
|
|
|
#define M4_DEBUG_MESSAGE2(C, Fmt, Arg1, Arg2) M4_STMT_START { \ |
|
|
if (m4_get_debug_file (C) != NULL) \ |
|
|
{ \ |
|
|
m4_debug_message_prefix (C); \ |
|
|
fprintf (m4_get_debug_file (C), Fmt, Arg1, Arg2); \ |
|
|
putc ('\n', m4_get_debug_file (C)); \ |
|
|
} } M4_STMT_END |
|
|
|
|
270 |
|
|
271 |
|
|
272 |
/* --- SYNTAX TABLE DEFINITIONS --- */ |
/* --- SYNTAX TABLE DEFINITIONS --- */ |
301 |
M4_SYNTAX_ALPHA = (1 << 10), |
M4_SYNTAX_ALPHA = (1 << 10), |
302 |
M4_SYNTAX_NUM = (1 << 11), |
M4_SYNTAX_NUM = (1 << 11), |
303 |
|
|
304 |
/* These values ARE bit masks to AND with categories above, a syntax entry |
/* These values are bit masks to AND with categories above, a syntax entry |
305 |
may have any number of these in addition to a maximum of one of the |
may have any number of these in addition to a maximum of one of the |
306 |
values above. */ |
values above. */ |
307 |
M4_SYNTAX_LQUOTE = (1 << 12), |
M4_SYNTAX_LQUOTE = (1 << 12), |