mirror of
https://github.com/PashaBibko/LX.git
synced 2026-04-04 01:49:05 +00:00
Variables can now be read from
This commit is contained in:
@@ -92,6 +92,9 @@ namespace LX::AST
|
||||
|
||||
llvm::Value* VariableAccess::GenIR(InfoLLVM& LLVM)
|
||||
{
|
||||
return nullptr;
|
||||
llvm::AllocaInst* var = LLVM.scope->GetVar(m_Name);
|
||||
ThrowIf<Scope::VariableDoesntExist>(var == nullptr);
|
||||
|
||||
return LLVM.builder.CreateLoad(llvm::Type::getInt32Ty(LLVM.context), var, m_Name + "_val");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,10 @@ namespace LX
|
||||
case Token::NUMBER_LITERAL:
|
||||
return std::make_unique<AST::NumberLiteral>(p.tokens[p.index++].GetContents());
|
||||
|
||||
// If an Identifier has got here it means a variable is being accessed //
|
||||
case Token::IDENTIFIER:
|
||||
return std::make_unique<AST::VariableAccess>(p.tokens[p.index++].GetContents());
|
||||
|
||||
// TODO: Fix this //
|
||||
case Token::OPEN_BRACKET:
|
||||
p.scopeDepth++;
|
||||
|
||||
Reference in New Issue
Block a user