public void Render(JassLoopStatementSyntax loopStatement)
 {
     WriteLine(JassKeyword.Loop);
     Indent();
     Render(loopStatement.Body);
     Outdent();
     Write(JassKeyword.EndLoop);
 }
        public LuaStatementSyntax Transpile(JassLoopStatementSyntax loopStatement)
        {
            var whileStatement = new LuaWhileStatementSyntax(LuaIdentifierLiteralExpressionSyntax.True);

            whileStatement.Body.Statements.AddRange(Transpile(loopStatement.Body));

            return(whileStatement);
        }
        private bool TryAdaptLoopStatement(JassMapScriptAdapterContext context, JassLoopStatementSyntax loopStatement, [NotNullWhen(true)] out IStatementSyntax?adaptedLoopStatement)
        {
            if (TryAdaptStatementList(context, loopStatement.Body, out var adaptedBody))
            {
                adaptedLoopStatement = new JassLoopStatementSyntax(adaptedBody);
                return(true);
            }

            adaptedLoopStatement = null;
            return(false);
        }
Exemple #4
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),
     });
Exemple #6
0
 public StatementSyntax Transpile(JassLoopStatementSyntax loopStatement)
 {
     return(SyntaxFactory.WhileStatement(
                SyntaxFactory.LiteralExpression(SyntaxKind.TrueLiteralExpression),
                SyntaxFactory.Block(Transpile(loopStatement.Body))));
 }