class BinData::DSLMixin::DSLBigAndLittleEndianHandler

def fixup_subclass_hierarchy(bnl_class)

def fixup_subclass_hierarchy(bnl_class)
  parent = bnl_class.superclass
  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
end