class QPanda::OriginIRVisitor¶
Overview¶
OriginIR Visitor. More…
#include <OriginIRToQProg.h> class OriginIRVisitor: public originirBaseVisitor { public: // enums enum OpType; // structs struct ExprContext; struct GateContext; // construction OriginIRVisitor( QuantumMachine* qm, QVec& qv, std::vector<ClassicalCondition>& cv ); // methods QProg get_qprog(size_t progid); virtual antlrcpp::Any visitTranslationunit(originirParser::TranslationunitContext* context); virtual antlrcpp::Any visitQinit_declaration(originirParser::Qinit_declarationContext* ctx); virtual antlrcpp::Any visitCinit_declaration(originirParser::Cinit_declarationContext* ctx); virtual antlrcpp::Any visitIndex(originirParser::IndexContext* ctx); virtual antlrcpp::Any visitC_KEY_declaration(originirParser::C_KEY_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_without_parameter_declaration(originirParser::Single_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_one_parameter_declaration(originirParser::Single_gate_with_one_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_two_parameter_declaration(originirParser::Single_gate_with_two_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_three_parameter_declaration(originirParser::Single_gate_with_three_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_four_parameter_declaration(originirParser::Single_gate_with_four_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_without_parameter_declaration(originirParser::Double_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_one_parameter_declaration(originirParser::Double_gate_with_one_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_four_parameter_declaration(originirParser::Double_gate_with_four_parameter_declarationContext* ctx); virtual antlrcpp::Any visitTriple_gate_without_parameter_declaration(originirParser::Triple_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_without_parameter_type(originirParser::Single_gate_without_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_one_parameter_type(originirParser::Single_gate_with_one_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_two_parameter_type(originirParser::Single_gate_with_two_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_three_parameter_type(originirParser::Single_gate_with_three_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_four_parameter_type(originirParser::Single_gate_with_four_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_without_parameter_type(originirParser::Double_gate_without_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_one_parameter_type(originirParser::Double_gate_with_one_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_four_parameter_type(originirParser::Double_gate_with_four_parameter_typeContext* ctx); virtual antlrcpp::Any visitTriple_gate_without_parameter_type(originirParser::Triple_gate_without_parameter_typeContext* ctx); void call_define_gatefunc( size_t prog_id, const std::string& func_name, const std::vector<ExprContext>& actual_qubits, const std::vector<double>& actual_angles ); virtual antlrcpp::Any visitDefine_gate_declaration(originirParser::Define_gate_declarationContext* ctx); virtual antlrcpp::Any visitPri_ckey(originirParser::Pri_ckeyContext* ctx); virtual antlrcpp::Any visitPri_cst(originirParser::Pri_cstContext* ctx); virtual antlrcpp::Any visitPri_expr(originirParser::Pri_exprContext* ctx); virtual antlrcpp::Any visitUnary_expression(originirParser::Unary_expressionContext* ctx); virtual antlrcpp::Any visitMultiplicative_expression(originirParser::Multiplicative_expressionContext* ctx); virtual antlrcpp::Any visitAddtive_expression(originirParser::Addtive_expressionContext* ctx); virtual antlrcpp::Any visitRelational_expression(originirParser::Relational_expressionContext* ctx); virtual antlrcpp::Any visitEquality_expression(originirParser::Equality_expressionContext* ctx); virtual antlrcpp::Any visitLogical_and_expression(originirParser::Logical_and_expressionContext* ctx); virtual antlrcpp::Any visitLogical_or_expression(originirParser::Logical_or_expressionContext* ctx); virtual antlrcpp::Any visitAssignment_expression(originirParser::Assignment_expressionContext* ctx); virtual antlrcpp::Any visitControlbit_list(originirParser::Controlbit_listContext* ctx); virtual antlrcpp::Any visitStatement(originirParser::StatementContext* ctx); virtual antlrcpp::Any visitDagger_statement(originirParser::Dagger_statementContext* ctx); virtual antlrcpp::Any visitControl_statement(originirParser::Control_statementContext* ctx); virtual antlrcpp::Any visitQelse_statement_fragment(originirParser::Qelse_statement_fragmentContext* ctx); virtual antlrcpp::Any visitQif_if(originirParser::Qif_ifContext* ctx); virtual antlrcpp::Any visitQif_ifelse(originirParser::Qif_ifelseContext* ctx); virtual antlrcpp::Any visitQwhile_statement(originirParser::Qwhile_statementContext* ctx); virtual antlrcpp::Any visitMeasure_statement(originirParser::Measure_statementContext* ctx); virtual antlrcpp::Any visitReset_statement(originirParser::Reset_statementContext* ctx); virtual antlrcpp::Any visitBarrier_statement(originirParser::Barrier_statementContext* ctx); virtual antlrcpp::Any visitExpression_statement(originirParser::Expression_statementContext* ctx); virtual antlrcpp::Any visitDefine_gate_statement(originirParser::Define_gate_statementContext* ctx); virtual antlrcpp::Any visitExplist(originirParser::ExplistContext* ctx); virtual antlrcpp::Any visitExp(originirParser::ExpContext* ctx); virtual antlrcpp::Any visitGate_func_statement(originirParser::Gate_func_statementContext* ctx); virtual antlrcpp::Any visitId_list(originirParser::Id_listContext* ctx); };
Inherited Members¶
public: // methods virtual antlrcpp::Any visitTranslationunit(originirParser::TranslationunitContext* context) = 0; virtual antlrcpp::Any visitDeclaration(originirParser::DeclarationContext* context) = 0; virtual antlrcpp::Any visitQinit_declaration(originirParser::Qinit_declarationContext* context) = 0; virtual antlrcpp::Any visitCinit_declaration(originirParser::Cinit_declarationContext* context) = 0; virtual antlrcpp::Any visitQuantum_gate_declaration(originirParser::Quantum_gate_declarationContext* context) = 0; virtual antlrcpp::Any visitIndex(originirParser::IndexContext* context) = 0; virtual antlrcpp::Any visitC_KEY_declaration(originirParser::C_KEY_declarationContext* context) = 0; virtual antlrcpp::Any visitQ_KEY_declaration(originirParser::Q_KEY_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_without_parameter_declaration(originirParser::Single_gate_without_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_one_parameter_declaration(originirParser::Single_gate_with_one_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_two_parameter_declaration(originirParser::Single_gate_with_two_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_three_parameter_declaration(originirParser::Single_gate_with_three_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_four_parameter_declaration(originirParser::Single_gate_with_four_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_without_parameter_declaration(originirParser::Double_gate_without_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_with_one_parameter_declaration(originirParser::Double_gate_with_one_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_with_four_parameter_declaration(originirParser::Double_gate_with_four_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitTriple_gate_without_parameter_declaration(originirParser::Triple_gate_without_parameter_declarationContext* context) = 0; virtual antlrcpp::Any visitDefine_gate_declaration(originirParser::Define_gate_declarationContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_without_parameter_type(originirParser::Single_gate_without_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_one_parameter_type(originirParser::Single_gate_with_one_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_two_parameter_type(originirParser::Single_gate_with_two_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_three_parameter_type(originirParser::Single_gate_with_three_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitSingle_gate_with_four_parameter_type(originirParser::Single_gate_with_four_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_without_parameter_type(originirParser::Double_gate_without_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_with_one_parameter_type(originirParser::Double_gate_with_one_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitDouble_gate_with_four_parameter_type(originirParser::Double_gate_with_four_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitTriple_gate_without_parameter_type(originirParser::Triple_gate_without_parameter_typeContext* context) = 0; virtual antlrcpp::Any visitPri_ckey(originirParser::Pri_ckeyContext* context) = 0; virtual antlrcpp::Any visitPri_cst(originirParser::Pri_cstContext* context) = 0; virtual antlrcpp::Any visitPri_expr(originirParser::Pri_exprContext* context) = 0; virtual antlrcpp::Any visitUnary_expression(originirParser::Unary_expressionContext* context) = 0; virtual antlrcpp::Any visitMultiplicative_expression(originirParser::Multiplicative_expressionContext* context) = 0; virtual antlrcpp::Any visitAddtive_expression(originirParser::Addtive_expressionContext* context) = 0; virtual antlrcpp::Any visitRelational_expression(originirParser::Relational_expressionContext* context) = 0; virtual antlrcpp::Any visitEquality_expression(originirParser::Equality_expressionContext* context) = 0; virtual antlrcpp::Any visitLogical_and_expression(originirParser::Logical_and_expressionContext* context) = 0; virtual antlrcpp::Any visitLogical_or_expression(originirParser::Logical_or_expressionContext* context) = 0; virtual antlrcpp::Any visitAssignment_expression(originirParser::Assignment_expressionContext* context) = 0; virtual antlrcpp::Any visitExpression(originirParser::ExpressionContext* context) = 0; virtual antlrcpp::Any visitControlbit_list(originirParser::Controlbit_listContext* context) = 0; virtual antlrcpp::Any visitStatement(originirParser::StatementContext* context) = 0; virtual antlrcpp::Any visitDagger_statement(originirParser::Dagger_statementContext* context) = 0; virtual antlrcpp::Any visitControl_statement(originirParser::Control_statementContext* context) = 0; virtual antlrcpp::Any visitQelse_statement_fragment(originirParser::Qelse_statement_fragmentContext* context) = 0; virtual antlrcpp::Any visitQif_if(originirParser::Qif_ifContext* context) = 0; virtual antlrcpp::Any visitQif_ifelse(originirParser::Qif_ifelseContext* context) = 0; virtual antlrcpp::Any visitQwhile_statement(originirParser::Qwhile_statementContext* context) = 0; virtual antlrcpp::Any visitMeasure_statement(originirParser::Measure_statementContext* context) = 0; virtual antlrcpp::Any visitReset_statement(originirParser::Reset_statementContext* context) = 0; virtual antlrcpp::Any visitBarrier_statement(originirParser::Barrier_statementContext* context) = 0; virtual antlrcpp::Any visitExpression_statement(originirParser::Expression_statementContext* context) = 0; virtual antlrcpp::Any visitDefine_gate_statement(originirParser::Define_gate_statementContext* context) = 0; virtual antlrcpp::Any visitExplist(originirParser::ExplistContext* context) = 0; virtual antlrcpp::Any visitExp(originirParser::ExpContext* context) = 0; virtual antlrcpp::Any visitGate_func_statement(originirParser::Gate_func_statementContext* context) = 0; virtual antlrcpp::Any visitId(originirParser::IdContext* context) = 0; virtual antlrcpp::Any visitId_list(originirParser::Id_listContext* context) = 0; virtual antlrcpp::Any visitGate_name(originirParser::Gate_nameContext* context) = 0; virtual antlrcpp::Any visitConstant(originirParser::ConstantContext* context) = 0; virtual antlrcpp::Any visitTranslationunit(originirParser::TranslationunitContext* context); virtual antlrcpp::Any visitDeclaration(originirParser::DeclarationContext* ctx); virtual antlrcpp::Any visitQinit_declaration(originirParser::Qinit_declarationContext* ctx); virtual antlrcpp::Any visitCinit_declaration(originirParser::Cinit_declarationContext* ctx); virtual antlrcpp::Any visitQuantum_gate_declaration(originirParser::Quantum_gate_declarationContext* ctx); virtual antlrcpp::Any visitIndex(originirParser::IndexContext* ctx); virtual antlrcpp::Any visitC_KEY_declaration(originirParser::C_KEY_declarationContext* ctx); virtual antlrcpp::Any visitQ_KEY_declaration(originirParser::Q_KEY_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_without_parameter_declaration(originirParser::Single_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_one_parameter_declaration(originirParser::Single_gate_with_one_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_two_parameter_declaration(originirParser::Single_gate_with_two_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_three_parameter_declaration(originirParser::Single_gate_with_three_parameter_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_four_parameter_declaration(originirParser::Single_gate_with_four_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_without_parameter_declaration(originirParser::Double_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_one_parameter_declaration(originirParser::Double_gate_with_one_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_four_parameter_declaration(originirParser::Double_gate_with_four_parameter_declarationContext* ctx); virtual antlrcpp::Any visitTriple_gate_without_parameter_declaration(originirParser::Triple_gate_without_parameter_declarationContext* ctx); virtual antlrcpp::Any visitDefine_gate_declaration(originirParser::Define_gate_declarationContext* ctx); virtual antlrcpp::Any visitSingle_gate_without_parameter_type(originirParser::Single_gate_without_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_one_parameter_type(originirParser::Single_gate_with_one_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_two_parameter_type(originirParser::Single_gate_with_two_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_three_parameter_type(originirParser::Single_gate_with_three_parameter_typeContext* ctx); virtual antlrcpp::Any visitSingle_gate_with_four_parameter_type(originirParser::Single_gate_with_four_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_without_parameter_type(originirParser::Double_gate_without_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_one_parameter_type(originirParser::Double_gate_with_one_parameter_typeContext* ctx); virtual antlrcpp::Any visitDouble_gate_with_four_parameter_type(originirParser::Double_gate_with_four_parameter_typeContext* ctx); virtual antlrcpp::Any visitTriple_gate_without_parameter_type(originirParser::Triple_gate_without_parameter_typeContext* ctx); virtual antlrcpp::Any visitPri_ckey(originirParser::Pri_ckeyContext* ctx); virtual antlrcpp::Any visitPri_cst(originirParser::Pri_cstContext* ctx); virtual antlrcpp::Any visitPri_expr(originirParser::Pri_exprContext* ctx); virtual antlrcpp::Any visitUnary_expression(originirParser::Unary_expressionContext* ctx); virtual antlrcpp::Any visitMultiplicative_expression(originirParser::Multiplicative_expressionContext* ctx); virtual antlrcpp::Any visitAddtive_expression(originirParser::Addtive_expressionContext* ctx); virtual antlrcpp::Any visitRelational_expression(originirParser::Relational_expressionContext* ctx); virtual antlrcpp::Any visitEquality_expression(originirParser::Equality_expressionContext* ctx); virtual antlrcpp::Any visitLogical_and_expression(originirParser::Logical_and_expressionContext* ctx); virtual antlrcpp::Any visitLogical_or_expression(originirParser::Logical_or_expressionContext* ctx); virtual antlrcpp::Any visitAssignment_expression(originirParser::Assignment_expressionContext* ctx); virtual antlrcpp::Any visitExpression(originirParser::ExpressionContext* ctx); virtual antlrcpp::Any visitControlbit_list(originirParser::Controlbit_listContext* ctx); virtual antlrcpp::Any visitStatement(originirParser::StatementContext* ctx); virtual antlrcpp::Any visitDagger_statement(originirParser::Dagger_statementContext* ctx); virtual antlrcpp::Any visitControl_statement(originirParser::Control_statementContext* ctx); virtual antlrcpp::Any visitQelse_statement_fragment(originirParser::Qelse_statement_fragmentContext* ctx); virtual antlrcpp::Any visitQif_if(originirParser::Qif_ifContext* ctx); virtual antlrcpp::Any visitQif_ifelse(originirParser::Qif_ifelseContext* ctx); virtual antlrcpp::Any visitQwhile_statement(originirParser::Qwhile_statementContext* ctx); virtual antlrcpp::Any visitMeasure_statement(originirParser::Measure_statementContext* ctx); virtual antlrcpp::Any visitReset_statement(originirParser::Reset_statementContext* ctx); virtual antlrcpp::Any visitBarrier_statement(originirParser::Barrier_statementContext* ctx); virtual antlrcpp::Any visitExpression_statement(originirParser::Expression_statementContext* ctx); virtual antlrcpp::Any visitDefine_gate_statement(originirParser::Define_gate_statementContext* ctx); virtual antlrcpp::Any visitExplist(originirParser::ExplistContext* ctx); virtual antlrcpp::Any visitExp(originirParser::ExpContext* ctx); virtual antlrcpp::Any visitGate_func_statement(originirParser::Gate_func_statementContext* ctx); virtual antlrcpp::Any visitId(originirParser::IdContext* ctx); virtual antlrcpp::Any visitId_list(originirParser::Id_listContext* ctx); virtual antlrcpp::Any visitGate_name(originirParser::Gate_nameContext* ctx); virtual antlrcpp::Any visitConstant(originirParser::ConstantContext* ctx);
Detailed Documentation¶
OriginIR Visitor.
Methods¶
virtual antlrcpp::Any visitTranslationunit(originirParser::TranslationunitContext* context)
Visit parse trees produced by originirParser.