Пример #1
0
        public override IEnumerable <SyntaxNode> GetSyntax()
        {
            var method = SyntaxFactory.MethodDeclaration
                         (
                SyntaxFactory.PredefinedType
                (
                    SyntaxFactory.Token(SyntaxKind.VoidKeyword)
                ),
                SyntaxFactory.Identifier(Name)
                         )
                         .WithModifiers(SyntaxHelpers.GetModifiers(Modifiers));

            if (!string.IsNullOrWhiteSpace(Comment))
            {
                method = method.WithLeadingTrivia(GetDocumentationTriviaSyntax());
            }

            var block = SyntaxFactory.Block();

            foreach (var port in Ports.Where(x => x.PortType == Enums.PortType.Out))
            {
                foreach (var connectedPort in port.ConnectedPorts.Cast <CSPort>())
                {
                    block = block.AddStatements(connectedPort.GetStatementSyntax().ToArray());
                }
            }

            return(new[] { method.WithBody(block) });
        }