Ejemplo n.º 1
0
 public override void visit(procedure_attribute _procedure_attribute)
 {
     if (_procedure_attribute.source_context != null)
     {
         AddPossibleComments(_procedure_attribute, true, true);
     }
 }
 public procedure_header NewProcedureHeader(attribute_list attrlist, procedure_header nprh,
                                            procedure_attribute forw, LexLocation loc)
 {
     if (nprh.proc_attributes == null)
     {
         nprh.proc_attributes = new procedure_attributes_list();
     }
     nprh.proc_attributes.Add(forw, forw.source_context);
     nprh.attributes     = attrlist;
     nprh.source_context = loc;
     return(nprh);
 }
        private void ExtendedWriteAccessorDesugaring(write_accessor_name write_accessor,
                                                     simple_property simple_property,
                                                     class_members members)
        {
            var write_accessor_procedure = write_accessor.pr as procedure_definition;

            //extended indexed property
            if (simple_property.parameter_list != null)
            {
                var proc_header_params = new List <ident>();
                var proc_header_types  = new List <type_definition>();

                foreach (var param in simple_property.parameter_list.parameters)
                {
                    foreach (var ident in param.names.idents)
                    {
                        proc_header_params.Add(ident);
                        proc_header_types.Add(param.type);
                    }
                }
                proc_header_params.Add(new ident("value"));
                proc_header_types.Add(simple_property.property_type);

                write_accessor_procedure.proc_header.parameters =
                    SyntaxTreeBuilder.BuildFormalParameters(
                        proc_header_params,
                        proc_header_types);
            }
            else
            {
                write_accessor_procedure.proc_header.parameters.params_list[0].vars_type = simple_property.property_type;
            }

            members.Add(write_accessor_procedure);

            if (simple_property.attr == definition_attribute.Static)
            {
                write_accessor_procedure.proc_header.class_keyword = true;
                var proc_attr = new procedure_attribute(proc_attribute.attr_static);
                proc_attr.source_context = write_accessor_procedure.proc_header.source_context;
                write_accessor_procedure.proc_header.proc_attributes = new procedure_attributes_list(proc_attr);
            }
        }
        private void ExtendedReadAccessorDesugaring(read_accessor_name read_accessor,
                                                    simple_property simple_property,
                                                    class_members members)
        {
            var read_accessor_procedure = read_accessor.pr as procedure_definition;
            var func_header             = (read_accessor_procedure.proc_header as function_header);

            func_header.return_type = simple_property.property_type;

            //extended indexed property
            if (simple_property.parameter_list != null)
            {
                var func_header_params = new List <ident>();
                var func_header_types  = new List <type_definition>();
                foreach (var param in simple_property.parameter_list.parameters)
                {
                    foreach (var ident in param.names.idents)
                    {
                        func_header_params.Add(ident);
                        func_header_types.Add(param.type);
                    }
                }
                func_header.parameters =
                    SyntaxTreeBuilder.BuildFormalParameters(
                        func_header_params,
                        func_header_types);
            }

            members.Add(read_accessor_procedure);

            if (simple_property.attr == definition_attribute.Static)
            {
                read_accessor_procedure.proc_header.class_keyword = true;
                var proc_attr = new procedure_attribute(proc_attribute.attr_static);
                proc_attr.source_context = read_accessor_procedure.proc_header.source_context;
                read_accessor_procedure.proc_header.proc_attributes = new procedure_attributes_list(proc_attr);
            }
        }
Ejemplo n.º 5
0
 public override void visit(procedure_attribute _procedure_attribute)
 {
     text = "Attribute: " + _procedure_attribute.attribute_type.ToString();
 }
Ejemplo n.º 6
0
 public virtual void visit(procedure_attribute _procedure_attribute)
 {
     DefaultVisit(_procedure_attribute);
 }
Ejemplo n.º 7
0
		public virtual void post_do_visit(procedure_attribute _procedure_attribute)
		{
		}
Ejemplo n.º 8
0
		public override void visit(procedure_attribute _procedure_attribute)
		{
			DefaultVisit(_procedure_attribute);
			pre_do_visit(_procedure_attribute);
			post_do_visit(_procedure_attribute);
		}
Ejemplo n.º 9
0
 public virtual void visit(procedure_attribute _procedure_attribute)
 {
 }
Ejemplo n.º 10
0
		public virtual void visit(procedure_attribute _procedure_attribute)
		{
		}
		public virtual void visit(procedure_attribute _procedure_attribute)
		{
			DefaultVisit(_procedure_attribute);
		}
Ejemplo n.º 12
0
 public override void visit(procedure_attribute _procedure_attribute)
 {
 }
Ejemplo n.º 13
0
		public override void visit(procedure_attribute _procedure_attribute)
		{
			executer.visit(_procedure_attribute);
			if (_procedure_attribute.attributes != null)
				this.visit((dynamic)_procedure_attribute.attributes);
		}