// 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 -> SimpleStrategy, parsedNameMap, NameMap {{ space(); out.print("with"); needSpace = true; out.print(" "); needSpace = false; }} before -> StrategyGraph, edges, SGEdge_SList {{ out.print("{"); needSpace = false; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("\t"); indent++; needSpace = false; }} after -> StrategyGraph, edges, SGEdge_SList {{ indent--; out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; out.print("}"); needSpace = false; }} after -> SGEdge, sourcemarker, SourceMarker {{ out.print(" "); needSpace = false; }} after -> SGEdge, source, GlobSpec {{ out.print(" "); needSpace = false; out.print("->"); needSpace = false; out.print(" "); needSpace = false; }} after -> SGEdge, targetmarker, TargetMarker {{ out.print(" "); needSpace = false; }} before -> SGEdge, constraint, NegativeConstraint {{ out.print(" "); needSpace = false; }} before SourceMarker {{ space(); out.print("source:"); needSpace = false; }} before TargetMarker {{ space(); out.print("target:"); needSpace = false; }} before -> PathDirective, constraint, NegativeConstraint {{ out.print(" "); needSpace = false; }} before -> PathDirective, target, TargetDirective {{ out.print(" "); needSpace = false; }} before -> SourceDirective, sources, ClassGlobSpec {{ out.print(" "); needSpace = false; }} before From {{ space(); out.print("from"); needSpace = true; }} before -> PathSegment, constraint, NegativeConstraint {{ out.print(" "); needSpace = false; }} before -> Constraint, glob, GlobSpec {{ out.print(" "); needSpace = false; }} before Through {{ space(); out.print("through"); needSpace = true; }} before Via {{ space(); out.print("via"); needSpace = true; }} before Bypassing {{ space(); out.print("bypassing"); needSpace = true; }} before OnlyThrough {{ space(); out.print("only-through"); needSpace = true; }} before -> TargetDirective, targets, ClassGlobSpec {{ out.print(" "); needSpace = false; }} before To {{ space(); out.print("to"); needSpace = true; }} before ToStop {{ space(); out.print("to-stop"); needSpace = true; }} before -> StrategyCombination, first, Strategy {{ out.print("("); needSpace = false; }} before -> StrategyCombination, rest, Strategy_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} after -> StrategyCombination, rest, Strategy_Commalist {{ out.print(")"); needSpace = false; }} before Join {{ space(); out.print("join"); needSpace = true; }} before Merge {{ space(); out.print("merge"); needSpace = true; }} before Intersect {{ space(); out.print("intersect"); needSpace = true; }} before -> StrategyReference, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before NameMap {{ out.print("{"); needSpace = false; out.print(" "); needSpace = false; }} after -> NameMap, bindings, NameBinding_Commalist {{ out.print(" "); needSpace = false; }} after NameMap {{ out.print("}"); needSpace = false; }} before -> NameBinding, cgNames, ClassGlobSpec {{ out.print("="); needSpace = false; }} before GlobSet {{ out.print("{"); needSpace = false; out.print(" "); needSpace = false; }} after -> GlobSet, globs, Glob_Commalist {{ out.print(" "); needSpace = false; }} after GlobSet {{ out.print("}"); needSpace = false; }} before -> PartGlob, source, SourceGlob {{ out.print("->"); needSpace = false; out.print(" "); needSpace = false; }} before -> PartGlob, name, PartNameGlob {{ out.print(","); needSpace = false; }} before -> PartGlob, target, TargetGlob {{ out.print(","); needSpace = false; }} before -> SubclassGlob, source, SourceGlob {{ out.print("=>"); needSpace = false; out.print(" "); needSpace = false; }} before -> SubclassGlob, target, TargetGlob {{ out.print(","); needSpace = false; }} before -> SuperclassGlob, source, SourceGlob {{ out.print(":>"); needSpace = false; out.print(" "); needSpace = false; }} before -> SuperclassGlob, target, TargetGlob {{ out.print(","); needSpace = false; }} before AnyClass {{ out.print("*"); needSpace = false; }} before AnyPart {{ out.print("*"); needSpace = false; }} before -> ClassGlobSet, globs, ClassGlob_Commalist {{ out.print("{"); needSpace = false; out.print(" "); needSpace = false; }} after -> ClassGlobSet, globs, ClassGlob_Commalist {{ out.print(" "); needSpace = false; out.print("}"); needSpace = false; }} before -> PartName, name, Ident {{ space(); out.print(source.get_name()); needSpace = true; }} before -> XAspectCD, cdName, Ident {{ space(); out.print("aspect"); needSpace = true; out.print("("); needSpace = false; space(); out.print("ClassDictionary"); needSpace = true; out.print(")"); needSpace = false; space(); out.print(source.get_cdName()); needSpace = true; }} before -> XAspectCD, cdText, Text {{ space(); out.print("{{" + source.get_cdText() + "}" + "}"); needSpace = true; }} before -> XAspectTraversals, travName, Ident {{ space(); out.print("aspect"); needSpace = true; out.print("("); needSpace = false; space(); out.print("Traversal"); needSpace = true; out.print(")"); needSpace = false; space(); out.print(source.get_travName()); needSpace = true; }} before -> XAspectTraversals, strategies, AspectStrategy_List {{ out.print("{"); needSpace = false; }} after -> XAspectTraversals, nodes, AspectNodeSet_List {{ out.print("}"); needSpace = false; }} before -> AspectStrategy, strategyName, Ident {{ space(); out.print("declare strategy: "); needSpace = false; space(); out.print(source.get_strategyName()); needSpace = true; }} before -> AspectStrategy, strategy, Strategy {{ out.print(":"); needSpace = false; }} after -> AspectStrategy, strategy, Strategy {{ out.print(";"); needSpace = false; }} before -> AspectNodeSet, nodesetName, Ident {{ space(); out.print("declare node set: "); needSpace = false; space(); out.print(source.get_nodesetName()); needSpace = true; }} before -> AspectNodeSet, node, Node {{ out.print(":"); needSpace = false; }} before -> Nodes, strategyName, Ident {{ space(); out.print("nodes "); needSpace = false; space(); out.print(source.get_strategyName()); needSpace = true; }} after -> Nodes, strategyName, Ident {{ out.print(";"); needSpace = false; }} after -> NodeList, nodeclassname_commalist, NodeClassName_Commalist {{ out.print(";"); needSpace = false; }} before -> NodeClassName, ident, Ident {{ space(); out.print(source.get_ident()); needSpace = true; }} before -> NodeRegExp, regExp, Ident {{ space(); out.print("regexp"); needSpace = true; space(); out.print(source.get_regExp()); needSpace = true; }} after -> NodeRegExp, regExp, Ident {{ out.print("*"); needSpace = false; out.print(";"); needSpace = false; }} before -> NodeExpOr, p1, NodeExpL2 {{ space(); out.print("or"); needSpace = true; out.print("("); needSpace = false; }} before -> NodeExpOr, p2, NodeExpL2 {{ out.print(","); needSpace = false; }} after -> NodeExpOr, p2, NodeExpL2 {{ out.print(")"); needSpace = false; out.print(";"); needSpace = false; }} before -> NodeExpAnd, p1, NodeExpL2 {{ space(); out.print("and"); needSpace = true; out.print("("); needSpace = false; }} before -> NodeExpAnd, p2, NodeExpL2 {{ out.print(","); needSpace = false; }} after -> NodeExpAnd, p2, NodeExpL2 {{ out.print(")"); needSpace = false; out.print(";"); needSpace = false; }} before -> NodeExpNot, p1, NodeExpL2 {{ out.print("!"); needSpace = false; }} after -> NodeExpNot, p1, NodeExpL2 {{ out.print(";"); needSpace = false; }} before -> NodeExpOrL2, p1, NodeExpL2 {{ space(); out.print("or"); needSpace = true; out.print("("); needSpace = false; }} before -> NodeExpOrL2, p2, NodeExpL2 {{ out.print(","); needSpace = false; }} after -> NodeExpOrL2, p2, NodeExpL2 {{ out.print(")"); needSpace = false; }} before -> NodeExpAndL2, p1, NodeExpL2 {{ space(); out.print("and"); needSpace = true; out.print("("); needSpace = false; }} before -> NodeExpAndL2, p2, NodeExpL2 {{ out.print(","); needSpace = false; }} after -> NodeExpAndL2, p2, NodeExpL2 {{ out.print(")"); needSpace = false; }} before -> NodeExpNotL2, p1, NodeExpL2 {{ out.print("!"); needSpace = false; }} before -> NodeExpIdentL2, nodeSetName, Ident {{ space(); out.print(source.get_nodeSetName()); 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_Name, it, Ident {{ space(); out.print(source.get_it()); needSpace = true; }} before -> Nonempty_Name, next, Nonempty_Name {{ out.print("."); needSpace = false; }} before -> Nonempty_SGEdge_SList, next, Nonempty_SGEdge_SList {{ out.println(); for (int i = 0; i < indent; i++) out.print("\t"); needSpace = false; }} before -> Nonempty_PathSegment_List, next, Nonempty_PathSegment_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_Strategy_Commalist, next, Nonempty_Strategy_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_NameBinding_Commalist, next, Nonempty_NameBinding_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_Glob_Commalist, next, Nonempty_Glob_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_ClassGlob_Commalist, next, Nonempty_ClassGlob_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} before -> Nonempty_AspectStrategy_List, next, Nonempty_AspectStrategy_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_AspectNodeSet_List, next, Nonempty_AspectNodeSet_List {{ out.print(" "); needSpace = false; }} before -> Nonempty_NodeClassName_Commalist, next, Nonempty_NodeClassName_Commalist {{ out.print(","); needSpace = false; out.print(" "); needSpace = false; }} }