partname.beh.html

Program{
	private void fillInPartNames()allParts(PartNameSetter);
}

ClassName{
	String basename()(@
    String s = toString();
    return s.substring(s.lastIndexOf(".") + 1);
  @)
}

PartNameSetter{
	before Part (@
    if (host.get_partname() == null) {
      String newname = host.get_classname().basename().toLowerCase();
      host.set_partname(PartName.parse(newname));
    }
  @)
}

Program{
	void fillInVisitorNames()to-stop TraversalDef{
		before TraversalDef (@ host.fillInVisitorNames(); @)
	}
}

TraversalDef{
	void fillInVisitorNames()via TraversalParms to Visitor{
		(@ int i; @)
		before TraversalParms (@ i = 0; @)
		before Visitor (@
      if (host.get_visitorname() == null) {
        String newname = "__v" + (i++);
        host.set_visitorname(VisitorName.parse(newname));
      }
    @)
	}
}