From: Ben Pfaff Date: Sun, 4 Jul 2021 20:23:20 +0000 (-0700) Subject: Drop macro set from most function arguments. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f63f20bb9bc1917af2a1cf9817fb6c6e1954a78;p=pspp Drop macro set from most function arguments. --- diff --git a/src/language/lexer/macro.c b/src/language/lexer/macro.c index ce6ee62046..ea3a704248 100644 --- a/src/language/lexer/macro.c +++ b/src/language/lexer/macro.c @@ -891,7 +891,6 @@ struct parse_macro_function_ctx const struct macro_token *input; size_t n_input; int nesting_countdown; - const struct macro_set *macros; const struct macro_expander *me; const struct macro_expansion_stack *stack; struct string_map *vars; @@ -900,7 +899,6 @@ struct parse_macro_function_ctx static void macro_expand (const struct macro_tokens *, int nesting_countdown, - const struct macro_set *, const struct macro_expander *, struct string_map *vars, const struct macro_expansion_stack *stack, bool *expand, bool *break_, @@ -978,7 +976,6 @@ parse_function_arg (struct parse_macro_function_ctx *ctx, .input = &ctx->input[i], .n_input = ctx->n_input - i, .nesting_countdown = ctx->nesting_countdown, - .macros = ctx->macros, .me = ctx->me, .stack = ctx->stack, .vars = ctx->vars, @@ -1255,8 +1252,7 @@ expand_macro_function (struct parse_macro_function_ctx *ctx, macro_tokens_from_string__ (&mts, ss_cstr (args.strings[0]), ctx->me->segmenter_mode, ctx->stack); struct macro_tokens exp = { .n = 0 }; - macro_expand (&mts, ctx->nesting_countdown - 1, - ctx->macros, ctx->me, ctx->vars, + macro_expand (&mts, ctx->nesting_countdown - 1, ctx->me, ctx->vars, &(struct macro_expansion_stack) { .name = "!EVAL", .next = ctx->stack, @@ -1282,7 +1278,6 @@ expand_macro_function (struct parse_macro_function_ctx *ctx, struct expr_context { int nesting_countdown; - const struct macro_set *macros; const struct macro_expander *me; const struct macro_expansion_stack *stack; struct string_map *vars; @@ -1329,7 +1324,6 @@ macro_evaluate_literal (const struct expr_context *ctx, .input = p, .n_input = end - p, .nesting_countdown = ctx->nesting_countdown, - .macros = ctx->macros, .me = ctx->me, .stack = ctx->stack, .vars = ctx->vars, @@ -1528,14 +1522,12 @@ macro_evaluate_or (const struct expr_context *ctx, static char * macro_evaluate_expression (const struct macro_token **tokens, size_t n_tokens, int nesting_countdown, - const struct macro_set *macros, const struct macro_expander *me, const struct macro_expansion_stack *stack, struct string_map *vars, bool *expand) { const struct expr_context ctx = { .nesting_countdown = nesting_countdown, - .macros = macros, .me = me, .stack = stack, .vars = vars, @@ -1547,14 +1539,13 @@ macro_evaluate_expression (const struct macro_token **tokens, size_t n_tokens, static bool macro_evaluate_number (const struct macro_token **tokens, size_t n_tokens, int nesting_countdown, - const struct macro_set *macros, const struct macro_expander *me, const struct macro_expansion_stack *stack, struct string_map *vars, bool *expand, double *number) { char *s = macro_evaluate_expression (tokens, n_tokens, nesting_countdown, - macros, me, stack, vars, expand); + me, stack, vars, expand); if (!s) return false; @@ -1601,8 +1592,7 @@ find_ifend_clause (const struct macro_token *p, const struct macro_token *end) static size_t macro_expand_if (const struct macro_token *tokens, size_t n_tokens, - int nesting_countdown, const struct macro_set *macros, - const struct macro_expander *me, + int nesting_countdown, const struct macro_expander *me, const struct macro_expansion_stack *stack, struct string_map *vars, bool *expand, bool *break_, struct macro_tokens *exp) @@ -1614,10 +1604,8 @@ macro_expand_if (const struct macro_token *tokens, size_t n_tokens, return 0; p++; - char *result = macro_evaluate_expression (&p, end - p, - nesting_countdown, - macros, me, - stack, vars, expand); + char *result = macro_evaluate_expression (&p, end - p, nesting_countdown, + me, stack, vars, expand); if (!result) return 0; bool b = strcmp (result, "0"); @@ -1684,7 +1672,7 @@ macro_expand_if (const struct macro_token *tokens, size_t n_tokens, .mts = CONST_CAST (struct macro_token *, start), .n = n, }; - macro_expand (&mts, nesting_countdown, macros, me, vars, + macro_expand (&mts, nesting_countdown, me, vars, &(struct macro_expansion_stack) { .name = "!IF", .next = stack, @@ -1696,8 +1684,7 @@ macro_expand_if (const struct macro_token *tokens, size_t n_tokens, static size_t macro_parse_let (const struct macro_token *tokens, size_t n_tokens, - int nesting_countdown, const struct macro_set *macros, - const struct macro_expander *me, + int nesting_countdown, const struct macro_expander *me, const struct macro_expansion_stack *stack, struct string_map *vars, bool *expand) { @@ -1735,7 +1722,7 @@ macro_parse_let (const struct macro_token *tokens, size_t n_tokens, p++; char *value = macro_evaluate_expression (&p, end - p, nesting_countdown, - macros, me, stack, vars, expand); + me, stack, vars, expand); if (!value) return 0; @@ -1768,8 +1755,7 @@ find_doend (const struct macro_expansion_stack *stack, static size_t macro_expand_do (const struct macro_token *tokens, size_t n_tokens, - int nesting_countdown, const struct macro_set *macros, - const struct macro_expander *me, + int nesting_countdown, const struct macro_expander *me, const struct macro_expansion_stack *stack, struct string_map *vars, bool *expand, struct macro_tokens *exp) @@ -1806,7 +1792,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, { p++; char *list = macro_evaluate_expression (&p, end - p, nesting_countdown, - macros, me, &next_stack, vars, + me, &next_stack, vars, expand); if (!list) return 0; @@ -1842,7 +1828,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, ss_xstrdup (items.mts[i].representation)); bool break_ = false; - macro_expand (&inner, nesting_countdown, macros, + macro_expand (&inner, nesting_countdown, me, vars, &next_stack, expand, &break_, exp); if (break_) break; @@ -1854,8 +1840,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, p++; double first; if (!macro_evaluate_number (&p, end - p, nesting_countdown, - macros, me, &next_stack, - vars, expand, &first)) + me, &next_stack, vars, expand, &first)) return 0; if (p >= end || p->token.type != T_MACRO_ID @@ -1869,8 +1854,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, double last; if (!macro_evaluate_number (&p, end - p, nesting_countdown, - macros, me, &next_stack, - vars, expand, &last)) + me, &next_stack, vars, expand, &last)) return 0; double by = 1.0; @@ -1879,8 +1863,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, { p++; if (!macro_evaluate_number (&p, end - p, nesting_countdown, - macros, me, &next_stack, - vars, expand, &by)) + me, &next_stack, vars, expand, &by)) return 0; if (by == 0.0) @@ -1922,8 +1905,7 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, bool break_ = false; macro_expand (&inner, nesting_countdown, - macros, me, vars, &next_stack, expand, &break_, - exp); + me, vars, &next_stack, expand, &break_, exp); if (break_) break; } @@ -1941,7 +1923,6 @@ macro_expand_do (const struct macro_token *tokens, size_t n_tokens, static void macro_expand (const struct macro_tokens *mts, int nesting_countdown, - const struct macro_set *macros, const struct macro_expander *me, struct string_map *vars, const struct macro_expansion_stack *stack, bool *expand, bool *break_, struct macro_tokens *exp) @@ -1979,8 +1960,7 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, .args = NULL, .segmenter_mode = me->segmenter_mode, }; - macro_expand (arg, nesting_countdown, - macros, &subme, NULL, + macro_expand (arg, nesting_countdown, &subme, NULL, &(struct macro_expansion_stack) { .name = param->name, .next = stack, @@ -2009,8 +1989,7 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, .args = NULL, .segmenter_mode = me->segmenter_mode, }; - macro_expand (arg, nesting_countdown, - macros, &subme, NULL, + macro_expand (arg, nesting_countdown, &subme, NULL, &(struct macro_expansion_stack) { .name = "!*", .next = stack, @@ -2025,8 +2004,7 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, } size_t n = macro_expand_if (&mts->mts[i], mts->n - i, - nesting_countdown, - macros, me, stack, + nesting_countdown, me, stack, vars, expand, break_, exp); if (n > 0) { @@ -2050,7 +2028,7 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, if (*expand) { struct macro_call *submc; - int retval = macro_call_create (macros, token, &submc); + int retval = macro_call_create (me->macros, token, &submc); for (size_t j = 1; !retval; j++) { const struct macro_token endcmd @@ -2068,8 +2046,7 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, .segmenter_mode = me->segmenter_mode, }; macro_expand (&submc->macro->body, nesting_countdown - 1, - macros, &subme, NULL, - &(struct macro_expansion_stack) { + &subme, NULL, &(struct macro_expansion_stack) { .name = submc->macro->name, .file_name = submc->macro->file_name, .first_line = submc->macro->first_line, @@ -2104,7 +2081,6 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, .input = &mts->mts[i], .n_input = mts->n - i, .nesting_countdown = nesting_countdown, - .macros = macros, .me = me, .stack = stack, .vars = vars, @@ -2125,16 +2101,15 @@ macro_expand (const struct macro_tokens *mts, int nesting_countdown, size_t n = macro_parse_let (&mts->mts[i], mts->n - i, nesting_countdown, - macros, me, stack, vars, expand); + me, stack, vars, expand); if (n > 0) { i += n - 1; continue; } - n = macro_expand_do (&mts->mts[i], mts->n - i, - nesting_countdown, macros, me, stack, - vars, expand, exp); + n = macro_expand_do (&mts->mts[i], mts->n - i, nesting_countdown, me, + stack, vars, expand, exp); if (n > 0) { i += n - 1; @@ -2173,6 +2148,6 @@ macro_call_expand (struct macro_call *mc, enum segmenter_mode segmenter_mode, .last_line = mc->macro->last_line, }; macro_expand (&mc->macro->body, settings_get_mnest (), - mc->macros, &me, NULL, &stack, &expand, NULL, exp); + &me, NULL, &stack, &expand, NULL, exp); }