diff --git a/src/code.c b/src/code.c index 65e5cad..45be7b1 100644 --- a/src/code.c +++ b/src/code.c @@ -430,18 +430,18 @@ int code_context_set_identifier(Code * code, char const * identifier) "NULL", "assignment", "declaration", + "declaration begin", "declaration end", "declaration or function", "declaration parameters", - "declaration start", "enumeration constant", "enumeration name", "enumeration value", "function", + "function begin", "function call", "function end", "function parameters", - "function start", "label", "parameters", "parameters type", diff --git a/src/code.h b/src/code.h index 6b542b1..c562261 100644 --- a/src/code.h +++ b/src/code.h @@ -34,18 +34,18 @@ typedef enum _CodeContext CODE_CONTEXT_NULL = 0, CODE_CONTEXT_ASSIGNMENT, CODE_CONTEXT_DECLARATION, + CODE_CONTEXT_DECLARATION_BEGIN, CODE_CONTEXT_DECLARATION_END, CODE_CONTEXT_DECLARATION_OR_FUNCTION, CODE_CONTEXT_DECLARATION_PARAMETERS, - CODE_CONTEXT_DECLARATION_START, CODE_CONTEXT_ENUMERATION_CONSTANT, CODE_CONTEXT_ENUMERATION_NAME, CODE_CONTEXT_ENUMERATION_VALUE, CODE_CONTEXT_FUNCTION, + CODE_CONTEXT_FUNCTION_BEGIN, CODE_CONTEXT_FUNCTION_CALL, CODE_CONTEXT_FUNCTION_END, CODE_CONTEXT_FUNCTION_PARAMETERS, - CODE_CONTEXT_FUNCTION_START, CODE_CONTEXT_LABEL, CODE_CONTEXT_PARAMETERS, CODE_CONTEXT_PARAMETERS_TYPE, diff --git a/src/parser.c b/src/parser.c index b4dec18..99e0106 100644 --- a/src/parser.c +++ b/src/parser.c @@ -310,7 +310,7 @@ static int _function_definition(C99 * c99) int ret = 0; DEBUG_GRAMMAR(); - code_context_set(c99->code, CODE_CONTEXT_FUNCTION_START); + code_context_set(c99->code, CODE_CONTEXT_FUNCTION_BEGIN); ret |= _compound_statement(c99); code_context_set(c99->code, CODE_CONTEXT_FUNCTION_END); return ret; @@ -364,10 +364,10 @@ static int _declaration_specifiers(C99 * c99) * function-specifier [ declaration-specifiers ] */ { int ret = 0; - int looped = 0; + int looped; DEBUG_GRAMMAR(); - for(;; looped = 1) + for(looped = 0;; looped = 1) if(_parse_in_set(c99, c99set_storage_class_specifier)) ret |= _storage_class_specifier(c99); else if(_parse_in_set(c99, c99set_type_specifier))