aboutsummaryrefslogtreecommitdiff
path: root/src/lexer
diff options
context:
space:
mode:
Diffstat (limited to 'src/lexer')
-rw-r--r--src/lexer/ast.cc15
-rw-r--r--src/lexer/token.cc29
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;
}