473 |
|
|
474 |
if (bp) |
if (bp) |
475 |
{ |
{ |
476 |
m4_token token; |
m4_token *token = XCALLOC (m4_token, 1); |
|
int flags = 0; |
|
477 |
|
|
478 |
if (bp->groks_macro_args) |
if (bp->groks_macro_args) |
479 |
BIT_SET (flags, TOKEN_MACRO_ARGS_BIT); |
BIT_SET (TOKEN_FLAGS (token), TOKEN_MACRO_ARGS_BIT); |
480 |
if (bp->blind_if_no_args) |
if (bp->blind_if_no_args) |
481 |
BIT_SET (flags, TOKEN_BLIND_ARGS_BIT); |
BIT_SET (TOKEN_FLAGS (token), TOKEN_BLIND_ARGS_BIT); |
482 |
|
|
483 |
bzero (&token, sizeof (m4_token)); |
TOKEN_TYPE (token) = M4_TOKEN_FUNC; |
484 |
TOKEN_TYPE (&token) = M4_TOKEN_FUNC; |
TOKEN_FUNC (token) = bp->func; |
485 |
TOKEN_FUNC (&token) = bp->func; |
TOKEN_HANDLE (token) = handle; |
486 |
TOKEN_HANDLE (&token) = handle; |
TOKEN_MIN_ARGS (token) = bp->min_args; |
487 |
TOKEN_FLAGS (&token) = flags; |
TOKEN_MAX_ARGS (token) = bp->max_args; |
|
TOKEN_MIN_ARGS (&token) = bp->min_args; |
|
|
TOKEN_MAX_ARGS (&token) = bp->max_args; |
|
488 |
|
|
489 |
m4_builtin_pushdef (context, string[0], &token); |
m4_symbol_pushdef (M4SYMTAB, string[0], token); |
490 |
} |
} |
491 |
else |
else |
492 |
M4ERROR ((warning_status, 0, |
M4ERROR ((warning_status, 0, |
655 |
|
|
656 |
/* Enter a macro having an expansion text as a definition. */ |
/* Enter a macro having an expansion text as a definition. */ |
657 |
{ |
{ |
658 |
m4_token token; |
m4_token *token = XCALLOC (m4_token, 1); |
659 |
lt_dlhandle handle = 0; |
lt_dlhandle handle = 0; |
660 |
|
|
661 |
if (number[2] > 0) |
if (number[2] > 0) |
663 |
if (strcmp (m4_get_module_name (handle), string[2]) == 0) |
if (strcmp (m4_get_module_name (handle), string[2]) == 0) |
664 |
break; |
break; |
665 |
|
|
666 |
bzero (&token, sizeof (m4_token)); |
TOKEN_TYPE (token) = M4_TOKEN_TEXT; |
667 |
TOKEN_TYPE (&token) = M4_TOKEN_TEXT; |
TOKEN_TEXT (token) = xstrdup (string[1]); |
668 |
TOKEN_TEXT (&token) = string[1]; |
TOKEN_HANDLE (token) = handle; |
669 |
TOKEN_HANDLE (&token) = handle; |
TOKEN_MAX_ARGS (token) = -1; |
|
TOKEN_MAX_ARGS (&token) = -1; |
|
670 |
|
|
671 |
m4_macro_pushdef (context, string[0], &token); |
m4_symbol_pushdef (M4SYMTAB, string[0], token); |
672 |
} |
} |
673 |
break; |
break; |
674 |
|
|