Skip to content

PowerShell Roslyn Code Quoter Tool - generating syntax tree API calls that result in a given C# program.

Notifications You must be signed in to change notification settings

dfinke/PowerShell_Roslyn_Code_Quoter

Repository files navigation

PowerShell Roslyn Code Quoter

Transcoded from Kirill Osenkov http://code.msdn.microsoft.com/Roslyn-Code-Quoter-f724259e

Blog post http://blogs.msdn.com/b/kirillosenkov/archive/2012/07/22/roslyn-code-quoter-tool-generating-syntax-tree-api-calls-for-any-c-program.aspx

Note

Update ReferencedAssemblies.ps1 to point to where you have the Roslyn CTP installed.

Run It

.\quoting.ps1 "var x = 1;"

Result

Source        : var x = 1;
Evaluated     : var x = 1;
GeneratedCode : Syntax.CompilationUnit()
                .WithMembers(
                    Syntax.List<MemberDeclarationSyntax>(
                        Syntax.FieldDeclaration(
                            Syntax.VariableDeclaration(
                                Syntax.IdentifierName(
                                    Syntax.Identifier(
                                        @"var",
                                        Syntax.TriviaList(
                                            Syntax.Space))))
                            .WithVariables(
                                Syntax.SeparatedList<VariableDeclaratorSyntax>(
                                    Syntax.VariableDeclarator(
                                        Syntax.Identifier(
                                            @"x",
                                            Syntax.TriviaList(
                                                Syntax.Space)))
                                    .WithInitializer(
                                        Syntax.EqualsValueClause(
                                            Syntax.LiteralExpression(
                                                SyntaxKind.NumericLiteralExpression,
                                                Syntax.Literal(
                                                    Syntax.TriviaList(),
                                                    @"1",
                                                    1,
                                                    Syntax.TriviaList())))
                                        .WithEqualsToken(
                                            Syntax.Token(
                                                SyntaxKind.EqualsToken,
                                                Syntax.TriviaList(
                                                    Syntax.Space)))))))
                        .WithSemicolonToken(
                            Syntax.Token(
                                SyntaxKind.SemicolonToken))))
                .WithEndOfFileToken(
                    Syntax.Token(
                        SyntaxKind.EndOfFileToken))
AreEqual      : True

About

PowerShell Roslyn Code Quoter Tool - generating syntax tree API calls that result in a given C# program.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published