From 5c1f937a7eb7a9cc9cd86cb69b3263f41f24408f Mon Sep 17 00:00:00 2001 From: Cori Barker Date: Sun, 22 Feb 2026 22:24:27 +0000 Subject: Partially completed lots of changes, refactoring most of the files --- include/parser/ast_node.hpp | 70 -------------------------------------------- include/parser/node_type.hpp | 10 ------- include/parser/parser.hpp | 31 -------------------- 3 files changed, 111 deletions(-) delete mode 100644 include/parser/ast_node.hpp delete mode 100644 include/parser/node_type.hpp delete mode 100644 include/parser/parser.hpp (limited to 'include/parser') 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 -#include -#include - -class ASTNode { -public: - int line; - int column; - - virtual ~ASTNode() = default; -}; - -class Program : public ASTNode { -public: - std::vector> declarations; -}; - -class Declaration : public ASTNode { -public: - std::string type; - std::string var_name; - std::unique_ptr value; - - Declaration(std::string type, std::string var_name, std::unique_ptr value = nullptr) : type(type), var_name(var_name), value(std::move(value)) {} -}; - -class Assignment : public ASTNode { -public: - std::string variable_name; - std::unique_ptr value; - - Assignment(std::string var, std::unique_ptr 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 left; - std::string value; - std::unique_ptr right; - - BinaryOp(std::unique_ptr left, std::string value, std::unique_ptr 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 - -class Parser { -public: - explicit Parser(const std::vector& tokens); - std::unique_ptr parse(); - -private: - std::vector tokens_; - int position_; - - std::unique_ptr parseStatement(); - std::unique_ptr parseExpression(); - std::unique_ptr parseAddSub(); - std::unique_ptr parseMulDiv(); - std::unique_ptr parsePrimary(); - std::unique_ptr parseDeclaration(); - std::unique_ptr parseAssignment(); - Token advance(); - Token peek(); - bool isAtEnd(); - void error(std::string s); -}; - -#endif -- cgit v1.2.3