class BinData::DSLMixin::DSLParser

def ensure_valid_name(name)

def ensure_valid_name(name)
  if must_not_have_a_name_failed?(name)
    dsl_raise SyntaxError, "field must not have a name"
  end
  if all_or_none_names_failed?(name)
    dsl_raise SyntaxError, "fields must either all have names, or none must have names"
  end
  if must_have_a_name_failed?(name)
    dsl_raise SyntaxError, "field must have a name"
  end
  if malformed_name?(name)
    dsl_raise NameError.new("", name), "field '#{name}' is an illegal fieldname"
  end
  if duplicate_name?(name)
    dsl_raise SyntaxError, "duplicate field '#{name}'"
  end
  if name_shadows_method?(name)
    dsl_raise NameError.new("", name), "field '#{name}' shadows an existing method"
  end
  if name_is_reserved?(name)
    dsl_raise NameError.new("", name), "field '#{name}' is a reserved name"
  end
end