Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private static void ParseOperatorToken(Outputter output, SyntaxToken operatorToken)
 {
     output.HandleLeadingTrivia(operatorToken);
     output.Add(operatorToken.ValueText);
     output.HandleTrailingTrivia(operatorToken);
 }