72 |
|
|
73 |
m4_symbol * |
m4_symbol * |
74 |
m4_builtin_pushdef (const char *name, lt_dlhandle handle, |
m4_builtin_pushdef (const char *name, lt_dlhandle handle, |
75 |
m4_builtin_func *func, int flags) |
m4_builtin_func *func, int flags, int min_args, |
76 |
|
int max_args) |
77 |
{ |
{ |
78 |
m4_symbol *symbol; |
m4_symbol *symbol; |
79 |
|
|
84 |
symbol = m4_symbol_pushdef (name); |
symbol = m4_symbol_pushdef (name); |
85 |
|
|
86 |
if (symbol) |
if (symbol) |
87 |
m4_symbol_builtin (symbol, handle, func, flags); |
m4_symbol_builtin (symbol, handle, func, flags, min_args, max_args); |
88 |
|
|
89 |
return symbol; |
return symbol; |
90 |
} |
} |
91 |
|
|
92 |
m4_symbol * |
m4_symbol * |
93 |
m4_builtin_define (const char *name, lt_dlhandle handle, |
m4_builtin_define (const char *name, lt_dlhandle handle, |
94 |
m4_builtin_func *func, int flags) |
m4_builtin_func *func, int flags, |
95 |
|
int min_args, int max_args) |
96 |
{ |
{ |
97 |
m4_symbol *symbol; |
m4_symbol *symbol; |
98 |
|
|
103 |
symbol = m4_symbol_define (name); |
symbol = m4_symbol_define (name); |
104 |
|
|
105 |
if (symbol) |
if (symbol) |
106 |
m4_symbol_builtin (symbol, handle, func, flags); |
m4_symbol_builtin (symbol, handle, func, flags, min_args, max_args); |
107 |
|
|
108 |
return symbol; |
return symbol; |
109 |
} |
} |
135 |
if (bp->groks_macro_args) BIT_SET (flags, TOKEN_MACRO_ARGS_BIT); |
if (bp->groks_macro_args) BIT_SET (flags, TOKEN_MACRO_ARGS_BIT); |
136 |
if (bp->blind_if_no_args) BIT_SET (flags, TOKEN_BLIND_ARGS_BIT); |
if (bp->blind_if_no_args) BIT_SET (flags, TOKEN_BLIND_ARGS_BIT); |
137 |
|
|
138 |
m4_builtin_pushdef (key, handle, bp->func, flags); |
m4_builtin_pushdef (key, handle, bp->func, flags, |
139 |
|
bp->min_args, bp->max_args); |
140 |
|
|
141 |
if (prefix_all_builtins) |
if (prefix_all_builtins) |
142 |
xfree (key); |
xfree (key); |
145 |
|
|
146 |
m4_symbol * |
m4_symbol * |
147 |
m4_macro_pushdef (const char *name, lt_dlhandle handle, const char *text, |
m4_macro_pushdef (const char *name, lt_dlhandle handle, const char *text, |
148 |
int flags) |
int flags, int min_args, int max_args) |
149 |
{ |
{ |
150 |
m4_symbol *symbol; |
m4_symbol *symbol; |
151 |
|
|
155 |
symbol = m4_symbol_pushdef (name); |
symbol = m4_symbol_pushdef (name); |
156 |
|
|
157 |
if (symbol) |
if (symbol) |
158 |
m4_symbol_macro (symbol, handle, text, flags); |
m4_symbol_macro (symbol, handle, text, flags, min_args, max_args); |
159 |
|
|
160 |
return symbol; |
return symbol; |
161 |
} |
} |
162 |
|
|
163 |
m4_symbol * |
m4_symbol * |
164 |
m4_macro_define (const char *name, lt_dlhandle handle, const char *text, |
m4_macro_define (const char *name, lt_dlhandle handle, const char *text, |
165 |
int flags) |
int flags, int min_args, int max_args) |
166 |
{ |
{ |
167 |
m4_symbol *symbol; |
m4_symbol *symbol; |
168 |
|
|
172 |
symbol = m4_symbol_define (name); |
symbol = m4_symbol_define (name); |
173 |
|
|
174 |
if (symbol) |
if (symbol) |
175 |
m4_symbol_macro (symbol, handle, text, flags); |
m4_symbol_macro (symbol, handle, text, flags, min_args, max_args); |
176 |
|
|
177 |
return symbol; |
return symbol; |
178 |
} |
} |
184 |
const m4_macro *mp; |
const m4_macro *mp; |
185 |
|
|
186 |
for (mp = table; mp->name != NULL; mp++) |
for (mp = table; mp->name != NULL; mp++) |
187 |
m4_macro_pushdef (mp->name, handle, mp->value, 0); |
m4_macro_pushdef (mp->name, handle, mp->value, 0, 0, -1); |
188 |
} |
} |