X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ast_t.h;h=b3b8bb9e3db8c981d1b3f9bc9eaa28511868a2cd;hb=59bd66d97b2dc1a2a0923dec84f1ddc838437986;hp=aa556a1185d1756f6ee4dab3cb15783759c7acdc;hpb=0cea06d0229bb7fc17ecf428f6d51e12ed41c88b;p=cparser diff --git a/ast_t.h b/ast_t.h index aa556a1..b3b8bb9 100644 --- a/ast_t.h +++ b/ast_t.h @@ -251,7 +251,6 @@ struct builtin_prefetch_expression_t { struct reference_expression_t { expression_base_t base; - symbol_t *symbol; declaration_t *declaration; }; @@ -499,6 +498,7 @@ typedef enum gnu_attribute_kind_t { GNU_AK_VISIBILITY, GNU_AK_REGPARM, GNU_AK_MODEL, + GNU_AK_MODE, GNU_AK_TRAP_EXIT, GNU_AK_SP_SWITCH, GNU_AK_SENTINEL, @@ -531,7 +531,7 @@ struct declaration_t { unsigned char declared_storage_class; unsigned char storage_class; unsigned char alignment; /**< Alignment of the declaration, 0 for default. */ - decl_modifiers_t modifiers; /**< MS __declspec modifiers. */ + decl_modifiers_t decl_modifiers; /**< MS __declspec modifiers. */ const char *deprecated_string; /**< MS deprecated string if any. */ symbol_t *get_property_sym; /**< MS get property. */ symbol_t *put_property_sym; /**< MS put property. */ @@ -543,13 +543,13 @@ struct declaration_t { symbol_t *symbol; source_position_t source_position; union { - bool is_defined; + bool complete; /**< used to indicate wether struct/union types are already defined or if just the name is declared */ statement_t *statement; initializer_t *initializer; expression_t *enum_value; } init; scope_t scope; /**< The scope that this declaration opens. */ - scope_t *parent_scope; /**< The parant scope where this declaration lives. */ + scope_t *parent_scope; /**< The parent scope where this declaration lives. */ /** next declaration in a scope */ declaration_t *next; @@ -587,6 +587,7 @@ typedef enum { STATEMENT_FOR, STATEMENT_ASM, STATEMENT_MS_TRY, + STATEMENT_LEAVE } statement_kind_t; struct statement_base_t { @@ -709,6 +710,10 @@ struct ms_try_statement_t { statement_t *final_statement; }; +struct leave_statement_t { + statement_base_t base; +}; + union statement_t { statement_kind_t kind; statement_base_t base; @@ -726,6 +731,7 @@ union statement_t { for_statement_t fors; asm_statement_t asms; ms_try_statement_t ms_try; + leave_statement_t leave; }; struct translation_unit_t {