Use the same struct variable_t for variable and parameter entities.
[cparser] / ast_t.h
diff --git a/ast_t.h b/ast_t.h
index 258bbb8..58d6750 100644 (file)
--- a/ast_t.h
+++ b/ast_t.h
@@ -64,13 +64,10 @@ typedef enum precedence_t {
 typedef enum expression_kind_t {
        EXPR_ERROR = 1,
        EXPR_REFERENCE,
-       EXPR_REFERENCE_ENUM_VALUE,
+       EXPR_ENUM_CONSTANT,
        EXPR_LITERAL_BOOLEAN,
        EXPR_LITERAL_INTEGER,
-       EXPR_LITERAL_INTEGER_OCTAL,
-       EXPR_LITERAL_INTEGER_HEXADECIMAL,
        EXPR_LITERAL_FLOATINGPOINT,
-       EXPR_LITERAL_FLOATINGPOINT_HEXADECIMAL,
        EXPR_LITERAL_CHARACTER,
        EXPR_LITERAL_WIDE_CHARACTER,
        EXPR_LITERAL_MS_NOOP, /**< MS __noop extension */
@@ -232,10 +229,7 @@ typedef enum funcname_kind_t {
 #define EXPR_LITERAL_CASES                     \
             EXPR_LITERAL_BOOLEAN:                   \
        case EXPR_LITERAL_INTEGER:                   \
-       case EXPR_LITERAL_INTEGER_OCTAL:             \
-       case EXPR_LITERAL_INTEGER_HEXADECIMAL:       \
        case EXPR_LITERAL_FLOATINGPOINT:             \
-       case EXPR_LITERAL_FLOATINGPOINT_HEXADECIMAL: \
        case EXPR_LITERAL_CHARACTER:                 \
        case EXPR_LITERAL_WIDE_CHARACTER:            \
        case EXPR_LITERAL_MS_NOOP
@@ -535,6 +529,7 @@ struct declaration_statement_t {
 
 struct if_statement_t {
        statement_base_t  base;
+       scope_t           scope;
        expression_t     *condition;
        statement_t      *true_statement;
        statement_t      *false_statement;
@@ -542,6 +537,7 @@ struct if_statement_t {
 
 struct switch_statement_t {
        statement_base_t        base;
+       scope_t                 scope;
        expression_t           *expression;
        statement_t            *body;
        case_label_statement_t *first_case, *last_case; /**< List of all cases, including default. */
@@ -586,23 +582,25 @@ struct expression_statement_t {
 
 struct while_statement_t {
        statement_base_t  base;
+       scope_t           scope;
        expression_t     *condition;
        statement_t      *body;
 };
 
 struct do_while_statement_t {
        statement_base_t  base;
+       scope_t           scope;
        expression_t     *condition;
        statement_t      *body;
 };
 
 struct for_statement_t {
        statement_base_t  base;
+       scope_t           scope;
        expression_t     *initialisation;
        expression_t     *condition;
        expression_t     *step;
        statement_t      *body;
-       scope_t           scope;
        bool              condition_reachable:1;
        bool              step_reachable:1;
 };