예제 #1
0
 public StatementSyntax Transpile(JassElseIfClauseSyntax elseIfClause, ElseClauseSyntax?elseClause)
 {
     return(SyntaxFactory.IfStatement(
                SyntaxFactory.List <AttributeListSyntax>(),
                Transpile(elseIfClause.Condition),
                SyntaxFactory.Block(Transpile(elseIfClause.Body)),
                elseClause));
 }
예제 #2
0
        public LuaElseIfStatementSyntax Transpile(JassElseIfClauseSyntax elseIfClause)
        {
            var elseifStatement = new LuaElseIfStatementSyntax(Transpile(elseIfClause.Condition, out _));

            elseifStatement.Body.Statements.AddRange(Transpile(elseIfClause.Body));

            return(elseifStatement);
        }
예제 #3
0
 public void Render(JassElseIfClauseSyntax elseIfClause)
 {
     Write($"{JassKeyword.ElseIf} ");
     Render(elseIfClause.Condition);
     WriteLine($" {JassKeyword.Then}");
     Indent();
     Render(elseIfClause.Body);
     Outdent();
 }
예제 #4
0
        private bool TryAdaptElseIfClause(JassMapScriptAdapterContext context, JassElseIfClauseSyntax elseIfClause, [NotNullWhen(true)] out JassElseIfClauseSyntax?adaptedElseIfClause)
        {
            if (TryAdaptExpression(context, elseIfClause.Condition, out var adaptedCondition) |
                TryAdaptStatementList(context, elseIfClause.Body, out var adaptedBody))
            {
                adaptedElseIfClause = new JassElseIfClauseSyntax(
                    adaptedCondition ?? elseIfClause.Condition,
                    adaptedBody ?? elseIfClause.Body);

                return(true);
            }

            adaptedElseIfClause = null;
            return(false);
        }