#ifndef PARAMETERS_H
#define PARAMETERS_H

#include "netlist_writer.h"

namespace fasm {

// Utility class emit parameters from eblif
class Parameters {
 public:
  // Adds a parameter mapping between an eblif parameter (e.g. .param <param> <value>)
  // to FASM feature.
  void AddParameter(const std::string &eblif_parameter, const std::string &fasm_feature);

  // Return a FASM feature directive for the given parameter and value.
  std::string EmitFasmFeature(const std::string &eblif_parameter, const std::string &value);
 private:
  struct FeatureParameter {
      size_t width;
      std::string feature;
  };

  std::unordered_map<std::string, FeatureParameter> features_;

  size_t FeatureWidth(const std::string &feature) const;
};

} // namespace fasm

#endif  // PARAMETERS_H
