package EDU.neu.ccs.demeter.tools.apstudio.graphedit;
import java.awt.*;
import java.io.*;
import java.util.*;
import EDU.neu.ccs.demeter.*;
import EDU.neu.ccs.demeter.common.tg.*;


import EDU.neu.ccs.demeter.*;
class SomeClassSpecVisitor extends UniversalVisitor {
  protected UConstEdge uce;
  public UConstEdge get_uce() { return uce; }
  public void set_uce(UConstEdge new_uce)
    { uce = new_uce; }
  SomeClassSpecVisitor() { super(); }
  public SomeClassSpecVisitor(UConstEdge uce) {
    super();
    set_uce(uce);
  }

		String bef_syntax;
		String aft_syntax;
		String var_syntax;
	  public void before(RepeatedPart host) {
		bef_syntax = null;
		aft_syntax = null;
		var_syntax = null;
	}
  public void before(PlainSyntax host) {
		if(var_syntax != null)
			var_syntax += host.get_string();
		else
			var_syntax = host.get_string();
	}
  public void before(ClassSpec host) {
		bef_syntax = var_syntax;
		var_syntax = null;
	}
  public void after(RepeatedPart host) {
		aft_syntax = var_syntax;
		var_syntax = null;
		this.get_uce().set_beforeSyntax(bef_syntax);
		this.get_uce().set_afterSyntax(aft_syntax);
	}
  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_);
    uce.universal_trv0(_v_);
    super.universal_trv0(_v_);
    universal_trv0_aft(_v_);
  }
}

