343 |
if (i != 1) |
if (i != 1) |
344 |
m4_trace_format (", "); |
m4_trace_format (", "); |
345 |
|
|
346 |
switch (VALUE_TYPE (argv[i])) |
if (m4_is_symbol_value_text (argv[i])) |
347 |
{ |
{ |
|
case M4_SYMBOL_TEXT: |
|
348 |
m4_trace_format ("%l%S%r", M4ARG (i)); |
m4_trace_format ("%l%S%r", M4ARG (i)); |
349 |
break; |
} |
350 |
|
else if (m4_is_symbol_value_func (argv[i])) |
351 |
case M4_SYMBOL_FUNC: |
{ |
352 |
bp = m4_builtin_find_by_func (NULL, VALUE_FUNC (argv[i])); |
bp = m4_builtin_find_by_func (NULL, |
353 |
|
m4_get_symbol_value_func(argv[i])); |
354 |
if (bp == NULL) |
if (bp == NULL) |
355 |
{ |
{ |
356 |
M4ERROR ((warning_status, 0, "\ |
M4ERROR ((warning_status, 0, "\ |
358 |
abort (); |
abort (); |
359 |
} |
} |
360 |
m4_trace_format ("<%s>", bp->name); |
m4_trace_format ("<%s>", bp->name); |
361 |
break; |
} |
362 |
|
else |
363 |
case M4_SYMBOL_VOID: |
{ |
364 |
M4ERROR ((warning_status, 0, |
M4ERROR ((warning_status, 0, |
365 |
"INTERNAL ERROR: Bad token data type (m4_trace_pre ())")); |
"INTERNAL ERROR: Bad token data type (m4_trace_pre ())")); |
366 |
abort (); |
abort (); |
367 |
} |
} |
|
|
|
368 |
} |
} |
369 |
m4_trace_format (")"); |
m4_trace_format (")"); |
370 |
} |
} |
379 |
/* Format the final part of a trace line and print it all. Used from |
/* Format the final part of a trace line and print it all. Used from |
380 |
expand_macro (). */ |
expand_macro (). */ |
381 |
void |
void |
382 |
m4_trace_post (const char *name, int id, int argc, m4_symbol_value **argv, |
m4_trace_post (const char *name, int id, |
383 |
const char *expanded) |
int argc, m4_symbol_value **argv, const char *expanded) |
384 |
{ |
{ |
385 |
if (debug_level & M4_DEBUG_TRACE_CALL) |
if (debug_level & M4_DEBUG_TRACE_CALL) |
386 |
{ |
{ |