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.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();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user