32 |
|
|
33 |
typedef struct m4_symbol m4_symbol; |
typedef struct m4_symbol m4_symbol; |
34 |
typedef struct m4_module_data m4_module_data; |
typedef struct m4_module_data m4_module_data; |
35 |
|
typedef struct m4_token_data m4_token_data; |
36 |
|
|
37 |
typedef void m4_builtin_func (struct obstack *, int, struct m4_symbol **); |
typedef void m4_builtin_func (struct obstack *, int, struct m4_token_data **); |
38 |
typedef void *m4_module_func (const char *); |
typedef void *m4_module_func (const char *); |
39 |
typedef int m4_symtab_apply_func (const char *name, m4_symbol *symbol, void *data); |
typedef int m4_symtab_apply_func (const char *name, m4_symbol *symbol, void *data); |
40 |
|
|
56 |
} m4_builtin; |
} m4_builtin; |
57 |
|
|
58 |
|
|
59 |
extern void m4_module_init (void); |
extern void m4_module_init (void); |
60 |
extern lt_dlhandle m4_module_load (const char*, struct obstack*); |
extern lt_dlhandle m4_module_load (const char*, struct obstack*); |
61 |
extern void m4_module_unload (const char*, struct obstack*); |
extern void m4_module_unload (const char*, struct obstack*); |
62 |
extern void m4_module_unload_all (void); |
extern lt_dlhandle m4_module_open (const char*, struct obstack*); |
63 |
extern lt_dlhandle m4_module_open (const char*, struct obstack*); |
extern void m4_module_close (lt_dlhandle, struct obstack*); |
64 |
extern void m4_module_close (lt_dlhandle, struct obstack*); |
extern void m4_module_close_all (struct obstack*); |
|
extern void m4_module_close_all (struct obstack*); |
|
65 |
|
|
66 |
extern const char *m4_module_name (lt_dlhandle); |
extern const char *m4_module_name (lt_dlhandle); |
67 |
extern m4_builtin *m4_module_builtins (lt_dlhandle); |
extern m4_builtin *m4_module_builtins (lt_dlhandle); |
94 |
extern void m4_symtab_init (void); |
extern void m4_symtab_init (void); |
95 |
extern int m4_symtab_apply (m4_symtab_apply_func *, void *); |
extern int m4_symtab_apply (m4_symtab_apply_func *, void *); |
96 |
extern void m4_symtab_remove_module_references (lt_dlhandle); |
extern void m4_symtab_remove_module_references (lt_dlhandle); |
|
extern void m4_symtab_exit (void); |
|
97 |
|
|
98 |
extern m4_symbol *m4_symbol_lookup (const char *); |
extern m4_symbol *m4_symbol_lookup (const char *); |
99 |
extern m4_symbol *m4_symbol_pushdef (const char *); |
extern m4_symbol *m4_symbol_pushdef (const char *); |
127 |
typedef void m4_module_init_func (lt_dlhandle, struct obstack*); |
typedef void m4_module_init_func (lt_dlhandle, struct obstack*); |
128 |
typedef void m4_module_finish_func (lt_dlhandle, struct obstack*); |
typedef void m4_module_finish_func (lt_dlhandle, struct obstack*); |
129 |
|
|
130 |
extern m4_token_data_t m4_symbol_type (m4_symbol*); |
extern m4_token_data_t m4_token_data_type (m4_token_data*); |
131 |
extern char *m4_symbol_text (m4_symbol*); |
extern char *m4_token_data_text (m4_token_data*); |
132 |
extern m4_builtin_func *m4_symbol_func (m4_symbol*); |
extern m4_builtin_func *m4_token_data_func (m4_token_data*); |
133 |
|
|
134 |
|
|
135 |
#define M4ARG(i) (argc > (i) ? m4_symbol_text (argv[i]) : "") |
#define M4ARG(i) (argc > (i) ? m4_token_data_text (argv[i]) : "") |
136 |
|
|
137 |
#define M4BUILTIN(name) \ |
#define M4BUILTIN(name) \ |
138 |
static void CONC(builtin_, name) \ |
static void CONC(builtin_, name) \ |
139 |
(struct obstack *, int , m4_symbol **); |
(struct obstack *, int , m4_token_data **); |
140 |
|
|
141 |
#define M4BUILTIN_HANDLER(name) \ |
#define M4BUILTIN_HANDLER(name) \ |
142 |
static void CONC(builtin_, name) (obs, argc, argv) \ |
static void CONC(builtin_, name) (obs, argc, argv) \ |
143 |
struct obstack *obs; int argc; m4_symbol **argv; |
struct obstack *obs; int argc; m4_token_data **argv; |
144 |
|
|
145 |
#define M4INIT_HANDLER(name) \ |
#define M4INIT_HANDLER(name) \ |
146 |
void CONC(name, CONC(_LTX_, m4_init_module)) \ |
void CONC(name, CONC(_LTX_, m4_init_module)) \ |
192 |
#define DEF_BCOMM "#" |
#define DEF_BCOMM "#" |
193 |
#define DEF_ECOMM "\n" |
#define DEF_ECOMM "\n" |
194 |
|
|
195 |
boolean m4_bad_argc (m4_symbol *, int, int, int); |
boolean m4_bad_argc (m4_token_data *, int, int, int); |
196 |
const char *m4_skip_space (const char *); |
const char *m4_skip_space (const char *); |
197 |
boolean m4_numeric_arg (m4_symbol *, const char *, int *); |
boolean m4_numeric_arg (m4_token_data *, const char *, int *); |
198 |
void m4_shipout_int (struct obstack *, int); |
void m4_shipout_int (struct obstack *, int); |
199 |
void m4_shipout_string (struct obstack*, const char*, int, boolean); |
void m4_shipout_string (struct obstack*, const char*, int, boolean); |
200 |
void m4_dump_args (struct obstack *obs, int argc, m4_symbol **argv, const char *sep, boolean quoted); |
void m4_dump_args (struct obstack *obs, int argc, m4_token_data **argv, const char *sep, boolean quoted); |
201 |
|
|
202 |
|
|
203 |
FILE *m4_debug; |
FILE *m4_debug; |
291 |
while (0) |
while (0) |
292 |
|
|
293 |
void m4_debug_init (void); |
void m4_debug_init (void); |
|
void m4_debug_exit (void); |
|
294 |
int m4_debug_decode (const char *); |
int m4_debug_decode (const char *); |
295 |
void m4_debug_flush_files (void); |
void m4_debug_flush_files (void); |
296 |
boolean m4_debug_set_output (const char *); |
boolean m4_debug_set_output (const char *); |
297 |
void m4_debug_message_prefix (void); |
void m4_debug_message_prefix (void); |
298 |
|
|
299 |
void m4_trace_prepre (const char *, int); |
void m4_trace_prepre (const char *, int); |
300 |
void m4_trace_pre (const char *, int, int, m4_symbol **); |
void m4_trace_pre (const char *, int, int, m4_token_data **); |
301 |
void m4_trace_post (const char *, int, int, m4_symbol **, |
void m4_trace_post (const char *, int, int, m4_token_data **, |
302 |
const char *); |
const char *); |
303 |
|
|
304 |
/* Exit code from last "syscmd" command. */ |
/* Exit code from last "syscmd" command. */ |
307 |
|
|
308 |
const char *m4_expand_ranges (const char *s, struct obstack *obs); |
const char *m4_expand_ranges (const char *s, struct obstack *obs); |
309 |
void m4_expand_input (void); |
void m4_expand_input (void); |
310 |
void m4_call_macro (m4_symbol *, int, m4_symbol **, struct obstack *); |
void m4_call_macro (m4_symbol *, int, m4_token_data **, struct obstack *); |
311 |
void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_symbol **argv); |
void m4_process_macro (struct obstack *obs, m4_symbol *symbol, int argc, m4_token_data **argv); |
312 |
|
|
313 |
|
|
314 |
|
|
375 |
|
|
376 |
extern int m4_syntax_code (char ch); |
extern int m4_syntax_code (char ch); |
377 |
extern void m4_input_init (void); |
extern void m4_input_init (void); |
|
extern void m4_input_exit (void); |
|
378 |
extern void m4_syntax_init (void); |
extern void m4_syntax_init (void); |
379 |
extern int m4_peek_input (void); |
extern int m4_peek_input (void); |
380 |
extern m4_token_t m4_next_token (m4_symbol *); |
extern m4_token_t m4_next_token (m4_token_data *); |
381 |
extern void m4_skip_line (void); |
extern void m4_skip_line (void); |
382 |
|
|
383 |
/* push back input */ |
/* push back input */ |
399 |
int m4_output_current_line; |
int m4_output_current_line; |
400 |
|
|
401 |
extern void m4_output_init (void); |
extern void m4_output_init (void); |
|
extern void m4_output_exit (void); |
|
402 |
extern void m4_shipout_text (struct obstack *, const char *, int); |
extern void m4_shipout_text (struct obstack *, const char *, int); |
403 |
extern void m4_make_diversion (int); |
extern void m4_make_diversion (int); |
404 |
extern void m4_insert_diversion (int); |
extern void m4_insert_diversion (int); |
445 |
}; |
}; |
446 |
|
|
447 |
extern int m4_dump_symbol (const char *name, m4_symbol *symbol, void *data); |
extern int m4_dump_symbol (const char *name, m4_symbol *symbol, void *data); |
448 |
extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_symbol **argv, boolean complain); |
extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_token_data **argv, boolean complain); |
449 |
|
|
450 |
|
|
451 |
|
|