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");
}