// This file is automatically generated by DemeterJ. PrintVisitor { {{ protected java.io.PrintWriter out = new java.io.PrintWriter(System.out, true); java.io.PrintWriter get_out() { return out; } void set_out(java.io.PrintWriter new_out) { out = new_out; } PrintVisitor(java.io.PrintWriter out) { set_out(out); } PrintVisitor(java.io.PrintStream out) { set_out(new java.io.PrintWriter(out, true)); } }} finish {{ out.flush(); }} protected void space() {{ if (needSpace) out.print(" "); needSpace = false; }} before -> Call, proc, Op {{ out.print("("); needSpace = false; }} after -> Call, args, EList {{ out.print(")"); needSpace = false; }} before Plus {{ out.print("+"); needSpace = false; }} before Mult {{ out.print("*"); needSpace = false; }} before Eq {{ out.print("="); needSpace = false; }} before -> If, cond, E {{ out.print("(if"); needSpace = true; out.print(" "); needSpace = false; }} before -> If, then, E {{ out.print(" "); needSpace = false; }} before -> If, otherwise, E {{ out.print(" "); needSpace = false; }} after -> If, otherwise, E {{ out.print(")"); needSpace = false; }} before -> ECons, rest, EList {{ out.print(" "); needSpace = false; }} before -> Num, value, int {{ space(); out.print(source.get_value()); needSpace = true; }} before -> NumVal, value, int {{ space(); out.print(source.get_value()); needSpace = true; }} before -> ValCons, first, Val {{ space(); out.print(source.get_first()); needSpace = true; }} before -> PrintVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> PrintVisitor, needSpace, boolean {{ space(); out.print(source.get_needSpace()); needSpace = true; }} }