diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lexer/ast.cc | 15 | ||||
| -rw-r--r-- | src/lexer/token.cc | 29 |
2 files changed, 23 insertions, 21 deletions
diff --git a/src/lexer/ast.cc b/src/lexer/ast.cc index 9b18738..755e909 100644 --- a/src/lexer/ast.cc +++ b/src/lexer/ast.cc @@ -8,6 +8,7 @@ #include "lexer/enum_type.h" #include "lexer/token.h" #include "lexer/symbol_property.h" +#include "util/io.h" using namespace std; @@ -86,7 +87,7 @@ void T_lexer::parse(size_t cmd_begin, size_t cmd_end, size_t ast_vec) { current_order = get_pivot_order(token[i].token_type); found_pos = i; - println("Found pos: {} order: {} depth: {}", i, current_order, current_depth); + loggerln("Found pos: {} order: {} depth: {}", i, current_order, current_depth); } } current_depth++; @@ -98,7 +99,7 @@ void T_lexer::parse(size_t cmd_begin, size_t cmd_end, size_t ast_vec) if (found_pos == string::npos) { - println("Smallest unit"); + loggerln("Smallest unit"); ast[ast_vec].token_type = TEXT; ast[ast_vec].command_text = final_trim(cmd_begin, cmd_end); return; @@ -111,28 +112,28 @@ 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) { - println("parse: missing left child"); + loggerln("parse: missing left child"); exit(-1); // TODO } // miss right if (symbol_property[token_str].right == EXIST && cmd_end-1 == found_pos) { - println("parse: missing right child"); + loggerln("parse: missing right child"); exit(-1); // TODO } // should not exist left if (symbol_property[token_str].left == NOT_EXIST && cmd_begin != found_pos) { - println("parse: left child should NOT exist"); + loggerln("parse: left child should NOT exist"); exit(-1); // TODO } // should not exist right if (symbol_property[token_str].right == NOT_EXIST && cmd_end-1 != found_pos) { - println("parse: right child should NOT exist"); + loggerln("parse: right child should NOT exist"); exit(-1); // TODO } @@ -142,7 +143,7 @@ void T_lexer::parse(size_t cmd_begin, size_t cmd_end, size_t ast_vec) ast[ast_vec].right = r; ast[ast_vec].token_type = token[found_pos].token_type; - println("Parse sub: {}, {}, {}", cmd_begin, found_pos, cmd_end); + loggerln("Parse sub: {}, {}, {}", cmd_begin, found_pos, cmd_end); parse(cmd_begin, found_pos, l); parse(found_pos+1, cmd_end, r); diff --git a/src/lexer/token.cc b/src/lexer/token.cc index 2b88b7e..071d00c 100644 --- a/src/lexer/token.cc +++ b/src/lexer/token.cc @@ -7,6 +7,7 @@ #include "lexer/lexer_class.h" #include "lexer/enum_type.h" #include "lexer/symbol_property.h" +#include "util/io.h" using namespace std; // remove this @@ -37,13 +38,13 @@ void T_lexer::bracket_depth_changer(char c, int &bracket_depth) if (c == '(') { bracket_depth++; - println("changed depth: {}", bracket_depth); + loggerln("changed depth: {}", bracket_depth); return; } if (c == ')') { bracket_depth--; - println("changed depth: {}", bracket_depth); + loggerln("changed depth: {}", bracket_depth); if (bracket_depth < 0) { cerr << "Ooooops bracket unmatched, quitting" << endl; @@ -56,7 +57,7 @@ void T_lexer::bracket_depth_changer(char c, int &bracket_depth) bool T_lexer::token_continue(const string &s, char next) { - println("token_continue: receiving {} {}", s, next); + loggerln("token_continue: receiving {} {}", s, next); // s is empty, so next can be part of the token if (s.size() == 0) return true; @@ -87,7 +88,7 @@ bool T_lexer::token_continue(const string &s, char next) } else { - println("symbol not found in map"); + loggerln("symbol not found in map"); return false; } } @@ -100,16 +101,16 @@ void T_lexer::token_push(const string &push_s, int bracket_depth, bool force_tex string trimmed = trim(push_s); if (trimmed == "") return; - println("finding {} in map", trimmed); + loggerln("finding {} in map", trimmed); if (symbol_property.contains(trimmed) && !force_text) // symbol { - println("token_push: adding symbol"); + loggerln("token_push: adding symbol"); tmp.token_type = symbol_property[trimmed].enum_type; } else { - println("token_push: adding text"); + loggerln("token_push: adding text"); if (force_text) trimmed = trim(trimmed, "\'\""); tmp.token_type = TEXT; @@ -137,32 +138,32 @@ int T_lexer::tokenizer(const string &s) prev_str += c; - println("---"); - println("prev_str .{}. next char {}", prev_str, s[i+1]); + loggerln("---"); + loggerln("prev_str .{}. next char {}", prev_str, s[i+1]); if (c == '\'' || c == '\"') { - println("quotation"); + loggerln("quotation"); // turn on GUARD if (guard == GUARD_OFF) { guard = (c == '\'') ? GUARD_STRONG : GUARD_WEAK; - println("set guard {}", (c == '\'') ? "GUARD_STRONG" : "GUARD_WEAK"); + loggerln("set guard {}", (c == '\'') ? "GUARD_STRONG" : "GUARD_WEAK"); continue; } // turn off else if (guard == GUARD_STRONG && c == '\'') { guard = GUARD_OFF; - println("quitting strong guard"); + loggerln("quitting strong guard"); force_text = true; } //turn off else if (guard == GUARD_WEAK && c == '\"') { guard = GUARD_OFF; - println("quitting weak guard"); + loggerln("quitting weak guard"); force_text = true; } else continue; @@ -170,7 +171,7 @@ int T_lexer::tokenizer(const string &s) // not quotation mark else if ((guard == GUARD_STRONG || guard == GUARD_WEAK)) { - println("tokenizer: guarded, continue"); + loggerln("tokenizer: guarded, continue"); continue; } |
