diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/elna/boot/type_check.h | 8 | ||||
| -rw-r--r-- | include/elna/gcc/elna1.h | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/elna/boot/type_check.h b/include/elna/boot/type_check.h index e500007..f95c72b 100644 --- a/include/elna/boot/type_check.h +++ b/include/elna/boot/type_check.h @@ -96,7 +96,8 @@ namespace elna::boot enum class kind { record_base, - for_loop + for_loop, + condition }; type_kind_error(const source_position position, kind type_kind, const type& actual); @@ -227,6 +228,8 @@ namespace elna::boot static bool check_unresolved_symbol(const std::shared_ptr<alias_type>& alias, std::vector<std::string>& path); + void visit_and_validate_condition(expression& condition); + public: explicit type_analysis_visitor(symbol_bag bag, const target_info& target); @@ -239,6 +242,9 @@ namespace elna::boot void visit(procedure_call *call) override; void visit(case_statement *statement) override; void visit(for_statement *statement) override; + void visit(repeat_statement *statement) override; + void visit(while_statement *statement) override; + void visit(if_statement *statement) override; void visit(record_constructor_expression *expression) override; void visit(array_constructor_expression *expression) override; void visit(slicing_expression *expression) override; diff --git a/include/elna/gcc/elna1.h b/include/elna/gcc/elna1.h index 34cf091..580526a 100644 --- a/include/elna/gcc/elna1.h +++ b/include/elna/gcc/elna1.h @@ -27,7 +27,7 @@ enum elna_tree_index ELNA_TI_FLOAT_TYPE, ELNA_TI_BOOL_TRUE, ELNA_TI_BOOL_FALSE, - ELNA_TI_POINTER_NIL, + ELNA_TI_WORD_ONE, ELNA_TI_MAX }; @@ -43,7 +43,8 @@ extern std::vector<std::string> elna_include_dirs; #define elna_float_type_node elna_global_trees[ELNA_TI_FLOAT_TYPE] #define elna_bool_true_node elna_global_trees[ELNA_TI_BOOL_TRUE] #define elna_bool_false_node elna_global_trees[ELNA_TI_BOOL_FALSE] -#define elna_pointer_nil_node elna_global_trees[ELNA_TI_POINTER_NIL] +#define elna_word_one_node elna_global_trees[ELNA_TI_WORD_ONE] + /* Language-dependent contents of a type. */ struct GTY (()) lang_type { |
