예제 #1
0
        Method CreateMethodAccessor(IMethod member)
        {
            BooCodeBuilder builder = _context.CodeBuilder;
            Method         method  = builder.CreateMethodFromPrototype(LexicalInfo.Empty, member, TypeMemberModifiers.None);

            method.Name = "___" + member.Name;
            MethodInvocationExpression mie = builder.CreateMethodInvocation(member);

            foreach (ParameterDeclaration p in method.Parameters)
            {
                mie.Arguments.Add(builder.CreateReference(p));
            }
            if (member.ReturnType == _context.TypeSystemServices.VoidType)
            {
                method.Body.Add(mie);
            }
            else
            {
                method.Body.Add(new ReturnStatement(mie));
            }
            return(method);
        }