Exemplo n.º 1
0
 public virtual void VisitFunctionLikeDefineDirectiveTrivia(FunctionLikeDefineDirectiveTriviaSyntax node)
 {
     DefaultVisit(node);
 }
        private static List <SyntaxToken> ReplaceParameters(List <List <SyntaxToken> > expandedArguments, FunctionLikeDefineDirectiveTriviaSyntax directive)
        {
            var parameters = directive.Parameters.Parameters;

            if (directive.Body.Any())
            {
                return(directive.Body
                       .SelectMany((x, i) =>
                {
                    if (x.Kind == SyntaxKind.IdentifierToken)
                    {
                        var parameterIndex = -1;
                        for (var index = 0; index < parameters.Count; index++)
                        {
                            var parameter = parameters[index];
                            if (parameter.Text == x.Text)
                            {
                                parameterIndex = index;
                                break;
                            }
                        }
                        if (parameterIndex != -1)
                        {
                            return expandedArguments[parameterIndex];
                        }
                    }
                    return new List <SyntaxToken> {
                        x
                    };
                })
                       .ToList());
            }

            return(new List <SyntaxToken>());
        }
Exemplo n.º 3
0
 public virtual void VisitFunctionLikeDefineDirectiveTrivia(FunctionLikeDefineDirectiveTriviaSyntax node)
 {
     DefaultVisit(node);
 }
        private static List<SyntaxToken> ReplaceParameters(List<List<SyntaxToken>> expandedArguments, FunctionLikeDefineDirectiveTriviaSyntax directive)
        {
            var parameters = directive.Parameters.Parameters;

            if (directive.Body.Any())
                return directive.Body
                    .SelectMany((x, i) =>
                    {
                        if (x.Kind == SyntaxKind.IdentifierToken)
                        {
                            var parameterIndex = -1;
                            for (var index = 0; index < parameters.Count; index++)
                            {
                                var parameter = parameters[index];
                                if (parameter.Text == x.Text)
                                {
                                    parameterIndex = index;
                                    break;
                                }
                            }
                            if (parameterIndex != -1)
                            {
                                return expandedArguments[parameterIndex];
                            }
                        }
                        return new List<SyntaxToken> { x };
                    })
                    .ToList();

            return new List<SyntaxToken>();
        }