Start llvm

This commit is contained in:
nub31
2025-05-04 16:49:42 +02:00
parent 37e788cc3a
commit 862971bf17
6 changed files with 129 additions and 759 deletions

View File

@@ -1,7 +0,0 @@
namespace Nub.Lang.Frontend.Parsing;
public class GlobalVariableDefinitionNode(string name, ExpressionNode value) : DefinitionNode
{
public string Name { get; } = name;
public ExpressionNode Value { get; } = value;
}

View File

@@ -43,7 +43,6 @@ public class Parser
var keyword = ExpectSymbol();
return keyword.Symbol switch
{
Symbol.Let => ParseGlobalVariableDefinition(),
Symbol.Func => ParseFuncDefinition(),
Symbol.Extern => ParseExternFuncDefinition(),
Symbol.Struct => ParseStruct(),
@@ -51,16 +50,6 @@ public class Parser
};
}
private GlobalVariableDefinitionNode ParseGlobalVariableDefinition()
{
var name = ExpectIdentifier();
ExpectSymbol(Symbol.Assign);
var value = ParseExpression();
ExpectSymbol(Symbol.Semicolon);
return new GlobalVariableDefinitionNode(name.Value, value);
}
private LocalFuncDefinitionNode ParseFuncDefinition()
{
var name = ExpectIdentifier();

View File

@@ -13,7 +13,6 @@ public class Func(string name, List<FuncParameter> parameters, Optional<BlockNod
public class ExpressionTyper
{
private readonly List<Func> _functions;
private readonly List<GlobalVariableDefinitionNode> _variableDefinitions;
private readonly List<StructDefinitionNode> _structDefinitions;
private readonly Stack<Variable> _variables;
@@ -21,7 +20,6 @@ public class ExpressionTyper
{
_variables = new Stack<Variable>();
_functions = [];
_variableDefinitions = [];
_structDefinitions = definitions.OfType<StructDefinitionNode>().ToList();
@@ -37,7 +35,6 @@ public class ExpressionTyper
_functions.AddRange(functions);
_functions.AddRange(externFunctions);
_variableDefinitions.AddRange(definitions.OfType<GlobalVariableDefinitionNode>());
}
public void Populate()
@@ -55,12 +52,6 @@ public class ExpressionTyper
}
}
foreach (var variable in _variableDefinitions)
{
PopulateExpression(variable.Value);
_variables.Push(new Variable(variable.Name, variable.Value.Type));
}
foreach (var function in _functions)
{
foreach (var parameter in function.Parameters)