This commit is contained in:
nub31
2025-07-22 20:03:22 +02:00
parent f58abf685c
commit d9d08a4367
17 changed files with 494 additions and 238 deletions

View File

@@ -8,7 +8,7 @@ namespace NubLang.Syntax.Binding;
public sealed class Binder
{
private readonly ParseTree _parseTree;
private readonly SyntaxTree _syntaxTree;
private readonly DefinitionTable _definitionTable;
private readonly Stack<Scope> _scopes = [];
@@ -16,9 +16,9 @@ public sealed class Binder
private Scope Scope => _scopes.Peek();
public Binder(ParseTree parseTree, DefinitionTable definitionTable)
public Binder(SyntaxTree syntaxTree, DefinitionTable definitionTable)
{
_parseTree = parseTree;
_syntaxTree = syntaxTree;
_definitionTable = definitionTable;
}
@@ -30,7 +30,7 @@ public sealed class Binder
var diagnostics = new List<Diagnostic>();
var definitions = new List<BoundDefinition>();
foreach (var definition in _parseTree.Definitions)
foreach (var definition in _syntaxTree.Definitions)
{
try
{
@@ -42,7 +42,7 @@ public sealed class Binder
}
}
return new BoundSyntaxTree(_parseTree.Namespace, definitions, diagnostics);
return new BoundSyntaxTree(_syntaxTree.Namespace, definitions, diagnostics);
}
private BoundDefinition BindDefinition(DefinitionSyntax node)
@@ -309,7 +309,7 @@ public sealed class Binder
private BoundExpression BindIdentifier(IdentifierSyntax expression)
{
var @namespace = expression.Namespace.Or(_parseTree.Namespace);
var @namespace = expression.Namespace.Or(_syntaxTree.Namespace);
var localFuncs = _definitionTable.LookupLocalFunc(@namespace, expression.Name).ToArray();
if (localFuncs.Length > 0)
{