Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 5
0
 public JassInvocationExpressionSyntax(JassIdentifierNameSyntax identifierName, JassArgumentListSyntax arguments)
 {
     IdentifierName = identifierName;
     Arguments      = arguments;
 }
Exemplo n.º 6
0
 public ArgumentListSyntax Transpile(JassArgumentListSyntax argumentList)
 {
     return(SyntaxFactory.ArgumentList(SyntaxFactory.SeparatedList(argumentList.Arguments.Select(argument => SyntaxFactory.Argument(Transpile(argument))))));
 }
Exemplo n.º 7
0
 public static JassInvocationExpressionSyntax InvocationExpression(string name, JassArgumentListSyntax arguments)
 {
     return(new JassInvocationExpressionSyntax(
                ParseIdentifierName(name),
                arguments));
 }
Exemplo n.º 8
0
 public IEnumerable <LuaExpressionSyntax> Transpile(JassArgumentListSyntax argumentList)
 {
     return(argumentList.Arguments.Select(argument => Transpile(argument, out _)));
 }
Exemplo n.º 9
0
 public JassInvocationExpressionSyntax(string functionName, params IExpressionSyntax[] arguments)
 {
     IdentifierName = new JassIdentifierNameSyntax(functionName);
     Arguments      = new JassArgumentListSyntax(arguments);
 }
Exemplo n.º 10
0
 public static JassCallStatementSyntax CallStatement(string name, JassArgumentListSyntax arguments)
 {
     return(new JassCallStatementSyntax(
                ParseIdentifierName(name),
                arguments));
 }