public virtual void VisitFunctionCallSyntax(FunctionCallSyntax syntax) { this.Visit(syntax.Name); this.Visit(syntax.OpenParen); this.VisitNodes(syntax.Arguments); this.Visit(syntax.CloseParen); }
protected virtual SyntaxBase ReplaceFunctionCallSyntax(FunctionCallSyntax syntax) { var hasChanges = TryRewriteStrict(syntax.Name, out var name); hasChanges |= TryRewriteStrict(syntax.OpenParen, out var openParen); hasChanges |= TryRewriteStrict(syntax.Arguments, out var arguments); hasChanges |= TryRewriteStrict(syntax.CloseParen, out var closeParen); if (!hasChanges) { return(syntax); } return(new FunctionCallSyntax(name, openParen, arguments, closeParen)); }
public static ForSyntax CreateRangedForSyntax(string indexIdentifier, SyntaxBase count, SyntaxBase body) { // generates "range(0, <count>)" var rangeSyntax = new FunctionCallSyntax( CreateIdentifier("range"), LeftParenToken, new FunctionArgumentSyntax[] { new FunctionArgumentSyntax( new IntegerLiteralSyntax(CreateToken(TokenType.Integer, "0"), 0), CommaToken), new FunctionArgumentSyntax(count, null), }, RightParenToken); return(CreateForSyntax(indexIdentifier, rangeSyntax, body)); }
void ISyntaxVisitor.VisitFunctionCallSyntax(FunctionCallSyntax syntax) => ReplaceCurrent(syntax, ReplaceFunctionCallSyntax);
public static bool NameEquals(this FunctionCallSyntax funcSyntax, string compareTo) => LanguageConstants.IdentifierComparer.Equals(funcSyntax.Name.IdentifierName, compareTo);