template <typename Visitor> void enumerateFields_gen(DirectiveVariable obj,  Visitor & vis) {
  vis(obj.code(),"code");
  vis(obj.name(),"name");
  vis(obj.init(),"init");
  vis(obj.type(),"type");
  vis(obj.segment(),"segment");
  vis(obj.align(),"align");
  vis(obj.dimLo(),"dimLo");
  vis(obj.dim(),"dim");
  vis(obj.dimHi(),"dimHi");
  enumerateFields(obj.modifier(), vis);
}
template <typename Visitor> void enumerateFields_gen(DirectiveVariable obj,  Visitor & vis) {
  enumerateFields_gen(Directive(obj), vis);
  vis(obj.name(),"name");
  vis(obj.init(),"init");
  vis(obj.type(),"type");
  vis(obj.segment(),"segment");
  vis(obj.align(),"align");
  enumerateFields(obj.dim(), vis);
  enumerateFields(obj.modifier(), vis);
  vis(obj.linkage(),"linkage");
  vis(obj.allocation(),"allocation");
}