Ejemplo n.º 1
0
 public IEnumerable <LuaStatementSyntax> Transpile(JassStatementListSyntax statementList)
 {
     return(statementList.Statements
            .Where(statement => !(statement is JassCommentStatementSyntax && IgnoreComments))
            .Where(statement => !(statement is JassEmptyStatementSyntax && IgnoreEmptyStatements))
            .Select(Transpile));
 }
Ejemplo n.º 2
0
 private static void RegisterStatementList(JassStatementListSyntax statementList, JassMapScriptAdapterContext context)
 {
     foreach (var statement in statementList.Statements)
     {
         RegisterStatement(statement, context);
     }
 }
Ejemplo n.º 3
0
        private bool TryAdaptStatementList(JassMapScriptAdapterContext context, JassStatementListSyntax statementList, [NotNullWhen(true)] out JassStatementListSyntax?adaptedStatementList)
        {
            var isAdapted = false;

            var statementsBuilder = ImmutableArray.CreateBuilder <IStatementSyntax>();

            foreach (var statement in statementList.Statements)
            {
                if (TryAdaptStatement(context, statement, out var adaptedStatement))
                {
                    statementsBuilder.Add(adaptedStatement);
                    isAdapted = true;
                }
                else
                {
                    statementsBuilder.Add(statement);
                }
            }

            if (isAdapted)
            {
                adaptedStatementList = new JassStatementListSyntax(statementsBuilder.ToImmutable());
                return(true);
            }

            adaptedStatementList = null;
            return(false);
        }
Ejemplo n.º 4
0
 public void Render(JassStatementListSyntax statementList)
 {
     foreach (var statement in statementList.Statements)
     {
         Render(statement);
         WriteLine();
     }
 }
Ejemplo n.º 5
0
 public static JassIfStatementSyntax IfStatement(IExpressionSyntax condition, JassStatementListSyntax body, IEnumerable <JassElseIfClauseSyntax> elseIfClauses, JassElseClauseSyntax elseClause)
 {
     return(new JassIfStatementSyntax(
                condition,
                body,
                elseIfClauses.ToImmutableArray(),
                elseClause));
 }
Ejemplo n.º 6
0
 public static JassIfStatementSyntax IfStatement(IExpressionSyntax condition, JassStatementListSyntax body, params JassElseIfClauseSyntax[] elseIfClauses)
 {
     return(new JassIfStatementSyntax(
                condition,
                body,
                elseIfClauses.ToImmutableArray(),
                null));
 }
Ejemplo n.º 7
0
 public static JassIfStatementSyntax IfStatement(IExpressionSyntax condition, JassStatementListSyntax body, JassElseClauseSyntax elseClause)
 {
     return(new JassIfStatementSyntax(
                condition,
                body,
                ImmutableArray.Create <JassElseIfClauseSyntax>(),
                elseClause));
 }
 public JassFunctionDeclarationSyntax(JassFunctionDeclaratorSyntax functionDeclarator, JassStatementListSyntax body)
 {
     FunctionDeclarator = functionDeclarator;
     Body = body;
 }
 public JassElseIfStatementSyntax(IExpressionSyntax condition, JassStatementListSyntax body)
 {
     Condition = condition;
     Body      = body;
 }
Ejemplo n.º 10
0
 public static JassLoopStatementSyntax LoopStatement(JassStatementListSyntax body)
 {
     return(new JassLoopStatementSyntax(body));
 }
Ejemplo n.º 11
0
 public JassLoopStatementSyntax(JassStatementListSyntax body)
 {
     Body = body;
 }
Ejemplo n.º 12
0
 public JassLoopStatementSyntax(params IStatementSyntax[] body)
 {
     Body = new JassStatementListSyntax(body);
 }
Ejemplo n.º 13
0
 public IEnumerable <StatementSyntax> Transpile(JassStatementListSyntax statementList)
 {
     return(statementList.Statements.Select(Transpile));
 }