Esempio n. 1
0
        public Property AddReadOnlyProperty(string name, IType type)
        {
            var property = _codeBuilder.CreateProperty(name, type);

            property.Getter = _codeBuilder.CreateMethod("get_" + name, type, TypeMemberModifiers.Public);
            _cd.Members.Add(property);
            return(property);
        }
Esempio n. 2
0
        Method CreateFieldAccessor(IField member)
        {
            BooCodeBuilder builder = _context.CodeBuilder;
            Method         method  = builder.CreateMethod("___" + member.Name, member.Type, TypeMemberModifiers.None);

            method.Body.Add(
                new ReturnStatement(
                    builder.CreateReference(member)));
            return(method);
        }
Esempio n. 3
0
		public BooMethodBuilder(BooCodeBuilder codeBuilder, string name, IType returnType, TypeMemberModifiers modifiers)
		{
			if (null == codeBuilder)
				throw new ArgumentNullException("codeBuilder");
			if (null == name)
				throw new ArgumentNullException("name");
			
			_codeBuilder = codeBuilder;			
			_method = _codeBuilder.CreateMethod(name, returnType, modifiers);
		}
Esempio n. 4
0
        public BooMethodBuilder(BooCodeBuilder codeBuilder, string name, IType returnType, TypeMemberModifiers modifiers)
        {
            if (null == codeBuilder)
            {
                throw new ArgumentNullException("codeBuilder");
            }
            if (null == name)
            {
                throw new ArgumentNullException("name");
            }

            _codeBuilder = codeBuilder;
            _method      = _codeBuilder.CreateMethod(name, returnType, modifiers);
        }
Esempio n. 5
0
        Method CreateFieldSetter(IField member)
        {
            BooCodeBuilder       builder = _context.CodeBuilder;
            Method               method  = builder.CreateMethod("___" + member.Name, _context.TypeSystemServices.VoidType, TypeMemberModifiers.None);
            ParameterDeclaration value   = builder.CreateParameterDeclaration(1, "value", member.Type);

            method.Parameters.Add(value);
            method.Body.Add(
                builder.CreateFieldAssignment(
                    LexicalInfo.Empty,
                    member,
                    builder.CreateReference(value)));
            return(method);
        }