29 |
#include <m4/error.h> |
#include <m4/error.h> |
30 |
#include <m4/ltdl.h> |
#include <m4/ltdl.h> |
31 |
#include <m4/system.h> |
#include <m4/system.h> |
32 |
|
#include <m4/hash.h> |
33 |
|
|
34 |
BEGIN_C_DECLS |
BEGIN_C_DECLS |
35 |
|
|
42 |
|
|
43 |
typedef void m4_builtin_func (struct obstack *, int, struct m4_token_data **); |
typedef void m4_builtin_func (struct obstack *, int, struct m4_token_data **); |
44 |
typedef void *m4_module_func (const char *); |
typedef void *m4_module_func (const char *); |
45 |
typedef void m4_hack_symbol (); |
typedef int m4_symtab_apply_func (const char *name, m4_symbol *symbol, void *data); |
|
|
|
46 |
|
|
47 |
typedef struct { |
typedef struct { |
48 |
unsigned char *string; /* characters of the string */ |
unsigned char *string; /* characters of the string */ |
103 |
extern const m4_builtin *m4_builtin_find_by_func ( |
extern const m4_builtin *m4_builtin_find_by_func ( |
104 |
const m4_builtin *, m4_builtin_func *); |
const m4_builtin *, m4_builtin_func *); |
105 |
|
|
106 |
extern m4_symbol **m4_symtab; |
extern m4_hash *m4_symtab; |
107 |
|
|
108 |
extern void m4_symtab_init (void); |
extern void m4_symtab_init (void); |
109 |
extern m4_symbol *m4_lookup_symbol (const char *, |
extern m4_symbol *m4_lookup_symbol (const char *, m4_symbol_lookup); |
110 |
m4_symbol_lookup); |
extern int m4_symtab_apply (m4_symtab_apply_func *, void *); |
111 |
extern void m4_hack_all_symbols (m4_hack_symbol *, |
extern void m4_remove_table_reference_symbols (lt_dlhandle); |
|
const char *); |
|
|
extern void m4_remove_table_reference_symbols ( |
|
|
m4_builtin *, m4_macro *); |
|
112 |
|
|
113 |
|
|
114 |
/* Various different token types. */ |
/* Various different token types. */ |
142 |
|
|
143 |
#define M4BUILTIN(name) \ |
#define M4BUILTIN(name) \ |
144 |
static void CONC(builtin_, name) \ |
static void CONC(builtin_, name) \ |
145 |
(struct obstack *, int , m4_token_data **); |
(struct obstack *, int , m4_token_data **); |
146 |
|
|
147 |
#define M4BUILTIN_HANDLER(name) \ |
#define M4BUILTIN_HANDLER(name) \ |
148 |
static void CONC(builtin_, name) (obs, argc, argv) \ |
static void CONC(builtin_, name) (obs, argc, argv) \ |
149 |
struct obstack *obs; int argc; m4_token_data **argv; |
struct obstack *obs; int argc; m4_token_data **argv; |
150 |
|
|
151 |
#define M4INIT_HANDLER(name) \ |
#define M4INIT_HANDLER(name) \ |
152 |
void CONC(name, CONC(_LTX_, m4_init_module)) (handle, obs) \ |
void CONC(name, CONC(_LTX_, m4_init_module)) \ |
153 |
lt_dlhandle handle; struct obstack *obs; |
(lt_dlhandle handle, struct obstack *obs); \ |
154 |
|
void CONC(name, CONC(_LTX_, m4_init_module)) \ |
155 |
|
(lt_dlhandle handle, struct obstack *obs) |
156 |
|
|
157 |
#define M4FINISH_HANDLER(name) \ |
#define M4FINISH_HANDLER(name) \ |
158 |
void CONC(name, CONC(_LTX_, m4_finish_module)) (handle, obs) \ |
void CONC(name, CONC(_LTX_, m4_finish_module)) \ |
159 |
lt_dlhandle handle; struct obstack *obs; |
(lt_dlhandle handle, struct obstack *obs); \ |
160 |
|
void CONC(name, CONC(_LTX_, m4_finish_module)) \ |
161 |
|
(lt_dlhandle handle, struct obstack *obs) |
162 |
|
|
163 |
/* Error handling. */ |
/* Error handling. */ |
164 |
#define M4ERROR(Arglist) (error Arglist) |
#define M4ERROR(Arglist) (error Arglist) |
165 |
|
|
|
#define HASHMAX 509 /* default, overridden by -Hsize */ |
|
|
|
|
166 |
/* The name this program was run with. */ |
/* The name this program was run with. */ |
167 |
const char *program_name; |
const char *program_name; |
168 |
|
|
380 |
extern void m4_skip_line (void); |
extern void m4_skip_line (void); |
381 |
|
|
382 |
/* push back input */ |
/* push back input */ |
383 |
|
|
384 |
extern void m4_push_file (FILE *, const char *); |
extern void m4_push_file (FILE *, const char *); |
385 |
extern void m4_push_single (int ch); |
extern void m4_push_single (int ch); |
386 |
extern void m4_push_macro (m4_builtin_func *, lt_dlhandle, |
extern void m4_push_macro (m4_builtin_func *, lt_dlhandle, |
439 |
struct m4_dump_symbol_data |
struct m4_dump_symbol_data |
440 |
{ |
{ |
441 |
struct obstack *obs; /* obstack for table */ |
struct obstack *obs; /* obstack for table */ |
442 |
m4_symbol **base; /* base of table */ |
const char **base; /* base of table */ |
443 |
int size; /* size of table */ |
int size; /* size of table */ |
444 |
}; |
}; |
445 |
|
|
446 |
extern void m4_dump_symbol (m4_symbol *symbol, struct m4_dump_symbol_data *data); |
extern int m4_dump_symbol (const char *name, m4_symbol *symbol, void *data); |
447 |
extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_token_data **argv, boolean complain); |
extern void m4_dump_symbols (struct m4_dump_symbol_data *data, int argc, m4_token_data **argv, boolean complain); |
448 |
|
|
449 |
|
|