Remove branch checker for now

This commit is contained in:
nub31
2025-01-27 21:14:44 +01:00
parent 1e0f31cb6b
commit cddf4c4f78
2 changed files with 1 additions and 37 deletions

View File

@@ -1,32 +0,0 @@
using Nub.Lang.Parsing;
namespace Nub.Lang.Branching;
public class BranchChecker
{
private readonly IReadOnlyCollection<DefinitionNode> _definitions;
public BranchChecker(IReadOnlyCollection<DefinitionNode> definitions)
{
_definitions = definitions;
}
public void Check()
{
foreach (var funcDefinition in _definitions.OfType<LocalFuncDefinitionNode>())
{
if (funcDefinition.ReturnType.HasValue)
{
CheckBlock(funcDefinition.Body);
}
}
}
private void CheckBlock(BlockNode block)
{
if (!block.Statements.Any(s => s is ReturnNode))
{
throw new Exception("Block must contain a return statement");
}
}
}

View File

@@ -1,5 +1,4 @@
using Nub.Lang.Branching; using Nub.Lang.Generation;
using Nub.Lang.Generation;
using Nub.Lang.Lexing; using Nub.Lang.Lexing;
using Nub.Lang.Parsing; using Nub.Lang.Parsing;
using Nub.Lang.Typing; using Nub.Lang.Typing;
@@ -15,9 +14,6 @@ var definitions = parser.Parse();
var typer = new ExpressionTyper(definitions); var typer = new ExpressionTyper(definitions);
typer.Populate(); typer.Populate();
var branchChecker = new BranchChecker(definitions);
branchChecker.Check();
var generator = new Generator(definitions); var generator = new Generator(definitions);
var asm = generator.Generate(); var asm = generator.Generate();