X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ast.h;h=6c14da96bf744f2d40b7441565ae33a186c3bbd7;hb=22d24ddd2209686fa723a62ccc19b7c2eea2d172;hp=e13e6012ef97038c8c269afa2ab540a7a9028433;hpb=912addb873c5f8b193970fe4f0926ff89aec3fc8;p=cparser diff --git a/ast.h b/ast.h index e13e601..6c14da9 100644 --- a/ast.h +++ b/ast.h @@ -1,6 +1,6 @@ /* * This file is part of cparser. - * Copyright (C) 2007-2008 Matthias Braun + * Copyright (C) 2007-2009 Matthias Braun * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -48,6 +48,7 @@ typedef struct designator_t designator_t; typedef struct offsetof_expression_t offsetof_expression_t; typedef struct va_start_expression_t va_start_expression_t; typedef struct va_arg_expression_t va_arg_expression_t; +typedef struct va_copy_expression_t va_copy_expression_t; typedef struct builtin_constant_expression_t builtin_constant_expression_t; typedef struct builtin_types_compatible_expression_t builtin_types_compatible_expression_t; typedef struct classify_type_expression_t classify_type_expression_t; @@ -102,7 +103,7 @@ void *allocate_ast(size_t size); /** * Returns true if a given expression is a compile time - * constant. + * constant. §6.6 * * @param expression the expression to check */ @@ -116,8 +117,13 @@ bool is_constant_initializer(const initializer_t *initializer); */ bool is_constant_expression(const expression_t *expression); +/** + * An object with a fixed but at compiletime unknown adress which will be known + * at link/load time. + */ bool is_address_constant(const expression_t *expression); -long fold_constant(const expression_t *expression); +long fold_constant_to_int(const expression_t *expression); +bool fold_constant_to_bool(const expression_t *expression); #endif