/* Clock24To12.hpp */

#ifndef Clock24To12_hpp
#define Clock24To12_hpp

#include <vector>

#include "Visitor.hpp"

class Rule;

class Clock24To12 : public Visitor
{
public:
  void* visit(const Rule_Clock* rule);
  void* visit(const Rule_Hours* rule);
  void* visit(const Rule_Minutes* rule);
  void* visit(const Rule_Seconds* rule);
  void* visit(const Rule_Separator* rule);

  void* visit(const Terminal_StringValue* value);
  void* visit(const Terminal_NumericValue* value);

private:
  int hour;

  void* visitRules(const std::vector<const Rule*>& rules);
};

#endif

/* eof */