contrib/pep8analysis: move file output to main module
authorAlexis Laferrière <alexis.laf@xymus.net>
Mon, 3 Feb 2014 22:03:17 +0000 (17:03 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Mon, 3 Feb 2014 22:03:17 +0000 (17:03 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

contrib/pep8analysis/src/ast/pretty_instructions.nit
contrib/pep8analysis/src/cfg/cfg.nit
contrib/pep8analysis/src/pep8analysis.nit

index 1a49886..7616b7e 100644 (file)
@@ -16,12 +16,6 @@ redef class AnalysisManager
        do
                var ast = super
 
-               if ast != null and opt_ast.value then
-                       var printer = new ASTPrinter
-                       printer.enter_visit(ast)
-                       print printer.str
-               end
-
                return ast
        end
 end
index ac7d86f..0acf2de 100644 (file)
@@ -39,12 +39,6 @@ redef class AnalysisManager
                        end
                end
 
-               if opt_cfg.value or opt_cfg_long.value then
-                       var of = new OFStream.open("cfg.dot")
-                       cfg.print_dot(of, opt_cfg_long.value)
-                       of.close
-               end
-
                verify_cfg_sanity(cfg)
 
                return cfg
index 17e2232..ecc6774 100644 (file)
@@ -53,6 +53,15 @@ redef class AnalysisManager
 
                        if failed then continue
 
+                       var mangled_filename = filename.replace("/","-").replace("..","up")
+                       if opt_ast.value then
+                               var printer = new ASTPrinter
+                               printer.enter_visit(ast)
+                               var of = new OFStream.open("{dir}/{mangled_filename.replace(".pep", ".ast.dot")}")
+                               of.write printer.str
+                               of.close
+                       end
+
                        # Build program model
                        var model = build_model(ast)
 
@@ -66,6 +75,12 @@ redef class AnalysisManager
                        # Create CFG
                        var cfg = build_cfg(model)
 
+                       if opt_cfg.value or opt_cfg_long.value then
+                               var of = new OFStream.open("{dir}/{mangled_filename.replace(".pep", ".cfg.dot")}")
+                               cfg.print_dot(of, opt_cfg_long.value)
+                               of.close
+                       end
+
                        if failed then continue
 
                        # Run analyses
@@ -80,7 +95,7 @@ redef class AnalysisManager
                        do_types_analysis(ast, cfg)
 
                        # Print results
-                       var of = new OFStream.open("{dir}/{filename.replace("/","-").replace(".pep",".dot")}")
+                       var of = new OFStream.open("{dir}/{mangled_filename.replace(".pep",".analysis.dot")}")
                        cfg.print_dot(of, true)
                        of.close
                end