QXel.provider.braket.openqasm.parser.openqasm_parser module

Parser (openqasm3.parser)

Tools for parsing OpenQASM 3 programs into the reference AST.

The quick-start interface is simply to call openqasm3.parse:

openqasm3.parse(input_, *, permissive=False)

Parse a complete OpenQASM 3 program from a string.

Parameters:
  • input – A string containing a complete OpenQASM 3 program.

  • permissive – A Boolean controlling whether ANTLR should attempt to recover from incorrect input or not. Defaults to False; if set to True, the reference AST produced may be invalid if ANTLR emits any warning messages during its parsing phase.

Returns:

A complete Program node.

The rest of this module provides some lower-level internals of the parser.

openqasm3.parser.span(func)

Function decorator to automatic attach span to nodes for visit* methods.

openqasm3.parser.add_span(node, span)

Set the span of a node and return the node

openqasm3.parser.combine_span(first, second)

Combine two spans and return the combined one

openqasm3.parser.get_span(node)

Get the span of a node

class openqasm3.parser.QASMNodeVisitor

Bases: qasm3ParserVisitor

visitProgram(**kwargs)
visitStatement(**kwargs)
visitAnnotation(**kwargs)
visitScope(**kwargs)
visitPragma(**kwargs)
visitAliasDeclarationStatement(**kwargs)
visitAssignmentStatement(**kwargs)
visitBarrierStatement(**kwargs)
visitBoxStatement(**kwargs)
visitBreakStatement(**kwargs)
visitCalStatement(**kwargs)
visitCalibrationGrammarStatement(**kwargs)
visitClassicalDeclarationStatement(**kwargs)
visitConstDeclarationStatement(**kwargs)
visitContinueStatement(**kwargs)
visitDefStatement(**kwargs)
visitDefcalStatement(**kwargs)
visitDelayStatement(**kwargs)
visitEndStatement(**kwargs)
visitExpressionStatement(**kwargs)
visitExternStatement(**kwargs)
visitForStatement(**kwargs)
visitGateCallStatement(**kwargs)
visitGateStatement(**kwargs)
visitIfStatement(**kwargs)
visitIncludeStatement(**kwargs)
visitIoDeclarationStatement(**kwargs)
visitMeasureArrowAssignmentStatement(**kwargs)
visitOldStyleDeclarationStatement(**kwargs)
visitQuantumDeclarationStatement(**kwargs)
visitResetStatement(**kwargs)
visitReturnStatement(**kwargs)
visitSwitchStatement(**kwargs)
visitWhileStatement(**kwargs)
visitParenthesisExpression(**kwargs)
visitIndexExpression(**kwargs)
visitUnaryExpression(**kwargs)
visitPowerExpression(**kwargs)
visitMultiplicativeExpression(**kwargs)
visitAdditiveExpression(**kwargs)
visitBitshiftExpression(**kwargs)
visitComparisonExpression(**kwargs)
visitEqualityExpression(**kwargs)
visitBitwiseAndExpression(**kwargs)
visitBitwiseXorExpression(**kwargs)
visitBitwiseOrExpression(**kwargs)
visitLogicalAndExpression(**kwargs)
visitLogicalOrExpression(**kwargs)
visitCastExpression(**kwargs)
visitMeasureExpression(**kwargs)
visitDurationofExpression(**kwargs)
visitCallExpression(**kwargs)
visitLiteralExpression(**kwargs)
visitAliasExpression(**kwargs)
visitDeclarationExpression(**kwargs)
visitRangeExpression(**kwargs)
visitSetExpression(**kwargs)
visitArrayLiteral(**kwargs)
visitIndexOperator(ctx)
visitIndexedIdentifier(**kwargs)
visitDesignator(**kwargs)
visitGateModifier(**kwargs)
visitScalarType(**kwargs)
visitArrayType(**kwargs)
visitGateOperand(**kwargs)
visitDefcalTarget(**kwargs)
visitArgumentDefinition(**kwargs)
visitDefcalArgumentDefinition(**kwargs)
visitExternArgument(**kwargs)
visitDefcalOperand(**kwargs)
visitStatementOrScope(ctx)
QXel.provider.braket.openqasm.parser.openqasm_parser.parse(input_, *, permissive=False)

