public List <SyntaxToken> FormatParameters(ConstructorSyntax syntax)
        {
            List <SyntaxToken>      tokens     = new List <SyntaxToken>();
            List <ParameterDetails> parameters = syntax.GetParameters();

            tokens.Add(new SyntaxToken("(", SyntaxTokens.Text));
            for (int i = 0; i < parameters.Count; i++)
            {
                if (i != 0)
                {
                    tokens.Add(new SyntaxToken(",\n\t", SyntaxTokens.Text));
                }
                else
                {
                    tokens.Add(new SyntaxToken("\n\t", SyntaxTokens.Text));
                }

                tokens.AddRange(FormatParameterModifiers(parameters[i]));

                tokens.Add(new SyntaxToken(parameters[i].Name, SyntaxTokens.Text));

                tokens.Add(Constants.Space);
                tokens.Add(Constants.KeywordAs);
                tokens.Add(Constants.Space);

                tokens.AddRange(FormatTypeDetails(parameters[i].TypeDetails));
            }
            if (parameters.Count > 0)
            {
                tokens.Add(new SyntaxToken("\n\t", SyntaxTokens.Text));
            }
            tokens.Add(new SyntaxToken(")", SyntaxTokens.Text));

            return(tokens);
        }
Пример #2
0
        public List <SyntaxToken> FormatParameters(ConstructorSyntax syntax)
        {
            List <SyntaxToken>      tokens     = new List <SyntaxToken>();
            List <ParameterDetails> parameters = syntax.GetParameters();

            tokens.Add(new SyntaxToken("(", SyntaxTokens.Text));
            for (int i = 0; i < parameters.Count; i++)
            {
                if (i != 0)
                {
                    tokens.Add(new SyntaxToken($",{Environment.NewLine}\t", SyntaxTokens.Text));
                }
                else
                {
                    tokens.Add(new SyntaxToken($"{Environment.NewLine}\t", SyntaxTokens.Text));
                }

                // need to check out first as out is also by ref
                tokens.AddRange(FormatParameterModifiers(parameters[i]));
                tokens.AddRange(FormatTypeDetails(parameters[i].TypeDetails));

                tokens.Add(new SyntaxToken(" ", SyntaxTokens.Text));
                tokens.Add(new SyntaxToken(parameters[i].Name, SyntaxTokens.Text));
            }
            if (parameters.Count > 0)
            {
                tokens.Add(new SyntaxToken("\n\t", SyntaxTokens.Text));
            }
            tokens.Add(new SyntaxToken(")", SyntaxTokens.Text));

            return(tokens);
        }
Пример #3
0
 public BoundConstructor(
     List<BoundParameter> boundParameters,
     BoundScopeStatement boundStatements,
     ConstructorSyntax syntax)
     : base(syntax)
 {
     Parameter = boundParameters;
     Statements = boundStatements;
 }
Пример #4
0
        public SyntaxTokenCollection Format(ConstructorSyntax syntax)
        {
            SyntaxTokenCollection tokens = new SyntaxTokenCollection();

            SyntaxToken inheritanceModifier = FormatInheritance(syntax);

            tokens.AddRange(FormatVisibility(syntax));
            if (inheritanceModifier != null)
            {
                tokens.Add(Constants.Space);
                tokens.Add(inheritanceModifier);
            }
            tokens.Add(Constants.Space);
            tokens.Add(new SyntaxToken(syntax.GetIdentifier(), SyntaxTokens.Text));
            tokens.AddRange(FormatParameters(syntax));

            return(tokens);
        }
Пример #5
0
 public SyntaxToken FormatInheritance(ConstructorSyntax syntax)
 {
     return(FormatInheritance(syntax.GetInheritance()));
 }
Пример #6
0
 public List <SyntaxToken> FormatVisibility(ConstructorSyntax syntax)
 {
     return(FormatVisibility(syntax.GetVisibility()));
 }
Пример #7
0
 public CSharpConstructorFormatter(ConstructorSyntax syntax)
 {
     _syntax    = syntax;
     _signiture = syntax.Method.Signiture;
 }
Пример #8
0
 public virtual void Visit(ConstructorSyntax constructorSyntax)
 {
     foreach (var parameterSyntax in constructorSyntax.Parameter)
     {
         Visit(parameterSyntax);
     }
     Visit(constructorSyntax.Statements);
 }
Пример #9
0
 private BoundConstructor BindConstructor(ConstructorSyntax syntax)
 {
     _contextService.EnterScope();
     var boundParameters = syntax.Parameter.Select(BindParameter).ToList();
     var boundStatements = BindScope(syntax.Statements);
     _contextService.ExitScope();
     return new BoundConstructor(boundParameters, boundStatements, syntax);
 }