Started implementing AST

This commit is contained in:
Pasha Bibko
2025-07-22 22:25:20 +01:00
parent 75f84539bd
commit faf34661fb
6 changed files with 57 additions and 4 deletions

16
ast/CMakeLists.txt Normal file
View File

@@ -0,0 +1,16 @@
# Fetches all files for the binary #
file (GLOB ASTSources src/*.cpp inc/*.h)
add_library(AST STATIC ${ASTSources})
# Adds the headers in the current directory #
target_include_directories (
AST PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/inc
)
# Links to the Lexer so it can use tokens as data types #
target_link_libraries(AST PUBLIC Lexer)
# Creates the precompiled header of the binary #
target_include_directories(AST PRIVATE ${CMAKE_SOURCE_DIR}/common)
target_precompile_headers(AST PRIVATE ${CMAKE_SOURCE_DIR}/common/LXC.h)

35
ast/inc/Node.h Normal file
View File

@@ -0,0 +1,35 @@
#include <LXC.h>
namespace LXC::AST
{
enum class NodeType
{
// General nodes //
Identifier,
Operation,
// Variable nodes //
Var_Declare,
Var_Assign,
Var_Access,
// Control flow nodes //
IfBranch,
ReturnVal
};
class Node
{
public:
Node(NodeType _type)
: m_Type(_type)
{}
protected:
const NodeType m_Type;
};
}

1
ast/src/AST.cpp Normal file
View File

@@ -0,0 +1 @@
#include <Node.h>