186 |
{ |
{ |
187 |
if (m4_bad_argc (argv[0], argc, 2, 2)) |
if (m4_bad_argc (argv[0], argc, 2, 2)) |
188 |
return; |
return; |
189 |
m4_lookup_symbol (M4ARG (1), M4_SYMBOL_DELETE); |
|
190 |
|
if (!m4_symbol_lookup (M4ARG (1))) |
191 |
|
M4WARN ((warning_status, 0, |
192 |
|
_("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1))); |
193 |
|
else |
194 |
|
m4_symbol_delete (M4ARG (1)); |
195 |
} |
} |
196 |
|
|
197 |
M4BUILTIN_HANDLER (pushdef) |
M4BUILTIN_HANDLER (pushdef) |
203 |
{ |
{ |
204 |
if (m4_bad_argc (argv[0], argc, 2, 2)) |
if (m4_bad_argc (argv[0], argc, 2, 2)) |
205 |
return; |
return; |
206 |
m4_lookup_symbol (M4ARG (1), M4_SYMBOL_POPDEF); |
if (!m4_symbol_lookup (M4ARG (1))) |
207 |
|
M4WARN ((warning_status, 0, |
208 |
|
_("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1))); |
209 |
|
else |
210 |
|
m4_symbol_popdef (M4ARG (1)); |
211 |
} |
} |
212 |
|
|
213 |
|
|
291 |
m4_symbol *symbol = m4_symbol_lookup (data.base[0]); |
m4_symbol *symbol = m4_symbol_lookup (data.base[0]); |
292 |
|
|
293 |
fprintf (stderr, "%s:\t", data.base[0]); |
fprintf (stderr, "%s:\t", data.base[0]); |
294 |
|
assert (M4_SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT |
295 |
|
|| M4_SYMBOL_TYPE (symbol) == M4_TOKEN_FUNC |
296 |
|
|| M4_SYMBOL_TYPE (symbol) == M4_TOKEN_VOID); |
297 |
switch (M4_SYMBOL_TYPE (symbol)) |
switch (M4_SYMBOL_TYPE (symbol)) |
298 |
{ |
{ |
299 |
case M4_TOKEN_TEXT: |
case M4_TOKEN_TEXT: |
306 |
|
|
307 |
case M4_TOKEN_FUNC: |
case M4_TOKEN_FUNC: |
308 |
bp = m4_builtin_find_by_func (NULL, M4_SYMBOL_FUNC (symbol)); |
bp = m4_builtin_find_by_func (NULL, M4_SYMBOL_FUNC (symbol)); |
309 |
if (bp == NULL) |
assert (bp); |
|
{ |
|
|
M4ERROR ((warning_status, 0, |
|
|
_("Undefined name `%s'"), data.base[0])); |
|
|
abort (); |
|
|
} |
|
310 |
fprintf (stderr, "<%s>\n", bp->name); |
fprintf (stderr, "<%s>\n", bp->name); |
311 |
break; |
break; |
312 |
|
|
313 |
default: |
case M4_TOKEN_VOID: |
314 |
M4ERROR ((warning_status, 0, _("\ |
assert (!"VOID token in m4_dumpdef"); |
|
INTERNAL ERROR: Bad token data type in m4_dumpdef ()"))); |
|
|
abort (); |
|
315 |
break; |
break; |
316 |
} |
} |
317 |
} |
} |
329 |
|
|
330 |
symbol = m4_symbol_lookup (M4ARG (1)); |
symbol = m4_symbol_lookup (M4ARG (1)); |
331 |
if (symbol == NULL) |
if (symbol == NULL) |
332 |
return; |
{ |
333 |
|
M4WARN ((warning_status, 0, |
334 |
|
_("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1))); |
335 |
|
return; |
336 |
|
} |
337 |
|
|
338 |
switch (M4_SYMBOL_TYPE (symbol)) |
switch (M4_SYMBOL_TYPE (symbol)) |
339 |
{ |
{ |
340 |
case M4_TOKEN_TEXT: |
case M4_TOKEN_TEXT: |
341 |
m4_shipout_string(obs, M4_SYMBOL_TEXT (symbol), 0, TRUE); |
m4_shipout_string(obs, M4_SYMBOL_TEXT (symbol), 0, TRUE); |
342 |
break; |
return; |
343 |
|
|
344 |
case M4_TOKEN_FUNC: |
case M4_TOKEN_FUNC: |
345 |
m4_push_macro (M4_SYMBOL_FUNC (symbol), M4_SYMBOL_HANDLE (symbol), |
m4_push_macro (M4_SYMBOL_FUNC (symbol), M4_SYMBOL_HANDLE (symbol), |
346 |
M4_SYMBOL_TRACED (symbol)); |
M4_SYMBOL_TRACED (symbol)); |
347 |
break; |
return; |
348 |
|
|
349 |
case M4_TOKEN_VOID: |
case M4_TOKEN_VOID: |
350 |
break; |
assert (!"VOID token in m4_dumpdef"); |
351 |
|
return; |
|
default: |
|
|
M4ERROR ((warning_status, 0, |
|
|
_("INTERNAL ERROR: Bad symbol type in m4_defn ()"))); |
|
|
abort (); |
|
352 |
} |
} |
353 |
|
|
354 |
|
assert (!"Bad token data type in m4_defn"); |
355 |
} |
} |
356 |
|
|
357 |
|
|
635 |
else |
else |
636 |
for (i = 1; i < argc; i++) |
for (i = 1; i < argc; i++) |
637 |
{ |
{ |
638 |
const char *name = M4_TOKEN_DATA_TEXT (argv[i]); |
const char *name = M4ARG (i); |
639 |
m4_symbol *symbol = m4_symbol_lookup (name); |
m4_symbol *symbol = m4_symbol_lookup (name); |
640 |
if (symbol != NULL) |
if (symbol != NULL) |
641 |
set_trace (name, symbol, (char *) obs); |
set_trace (name, symbol, (char *) obs); |
642 |
else |
else |
643 |
M4ERROR ((warning_status, 0, _("Undefined name %s"), name)); |
M4WARN ((warning_status, 0, |
644 |
|
_("Warning: %s: undefined name: %s"), M4ARG (0), name)); |
645 |
} |
} |
646 |
} |
} |
647 |
|
|
655 |
else |
else |
656 |
for (i = 1; i < argc; i++) |
for (i = 1; i < argc; i++) |
657 |
{ |
{ |
658 |
const char *name = M4_TOKEN_DATA_TEXT (argv[i]); |
const char *name = M4ARG (i); |
659 |
m4_symbol *symbol = m4_symbol_lookup (name); |
m4_symbol *symbol = m4_symbol_lookup (name); |
660 |
if (symbol != NULL) |
if (symbol != NULL) |
661 |
set_trace (name, symbol, NULL); |
set_trace (name, symbol, NULL); |
662 |
else |
else |
663 |
M4ERROR ((warning_status, 0, _("Undefined name %s"), name)); |
M4WARN ((warning_status, 0, |
664 |
|
_("Warning: %s: undefined name: %s"), M4ARG (0), name)); |
665 |
} |
} |
666 |
} |
} |
667 |
|
|