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 toTrue, the reference AST produced may be invalid if ANTLR emits any warning messages during its parsing phase.
- Returns:
A complete
Programnode.
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 toTrue, the reference AST produced may be invalid if ANTLR emits any warning messages during its parsing phase.
- Returns:
A complete
Programnode.
- 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:
qasm3ParserVisitorConvert 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:
ExceptionAn 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.