Beispiel #1
0
        private constructor get_constructor_header(ICSharpCode.NRefactory.Ast.ConstructorDeclaration method)
        {
            constructor proc_header = new constructor();

            proc_header.name           = new method_name();
            proc_header.name.meth_name = new ident(method.Name);
            proc_header.source_context = get_source_context(method);
            proc_header.parameters     = get_parameters(method.Parameters);
            if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Abstract) == ICSharpCode.NRefactory.Ast.Modifiers.Abstract)
            {
                proc_header.proc_attributes.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_abstract));
            }
            if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Virtual) == ICSharpCode.NRefactory.Ast.Modifiers.Virtual)
            {
                proc_header.proc_attributes.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_virtual));
            }
            if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Override) == ICSharpCode.NRefactory.Ast.Modifiers.Override)
            {
                proc_header.proc_attributes.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_override));
            }
            //if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Overloads) == ICSharpCode.NRefactory.Ast.Modifiers.Overloads)
            //	proc_header.proc_attributes.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_overload));
            if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.New) == ICSharpCode.NRefactory.Ast.Modifiers.New)
            {
                proc_header.proc_attributes.proc_attributes.Add(new procedure_attribute(proc_attribute.attr_reintroduce));
            }
            if ((method.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Static) == ICSharpCode.NRefactory.Ast.Modifiers.Static)
            {
                proc_header.class_keyword = true;
            }
            return(proc_header);
        }
Beispiel #2
0
        private procedure_definition get_constructor_declaration(ICSharpCode.NRefactory.Ast.ConstructorDeclaration method)
        {
            procedure_definition proc = new procedure_definition();

            proc.proc_header    = get_constructor_header(method);
            proc.proc_body      = get_body(method.Body);
            proc.source_context = new SourceContext(method.StartLocation.Line, method.StartLocation.Column, method.Body.EndLocation.Line, method.Body.EndLocation.Column);
            return(proc);
        }
Beispiel #3
0
            public override object VisitConstructorDeclaration(ICSharpCode.NRefactory.Ast.ConstructorDeclaration constructorDeclaration, object data)
            {
                Debug.Assert(currentType.Count > 0);
                DomType type = currentType.Peek();

                type.Add(new DomMethod(constructorDeclaration.Name,
                                       (Modifiers)constructorDeclaration.Modifier,
                                       MethodModifier.IsConstructor,
                                       new DomLocation(constructorDeclaration.StartLocation.Line, constructorDeclaration.StartLocation.Column),
                                       constructorDeclaration.Body != null ? TranslateRegion(constructorDeclaration.Body.StartLocation, constructorDeclaration.Body.EndLocation) : DomRegion.Empty));
                return(null);
            }
			public override object VisitConstructorDeclaration (ICSharpCode.NRefactory.Ast.ConstructorDeclaration constructorDeclaration, object data)
			{
				DomMethod constructor = new DomMethod ();
				constructor.Documentation = RetrieveDocumentation (constructorDeclaration.StartLocation.Line);
				constructor.Name = ".ctor";
				constructor.MethodModifier |= MethodModifier.IsConstructor;
				constructor.Location = ConvertLocation (constructorDeclaration.StartLocation);
				constructor.BodyRegion = ConvertRegion (constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : new ICSharpCode.NRefactory.Location (-1, -1));
				constructor.Modifiers = ConvertModifiers (constructorDeclaration.Modifier);
				AddAttributes (constructor, constructorDeclaration.Attributes);
				constructor.Add (ConvertParameterList (constructor, constructorDeclaration.Parameters));

				constructor.DeclaringType = typeStack.Peek ();
				typeStack.Peek ().Add (constructor);
				return null;
			}
Beispiel #5
0
        private class_members get_class_member(ICSharpCode.NRefactory.Ast.INode node)
        {
            class_members cmem = new class_members();

            if (node is ICSharpCode.NRefactory.Ast.FieldDeclaration)
            {
                ICSharpCode.NRefactory.Ast.FieldDeclaration fld = node as ICSharpCode.NRefactory.Ast.FieldDeclaration;
                cmem.access_mod = get_access_modifier(fld.Modifier);
                //if ((fld.Modifier & ICSharpCode.NRefactory.Ast.Modifiers.Const) == ICSharpCode.NRefactory.Ast.Modifiers.Const)
                //cmem.members.AddRange(get_const_declaration(fld));
                //else
                cmem.members.AddRange(get_field_declaration(fld));
            }
            else if (node is ICSharpCode.NRefactory.Ast.ConstructorDeclaration)
            {
                ICSharpCode.NRefactory.Ast.ConstructorDeclaration meth = node as ICSharpCode.NRefactory.Ast.ConstructorDeclaration;
                cmem.access_mod = get_access_modifier(meth.Modifier);
                cmem.members.Add(get_constructor_declaration(meth));
            }
            else if (node is ICSharpCode.NRefactory.Ast.MethodDeclaration)
            {
                ICSharpCode.NRefactory.Ast.MethodDeclaration meth = node as ICSharpCode.NRefactory.Ast.MethodDeclaration;
                cmem.access_mod = get_access_modifier(meth.Modifier);
                if (!meth.Body.IsNull)
                {
                    cmem.members.Add(get_method_declaration(meth));
                }
                else
                {
                    cmem.members.Add(get_method_header(meth));
                }
            }
            return(cmem);

            /*else if (node is ICSharpCode.NRefactory.Ast.EventDeclaration)
             * {
             *      ICSharpCode.NRefactory.Ast.EventDeclaration meth = node as ICSharpCode.NRefactory.Ast.EventDeclaration;
             *      cmem.access_mod = get_access_modifier(meth.Modifier);
             *      cmem.members.Add(get_event_declaration(meth));
             * }*/
        }