Beispiel #1
0
        internal override void AppendCodeString(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
        {
            format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
            res.Append("except");
            if (_test != null)
            {
                _test.AppendCodeString(res, ast, format);
                if (_target != null)
                {
                    res.Append(this.GetSecondWhiteSpace(ast));
                    if (this.IsAltForm(ast))
                    {
                        res.Append("as");
                    }
                    else
                    {
                        res.Append(",");
                    }

                    _target.AppendCodeString(res, ast, format);
                }
            }

            _body.AppendCodeString(res, ast, format);
        }
Beispiel #2
0
        internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
        {
            format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
            res.Append("try");
            _body.AppendCodeString(res, ast, format);

            if (_handlers != null)
            {
                for (int i = 0; i < _handlers.Length; i++)
                {
                    _handlers[i].AppendCodeString(res, ast, format);
                }
            }

            if (_else != null)
            {
                format.ReflowComment(res, this.GetSecondWhiteSpace(ast));
                res.Append("else");
                _else.AppendCodeString(res, ast, format);
            }

            if (_finally != null)
            {
                format.ReflowComment(res, this.GetThirdWhiteSpace(ast));
                res.Append("finally");
                _finally.AppendCodeString(res, ast, format);
            }
        }
Beispiel #3
0
        internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
        {
            var itemWhiteSpace = this.GetListWhiteSpace(ast);

            for (int i = 0; i < _tests.Length; i++)
            {
                if (itemWhiteSpace != null)
                {
                    format.ReflowComment(res, itemWhiteSpace[i]);
                }

                if (i == 0)
                {
                    res.Append("if");
                }
                else
                {
                    res.Append("elif");
                }
                _tests[i].AppendCodeString(res, ast, format);
            }

            if (_else != null)
            {
                format.ReflowComment(res, this.GetPreceedingWhiteSpace(ast));
                res.Append("else");
                _else.AppendCodeString(res, ast, format);
            }
        }
Beispiel #4
0
 internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
 {
     format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
     res.Append("while");
     _test.AppendCodeString(res, ast, format);
     _body.AppendCodeString(res, ast, format);
     if (_else != null)
     {
         format.ReflowComment(res, this.GetSecondWhiteSpaceDefaultNull(ast));
         res.Append("else");
         _else.AppendCodeString(res, ast, format);
     }
 }
Beispiel #5
0
 internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
 {
     format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
     res.Append("for");
     _left.AppendCodeString(res, ast, format);
     if (!this.IsIncompleteNode(ast))
     {
         res.Append(this.GetSecondWhiteSpace(ast));
         res.Append("in");
         _list.AppendCodeString(res, ast, format);
         _body.AppendCodeString(res, ast, format);   // colon is handled by suite statements...
         if (_else != null)
         {
             format.ReflowComment(res, this.GetThirdWhiteSpace(ast));
             res.Append("else");
             _else.AppendCodeString(res, ast, format);
         }
     }
 }
Beispiel #6
0
        internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
        {
            format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
            if (IsAsync)
            {
                res.Append("async");
                res.Append(this.GetSecondWhiteSpace(ast));
            }
            res.Append("with");
            var itemWhiteSpace  = this.GetListWhiteSpace(ast);
            int whiteSpaceIndex = 0;

            for (int i = 0; i < _items.Length; i++)
            {
                var item = _items[i];
                if (i != 0)
                {
                    if (itemWhiteSpace != null)
                    {
                        res.Append(itemWhiteSpace[whiteSpaceIndex++]);
                    }
                    res.Append(',');
                }

                item.ContextManager.AppendCodeString(res, ast, format);
                if (item.Variable != null)
                {
                    if (itemWhiteSpace != null)
                    {
                        res.Append(itemWhiteSpace[whiteSpaceIndex++]);
                    }
                    else
                    {
                        res.Append(' ');
                    }
                    res.Append("as");
                    item.Variable.AppendCodeString(res, ast, format);
                }
            }

            _body.AppendCodeString(res, ast, format);
        }
Beispiel #7
0
 internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
 {
     _body.AppendCodeString(res, ast, format);
     res.Append(this.GetExtraVerbatimText(ast));
 }
 internal override void AppendCodeString(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
 {
     _test.AppendCodeString(res, ast, format);
     _body.AppendCodeString(res, ast, format);
 }
        internal override void AppendCodeStringStmt(StringBuilder res, PythonAst ast, CodeFormattingOptions format)
        {
            if (Decorators != null)
            {
                Decorators.AppendCodeString(res, ast, format);
            }

            format.ReflowComment(res, this.GetProceedingWhiteSpace(ast));
            res.Append("class");
            res.Append(this.GetSecondWhiteSpace(ast));
            res.Append(this.GetVerbatimImage(ast) ?? Name);

            if (!this.IsAltForm(ast))
            {
                format.Append(
                    res,
                    format.SpaceBeforeClassDeclarationParen,
                    " ",
                    "",
                    this.GetThirdWhiteSpace(ast)
                    );

                res.Append('(');
            }

            if (Bases.Count != 0)
            {
                ListExpression.AppendItems(
                    res,
                    ast,
                    format,
                    "",
                    "",
                    this,
                    this.Bases.Count,
                    (i, sb) => {
                    if (format.SpaceWithinClassDeclarationParens != null && i == 0)
                    {
                        // need to remove any leading whitespace which was preserved for
                        // the 1st param, and then force the correct whitespace.
                        Bases[i].AppendCodeString(sb, ast, format, format.SpaceWithinClassDeclarationParens.Value ? " " : "");
                    }
                    else
                    {
                        Bases[i].AppendCodeString(sb, ast, format);
                    }
                }
                    );
            }
            else if (!this.IsAltForm(ast))
            {
                if (format.SpaceWithinEmptyBaseClassList != null && format.SpaceWithinEmptyBaseClassList.Value)
                {
                    res.Append(' ');
                }
            }

            if (!this.IsAltForm(ast) && !this.IsMissingCloseGrouping(ast))
            {
                if (Bases.Count != 0 ||
                    format.SpaceWithinEmptyBaseClassList == null ||
                    !String.IsNullOrWhiteSpace(this.GetFourthWhiteSpace(ast)))
                {
                    format.Append(
                        res,
                        format.SpaceWithinClassDeclarationParens,
                        " ",
                        "",
                        this.GetFourthWhiteSpace(ast)
                        );
                }

                res.Append(')');
            }

            _body.AppendCodeString(res, ast, format);
        }