static void Test3() { Compiler c = new Compiler(); List <string> lVars = new List <string>(); lVars.Add("var int x;"); lVars.Add("var int y;"); lVars.Add("var int z;"); List <VarDeclaration> vars = c.ParseVarDeclarations(lVars); string s = "let x = ((x + 5) + (y - z));"; List <Token> lTokens = c.Tokenize(s, 0); LetStatement assignment = c.ParseStatement(lTokens); List <LetStatement> lSimple = c.SimplifyExpressions(assignment, vars); List <string> lAssembly = c.GenerateCode(lSimple, vars); CPUEmulator cpu = new CPUEmulator(); InitLCL(lAssembly); cpu.Code = lAssembly; cpu.Run(1000, false); if (cpu.M[20] != 5) { Console.WriteLine("BUGBUG"); } }
static void Test1() { Compiler c = new Compiler(); List <string> lVars = new List <string>(); lVars.Add("var int x;"); List <VarDeclaration> vars = c.ParseVarDeclarations(lVars); string s = "let x = 5;"; List <Token> lTokens = c.Tokenize(s, 0); LetStatement assignment = c.ParseStatement(lTokens); if (assignment.ToString() != s) { Console.WriteLine("BUGBUG"); } List <LetStatement> l = new List <LetStatement>(); l.Add(assignment); List <string> lAssembly = c.GenerateCode(l, vars); CPUEmulator cpu = new CPUEmulator(); InitLCL(lAssembly); cpu.Code = lAssembly; cpu.Run(1000, false); if (cpu.M[20] != 5) { Console.WriteLine("BUGBUG"); } }