Commit 6323223a authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

first pass at gate modifiers for qasm3

parent 70b5e348
Loading
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -47,6 +47,36 @@ def ArrayConcatOp : QuantumOp<"qarray_concat", []> {
    let results = (outs ArrayType:$concat_array);
}

def StartCtrlURegion : QuantumOp<"start_ctrl_u_region", []> {
  let arguments = (ins);
  let results = (outs);
}

def EndCtrlURegion : QuantumOp<"end_ctrl_u_region", []> {
  let arguments = (ins QubitType:$ctrl_qubit);
  let results = (outs);
}

def StartAdjointURegion : QuantumOp<"start_adj_u_region", []> {
  let arguments = (ins);
  let results = (outs);
}

def EndAdjointURegion : QuantumOp<"end_adj_u_region", []> {
  let arguments = (ins);
  let results = (outs);
}

def StartPowURegion : QuantumOp<"start_pow_u_region", []> {
  let arguments = (ins);
  let results = (outs);
}

def EndPowURegion : QuantumOp<"end_pow_u_region", []> {
  let arguments = (ins AnyI64Attr:$pow);
  let results = (outs);
}

def InstOp : QuantumOp<"inst", [AttrSizedOperandSegments]> {
    let arguments = (ins StrAttr:$name, Variadic<QubitType>:$qubits, Variadic<F64>:$params);
    let results = (outs Optional<ResultType>:$bit);
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+8 −8
Original line number Diff line number Diff line
@@ -4737,16 +4737,16 @@ qasm3Parser::QuantumGateModifierContext::QuantumGateModifierContext(ParserRuleCo
  : ParserRuleContext(parent, invokingState) {
}

tree::TerminalNode* qasm3Parser::QuantumGateModifierContext::LBRACKET() {
  return getToken(qasm3Parser::LBRACKET, 0);
tree::TerminalNode* qasm3Parser::QuantumGateModifierContext::LPAREN() {
  return getToken(qasm3Parser::LPAREN, 0);
}

qasm3Parser::ExpressionContext* qasm3Parser::QuantumGateModifierContext::expression() {
  return getRuleContext<qasm3Parser::ExpressionContext>(0);
}

tree::TerminalNode* qasm3Parser::QuantumGateModifierContext::RBRACKET() {
  return getToken(qasm3Parser::RBRACKET, 0);
tree::TerminalNode* qasm3Parser::QuantumGateModifierContext::RPAREN() {
  return getToken(qasm3Parser::RPAREN, 0);
}


@@ -4800,11 +4800,11 @@ qasm3Parser::QuantumGateModifierContext* qasm3Parser::quantumGateModifier() {
        setState(537);
        match(qasm3Parser::T__25);
        setState(538);
        match(qasm3Parser::LBRACKET);
        match(qasm3Parser::LPAREN);
        setState(539);
        expression(0);
        setState(540);
        match(qasm3Parser::RBRACKET);
        match(qasm3Parser::RPAREN);
        break;
      }

@@ -10783,8 +10783,8 @@ qasm3Parser::Initializer::Initializer() {
       0x3, 0x2, 0x2, 0x2, 0x217, 0x218, 0x7, 0x1a, 0x2, 0x2, 0x218, 0x219, 
       0x5, 0x4a, 0x26, 0x2, 0x219, 0x65, 0x3, 0x2, 0x2, 0x2, 0x21a, 0x222, 
       0x7, 0x1b, 0x2, 0x2, 0x21b, 0x21c, 0x7, 0x1c, 0x2, 0x2, 0x21c, 0x21d, 
       0x7, 0x61, 0x2, 0x2, 0x21d, 0x21e, 0x5, 0x74, 0x3b, 0x2, 0x21e, 0x21f, 
       0x7, 0x62, 0x2, 0x2, 0x21f, 0x222, 0x3, 0x2, 0x2, 0x2, 0x220, 0x222, 
       0x7, 0x65, 0x2, 0x2, 0x21d, 0x21e, 0x5, 0x74, 0x3b, 0x2, 0x21e, 0x21f, 
       0x7, 0x66, 0x2, 0x2, 0x21f, 0x222, 0x3, 0x2, 0x2, 0x2, 0x220, 0x222, 
       0x7, 0x1d, 0x2, 0x2, 0x221, 0x21a, 0x3, 0x2, 0x2, 0x2, 0x221, 0x21b, 
       0x3, 0x2, 0x2, 0x2, 0x221, 0x220, 0x3, 0x2, 0x2, 0x2, 0x222, 0x223, 
       0x3, 0x2, 0x2, 0x2, 0x223, 0x224, 0x7, 0x1e, 0x2, 0x2, 0x224, 0x67, 
+2 −2
Original line number Diff line number Diff line
@@ -1057,9 +1057,9 @@ public:
  public:
    QuantumGateModifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
    virtual size_t getRuleIndex() const override;
    antlr4::tree::TerminalNode *LBRACKET();
    antlr4::tree::TerminalNode *LPAREN();
    ExpressionContext *expression();
    antlr4::tree::TerminalNode *RBRACKET();
    antlr4::tree::TerminalNode *RPAREN();

    virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
    virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
+1 −1
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ quantumBarrier
    ;

quantumGateModifier
    : ( 'inv' | 'pow' LBRACKET expression RBRACKET | 'ctrl' ) '@'
    : ( 'inv' | 'pow' LPAREN expression RPAREN | 'ctrl' ) '@'
    ;

quantumGateCall
Loading