16 std::shared_ptr<IInterpreterPortsFactory> ports)
17: marty_api(
std::move(api))
21 const auto smPath = names->getSmMappingFileName();
23 const auto modelPath =
24 (model ==
"SM" || model ==
"sm")
26 : names->getjsondbmodel();
28 resolver = ports->makeResolver(model, modelPath, smPath);
31std::unordered_map<std::string, InterpretedParam>
33 const bool modelIsSM = (marty_api->get() ==
Model::SM);
35 auto resolved = resolver->resolve(params, modelIsSM);
37 std::unordered_map<std::string, InterpretedParam> out;
38 out.reserve(resolved.size());
39 for (
auto& [name, r] : resolved) {
40 out[name] = { r.block, r.code, r.is_bsm, r.is_complex };
46 : resolver(other.resolver ? other.resolver->clone() : nullptr),
47 marty_api(other.marty_api)
51 if (
this == &other)
return *
this;
52 std::unique_ptr<IParameterResolver> newResolver =
53 other.resolver ? other.resolver->clone() :
nullptr;
54 marty_api = other.marty_api;
55 resolver = std::move(newResolver);
Declares the Interpreter that maps MARTY parameters to Hyperiso IDs.
static std::shared_ptr< FileNameManager > getInstance(const std::string &wilson="", const std::string &model="")
Retrieves a FileNameManager for a given (wilson, model) pair.
Generic interface returning a single value of type T from the core.
Resolves MARTY parameter names into Hyperiso blocks and IDs.
std::unordered_map< std::string, InterpretedParam > interpret(std::vector< Extractor::Parameter > ¶ms)
Interprets a set of extracted parameters.
Interpreter & operator=(const Interpreter &other)
Copy assignment operator.
Interpreter(const std::string &model, std::shared_ptr< ICoreAPI< Model > > api, std::shared_ptr< IInterpreterPortsFactory > ports)
Constructs an Interpreter for a given model.
Hash specialization for SymbolId<Tag>.