public void ShouldResolveLabelsOutsideScope()
{
const string input =
@"
vectors
{
BRK = EmptyVector
IRQ = EmptyVector
NMI = EmptyVector
Reset = Main
}
procedure Main
{
jsr Test
}
procedure Test
{
php
rep #$30
pha
lda #$03
pla
plp
rts
}
interrupt EmptyVector
{
}
";
ZealCpuDriver driver = new ZealCpuDriver(input.ToMemoryStream());
driver.Parse();
driver.SecondPass();
var mainProcedure = driver.GlobalScope.Children[0];
Assert.Equal(true, mainProcedure.IsLabelValid("Test"));
Assert.Equal(3, mainProcedure.AddressFor("Test"));
}