internal override bool Resolve(Environment env) { set_prefix(); set_function_type(); if (func_obj.name != null && func_obj.name != String.Empty) { env.Enter(String.Empty, Symbol.CreateSymbol(func_obj.name), this); } env.BeginScope(String.Empty); ((ICanModifyContext)func_obj).PopulateContext(env, String.Empty); FormalParameterList p = func_obj.parameters; if (p != null) { p.Resolve(env); } Block body = func_obj.body; if (body != null) { body.Resolve(env); } locals = env.CurrentLocals(String.Empty); env.EndScope(String.Empty); return(true); }
internal override bool Resolve(Environment env) { set_function_type(); env.BeginScope(String.Empty); lexical_depth = env.Depth(String.Empty); ((ICanModifyContext)func_obj).PopulateContext(env, String.Empty); FormalParameterList p = func_obj.parameters; if (p != null) { p.Resolve(env); } Block body = func_obj.body; if (body != null) { body.Resolve(env); } locals = env.CurrentLocals(String.Empty); env.EndScope(String.Empty); return(true); }