// 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 -> Main, s, String {{ space(); out.print("\"" + source.get_s() + "\""); needSpace = true; }} before TraceMatch {{ space(); out.print("tracematch"); needSpace = true; out.print("("); needSpace = false; }} before -> TraceMatch, SymbolDeclaration, Symbol_List {{ out.print(")"); needSpace = false; }} before -> Symbol, name, Name {{ space(); out.print("sym"); needSpace = true; }} before -> Symbol, pointcutexp, PointcutExp {{ out.print(":"); needSpace = false; }} after -> Symbol, pointcutexp, PointcutExp {{ out.print(";"); needSpace = false; }} before Before {{ space(); out.print("before"); needSpace = true; }} before After {{ space(); out.print("after"); needSpace = true; }} before -> Call, classname, ClassName {{ space(); out.print("call"); needSpace = true; out.print("("); needSpace = false; out.print("*"); needSpace = false; }} before -> Call, methodname, MethodName {{ out.print("."); needSpace = false; }} after -> Call, methodname, MethodName {{ out.print("(..)"); needSpace = false; out.print(")"); needSpace = false; }} before -> Target, variablename, VariableName {{ space(); out.print("target"); needSpace = true; out.print("("); needSpace = false; }} after -> Target, variablename, VariableName {{ out.print(")"); needSpace = false; }} before -> This, variablename, VariableName {{ space(); out.print("this"); needSpace = true; out.print("("); needSpace = false; }} after -> This, variablename, VariableName {{ out.print(")"); needSpace = false; }} before -> Compound, op, Op {{ out.print("("); needSpace = false; }} after -> Compound, args, PointcutExp_List {{ out.print(")"); needSpace = false; }} before Union {{ out.print("|"); needSpace = false; }} before Intersection {{ out.print("&"); needSpace = false; }} before RegEx {{ space(); out.print("regex"); needSpace = true; }} before -> Name, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> ClassName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> MethodName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> VariableName, ident, Ident {{ space(); out.print(source.get_ident()); 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; }} before -> CopyVisitor, copy, Object {{ space(); out.print(source.get_copy()); needSpace = true; }} before -> SubgraphVisitor, is_equal, boolean {{ space(); out.print(source.get_is_equal()); needSpace = true; }} before -> EqualVisitor, is_equal, boolean {{ space(); out.print(source.get_is_equal()); needSpace = true; }} before -> DisplayVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> TraceVisitor, indent, int {{ space(); out.print(source.get_indent()); needSpace = true; }} before -> Nonempty_VariableDeclaration_CList, next, Nonempty_VariableDeclaration_CList {{ out.print(","); needSpace = false; }} }