Remove branch checker for now
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using Nub.Lang.Branching;
|
||||
using Nub.Lang.Generation;
|
||||
using Nub.Lang.Generation;
|
||||
using Nub.Lang.Lexing;
|
||||
using Nub.Lang.Parsing;
|
||||
using Nub.Lang.Typing;
|
||||
@@ -15,9 +14,6 @@ var definitions = parser.Parse();
|
||||
var typer = new ExpressionTyper(definitions);
|
||||
typer.Populate();
|
||||
|
||||
var branchChecker = new BranchChecker(definitions);
|
||||
branchChecker.Check();
|
||||
|
||||
var generator = new Generator(definitions);
|
||||
var asm = generator.Generate();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user