diff --git a/AxiomUnitTestProject/AxiomUnitTestProjectr/AssemblerTests.cs b/AxiomUnitTestProject/AxiomUnitTestProjectr/AssemblerTests.cs index 930c887..84422b9 100644 --- a/AxiomUnitTestProject/AxiomUnitTestProjectr/AssemblerTests.cs +++ b/AxiomUnitTestProject/AxiomUnitTestProjectr/AssemblerTests.cs @@ -12,6 +12,58 @@ namespace AxiomUnitTestProject [TestClass] public class AssemblerTests { + + [TestMethod] + public void BreakStatementVariant6() + { + String expression=@" + A=1; + WHILE(A<10) + { + BREAK; + BREAK; + }"; + CodeRunner codeRunner = new CodeRunner(); + Assert.IsFalse(codeRunner.Execute(expression),codeRunner.LastMessage); + } + + [TestMethod] + public void BreakStatementVariant5() + { + String expression=@" + A=1; + B=1; + C=1; + D=1; + WHILE(A<10) + { + WHILE(B<10) + { + WHILE(C<10) + { + WHILE(D<10) + { + A=A+1; + B=B+1; + C=C+1; + D=D+1; + IF(D==10)THEN BREAK; + BREAK; + } + BREAK; + } + BREAK; + } + BREAK; + }"; + CodeRunner codeRunner = new CodeRunner(); + Assert.IsTrue(codeRunner.Execute(expression),codeRunner.LastMessage); + Assert.IsTrue(codeRunner.GetValue("A").Equals(2)); + Assert.IsTrue(codeRunner.GetValue("B").Equals(2)); + Assert.IsTrue(codeRunner.GetValue("C").Equals(2)); + Assert.IsTrue(codeRunner.GetValue("D").Equals(2)); + } + [TestMethod] public void BreakStatementVariant4() { @@ -691,46 +743,6 @@ namespace AxiomUnitTestProject Assert.IsTrue(codeRunner.ParseSymbolsCount.Equals(0),"Expected parse symbols to be zero."); } } - - //[TestMethod] - //public void AssembleAllData() - //{ - // List codeLines=TestData.CodeLines(); - // foreach(String expression in codeLines) - // { - // Console.WriteLine("*********************************************************************************************************************************"); - // BinaryWriter binaryWriter=new BinaryWriter(new MemoryStream()); - // SymbolTable symbolTable = new SymbolTable(); - // BinaryReader binaryReader = null; - // binaryReader = new BinaryReader(Utility.StreamFromString(expression)); - // Scanner scanner = new Scanner(binaryReader, binaryWriter, symbolTable); - // scanner.Debug=false; - // Console.WriteLine("Expression:\""+expression+"\""); - // Assert.IsTrue(scanner.Analyze()); - // binaryWriter.BaseStream.Seek(0, SeekOrigin.Begin); - // BinaryReader parserReader = new BinaryReader(binaryWriter.BaseStream); - // BinaryWriter parserWriter = new BinaryWriter(new MemoryStream()); - // Parser parser = new Parser(parserReader,parserWriter,symbolTable); - // parser.Debug=false; - // parser.Parse(); - // Assert.IsFalse(parser.IsInError); - // parserWriter.BaseStream.Seek(0, SeekOrigin.Begin); - // BinaryReader assemblerReader = new BinaryReader(parserWriter.BaseStream); - // Assembler assembler = new Assembler(assemblerReader, symbolTable); - // bool result=assembler.Assemble(); - // assembler.Disassemble(); - // Assert.IsTrue(result); - // Console.WriteLine("********************************************************* O U T P U T ************************************************"); - // List list = new List(symbolTable.Values); - // list=(from Symbol symbol in list where (symbol.TypeOfSymbol.Equals(Symbol.SymbolType.UserSymbol)||symbol.TypeOfSymbol.Equals(Symbol.SymbolType.UserDynamicSymbol)) && symbol.IsModified select symbol).ToList(); - // foreach (Symbol symbol in list) - // { - // Console.WriteLine(String.Format("SYMBOL NAME:'{0}',VALUE:'{1}'",symbol.SymbolName,null==symbol.GenericData?"":symbol.GenericData.ToString())); - // } - // Console.WriteLine("*********************************************************************************************************************************"); - // assembler.Dispose(); - // } - //} } }