aboutsummaryrefslogtreecommitdiff
path: root/include/lexer
diff options
context:
space:
mode:
Diffstat (limited to 'include/lexer')
-rw-r--r--include/lexer/ast.h30
-rw-r--r--include/lexer/enum_type.h35
-rw-r--r--include/lexer/lexer_class.h42
-rw-r--r--include/lexer/parseline.h10
-rw-r--r--include/lexer/symbol_property.h48
-rw-r--r--include/lexer/token.h25
6 files changed, 0 insertions, 190 deletions
diff --git a/include/lexer/ast.h b/include/lexer/ast.h
deleted file mode 100644
index 871afaf..0000000
--- a/include/lexer/ast.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-
-#include <string>
-
-#include "lexer/lexer_class.h"
-#include "lexer/enum_type.h"
-#include "lexer/token.h"
-
-using namespace std; // remove this
-
-namespace ov4
-{
-
-class T_lexer::T_ast
-{
-public:
- T_ast() = default;
-
- enum_token_type token_type;
- string command_text;
- size_t left = string::npos;
- size_t right = string::npos;
-
- // if this is marked as `subshell`
- // it will fork a subshell
- // then the subshell will handler the rest
- bool subshell;
-};
-
-}
diff --git a/include/lexer/enum_type.h b/include/lexer/enum_type.h
deleted file mode 100644
index bfc7cdc..0000000
--- a/include/lexer/enum_type.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-
-namespace ov4
-{
-
-enum enum_token_type
-{
- TEXT, // foo
- SINGLE_QUOTATION, // '
- DOUBLE_QUOTATION, // "
- LOGIC_AND, // &&
- LOGIC_OR, // ||
- ASYNC, // &
- PIPE, // |
- SEMICOLON, // ;
- EXPAND, // $
- LEFT_BRACKET, // (
- RIGHT_BRACKET, // )
-};
-
-enum guard_type
-{
- GUARD_OFF,
- GUARD_WEAK,
- GUARD_STRONG,
-};
-
-enum class child_existence_type
-{
- NOT_EXIST,
- OPTIONAL,
- EXIST,
-};
-
-}
diff --git a/include/lexer/lexer_class.h b/include/lexer/lexer_class.h
deleted file mode 100644
index 04b2e1c..0000000
--- a/include/lexer/lexer_class.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#pragma once
-
-#include <string>
-#include <unordered_map>
-#include <vector>
-
-#include "lexer/enum_type.h"
-
-using namespace std;
-
-namespace ov4
-{
-
-class T_lexer
-{
-public:
-
- // token.h
- class T_token;
- string trim(const string &s, const string &trim_target = " \t");
- bool is_single_symbol(char c);
- void bracket_depth_changer(char c, int &bracket_depth);
- bool token_continue(const string &s, char next);
- void token_push(const string &push_s, int bracket_depth, bool force_text = false);
- int tokenizer(const string &s);
-
- // ast.h
- class T_ast;
- string final_trim(size_t _begin, size_t _end);
- size_t alloc_ast();
- int get_pivot_order(enum_token_type x);
- bool is_operator(enum_token_type x);
- void parse(size_t cmd_begin, size_t cmd_end, size_t ast_vec);
-
- // shared
- std::vector<T_ast> ast;
- std::vector<T_token> token;
- size_t ast_index = 0;
-
-};
-
-}
diff --git a/include/lexer/parseline.h b/include/lexer/parseline.h
deleted file mode 100644
index e52b50e..0000000
--- a/include/lexer/parseline.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include <string>
-
-namespace ov4
-{
-
-char **parseline(const std::string &s);
-
-}
diff --git a/include/lexer/symbol_property.h b/include/lexer/symbol_property.h
deleted file mode 100644
index c933605..0000000
--- a/include/lexer/symbol_property.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#pragma once
-
-#include <unordered_map>
-#include <string>
-
-#include "lexer/enum_type.h"
-
-using namespace std;
-
-namespace ov4
-{
-
-class T_property
-{
-public:
- bool continuable = true;
-
- // -1 means it's NOT operator
- // any positive values mean it's operator
- int pivot_priority = -1;
-
- // require: MUST
- // accept: optional, but if it doesn't accept, but there is indeed a child, then error
- child_existence_type left;
- child_existence_type right;
-
- enum_token_type enum_type = TEXT;
-};
-
-inline const unordered_map<string, T_property> symbol_property = {
-
- // bracket
- {"(", {.continuable = false, .enum_type = LEFT_BRACKET}},
- {")", {.continuable = false, .enum_type = RIGHT_BRACKET}},
-
- // operator
- {"&", {.continuable = true, .pivot_priority = 2000, .left = child_existence_type::EXIST, .right = child_existence_type::NOT_EXIST, .enum_type = ASYNC}},
- {"|", {.continuable = true, .pivot_priority = 100, .left = child_existence_type::EXIST, .right = child_existence_type::EXIST, .enum_type = PIPE}},
- {"&&", {.continuable = true, .pivot_priority = 1000, .left = child_existence_type::EXIST, .right = child_existence_type::EXIST, .enum_type = LOGIC_AND}},
- {"||", {.continuable = true, .pivot_priority = 1000, .left = child_existence_type::EXIST, .right = child_existence_type::EXIST, .enum_type = LOGIC_OR}},
-
-};
-
-string symbol_enum2string(enum_token_type e);
-
-bool symbol_contains_enum_type(enum_token_type e);
-
-}
diff --git a/include/lexer/token.h b/include/lexer/token.h
deleted file mode 100644
index 93bdc22..0000000
--- a/include/lexer/token.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-#include <string>
-
-#include "lexer/lexer_class.h"
-#include "lexer/enum_type.h"
-#include "lexer/symbol_property.h"
-
-using namespace std; // remove this
-
-namespace ov4
-{
-
-class T_lexer::T_token
-{
-public:
- T_token() = default;
-
- enum_token_type token_type;
- string text;
- guard_type guard = GUARD_OFF;
- int bracket_depth = 0;
-};
-
-}