private bool TryAdaptArgumentList(JassMapScriptAdapterContext context, JassArgumentListSyntax argumentList, [NotNullWhen(true)] out JassArgumentListSyntax?adaptedArgumentList) { var isAdapted = false; var argumentsBuilder = ImmutableArray.CreateBuilder <IExpressionSyntax>(); foreach (var argument in argumentList.Arguments) { if (TryAdaptExpression(context, argument, out var adaptedArgument)) { argumentsBuilder.Add(adaptedArgument); isAdapted = true; } else { argumentsBuilder.Add(argument); } } if (isAdapted) { adaptedArgumentList = new JassArgumentListSyntax(argumentsBuilder.ToImmutable()); return(true); } adaptedArgumentList = null; return(false); }
public void Render(JassArgumentListSyntax argumentList) { if (argumentList.Arguments.Any()) { Render(argumentList.Arguments.First()); foreach (var argument in argumentList.Arguments.Skip(1)) { Write($"{JassSymbol.Comma} "); Render(argument); } } }
public JassCallStatementSyntax(string name, params IExpressionSyntax[] arguments) { IdentifierName = new JassIdentifierNameSyntax(name); Arguments = new JassArgumentListSyntax(arguments); }
public JassCallStatementSyntax(JassIdentifierNameSyntax identifierName, JassArgumentListSyntax arguments) { IdentifierName = identifierName; Arguments = arguments; }
public JassInvocationExpressionSyntax(JassIdentifierNameSyntax identifierName, JassArgumentListSyntax arguments) { IdentifierName = identifierName; Arguments = arguments; }
public ArgumentListSyntax Transpile(JassArgumentListSyntax argumentList) { return(SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(argumentList.Arguments.Select(argument => SyntaxFactory.Argument(Transpile(argument)))))); }
public static JassInvocationExpressionSyntax InvocationExpression(string name, JassArgumentListSyntax arguments) { return(new JassInvocationExpressionSyntax( ParseIdentifierName(name), arguments)); }
public IEnumerable <LuaExpressionSyntax> Transpile(JassArgumentListSyntax argumentList) { return(argumentList.Arguments.Select(argument => Transpile(argument, out _))); }
public JassInvocationExpressionSyntax(string functionName, params IExpressionSyntax[] arguments) { IdentifierName = new JassIdentifierNameSyntax(functionName); Arguments = new JassArgumentListSyntax(arguments); }
public static JassCallStatementSyntax CallStatement(string name, JassArgumentListSyntax arguments) { return(new JassCallStatementSyntax( ParseIdentifierName(name), arguments)); }