Пример #1
0
        private bool AutoPrintBracesOrBracks(ILNode node, Precedence context)
        {
            var name = node.Name;

            if (name == S.Array && node.IsCall() && !HasPAttrs(node.Target))
            {
                PrintArgList(node.Args(), node.BaseStyle() == NodeStyle.StatementBlock, "[", ']', null, node.Target);
                return(true);
            }
            else if (name == S.Tuple && node.ArgCount() != 1 && node.IsCall() && !HasPAttrs(node.Target))
            {
                PrintArgList(node.Args(), node.BaseStyle() == NodeStyle.StatementBlock, "(", ')', "; ", node.Target);
                return(true);
            }
            else if (name == S.Braces && node.IsCall() && !HasPAttrs(node.Target))
            {
                if (context.Lo == StartStmt.Lo)
                {
                    _out.Dedent(PrinterIndentHint.Subexpression).Indent(PrinterIndentHint.NoIndent);
                }
                PrintArgList(node.Args(), node.BaseStyle() != NodeStyle.Expression, "{", '}', null, node.Target);
                return(true);
            }
            return(false);
        }
Пример #2
0
        private bool AutoPrintBracesOrBracks(ILNode node)
        {
            var name = node.Name;

            if ((name == S.Array || name == S.Braces) && node.IsCall() && !HasPAttrs(node.Target))
            {
                if (name == S.Array)
                {
                    PrintArgList(node.Args(), node.BaseStyle() == NodeStyle.Statement, "[", ']', node.Target);
                    return(true);
                }
                else if (name == S.Braces)
                {
                    PrintArgList(node.Args(), node.BaseStyle() != NodeStyle.Expression, "{", '}', node.Target);
                    return(true);
                }
            }
            return(false);
        }
Пример #3
0
        void PrintPrefixNotation(ILNode node, Precedence context)
        {
            switch (node.Kind)
            {
            case LNodeKind.Id:
                PrintIdOrSymbol(node.Name, false); break;

            case LNodeKind.Literal:
                PrintLiteral(node); break;

            case LNodeKind.Call:
            default:
                Print(node.Target, LesPrecedence.Primary.LeftContext(context), "(");
                PrintArgList(node.Args(), node.BaseStyle() == NodeStyle.Statement, "", ')', null);
                break;
            }
        }