+/*
+ * This file is part of cparser.
+ * Copyright (C) 2012 Matthias Braun <matze@braunis.de>
+ */
#include <config.h>
#include <assert.h>
= size / sizeof(new_definition->parameters[0]);
new_definition->parameters = obstack_finish(&pp_obstack);
for (size_t i = 0; i < new_definition->n_parameters; ++i) {
- pp_definition_t *param = &new_definition->parameters[i];
- symbol_t *symbol = param->symbol;
- pp_definition_t *previous = symbol->pp_definition;
+ pp_definition_t *const param = &new_definition->parameters[i];
+ symbol_t *const param_sym = param->symbol;
+ pp_definition_t *const previous = param_sym->pp_definition;
if (previous != NULL
&& previous->function_definition == new_definition) {
- errorf(¶m->pos, "duplicate macro parameter '%Y'", symbol);
+ errorf(¶m->pos, "duplicate macro parameter '%Y'", param_sym);
param->symbol = sym_anonymous;
continue;
}
param->parent_expansion = previous;
param->function_definition = new_definition;
- symbol->pp_definition = param;
+ param_sym->pp_definition = param;
}
} else {
next_input_token();
bool next_must_be_param = false;
while (!info.at_line_begin) {
if (pp_token.kind == T_IDENTIFIER) {
- const symbol_t *symbol = pp_token.base.symbol;
- pp_definition_t *definition = symbol->pp_definition;
+ pp_definition_t *const definition = pp_token.base.symbol->pp_definition;
if (definition != NULL
&& definition->function_definition == new_definition) {
pp_token.kind = T_MACRO_PARAMETER;
if (new_definition->has_parameters) {
for (size_t i = 0; i < new_definition->n_parameters; ++i) {
- pp_definition_t *param = &new_definition->parameters[i];
- symbol_t *symbol = param->symbol;
- if (symbol == sym_anonymous)
+ pp_definition_t *const param = &new_definition->parameters[i];
+ symbol_t *const param_sym = param->symbol;
+ if (param_sym == sym_anonymous)
continue;
- assert(symbol->pp_definition == param);
+ assert(param_sym->pp_definition == param);
assert(param->function_definition == new_definition);
- symbol->pp_definition = param->parent_expansion;
- param->parent_expansion = NULL;
+ param_sym->pp_definition = param->parent_expansion;
+ param->parent_expansion = NULL;
}
}
return NULL;
}
- /* check wether we have a "... or <... headername */
+ /* check whether we have a "... or <... headername */
position_t pos = input.pos;
switch (input.c) {
{
/* just take the true case in the hope to avoid further errors */
condition = true;
} else {
- /* evaluate wether we are in true or false case */
+ /* evaluate whether we are in true or false case */
condition = (bool)pp_token.base.symbol->pp_definition == is_ifdef;
eat_token(T_IDENTIFIER);
/* skip : */
if (*begin == ':')
++begin;
- } while(*c != '\0');
+ } while (*c != '\0');
}
}