X-Git-Url: http://nitlanguage.org diff --git a/src/abstracttool.nit b/src/abstracttool.nit index cbf42ce..d76a3f8 100644 --- a/src/abstracttool.nit +++ b/src/abstracttool.nit @@ -21,10 +21,10 @@ package abstracttool import mmloader import syntax -import nit_version +private import nit_version -class AbstractCompiler -special ToolContext +abstract class AbstractCompiler + super ToolContext init(tool_name: String) do @@ -79,27 +79,26 @@ special ToolContext fun dump_context_info do for mod in module_hierarchy do - mod.dump_module_info + mod.dump_module_info(log_directory) end var tab = new Array[MMModule] tab.add_all(module_hierarchy) var name = module_hierarchy.select_smallests(tab).join("-") - var f = new OFStream.open("{name}.full_class_hierarchy.new.dot") + var f = new OFStream.open("{log_directory}/{name}.full_class_hierarchy.new.dot") f.write(class_hierarchy.to_dot) f.close - f = new OFStream.open("{name}.module_hierarchy.new.dot") + f = new OFStream.open("{log_directory}/{name}.module_hierarchy.new.dot") f.write(module_hierarchy.to_dot) f.close end end redef class MMModule - fun dump_module_info + fun dump_module_info(directory: String) do - var p = filename.file_path - var fname = "{p}/{name}" + var fname = "{directory}/{name}" var f = new OFStream.open("{fname}.class_hierarchy.new.dot") f.write(class_specialization_hierarchy.to_dot) f.close @@ -117,10 +116,24 @@ redef class MMLocalClass fun dump_properties(file: OStream) do file.write("class {self}\n") - for p in global_properties do - var lp = self[p] - file.write("\t{lp}{lp.signature_for(get_type)}\n") + if global.visibility_level == 3 and not self == global.intro then + file.write("\tclass not visible in this module\n") + else if mmmodule.visibility_for(global.mmmodule) == 0 then + file.write("\tclass is defined later in the hierarchy\n") + else + for p in global_properties do + var lp = self[p] + file.write("\t{lp}{lp.signature_for(get_type)}\n") + end end file.write("end # {self}\n") end end + +redef class AAnnotations + # Shortcut annotations and skip them completely + redef fun visit_all(v) + do + # Do notning + end +end