Beispiel #1
0
        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);
        }