         visitor = new GatherImports(filename, top_path)
         visitor.visit(tree)
         visitor.importList
-        +        

        tree

exports.compile = (tree, base_output_filename, source_filename, options) ->
        abi = if (options.target is "armv7" or options.target is "armv7s") then new ArmABI() else new ABI()

        tree = insert_toplevel_func tree, source_filename


# 
#   void _ejs_sret_func (ejsval* sret, ejsval env, ejsval this, uint32_t argc, ejsval* args)
# 
class SRetABI extends ABI
        constructor: () ->
                super
                @ejs_return_type = types.void
