/// <summary>
		/// Creates a default constructor for the class.
		/// The constructor has the region of the class and a documentation comment saying
		/// it is a default constructor.
		/// </summary>
		public static Constructor CreateDefault(IClass c)
		{
			if (c == null)
				throw new ArgumentNullException("c");
			
			Constructor con = new Constructor(ModifierEnum.Public, c.Region, c.Region, c);
			con.Documentation = "Default constructor of " + c.Name;
			return con;
		}
Beispiel #2
0
		/// <summary>
		/// Creates a default constructor for the class.
		/// The constructor has the region of the class and a documentation comment saying
		/// it is a default constructor.
		/// </summary>
		public static Constructor CreateDefault(IClass c)
		{
			if (c == null)
				throw new ArgumentNullException("c");
			
			ModifierEnum modifiers = ModifierEnum.Synthetic;
			if (c.IsAbstract)
				modifiers |= ModifierEnum.Protected;
			else
				modifiers |= ModifierEnum.Public;
			DomRegion region = new DomRegion(c.Region.BeginLine, c.Region.BeginColumn, c.Region.BeginLine, c.Region.BeginColumn);
			Constructor con = new Constructor(modifiers, region, region, c);
			con.Documentation = "Default constructor of " + c.Name;
			return con;
		}
Beispiel #3
0
		public override object VisitConstructorDeclaration(NRefactoryAST.ConstructorDeclaration constructorDeclaration, object data)
		{
			DomRegion region     = GetRegion(constructorDeclaration.StartLocation, constructorDeclaration.EndLocation);
			DomRegion bodyRegion = GetRegion(constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : RefParser.Location.Empty);
			DefaultClass c = GetCurrentClass();
			
			Constructor constructor = new Constructor(ConvertModifier(constructorDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
			constructor.Documentation = GetDocumentation(region.BeginLine, constructorDeclaration.Attributes);
			ConvertAttributes(constructorDeclaration, constructor);
			if (constructorDeclaration.Parameters != null) {
				foreach (NRefactoryAST.ParameterDeclarationExpression par in constructorDeclaration.Parameters) {
					constructor.Parameters.Add(CreateParameter(par));
				}
			}
			c.Methods.Add(constructor);
            mapConstructor(constructorDeclaration, constructor);
			return null;
		}
		/// <summary>
		/// Creates a default constructor for the class.
		/// The constructor has the region of the class and a documentation comment saying
		/// it is a default constructor.
		/// </summary>
		public static Constructor CreateDefault(IClass c)
		{
			Constructor con = new Constructor(ModifierEnum.Public, c.Region, c.Region, c);
			con.Documentation = "Default constructor of " + c.Name;
			return con;
		}
		/// <summary>
		/// Walks a function definition.
		/// </summary>
		public override bool Walk(FunctionDefinition node)
		{
			if (node.Body == null) {
				return false;
			}
			
			bool ignoreFirstMethodParameter = true;
			IClass c = currentClass;
			if (currentClass == null) {
				// Walking a global method.
				CreateGlobalClass();
				c = globalClass;
				ignoreFirstMethodParameter = false;
			}
			
			// Create method.
			string methodName = node.Name;
			DomRegion bodyRegion = GetBodyRegion(node.Body, node.Header);
			DomRegion region = GetMethodRegion(node);
			
			DefaultMethod method;
			if (methodName == "__init__") {
				method = new Constructor(ModifierEnum.Public, region, bodyRegion, c);
			} else {
				method = new DefaultMethod(methodName, new DefaultReturnType(c), ModifierEnum.Public, region, bodyRegion, c);
			}
			foreach (IParameter parameter in ConvertParameters(node.Parameters, ignoreFirstMethodParameter)) {
				method.Parameters.Add(parameter);
			}
			c.Methods.Add(method);
			return false;
		}
Beispiel #6
0
		protected override void Walk(MethodDefinition methodDef)
		{
			IClass c = currentClass;
			if (currentClass == null) {
				// Walking a global method.
				CreateGlobalClass();
				c = globalClass;
			}
			
			// Create method.
			string methodName = methodDef.Name;
			DomRegion region = GetMethodRegion(methodDef);
			DomRegion bodyRegion = GetMethodBodyRegion(methodDef.Body.Location, region);
			
			DefaultMethod method;
			if (methodName == "initialize") {
				method = new Constructor(ModifierEnum.Public, region, bodyRegion, c);
			} else {
				method = new DefaultMethod(methodName, new DefaultReturnType(c), ModifierEnum.Public, region, bodyRegion, c);
			}
			foreach (IParameter parameter in ConvertParameters(methodDef.Parameters)) {
				method.Parameters.Add(parameter);
			}
			c.Methods.Add(method);
		}