autoqasm.converters.assignments module

Converters for assignment nodes.

class autoqasm.converters.assignments.AssignTransformer(ctx)[source]

Bases: Base

Initialize the transformer.

Subclasses should call this.

Parameters:

ctx – A Context object.

visit_AugAssign(node: stmt) stmt[source]

Converts augmented assignment operations (+=, -=, etc.) into regular assignments so they flow through assign_stmt.

val += expr is desugared to val = val + expr and then transformed by visit_Assign.

Parameters:

node (ast.stmt) – AST node to transform.

Returns:

ast.stmt – Transformed node.

visit_Assign(node: stmt) stmt[source]

Converts assignment operations to their AutoQASM counterpart. Supports assignment to a single variable. Operator declares the oq variable, or sets variable’s value if it’s already declared.

Parameters:

node (ast.stmt) – AST node to transform.

Returns:

ast.stmt – Transformed node.

autoqasm.converters.assignments.transform(node: stmt, ctx: ControlStatusCtx) stmt[source]

Transform assignment nodes.

Parameters:
  • node (ast.stmt) – AST node to transform.

  • ctx (ag_ctx.ControlStatusCtx) – Transformer context.

Returns:

ast.stmt – Transformed node.