Ejemplo n.º 1
0
        public override object Visit(AST.ConstructorDeclaration constructorDeclaration, object data)
        {
            DefaultRegion region     = GetRegion(constructorDeclaration.StartLocation, constructorDeclaration.EndLocation);
            DefaultRegion bodyRegion = GetRegion(constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : new Point(-1, -1));

            Class c       = (Class)currentClass.Peek();

            Constructor constructor = new Constructor(constructorDeclaration.Modifier, region, bodyRegion);
            ParameterCollection parameters = new ParameterCollection();
            if (constructorDeclaration.Parameters != null) {
                foreach (AST.ParameterDeclarationExpression par in constructorDeclaration.Parameters) {
                    ReturnType parType = new ReturnType(par.TypeReference);
                    Parameter p = new Parameter(par.ParameterName, parType);
                    parameters.Add(p);
                }
            }
            constructor.Parameters = parameters;
            c.Methods.Add(constructor);
            return null;
        }
Ejemplo n.º 2
0
        public override object Visit(AST.MethodDeclaration methodDeclaration, object data)
        {
            DefaultRegion region     = GetRegion(methodDeclaration.StartLocation, methodDeclaration.EndLocation);
            DefaultRegion bodyRegion = GetRegion(methodDeclaration.EndLocation,   methodDeclaration.Body != null ? methodDeclaration.Body.EndLocation : new Point(-1, -1));

            ReturnType type = methodDeclaration.TypeReference == null ? new ReturnType("System.Void") : new ReturnType(methodDeclaration.TypeReference);
            Class c       = (Class)currentClass.Peek();

            Method method = new Method(String.Concat(methodDeclaration.Name), type, methodDeclaration.Modifier, region, bodyRegion);
            ParameterCollection parameters = new ParameterCollection();
            if (methodDeclaration.Parameters != null) {
                foreach (AST.ParameterDeclarationExpression par in methodDeclaration.Parameters) {
                    ReturnType parType = new ReturnType(par.TypeReference);
                    Parameter p = new Parameter(par.ParameterName, parType);
                    parameters.Add(p);
                }
            }
            method.Parameters = parameters;
            c.Methods.Add(method);
            return null;
        }