#include <stdio.h>
#include <stdbool.h>
-typedef struct scope_t scope_t;
+typedef struct scope_t scope_t;
typedef struct expression_base_t expression_base_t;
typedef struct const_expression_t const_expression_t;
typedef struct string_literal_expression_t string_literal_expression_t;
typedef struct wide_string_literal_expression_t wide_string_literal_expression_t;
+typedef struct compound_literal_expression_t compound_literal_expression_t;
typedef struct reference_expression_t reference_expression_t;
typedef struct cast_expression_t cast_expression_t;
typedef struct call_argument_t call_argument_t;
typedef struct unary_expression_t unary_expression_t;
typedef struct select_expression_t select_expression_t;
typedef struct array_access_expression_t array_access_expression_t;
-typedef struct typeprop_expression_t typeprop_expression_t;
-typedef struct typeprop_expression_t typeprop_expression_t;
+typedef struct typeprop_expression_t typeprop_expression_t;
typedef struct conditional_expression_t conditional_expression_t;
typedef struct expression_list_element_t expression_list_element_t;
typedef struct comma_expression_t comma_expression_t;
typedef struct initializer_value_t initializer_value_t;
typedef struct initializer_string_t initializer_string_t;
typedef struct initializer_wide_string_t initializer_wide_string_t;
+typedef struct initializer_designator_t initializer_designator_t;
typedef union initializer_t initializer_t;
typedef struct declaration_t declaration_t;
bool is_constant_expression(const expression_t *expression);
+long fold_constant(const expression_t *expression);
+
#endif