diff options
| author | _ov4 <ov4@ov4.org> | 2026-09-09 12:28:04 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-09-09 12:28:04 +0000 |
| commit | ffcf768d07c82a2213674fbec623c684e8feb9ee (patch) | |
| tree | ba5a0182fa72aeed61073f7c7063ab268ecdd6c0 /src/lexer/ast.cc | |
| parent | 88a3cd56846200c883816a2a394c8ae5e466fe21 (diff) | |
add error system
Diffstat (limited to 'src/lexer/ast.cc')
| -rw-r--r-- | src/lexer/ast.cc | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lexer/ast.cc b/src/lexer/ast.cc index 755e909..4fbb62a 100644 --- a/src/lexer/ast.cc +++ b/src/lexer/ast.cc @@ -9,6 +9,7 @@ #include "lexer/token.h" #include "lexer/symbol_property.h" #include "util/io.h" +#include "error.h" using namespace std; @@ -112,29 +113,25 @@ void T_lexer::parse(size_t cmd_begin, size_t cmd_end, size_t ast_vec) // miss left if (symbol_property[token_str].left == EXIST && cmd_begin == found_pos) { - loggerln("parse: missing left child"); - exit(-1); // TODO + throw T_error{error_code::AST_MISS_LEFT_CHILD, "parse: missing left child"}; } // miss right if (symbol_property[token_str].right == EXIST && cmd_end-1 == found_pos) { - loggerln("parse: missing right child"); - exit(-1); // TODO + throw T_error{error_code::AST_MISS_RIGHT_CHILD, "parse: missing right child"}; } // should not exist left if (symbol_property[token_str].left == NOT_EXIST && cmd_begin != found_pos) { - loggerln("parse: left child should NOT exist"); - exit(-1); // TODO + throw T_error{error_code::AST_EXIST_LEFT_CHILLD, "parse: left child should NOT exist"}; } // should not exist right if (symbol_property[token_str].right == NOT_EXIST && cmd_end-1 != found_pos) { - loggerln("parse: right child should NOT exist"); - exit(-1); // TODO + throw T_error{error_code::AST_EXIST_LEFT_CHILLD, "parse: right child should NOT exist"}; } size_t l = alloc_ast(); |
