core:
import edu.neu.ccs.demeter.*;
add: class PrintVisitor extends UniversalVisitor {
protected int indent;
public int get_indent() {{ return indent; }}
public void set_indent(int new_indent)
{{ indent = new_indent; }}
protected boolean needSpace;
public boolean get_needSpace() {{ return needSpace; }}
public void set_needSpace(boolean new_needSpace)
{{ needSpace = new_needSpace; }}
public constructor PrintVisitor() {{ super(); }}
public constructor PrintVisitor(int indent, boolean needSpace) {{
super();
set_indent(indent);
set_needSpace(needSpace);
}}
{{
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)); }
}}
public void finish() {{ out.flush(); }}
protected void space() {{
if (needSpace) out.print(" ");
needSpace = false;
}}
public void before_players(Blackboard source, Player_List dest) {{
out.print("");
needSpace = false;
}}
public void before_store(Blackboard source, Store dest) {{
out.print("");
needSpace = false;
}}
public void before_transactions(Blackboard source, Transaction_List dest) {{
out.print("");
needSpace = false;
}}
public void before_history(Blackboard source, History dest) {{
out.print("");
needSpace = false;
}}
public void before_name(Player source, PlayerName dest) {{
out.print("");
needSpace = false;
}}
public void before_account(Player source, Money dest) {{
out.print("");
needSpace = false;
}}
public void before_turn(Player source, boolean dest) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
space();
out.print(source.get_turn());
needSpace = true;
}}
public void after_turn(Player source, boolean dest) {{
out.print("");
needSpace = false;
}}
public void after(Player host) {{
out.print("");
needSpace = false;
}}
public void before_v(PlayerName source, Ident dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_v());
needSpace = true;
}}
public void after_v(PlayerName source, Ident dest) {{
out.print("");
needSpace = false;
}}
public void before(PublicKey host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before_transaction_elist(History source, Transaction_EList dest) {{
out.print("");
needSpace = false;
}}
public void after_transaction_elist(History source, Transaction_EList dest) {{
out.print("");
needSpace = false;
}}
public void before_derivative_elist(Store source, Derivative_EList dest) {{
out.print("");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
}}
public void after_derivative_elist(Store source, Derivative_EList dest) {{
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before(Buy host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before(Create host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before(DeliverR host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before(Finish host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before(DigitalSignature host) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before_name(Derivative source, DerivativeName dest) {{
out.print("");
needSpace = false;
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
}}
public void before_creator(Derivative source, PlayerName dest) {{
out.print("");
needSpace = false;
}}
public void before_price(Derivative source, Money dest) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before_type(Derivative source, DerivativeType dest) {{
out.print("");
needSpace = false;
}}
public void before_boughtBy(Derivative source, PlayerName dest) {{
out.print("");
needSpace = false;
}}
public void after_boughtBy(Derivative source, PlayerName dest) {{
out.print("");
needSpace = false;
}}
public void after_rawMaterial(Derivative source, RawMaterial dest) {{
out.println();
for (int i = 0; i < indent; i++) out.print("\t");
needSpace = false;
}}
public void after(Derivative host) {{
out.print("");
needSpace = false;
}}
public void before_assignment(FinishedProduct source, Assignment dest) {{
out.print("");
needSpace = false;
}}
public void after_quality(FinishedProduct source, Money dest) {{
out.print("");
needSpace = false;
}}
public void before_name(DerivativeName source, Ident dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_name());
needSpace = true;
}}
public void after_name(DerivativeName source, Ident dest) {{
out.print("");
needSpace = false;
}}
public void before_price(Money source, float dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_price());
needSpace = true;
}}
public void after_price(Money source, float dest) {{
out.print("");
needSpace = false;
}}
public void before_clausetype_list(DerivativeType source, ClauseType_List dest) {{
out.print("");
needSpace = false;
}}
public void after_clausetype_list(DerivativeType source, ClauseType_List dest) {{
out.print("");
needSpace = false;
}}
public void before_total_literal_num(ClauseType source, TotalLiteralNum dest) {{
out.print("");
needSpace = false;
}}
public void after_pos_literal_num(ClauseType source, PosLiteralNum dest) {{
out.print("");
needSpace = false;
}}
public void before_number(TotalLiteralNum source, Number dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_number());
needSpace = true;
}}
public void after_number(TotalLiteralNum source, Number dest) {{
out.print("");
needSpace = false;
}}
public void before_number(PosLiteralNum source, Number dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_number());
needSpace = true;
}}
public void after_number(PosLiteralNum source, Number dest) {{
out.print("");
needSpace = false;
}}
public void before_clause_list(RawMaterial source, Clause_List dest) {{
out.print("");
needSpace = false;
}}
public void after_clause_list(RawMaterial source, Clause_List dest) {{
out.print("");
needSpace = false;
}}
public void before_weight(Clause source, Weight dest) {{
out.print("");
needSpace = false;
}}
public void before_literal_list(Clause source, Literal_List dest) {{
out.print("");
needSpace = false;
}}
public void after_literal_list(Clause source, Literal_List dest) {{
out.print("");
needSpace = false;
out.print("");
needSpace = false;
}}
public void before_number(Weight source, Number dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_number());
needSpace = true;
}}
public void after_number(Weight source, Number dest) {{
out.print("");
needSpace = false;
}}
public void before_variable(PosLiteral source, Variable dest) {{
out.print("");
needSpace = false;
}}
public void after_variable(PosLiteral source, Variable dest) {{
out.print("");
needSpace = false;
}}
public void before_variable(NegLiteral source, Variable dest) {{
out.print("");
needSpace = false;
}}
public void after_variable(NegLiteral source, Variable dest) {{
out.print("");
needSpace = false;
}}
public void before_v(Variable source, Ident dest) {{
space();
out.print(source.get_v());
needSpace = true;
}}
public void before_literal_list(Assignment source, Literal_List dest) {{
out.print("");
needSpace = false;
}}
public void after_literal_list(Assignment source, Literal_List dest) {{
out.print("");
needSpace = false;
}}
public void before_v(Quality source, float dest) {{
out.print("");
needSpace = false;
space();
out.print(source.get_v());
needSpace = true;
}}
public void after_v(Quality source, float dest) {{
out.print("");
needSpace = false;
}}
public void before_s(Main source, String dest) {{
space();
out.print("\"" + source.get_s() + "\"");
needSpace = true;
}}
public void before_indent(PrintVisitor source, int dest) {{
space();
out.print(source.get_indent());
needSpace = true;
}}
public void before_needSpace(PrintVisitor source, boolean dest) {{
space();
out.print(source.get_needSpace());
needSpace = true;
}}
public void before_copy(CopyVisitor source, Object dest) {{
space();
out.print(source.get_copy());
needSpace = true;
}}
public void before_is_equal(SubgraphVisitor source, boolean dest) {{
space();
out.print(source.get_is_equal());
needSpace = true;
}}
public void before_is_equal(EqualVisitor source, boolean dest) {{
space();
out.print(source.get_is_equal());
needSpace = true;
}}
public void before_indent(DisplayVisitor source, int dest) {{
space();
out.print(source.get_indent());
needSpace = true;
}}
public void before_indent(TraceVisitor source, int dest) {{
space();
out.print(source.get_indent());
needSpace = true;
}}
{{ void universal_trv0_bef(UniversalVisitor _v_) {
super.universal_trv0_bef(_v_);
}
}}
{{ void universal_trv0_aft(UniversalVisitor _v_) {
super.universal_trv0_aft(_v_);
}
}}
{{ void universal_trv0(UniversalVisitor _v_) {
universal_trv0_bef(_v_);
super.universal_trv0(_v_);
universal_trv0_aft(_v_);
}
}}
}