class BinData::DSLMixin::DSLParser

def parser_abilities

def parser_abilities
  @abilities ||= {
    struct:     [:to_struct_params, :struct,      [:multiple_fields, :optional_fieldnames, :hidden_fields]],
    array:      [:to_object_params, :type,        [:multiple_fields, :optional_fieldnames]],
    buffer:     [:to_object_params, :type,        [:multiple_fields, :optional_fieldnames, :hidden_fields]],
    choice:     [:to_choice_params, :choices,     [:multiple_fields, :all_or_none_fieldnames, :fieldnames_are_values]],
    delayed_io: [:to_object_params, :type,        [:multiple_fields, :optional_fieldnames, :hidden_fields]],
    primitive:  [:to_struct_params, :struct,      [:multiple_fields, :optional_fieldnames]],
    skip:       [:to_object_params, :until_valid, [:multiple_fields, :optional_fieldnames]],
  }
end