コード例 #1
0
 private void Verify(string outputFileName)
 {
     using (FileUnitTester fut = new FileUnitTester(outputFileName))
     {
         store.Write(fut.TextWriter);
         fut.AssertFilesEqual();
     }
 }
コード例 #2
0
 private void Verify(string outputFilename)
 {
     store.CopyClassDataTypesToTypeVariables();
     using (FileUnitTester fut = new FileUnitTester(outputFilename))
     {
         store.Write(fut.TextWriter);
         fut.AssertFilesEqual();
     }
 }
コード例 #3
0
 private void WriteTestResults(Program program, TextWriter writer)
 {
     foreach (Procedure proc in program.Procedures.Values)
     {
         proc.Write(false, writer);
         writer.WriteLine();
     }
     store.Write(writer);
 }
コード例 #4
0
ファイル: TypeTransformer.cs プロジェクト: Godzil/reko
 private void DumpStore(int iteration, System.IO.TextWriter writer)
 {
     if (writer == null)
     {
         return;
     }
     writer.WriteLine("// Store dump: iteration {0} ///////////////////////");
     store.Write(writer);
     writer.WriteLine();
     writer.Flush();
 }
コード例 #5
0
        protected override void RunTest(Program program, string outputFileName)
        {
            var listener             = new FakeDecompilerEventListener();
            ExpressionNormalizer aen = new ExpressionNormalizer(program.Architecture.PointerType);

            aen.Transform(program);
            EquivalenceClassBuilder eq = new EquivalenceClassBuilder(factory, store, listener);

            eq.Build(program);
#if OLD
            DataTypeBuilder dtb  = new DataTypeBuilder(factory, store, program.Architecture);
            TraitCollector  coll = new TraitCollector(factory, store, dtb, program);
            coll.CollectProgramTraits(program);
            sktore.BuildEquivalenceClassDataTypes(factory);
#else
            TypeCollector coll = new TypeCollector(factory, store, program, listener);
            coll.CollectTypes();

            store.BuildEquivalenceClassDataTypes(factory);
#endif

            TypeVariableReplacer tvr = new TypeVariableReplacer(store);
            tvr.ReplaceTypeVariables();

            Exception theEx = null;
            try
            {
                TypeTransformer trans = new TypeTransformer(factory, store, program);
                trans.Transform();
            } catch (Exception ex)
            {
                theEx = ex;
            }
            using (FileUnitTester fut = new FileUnitTester(outputFileName))
            {
                if (theEx != null)
                {
                    fut.TextWriter.WriteLine(theEx.Message);
                    fut.TextWriter.WriteLine(theEx.StackTrace);
                }
                foreach (Procedure proc in program.Procedures.Values)
                {
                    proc.Write(false, fut.TextWriter);
                    fut.TextWriter.WriteLine();
                }
                store.Write(fut.TextWriter);
                fut.AssertFilesEqual();
            }
        }
コード例 #6
0
 private void Verify(Program prog, string outputFilename)
 {
     using (FileUnitTester fut = new FileUnitTester(outputFilename))
     {
         if (prog != null)
         {
             foreach (Procedure proc in prog.Procedures.Values)
             {
                 proc.Write(false, fut.TextWriter);
                 fut.TextWriter.WriteLine();
             }
         }
         store.Write(fut.TextWriter);
         fut.AssertFilesEqual();
     }
 }
コード例 #7
0
 private void Verify(Program program, string outputFile)
 {
     store.CopyClassDataTypesToTypeVariables();
     using (FileUnitTester fut = new FileUnitTester(outputFile))
     {
         if (program != null)
         {
             foreach (Procedure proc in program.Procedures.Values)
             {
                 proc.Write(false, fut.TextWriter);
                 fut.TextWriter.WriteLine();
             }
         }
         store.Write(false, fut.TextWriter);
         fut.AssertFilesEqual();
     }
 }