private SyntaxNode myExtSyntactical(SyntaxNode node, Scope scope, LexicalExtension <SyntaxToken> extension) { Assert.IsTrue(node is MethodDeclarationSyntax); var method = node as MethodDeclarationSyntax; Assert.IsTrue(method.Identifier.ToString() == "__extension"); var argString = RoslynCompiler.TokensToString(extension.Arguments); Assert.IsTrue(argString == "(int i) "); var arguments = CSharp.ParseParameterList(argString); var codeString = RoslynCompiler.TokensToString(extension.Body); var codeNode = CSharp.ParseStatement(codeString); Assert.IsTrue(codeNode is BlockSyntax); var code = codeNode as BlockSyntax; return(method .WithIdentifier(CSharp.ParseToken("my_ext_s")) .WithParameterList(arguments) .WithBody(code)); }