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/ast_node.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 include/ast_node.hpp (limited to 'include/ast_node.hpp') diff --git a/include/ast_node.hpp b/include/ast_node.hpp new file mode 100644 index 0000000..caffb35 --- /dev/null +++ b/include/ast_node.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "node_type.hpp" +#include "type.hpp" + +#include +#include +#include + +class ASTNode { +public: + int line; + int column; + + virtual ~ASTNode() = default; +}; + +class ProgramNode : ASTNode { +public: + std::vector function_declarations; + + explicit ProgramNode(std::vector f) : function_declarations(f) { } +}; + +class FunctionDeclNode : ASTNode { + Type type; + std::vector parameters; + std::vector body; + + FunctionDeclNode(std::string t,std::vector p, std::vector b) : type(t), parameters(p), body(b) { } +}; + +class ParameterNode : ASTNode { + std::string name; + std::string type; +}; -- cgit v1.2.3