1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include "parser.ih"
static char argPostfixChar[] = "123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
static char argx[] = "ARG.";
void p_macro_args(register Parser *pp, String *definition, size_t argc)
{
register size_t idx;
for (idx = 0; idx < argc; idx++) /* handle all arguments */
{
char *argument = parser_parlist(pp, COLLECT_SET);
argx[3] = argPostfixChar[idx];
string_replace(definition, argx, argument);
free(argument);
if (idx < argc - 1) /* skip blanks in between */
parser_skipws(pp);
}
}
|