class BinData::DSLMixin::DSLBigAndLittleEndianHandler

def fixup_subclass_hierarchy(bnl_class)

def fixup_subclass_hierarchy(bnl_class)
  parent = bnl_class.superclass
  return if obj_attribute(parent, :endian) != :big_and_little
  be_subclass = class_with_endian(bnl_class, :big)
  be_parent   = class_with_endian(parent, :big)
  be_fields   = obj_attribute(be_parent, :fields)
  le_subclass = class_with_endian(bnl_class, :little)
  le_parent   = class_with_endian(parent, :little)
  le_fields   = obj_attribute(le_parent, :fields)
  be_subclass.dsl_parser.define_singleton_method(:parent_fields) do
    be_fields
  end
  le_subclass.dsl_parser.define_singleton_method(:parent_fields) do
    le_fields
  end
end