示例#1
0
 public override ClassDeclarationSyntax Apply(ClassDeclarationSyntax node, INamedTypeSymbol symbol, CancellationToken cancellationToken)
 {
     return(node.AddMembers(
                F.PropertyDeclaration(
                    F.ParseTypeName(node.Identifier.Text), name
                    ).WithAccessorList(
                    F.AccessorList().AddAccessors(F.AccessorDeclaration(K.GetAccessorDeclaration))
                    ).WithModifiers(
                    F.TokenList(F.Token(K.PublicKeyword), F.Token(K.StaticKeyword))
                    ).WithInitializer(
                    F.EqualsValueClause(F.ObjectCreationExpression(F.ParseTypeName(node.Identifier.Text)))
                    ).NormalizeWhitespace()
                ));
 }
示例#2
0
        public void Add(VariableDeclaratorSyntax node)
        {
            var equalsValue = SF.EqualsValueClause(VisitExpression(node.Initializer.Value));

            node = SF.VariableDeclarator(node.Identifier, null, equalsValue);

            if (Variables.ContainsKey(node.Identifier.Text))
            {
                // Temporary workaround for variables declaration in loops
                Update(node.Identifier.Text, node.Initializer.Value);
            }
            else
            {
                Variables.Add(node.Identifier.Text, node.Initializer.Value);
            }
        }
示例#3
0
        public static LocalDeclarationStatementSyntax LocalVairableDeclaration(
            this TypeSyntax type,
            string name,
            ExpressionSyntax value = null)
        {
            var declarator = SF.VariableDeclarator(SF.Identifier(name));

            if (value != null)
            {
                declarator = declarator.WithInitializer(SF.EqualsValueClause(value));
            }

            var delaration = SF.LocalDeclarationStatement(
                SF.VariableDeclaration(type)
                .WithVariables(SF.SingletonSeparatedList(declarator)));

            return(delaration);
        }