aboutsummaryrefslogtreecommitdiff
path: root/include/parser
diff options
context:
space:
mode:
Diffstat (limited to 'include/parser')
-rw-r--r--include/parser/ast_node.hpp70
-rw-r--r--include/parser/node_type.hpp10
-rw-r--r--include/parser/parser.hpp31
3 files changed, 0 insertions, 111 deletions
diff --git a/include/parser/ast_node.hpp b/include/parser/ast_node.hpp
deleted file mode 100644
index 6539cf6..0000000
--- a/include/parser/ast_node.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef AST_NODE_H
-#define AST_NODE_H
-
-#include "node_type.hpp"
-
-#include <string>
-#include <vector>
-#include <memory>
-
-class ASTNode {
-public:
- int line;
- int column;
-
- virtual ~ASTNode() = default;
-};
-
-class Program : public ASTNode {
-public:
- std::vector<std::unique_ptr<ASTNode>> declarations;
-};
-
-class Declaration : public ASTNode {
-public:
- std::string type;
- std::string var_name;
- std::unique_ptr<ASTNode> value;
-
- Declaration(std::string type, std::string var_name, std::unique_ptr<ASTNode> value = nullptr) : type(type), var_name(var_name), value(std::move(value)) {}
-};
-
-class Assignment : public ASTNode {
-public:
- std::string variable_name;
- std::unique_ptr<ASTNode> value;
-
- Assignment(std::string var, std::unique_ptr<ASTNode> val) : variable_name(var), value(std::move(val)) {}
-};
-
-class NumberLiteral : public ASTNode {
-public:
- double value;
-
- NumberLiteral(double val) : value(val) {}
-};
-
-class StringLiteral : public ASTNode {
-public:
- std::string value;
-
- StringLiteral(std::string val) : value(val) {}
-};
-
-class Identifier : public ASTNode {
-public:
- std::string name;
-
- Identifier(std::string name) : name(name) {}
-};
-
-class BinaryOp : public ASTNode {
-public:
- std::unique_ptr<ASTNode> left;
- std::string value;
- std::unique_ptr<ASTNode> right;
-
- BinaryOp(std::unique_ptr<ASTNode> left, std::string value, std::unique_ptr<ASTNode> right) : left(std::move(left)), value(std::move(value)), right(std::move(right)) {}
-};
-
-#endif
diff --git a/include/parser/node_type.hpp b/include/parser/node_type.hpp
deleted file mode 100644
index 1766b19..0000000
--- a/include/parser/node_type.hpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef NODE_TYPE_H
-#define NODE_TYPE_H
-
-enum class NodeType {
- PROGRAM,
- VARIABLE_DECLARATION,
- ASSIGNMENT,
-};
-
-#endif
diff --git a/include/parser/parser.hpp b/include/parser/parser.hpp
deleted file mode 100644
index 438b8fe..0000000
--- a/include/parser/parser.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef PARSER_H
-#define PARSER_H
-
-#include "lexer/token.hpp"
-#include "parser/ast_node.hpp"
-
-#include <vector>
-
-class Parser {
-public:
- explicit Parser(const std::vector<Token>& tokens);
- std::unique_ptr<Program> parse();
-
-private:
- std::vector<Token> tokens_;
- int position_;
-
- std::unique_ptr<ASTNode> parseStatement();
- std::unique_ptr<ASTNode> parseExpression();
- std::unique_ptr<ASTNode> parseAddSub();
- std::unique_ptr<ASTNode> parseMulDiv();
- std::unique_ptr<ASTNode> parsePrimary();
- std::unique_ptr<ASTNode> parseDeclaration();
- std::unique_ptr<ASTNode> parseAssignment();
- Token advance();
- Token peek();
- bool isAtEnd();
- void error(std::string s);
-};
-
-#endif