/* -*- c++ -*- */
#ifndef AKAXISONIZER_H__
#define AKAXISONIZER_H__

#include "processor.h"

class akaxisonizer {
  registry *registry_;
  bool simplify_class(class_def *def);
  bool optimize_children(class_def *def);
  void add_missings_for_class(class_def *def);
  bool add_member_number(aka::qname &name, int index);
  void fix_anonymous_member_name(aka::qname &name);
  void fix_member_name(class_def *def);
  aka::qname define_array(const aka::qname &valuename, const aka::occurrence &occ);
  bool verbose_;
public:
  akaxisonizer(registry &reg, bool verbose) : registry_(&reg), verbose_(verbose){}
  void replace_any();
  void akaxisonize(); 
  void add_missings();
};


#endif
