public static void Main() { //TaCodeTest(); //ASTTest(); //Test Moving declarations //var Test = new DeclarationTest(); //Test.DeclarationOptimizationTest(); //Test subexpression tree //var sTest = new SubexprTest(); //sTest.SubexpressionOptimizationTest(); //APC //CFGReducibility_DominatorTree_PrettyPrinter_Demonstration(); string fileName = @"..\..\sample.txt"; astRoot = AST(fileName); if (astRoot == null) { return; } var tacodeVisitor = new TACodeVisitor(); astRoot.Visit(tacodeVisitor); tacodeInstance = tacodeVisitor.Code; var allOpt = new AllOptimizations(); tacodeInstance = allOpt.ApplyAllOptimizations(tacodeInstance); TAcode2ILcodeTranslator trans = new TAcode2ILcodeTranslator(); Console.WriteLine(tacodeInstance.ToString()); trans.Translate(tacodeInstance); var temp = trans.PrintCommands(); trans.RunProgram(); }
public void Run() { if (_runTask != null && _runTask.Status == TaskStatus.Running) { AlreadyRunningErrored(null, null); return; } RuntimeStarted(null, null); ts = new CancellationTokenSource(); _runTask = Task.Factory.StartNew(() => { Thread t = Thread.CurrentThread; using (ts.Token.Register(t.Abort)) { _ilProgram.RunProgram(); } }, ts.Token); }