21template <
typename Time = Types::time_type>
class QasmToCirc
35 const std::unordered_map<std::string, double> ¶ms = {})
41 std::string qasmInput = qasmInputStr;
50 std::string qasmInput = qasmInputStr;
93 auto it = qasmInput.begin();
94 QasmSkipper<std::string::iterator> skipper;
95 if (boost::spirit::qi::phrase_parse(it, qasmInput.end(),
grammar, skipper,
program))
97 if (it == qasmInput.end())
99 grammar.ValidateInputBindings();
105 errorMessage =
"Error: Unparsed input remaining: '" + std::string(it, qasmInput.end()) +
"'";
111 errorMessage =
"Error: Parsing failed, unparsed input remaining: '" + std::string(it, qasmInput.end()) +
"'";
114 catch (
const std::exception &ex)
std::shared_ptr< Circuits::Circuit< Time > > ParseAndTranslateWithParams(const std::string &qasmInputStr, const std::unordered_map< std::string, double > ¶ms={})
double GetVersion() const
const std::string & GetErrorMessage() const
const std::vector< std::string > & GetIncludes() const
std::shared_ptr< Circuits::Circuit< Time > > ParseAndTranslateImpl(std::string &qasmInput)
std::shared_ptr< Circuits::Circuit< Time > > ParseAndTranslate(const std::string &qasmInputStr)
const std::vector< std::string > & GetComments() const
qasm::QasmGrammar grammar
const std::vector< std::string > & GetInputs() const