protected NodeOutput OutputNode(int indentLevel, AstNode node, bool startWithNewLine = false) { var result = new NodeOutput(); var stringWriter = new StringWriter(); var formatter = new SegmentTrackingOutputFormatter(result, stringWriter); formatter.Indentation = indentLevel; stringWriter.NewLine = Context.EolMarker; if (startWithNewLine) { formatter.NewLine(); } var visitor = new CppOutputVisitor(formatter, Context.FormattingOptions); node.AcceptVisitor(visitor, null); result.Text = stringWriter.ToString().TrimEnd(); if (node is FieldDeclaration) { result.Text += Context.EolMarker; } return(result); }
protected static void Print (AstNode node) { var v = new CppOutputVisitor (Console.Out, new CppFormattingOptions ()); node.AcceptVisitor (v, null); }
string GetShortType (IType type, CppResolver state) { var builder = new TypeSystemAstBuilder (state); var dt = state.CurrentTypeDefinition; var declaring = type.DeclaringType != null ? type.DeclaringType.GetDefinition () : null; if (declaring != null) { while (dt != null) { if (dt.Equals (declaring)) { builder.AlwaysUseShortTypeNames = true; break; } dt = dt.DeclaringTypeDefinition; } } var shortType = builder.ConvertType (type); using (var w = new System.IO.StringWriter ()) { var visitor = new CppOutputVisitor (w, FormattingPolicy); shortType.AcceptVisitor (visitor, null); return w.ToString (); } }
protected static void Print(AstNode node) { var v = new CppOutputVisitor(Console.Out, new CppFormattingOptions()); node.AcceptVisitor(v, null); }
protected NodeOutput OutputNode (int indentLevel, AstNode node, bool startWithNewLine = false) { var result = new NodeOutput (); var stringWriter = new StringWriter (); var formatter = new SegmentTrackingOutputFormatter (result, stringWriter); formatter.Indentation = indentLevel; stringWriter.NewLine = Context.EolMarker; if (startWithNewLine) formatter.NewLine (); var visitor = new CppOutputVisitor (formatter, Context.FormattingOptions); node.AcceptVisitor (visitor, null); result.Text = stringWriter.ToString ().TrimEnd (); if (node is FieldDeclaration) result.Text += Context.EolMarker; return result; }