F diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
src/semantics/value/type.c
src/semantics/value/evaluation.c
src/semantics/value/constant.c
+ src/semantics/value/constraints.c
src/semantics/value/value.c
src/semantics/identifiers/denoted.c
src/semantics/identifiers/scope.c
F diff --git a/src/semantics/.ast.c.swp b/src/semantics/.ast.c.swp
new file mode 100644
B Binary files /dev/null and b/src/semantics/.ast.c.swp differ
F diff --git a/src/semantics/ast.h b/src/semantics/ast.h
--- a/src/semantics/ast.h
+++ b/src/semantics/ast.h
#include <denoted.h>
#include <linkage.h>
#include <value.h>
+ #include <constraints.h>
struct AST_Binary_Expression* get_equality_expression_tree(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
struct AST_Binary_Expression* get_logical_expression_tree(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
- struct AST_Binary_Expression* get_simple_assignment_expression_tree(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ struct AST_Binary_Expression* get_simple_assignment_expression_tree(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data);
struct AST_Binary_Expression* get_compound_assignment_expression_tree(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
- struct AST_Binary_Expression* get_comma_expression_tree(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ struct AST_Binary_Expression* get_comma_expression_tree(struct AST_Expression *left,struct AST_Expression *rightstruct Translation_Data *translation_data);
struct AST_Binary_Expression* get_struct_union_member_tree(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data);
struct AST_Binary_Expression* get_struct_union_member_trough_ptr_tree(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data);
- struct AST_Conditional_Expression* get_conditional_expression_tree(struct AST_Expression *left,struct AST_Expression *center,struct AST_Expression *right);
- struct AST_Function_Expression* get_function_expression_tree(struct AST_Expression *id,struct Scope *scope);
+ struct AST_Conditional_Expression* get_conditional_expression_tree(struct AST_Expression *left,struct AST_Expression *center,struct AST_Expression *right,struct Translation_Data *translation_data);
+ struct AST_Function_Expression* get_function_expression_tree(struct AST_Expression *id,struct Scope *scope,struct Translation_Data *translation_data);
struct AST_Unary_Expression* get_unary_expression_tree(struct AST_Expression *operand,struct Expression_Value *value,enum AST_Type type);
struct AST_Unary_Expression* get_indirection_expression_tree(struct AST_Expression *operand,struct Translation_Data *translation_data);
- struct AST_Unary_Expression* get_address_expression_tree(struct AST_Expression *operand);
+ struct AST_Unary_Expression* get_address_expression_tree(struct AST_Expression *operand,struct Translation_Data *translation_data);
struct AST_Unary_Expression* get_sizeof_by_type_tree(struct Type *type);
struct AST_Unary_Expression* get_unary_arithmetic_tree(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data);
struct AST_Unary_Expression* get_postfix_inc_dec_tree(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data);
void delete_ast_translation_unit(struct AST_Translation_Unit *translation_unit);
-
-
-
-
-
-
-
-
#endif
F diff --git a/src/semantics/value/.constraints.hh.swp b/src/semantics/value/.constraints.hh.swp
new file mode 100644
B Binary files /dev/null and b/src/semantics/value/.constraints.hh.swp differ
F diff --git a/src/semantics/value/constraints.c b/src/semantics/value/constraints.c
new file mode 100644
--- /dev/null
+++ b/src/semantics/value/constraints.c
+ #ifndef WONKY_CONSTRAINTS_C
+ #define WONKY_CONSTRAINTS_C WONKY_CONSTRAINTS_C
+
+
+
+ #endif
F diff --git a/src/semantics/value/constraints.h b/src/semantics/value/constraints.h
new file mode 100644
--- /dev/null
+++ b/src/semantics/value/constraints.h
+ #ifndef WONKY_CONSTRAINTS_H
+ #define WONKY_CONSTRAINTS_H WONKY_CONSTRAINTS_H
+ #include <constraints.hh>
+ #include <ast.h>
+
+ char constraint_check_modulo_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data);
+ char constraint_check_multiplicative_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_additive_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_shift_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_bitwise_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_equality_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_logical_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_simple_assignment_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data);
+ char constraint_check_compound_expression(struct AST_Expression *left,struct AST_Expression *right,struct AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_comma_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data);
+ char constraint_check_array_subscript_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data);
+ char constraint_check_struct_union_member_expression(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data);
+ char constraint_check_struct_union_member_trough_ptr_expression(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data);
+ char constraint_check_conditional_expression(struct AST_Expression *left,struct AST_Expression *center,struct AST_Expression *right,struct Translation_Data *translation_data);
+ ;
+ char constraint_check_function_expression(struct AST_Expression *id,struct Scope *scope,struct Translation_Data *translation_data);
+ char constraint_check_indirection_expression(struct AST_Expression *operand,struct Translation_Data *translation_data);
+ char constraint_check_address_expression(struct AST_Expression *operand,struct Translation_Data *translation_data);
+ char constraint_check_sizeof_by_type(struct Type *type);
+ char constraint_check_unary_arithmetic_expression(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data);
+ char constraint_check_postfix_inc_dec_tree(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data);
+
+
+ #endif
F diff --git a/src/semantics/value/constraints.hh b/src/semantics/value/constraints.hh
new file mode 100644
--- /dev/null
+++ b/src/semantics/value/constraints.hh
+ #ifndef WONKY_CONSTRAINTS_HH
+ #define WONKY_CONSTRAINTS_HH WONKY_CONSTRAINTS_HH
+
+
+ char constraint_check_modulo_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_multiplicative_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_additive_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_shift_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_bitwise_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_equality_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_logical_expression(struct AST_Expression *left,struct AST_Expression *right,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_simple_assignment_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_compound_expression(struct AST_Expression *left,struct AST_Expression *right,struct AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_comma_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_array_subscript_expression(struct AST_Expression *left,struct AST_Expression *right,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_struct_union_member_expression(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_struct_union_member_trough_ptr_expression(struct AST_Expression *left,struct token *id,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_conditional_expression(struct AST_Expression *left,struct AST_Expression *center,struct AST_Expression *right,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_function_expression(struct AST_Expression *id,struct Scope *scope,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_indirection_expression(struct AST_Expression *operand,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_address_expression(struct AST_Expression *operand,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_sizeof_by_type(struct Type *type)
+ {
+
+ }
+ char constraint_check_unary_arithmetic_expression(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+ char constraint_check_postfix_inc_dec_tree(struct AST_Expression *operand,enum AST_Type operation,struct Translation_Data *translation_data)
+ {
+
+ }
+
+ #endif