Exemple #1
0
 public void Render(JassCallStatementSyntax callStatement)
 {
     Write($"{JassKeyword.Call} ");
     Render(callStatement.IdentifierName);
     Write(JassSymbol.LeftParenthesis);
     Render(callStatement.Arguments);
     Write(JassSymbol.RightParenthesis);
 }
Exemple #2
0
        private bool TryAdaptStatement(JassMapScriptAdapterContext context, IStatementSyntax statement, [NotNullWhen(true)] out IStatementSyntax?adaptedStatement)
        {
            return(statement switch
            {
                JassLocalVariableDeclarationStatementSyntax localVariableDeclarationStatement => TryAdaptLocalVariableDeclarationStatement(context, localVariableDeclarationStatement, out adaptedStatement),
                JassSetStatementSyntax setStatement => TryAdaptSetStatement(context, setStatement, out adaptedStatement),
                JassCallStatementSyntax callStatement => TryAdaptCallStatement(context, callStatement, out adaptedStatement),
                JassIfStatementSyntax ifStatement => TryAdaptIfStatement(context, ifStatement, out adaptedStatement),
                JassLoopStatementSyntax loopStatement => TryAdaptLoopStatement(context, loopStatement, out adaptedStatement),
                JassExitStatementSyntax exitStatement => TryAdaptExitStatement(context, exitStatement, out adaptedStatement),
                JassReturnStatementSyntax returnStatement => TryAdaptReturnStatement(context, returnStatement, out adaptedStatement),
                JassDebugStatementSyntax debugStatement => TryAdaptDebugStatement(context, debugStatement, out adaptedStatement),

                _ => TryAdaptDummy(context, statement, out adaptedStatement),
            });
 public LuaStatementSyntax Transpile(IStatementSyntax statement)
 {
     return(statement switch
     {
         JassEmptyStatementSyntax emptyStatement => Transpile(emptyStatement),
         JassCommentStatementSyntax commentStatement => Transpile(commentStatement),
         JassLocalVariableDeclarationStatementSyntax localVariableDeclarationStatement => Transpile(localVariableDeclarationStatement),
         JassSetStatementSyntax setStatement => Transpile(setStatement),
         JassCallStatementSyntax callStatement => Transpile(callStatement),
         JassIfStatementSyntax ifStatement => Transpile(ifStatement),
         JassLoopStatementSyntax loopStatement => Transpile(loopStatement),
         JassExitStatementSyntax exitStatement => Transpile(exitStatement),
         JassReturnStatementSyntax returnStatement => Transpile(returnStatement),
         JassDebugStatementSyntax debugStatement => Transpile(debugStatement),
     });
        private bool TryAdaptCallStatement(JassMapScriptAdapterContext context, JassCallStatementSyntax callStatement, [NotNullWhen(true)] out IStatementSyntax?adaptedCallStatement)
        {
            if (TryAdaptInvocation(context, callStatement, out var adaptedInvocationName, out var adaptedInvocationArguments))
            {
                if (string.IsNullOrEmpty(adaptedInvocationName))
                {
                    adaptedCallStatement = new JassCommentSyntax(callStatement.ToString());
                }
                else if (TryAdaptArgumentList(context, adaptedInvocationArguments, out var adaptedArguments))
                {
                    adaptedCallStatement = JassSyntaxFactory.CallStatement(
                        adaptedInvocationName,
                        adaptedArguments);
                }
                else
                {
                    adaptedCallStatement = JassSyntaxFactory.CallStatement(
                        adaptedInvocationName,
                        adaptedInvocationArguments);
                }

                return(true);
            }
 public StatementSyntax Transpile(JassCallStatementSyntax callStatement)
 {
     return(SyntaxFactory.ExpressionStatement(SyntaxFactory.InvocationExpression(
                                                  SyntaxFactory.IdentifierName(Transpile(callStatement.IdentifierName)),
                                                  Transpile(callStatement.Arguments))));
 }
 public LuaStatementSyntax Transpile(JassCallStatementSyntax callStatement)
 {
     return(new LuaInvocationExpressionSyntax(Transpile(callStatement.IdentifierName), Transpile(callStatement.Arguments)));
 }