class QPanda::QASMToQProg¶
Overview¶
QASM instruction sets convert to quantum program. More…
#include <QASMToQProg.h> class QASMToQProg: public qasmBaseVisitor { public: // construction QASMToQProg( QuantumMachine* qvm, QVec& qv, std::vector<ClassicalCondition>& cv ); // methods virtual antlrcpp::Any visitMainprogram(qasmParser::MainprogramContext* ctx); virtual antlrcpp::Any visitHead_decl(qasmParser::Head_declContext* ctx); virtual antlrcpp::Any visitVersion_decl(qasmParser::Version_declContext* ctx); virtual antlrcpp::Any visitInclude_decl(qasmParser::Include_declContext* ctx); virtual antlrcpp::Any visitStatement(qasmParser::StatementContext* ctx); virtual antlrcpp::Any visitReg_decl(qasmParser::Reg_declContext* ctx); virtual antlrcpp::Any visitOpaque_decl(qasmParser::Opaque_declContext* ctx); virtual antlrcpp::Any visitIf_decl(qasmParser::If_declContext* ctx); virtual antlrcpp::Any visitBarrier_decl(qasmParser::Barrier_declContext* ctx); virtual antlrcpp::Any visitGate_decl(qasmParser::Gate_declContext* ctx); virtual antlrcpp::Any visitGoplist(qasmParser::GoplistContext* ctx); virtual antlrcpp::Any visitBop(qasmParser::BopContext* ctx); virtual antlrcpp::Any visitQop(qasmParser::QopContext* ctx); virtual antlrcpp::Any visitUop(qasmParser::UopContext* ctx); virtual antlrcpp::Any visitAnylist(qasmParser::AnylistContext* ctx); virtual antlrcpp::Any visitIdlist(qasmParser::IdlistContext* ctx); virtual antlrcpp::Any visitArgument(qasmParser::ArgumentContext* ctx); virtual antlrcpp::Any visitId_index(qasmParser::Id_indexContext* ctx); virtual antlrcpp::Any visitExplist(qasmParser::ExplistContext* ctx); virtual antlrcpp::Any visitExp(qasmParser::ExpContext* ctx); virtual antlrcpp::Any visitId(qasmParser::IdContext* ctx); virtual antlrcpp::Any visitInteger(qasmParser::IntegerContext* ctx); virtual antlrcpp::Any visitReal(qasmParser::RealContext* ctx); virtual antlrcpp::Any visitDecimal(qasmParser::DecimalContext* ctx); virtual antlrcpp::Any visitFilename(qasmParser::FilenameContext* ctx); QVec find_qvec_map_value(std::string str_key); std::vector<ClassicalCondition> find_cvec_map_value(std::string str_key); void execute_gate_function( GateOperationInfo op_info, QProg& prog ); void build_zero_param_single_gate( QASMGateType type, bool is_dagger, GateOperationInfo op_info, QProg& prog ); void build_one_param_single_gate( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_two_param_single_gate_func( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_three_param_single_gate( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_zero_param_double_gate( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_zero_param_triple_gate( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_zero_param_double_circuit( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_one_param_double_circuit( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_three_param_double_circuit( QASMGateType type, GateOperationInfo op_info, QProg& prog ); void build_qprog( GateOperationInfo op_info, QProg& prog ); QProg get_qprog(); };
Inherited Members¶
public: // methods virtual antlrcpp::Any visitMainprogram(qasmParser::MainprogramContext* context) = 0; virtual antlrcpp::Any visitHead_decl(qasmParser::Head_declContext* context) = 0; virtual antlrcpp::Any visitVersion_decl(qasmParser::Version_declContext* context) = 0; virtual antlrcpp::Any visitInclude_decl(qasmParser::Include_declContext* context) = 0; virtual antlrcpp::Any visitStatement(qasmParser::StatementContext* context) = 0; virtual antlrcpp::Any visitReg_decl(qasmParser::Reg_declContext* context) = 0; virtual antlrcpp::Any visitOpaque_decl(qasmParser::Opaque_declContext* context) = 0; virtual antlrcpp::Any visitIf_decl(qasmParser::If_declContext* context) = 0; virtual antlrcpp::Any visitBarrier_decl(qasmParser::Barrier_declContext* context) = 0; virtual antlrcpp::Any visitGate_decl(qasmParser::Gate_declContext* context) = 0; virtual antlrcpp::Any visitGoplist(qasmParser::GoplistContext* context) = 0; virtual antlrcpp::Any visitBop(qasmParser::BopContext* context) = 0; virtual antlrcpp::Any visitQop(qasmParser::QopContext* context) = 0; virtual antlrcpp::Any visitUop(qasmParser::UopContext* context) = 0; virtual antlrcpp::Any visitAnylist(qasmParser::AnylistContext* context) = 0; virtual antlrcpp::Any visitIdlist(qasmParser::IdlistContext* context) = 0; virtual antlrcpp::Any visitId_index(qasmParser::Id_indexContext* context) = 0; virtual antlrcpp::Any visitArgument(qasmParser::ArgumentContext* context) = 0; virtual antlrcpp::Any visitExplist(qasmParser::ExplistContext* context) = 0; virtual antlrcpp::Any visitExp(qasmParser::ExpContext* context) = 0; virtual antlrcpp::Any visitId(qasmParser::IdContext* context) = 0; virtual antlrcpp::Any visitReal(qasmParser::RealContext* context) = 0; virtual antlrcpp::Any visitInteger(qasmParser::IntegerContext* context) = 0; virtual antlrcpp::Any visitDecimal(qasmParser::DecimalContext* context) = 0; virtual antlrcpp::Any visitFilename(qasmParser::FilenameContext* context) = 0; virtual antlrcpp::Any visitMainprogram(qasmParser::MainprogramContext* context); virtual antlrcpp::Any visitHead_decl(qasmParser::Head_declContext* ctx); virtual antlrcpp::Any visitVersion_decl(qasmParser::Version_declContext* ctx); virtual antlrcpp::Any visitInclude_decl(qasmParser::Include_declContext* ctx); virtual antlrcpp::Any visitStatement(qasmParser::StatementContext* ctx); virtual antlrcpp::Any visitReg_decl(qasmParser::Reg_declContext* ctx); virtual antlrcpp::Any visitOpaque_decl(qasmParser::Opaque_declContext* ctx); virtual antlrcpp::Any visitIf_decl(qasmParser::If_declContext* ctx); virtual antlrcpp::Any visitBarrier_decl(qasmParser::Barrier_declContext* ctx); virtual antlrcpp::Any visitGate_decl(qasmParser::Gate_declContext* ctx); virtual antlrcpp::Any visitGoplist(qasmParser::GoplistContext* ctx); virtual antlrcpp::Any visitBop(qasmParser::BopContext* ctx); virtual antlrcpp::Any visitQop(qasmParser::QopContext* ctx); virtual antlrcpp::Any visitUop(qasmParser::UopContext* ctx); virtual antlrcpp::Any visitAnylist(qasmParser::AnylistContext* ctx); virtual antlrcpp::Any visitIdlist(qasmParser::IdlistContext* ctx); virtual antlrcpp::Any visitId_index(qasmParser::Id_indexContext* ctx); virtual antlrcpp::Any visitArgument(qasmParser::ArgumentContext* ctx); virtual antlrcpp::Any visitExplist(qasmParser::ExplistContext* ctx); virtual antlrcpp::Any visitExp(qasmParser::ExpContext* ctx); virtual antlrcpp::Any visitId(qasmParser::IdContext* ctx); virtual antlrcpp::Any visitReal(qasmParser::RealContext* ctx); virtual antlrcpp::Any visitInteger(qasmParser::IntegerContext* ctx); virtual antlrcpp::Any visitDecimal(qasmParser::DecimalContext* ctx); virtual antlrcpp::Any visitFilename(qasmParser::FilenameContext* ctx);
Detailed Documentation¶
QASM instruction sets convert to quantum program.
Methods¶
virtual antlrcpp::Any visitMainprogram(qasmParser::MainprogramContext* ctx)
They are abstract visitors for a parse tree produced by qasmParser.
QProg get_qprog()
get converted quantum programs
Returns: