Signed-off-by: Jean Privat <jean@pryen.org>
init
do
+ keep_ast = true
super("nitdoc")
option_context.add_option(opt_dir)
end
generate_icode(tc)
tc.check_errors
+
+ if not tc.keep_ast then clear_ast
end
end
+redef class ToolContext
+ # Should the AST be preserved in source modules after syntax processing?
+ # Default is false.
+ readable writable var _keep_ast: Bool = false
+end
class MMSrcModule
special MMModule
# A source module can locate AST nodes of related MM entities
+ # Once a source module AST is no more needed, _nodes is set to null
+ # See ToolContext::keep_ast property in syntax.nit for details
var _nodes: nullable HashMap[Object, nullable PNode] = new HashMap[Object, nullable PNode]
+ # Release the AST
+ fun clear_ast do _nodes = null
+
# The related AST node
fun node: AModule do return nodes(self).as(AModule)