Index: BooPrinterVisitor.cs =================================================================== --- BooPrinterVisitor.cs (revision 1736) +++ BooPrinterVisitor.cs (working copy) @@ -149,6 +149,11 @@ Dedent(); } + override public void OnAttribute(Attribute att) + { + WriteAttribute(att); + } + override public void OnClassDefinition(ClassDefinition c) { WriteTypeDefinition("class", c); @@ -193,10 +198,10 @@ WriteLine(); } - override public void OnExplicitMemberInfo(ExplicitMemberInfo node) - { - Visit(node.InterfaceType); - Write("."); + override public void OnExplicitMemberInfo(ExplicitMemberInfo node) + { + Visit(node.InterfaceType); + Write("."); } override public void OnProperty(Property node) @@ -312,9 +317,9 @@ WriteKeyword(keyword); IExplicitMember em = node as IExplicitMember; - if (null != em) - { - Visit(em.ExplicitInfo); + if (null != em) + { + Visit(em.ExplicitInfo); } Write(node.Name); WriteParameterList(node.Parameters); @@ -1038,24 +1043,24 @@ return "^"; } - case BinaryOperatorType.ShiftLeft: - { - return "<<"; + case BinaryOperatorType.ShiftLeft: + { + return "<<"; } - case BinaryOperatorType.ShiftRight: - { - return ">>"; + case BinaryOperatorType.ShiftRight: + { + return ">>"; } - case BinaryOperatorType.InPlaceShiftLeft: - { - return "<<="; + case BinaryOperatorType.InPlaceShiftLeft: + { + return "<<="; } - case BinaryOperatorType.InPlaceShiftRight: - { - return ">>="; + case BinaryOperatorType.InPlaceShiftRight: + { + return ">>="; } } throw new NotImplementedException(op.ToString()); @@ -1232,28 +1237,33 @@ Write(")"); } - void WriteAttributes(AttributeCollection attributes, bool addNewLines) + void WriteAttribute(Attribute attribute) { - foreach (Boo.Lang.Compiler.Ast.Attribute attribute in attributes) + WriteIndented("["); + Write(attribute.Name); + if (attribute.Arguments.Count > 0 || + attribute.NamedArguments.Count > 0) { - WriteIndented("["); - Write(attribute.Name); - if (attribute.Arguments.Count > 0 || - attribute.NamedArguments.Count > 0) + Write("("); + WriteCommaSeparatedList(attribute.Arguments); + if (attribute.NamedArguments.Count > 0) { - Write("("); - WriteCommaSeparatedList(attribute.Arguments); - if (attribute.NamedArguments.Count > 0) + if (attribute.Arguments.Count > 0) { - if (attribute.Arguments.Count > 0) - { - Write(", "); - } - WriteCommaSeparatedList(attribute.NamedArguments); + Write(", "); } - Write(")"); + WriteCommaSeparatedList(attribute.NamedArguments); } - Write("]"); + Write(")"); + } + Write("]"); + } + + void WriteAttributes(AttributeCollection attributes, bool addNewLines) + { + foreach (Boo.Lang.Compiler.Ast.Attribute attribute in attributes) + { + Visit(attribute); if (addNewLines) { WriteLine();