#ifndef _UHDM_AST_REPORT_H_
#define _UHDM_AST_REPORT_H_ 1

#include "kernel/yosys.h"
#include <map>
#include <string>
#include <unordered_map>
#undef cover
#include <uhdm/uhdm.h>

namespace systemverilog_plugin
{

class UhdmAstReport
{
  private:
    // Maps a filename to the number of objects being handled by the frontend
    std::unordered_map<std::string, unsigned> handled_count_per_file;

  public:
    // Objects not being handled by the frontend
    std::set<const UHDM::BaseClass *> unhandled;

    // Marks the specified object as being handled by the frontend
    void mark_handled(const UHDM::BaseClass *object);

    // Marks the object referenced by the specified handle as being handled by the frontend
    void mark_handled(vpiHandle obj_h);

    // Write the coverage report to the specified path
    void write(const std::string &directory);
};

} // namespace systemverilog_plugin

#endif
