public static void ParseInvocationExpressionDeclaration(Outputter output, Expression expression, InvocationExpressionSyntax invocationExpressionSyntax) { output.HandleLeadingTrivia(invocationExpressionSyntax); bool handled = false; IdentifierNameSyntax identifierNameSyntax = invocationExpressionSyntax.Expression as IdentifierNameSyntax; if (identifierNameSyntax != null) { output.HandleLeadingTrivia(identifierNameSyntax); output.Add(identifierNameSyntax.Identifier.Text); output.HandleTrailingTrivia(identifierNameSyntax); handled = true; } MemberAccessExpressionSyntax memberAccessExpressionSyntax = invocationExpressionSyntax.Expression as MemberAccessExpressionSyntax; if (memberAccessExpressionSyntax != null) { output.HandleLeadingTrivia(memberAccessExpressionSyntax); string expressionString = memberAccessExpressionSyntax.Expression.ToString() + memberAccessExpressionSyntax.OperatorToken + memberAccessExpressionSyntax.Name; output.Add(expressionString); output.HandleTrailingTrivia(memberAccessExpressionSyntax); handled = true; } if (!handled) { int k = 15; } ParseOperatorToken(output, invocationExpressionSyntax.ArgumentList.OpenParenToken); bool first = true; foreach (ArgumentSyntax argument in invocationExpressionSyntax.ArgumentList.Arguments) { if (!first) { output.Add(", "); } first = false; expression.ParseExpressionSyntax(argument.Expression); } ParseOperatorToken(output, invocationExpressionSyntax.ArgumentList.CloseParenToken); output.HandleTrailingTrivia(invocationExpressionSyntax); }
public Outputter Convert(string filename) { string source = File.ReadAllText(filename); CSharpParseOptions parseOptions = new CSharpParseOptions(LanguageVersion.CSharp7, DocumentationMode.Parse); var tree = CSharpSyntaxTree.ParseText(source, parseOptions); _output = new Outputter(); _expression = new Expression(_output); ParseCompilationUnit((CompilationUnitSyntax)tree.GetRoot()); return(_output); }
private static void ParseOperatorToken(Outputter output, SyntaxToken operatorToken) { output.HandleLeadingTrivia(operatorToken); output.Add(operatorToken.ValueText); output.HandleTrailingTrivia(operatorToken); }