예제 #1
0
        public IStatementContext AddStatement(StatementSyntax statement)
        {
            if (this.condition == null)
            {
                var expStatement = statement as ExpressionStatementSyntax;
                Debug.Assert(expStatement != null, "First statement was not an expression statement, but is required for the condition of the 'if'");

                this.condition = expStatement.Expression;
            }
            else if (this.doneWithTrueBlock == false)
            {
                whenTrueStatements.Add(statement);
                if (statement.HasAnnotation(ScriptGenAnnotations.ResultStatement) || statement.HasAnnotation(ScriptGenAnnotations.FinalScopeStatement))
                {
                    doneWithTrueBlock = true;
                }
            }
            else
            {
                whenFalseStatements.Add(statement);
            }

            return(this);
        }
예제 #2
0
            private static SyntaxList <StatementSyntax> RewriteStatements(SyntaxList <StatementSyntax> statements)
            {
                for (int i = statements.Count - 1; i >= 0; i--)
                {
                    StatementSyntax statement = statements[i];

                    if (statement.HasAnnotation(_asyncAwaitAnnotation[0]))
                    {
                        statements = statements.Replace(
                            statement,
                            statement.WithoutAnnotations(_asyncAwaitAnnotation).WithTrailingTrivia(NewLine()));

                        statements = statements.Insert(
                            i + 1,
                            ReturnStatement().WithTrailingTrivia(statement.GetTrailingTrivia()).WithFormatterAnnotation());
                    }
                }

                return(statements);
            }