Пример #1
0
        private static SyntaxNode ProcessAsynch(SyntaxNode node, Scope scope, SyntacticalExtension <SyntaxNode> extension)
        {
            if (extension.Kind == ExtensionKind.Code)
            {
                var result = AsynchTemplate
                             .ReplaceNodes(AsynchTemplate
                                           .DescendantNodes()
                                           .OfType <BlockSyntax>(),
                                           (oldNode, newNode) => extension.Body);

                var document = scope.GetDocument <SyntaxToken, SyntaxNode, SemanticModel>();
                document.change(node.Parent, RoslynCompiler.AddStatement(ContextVariable, before: node));

                return(result);
            }

            scope.AddError("asynch01", "asynch does not return a value", node);
            return(node);
        }