Parse a complete OpenQASM 3 program from a string.

Parameters:
  • input – A string containing a complete OpenQASM 3 program.

  • permissive – A Boolean controlling whether ANTLR should attempt to recover from incorrect input or not. Defaults to False; if set to True, the reference AST produced may be invalid if ANTLR emits any warning messages during its parsing phase.

Returns:

A complete Program node.

QXel.provider.braket.openqasm.parser.openqasm_parser.get_span(node)

Get the span of a node

QXel.provider.braket.openqasm.parser.openqasm_parser.add_span(node, span)

Set the span of a node and return the node

QXel.provider.braket.openqasm.parser.openqasm_parser.combine_span(first, second)

Combine two spans and return the combined one

QXel.provider.braket.openqasm.parser.openqasm_parser.span(func)

Function decorator to automatic attach span to nodes for visit* methods.

class QXel.provider.braket.openqasm.parser.openqasm_parser.QASMNodeVisitor

Bases: qasm3ParserVisitor

Convert the ANTLR parse tree into the OpenQASM reference AST.

visitProgram(**kwargs)
visitStatement(**kwargs)
visitAnnotation(**kwargs)
visitScope(ctx)
visitPragma(**kwargs)
visitAliasDeclarationStatement(**kwargs)
visitAssignmentStatement(**kwargs)
visitBarrierStatement(**kwargs)
visitBoxStatement(**kwargs)
visitBreakStatement(**kwargs)
visitCalibrationGrammarStatement(**kwargs)
visitClassicalDeclarationStatement(**kwargs)
visitConstDeclarationStatement(**kwargs)
visitContinueStatement(**kwargs)
visitDefStatement(**kwargs)
visitDefcalStatement(**kwargs)
visitDelayStatement(**kwargs)
visitEndStatement(**kwargs)
visitExpressionStatement(**kwargs)
visitExternStatement(**kwargs)
visitForStatement(**kwargs)
visitGateCallStatement(**kwargs)
visitGateStatement(**kwargs)
visitIfStatement(**kwargs)
visitIncludeStatement(**kwargs)
visitIoDeclarationStatement(**kwargs)
visitMeasureArrowAssignmentStatement(**kwargs)
visitOldStyleDeclarationStatement(**kwargs)
visitQuantumDeclarationStatement(**kwargs)
visitResetStatement(**kwargs)
visitReturnStatement(**kwargs)
visitWhileStatement(**kwargs)
visitParenthesisExpression(**kwargs)
visitIndexExpression(**kwargs)
visitUnaryExpression(**kwargs)
visitPowerExpression(**kwargs)
visitMultiplicativeExpression(**kwargs)
visitAdditiveExpression(**kwargs)
visitBitshiftExpression(**kwargs)
visitComparisonExpression(**kwargs)
visitEqualityExpression(**kwargs)
visitBitwiseAndExpression(**kwargs)
visitBitwiseXorExpression(**kwargs)
visitBitwiseOrExpression(**kwargs)
visitLogicalAndExpression(**kwargs)
visitLogicalOrExpression(**kwargs)
visitCastExpression(**kwargs)
visitMeasureExpression(**kwargs)
visitDurationofExpression(**kwargs)
visitCallExpression(**kwargs)
visitLiteralExpression(**kwargs)
visitAliasExpression(**kwargs)
visitDeclarationExpression(**kwargs)
visitRangeExpression(**kwargs)
visitSetExpression(**kwargs)
visitArrayLiteral(**kwargs)
visitIndexOperator(ctx)
visitIndexedIdentifier(**kwargs)
visitDesignator(**kwargs)
visitGateModifier(**kwargs)
visitScalarType(**kwargs)
visitArrayType(**kwargs)
visitGateOperand(**kwargs)
visitArgumentDefinition(**kwargs)
visitExternArgument(**kwargs)
visitDefcalArgument(**kwargs)
visitStatementOrScope(ctx)
exception QXel.provider.braket.openqasm.parser.openqasm_parser.QASM3ParsingError

Bases: Exception

An error raised by the AST visitor during the AST-generation phase. This is raised in cases where the given program could not be correctly parsed.