Home | History | Annotate | Download | only in nasm

Lines Matching refs:defining

382  * The multi-line macro we are currently defining, or the %rep
385 static MMacro *defining;
959 if (defining)
1873 * Determine if we should warn on defining a single-line macro of
2390 * If we're defining a macro or reading a %rep block, we should
2396 if (defining && i != PP_MACRO && i != PP_IMACRO &&
2398 (defining->name || (i != PP_ENDREP && i != PP_REP)))
2403 if (defining) {
2413 if (!defining->name) {
2978 if (defining)
2980 "`%%%smacro': already defining a macro",
2992 defining = nasm_malloc(sizeof(MMacro));
2993 defining->name = nasm_strdup(tline->text);
2994 defining->casesense = (i == PP_MACRO);
2995 defining->plus = FALSE;
2996 defining->nolist = FALSE;
2997 defining->in_progress = FALSE;
2998 defining->rep_nest = NULL;
3006 defining->nparam_min = defining->nparam_max = 0;
3011 defining->nparam_min = defining->nparam_max =
3023 defining->nparam_max = INT_MAX;
3031 defining->nparam_max = yasm_intnum_get_int(intn);
3037 if (defining->nparam_min > defining->nparam_max)
3045 defining->plus = TRUE;
3051 defining->nolist = TRUE;
3053 mmac = mmacros[hash(defining->name)];
3056 if (!strcmp(mmac->name, defining->name) &&
3057 (mmac->nparam_min <= defining->nparam_max
3058 || defining->plus)
3059 && (defining->nparam_min <= mmac->nparam_max
3064 defining->name);
3074 defining->dlist = tline->next;
3076 count_mmac_params(defining->dlist, &defining->ndefs,
3077 &defining->defaults);
3081 defining->dlist = NULL;
3082 defining->defaults = NULL;
3084 defining->expansion = NULL;
3090 if (!defining)
3092 error(ERR_NONFATAL, "`%s': not defining a macro",
3096 k = hash(defining->name);
3097 defining->next = mmacros[k];
3098 mmacros[k] = defining;
3099 defining = NULL;
3203 tmp_defining = defining;
3204 defining = nasm_malloc(sizeof(MMacro));
3205 defining->name = NULL; /* flags this macro as a %rep block */
3206 defining->casesense = 0;
3207 defining->plus = FALSE;
3208 defining->nolist = nolist;
3209 defining->in_progress = i;
3210 defining->nparam_min = defining->nparam_max = 0;
3211 defining->defaults = NULL;
3212 defining->dlist = NULL;
3213 defining->expansion = NULL;
3214 defining->next_active = istk->mstk;
3215 defining->rep_nest = tmp_defining;
3219 if (!defining || defining->name)
3238 l->finishes = defining;
3242 istk->mstk = defining;
3244 list->uplevel(defining->nolist ? LIST_MACRO_NOLIST : LIST_MACRO);
3245 tmp_defining = defining;
3246 defining = defining->rep_nest;
4849 defining = NULL;
4973 if (defining)
4975 if (defining->name)
4976 error(ERR_PANIC, "defining with name in expansion");
5069 if (!defining && !(istk->conds && !emitting(istk->conds->state)))
5079 else if (defining)
5082 * We're defining a multi-line macro. We emit nothing
5087 l->next = defining->expansion;
5090 defining->expansion = l;
5149 if (defining)
5151 error(ERR_NONFATAL, "end of file while still defining macro `%s'",
5152 defining->name);
5153 free_mmacro(defining);