Exemplo n.º 1
0
        static void GenerateFacts(ClassAndMethodVisitor visitor)
        {
            StreamWriter tacLogSW     = new StreamWriter(Path.Combine(ConfigParams.LogDir, "tac_log.txt"));
            StreamWriter factGenLogSW = new StreamWriter(Path.Combine(ConfigParams.LogDir, "factgen_log.txt"));

            factGen = new FactGenerator(tacLogSW, factGenLogSW);

            factGen.classes           = rtaAnalyzer.classes;
            factGen.methods           = rtaAnalyzer.methods;
            factGen.types             = rtaAnalyzer.types;
            factGen.allocClasses      = rtaAnalyzer.allocClasses;
            factGen.entryPtMethods    = rtaAnalyzer.entryPtMethods;
            factGen.addrTakenInstFlds = rtaAnalyzer.addrTakenInstFlds;
            factGen.addrTakenStatFlds = rtaAnalyzer.addrTakenStatFlds;
            factGen.addrTakenMethods  = rtaAnalyzer.addrTakenMethods;
            factGen.addrTakenLocals   = rtaAnalyzer.addrTakenLocals;

            factGen.GenerateTypeAndMethodFacts();
            factGen.GenerateChaFacts();
            visitor.SetupRTAAnalyzer(null);
            visitor.SetupFactGenerator(factGen);
            foreach (ITypeDefinition ty in rtaAnalyzer.classes)
            {
                visitor.Traverse(ty);
            }
            factGen.CheckDomX();
            tacLogSW.Close();
        }
Exemplo n.º 2
0
 public void SetupFactGenerator(FactGenerator factGen)
 {
     this.factGen = factGen;
 }