qasm-ts - v2.0.0
    Preparing search index...

    Class default

    OpenQASM 2.0 Parser

    A straightforward recursive descent parser for OpenQASM 2.0 that produces a simplified AST structure appropriate for the more limited feature set of the 2.0 language specification.

    const parser = new Parser(tokens);
    const ast = parser.parse();

    // Process the resulting AST nodes
    ast.forEach(node => {
    if (node instanceof QReg) {
    console.log(`Quantum register: ${node.id}[${node.size}]`);
    }
    });
    Index

    Constructors

    Methods

    • Parses an application of one of the allowed gates.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      • op: string

      Returns AstNode[]

      An AST node representing the gate application.

    • Parses a conditional.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      Returns AstNode

      An AST node representing the conditional.

    • Parses a classical register.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      Returns AstNode

      An AST node representing the classical register.

    • Parses an include statement.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns Include

      An Include node representing the include statement.

    • Parses an argument value.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns number

      An AST node representing the argument value.

    • Parses a list of argument values.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns [string, number?][]

      An array of AST nodes representing the argument values.

    • Parses a list of identifiers.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns string[]

      An array of AST nodes representing the identifiers.

    • Checks if the next tokens match those expected.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      • expectedTokens: Token[]

        Expected tokens.

      Returns boolean

      Whether these is a match.

    • Parses a parameter value.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns AstNode

      An AST node representing the parameter value.

    • Parses a list of parameter values.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns AstNode[][]

      An array of AST nodes representing the parameter values.

    • Parses a measurement.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      Returns AstNode

      An AST node representing the measurement.

    • Parses an opaque declaration if using OpenQASM 2. If using OpenQASM 3 it skips the line.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      Returns AstNode

      An AST node representing the opaque declaration.

    • Delegates the parsing of the next set of tokens to the appropriate method.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      • allowVariables: boolean = false

        Whether encountered identifiers should be consider variable initializations or references.

      Returns AstNode[]

      A set of AST nodes.

    • Parses a quantum register.

      Parameters

      • tokens: [Token, (string | number)?][]

        Remaining tokens to parse.

      Returns AstNode

      An AST node representing the quantum register.

    • Parses a subroutine used in a custom gate definition.

      Parameters

      • tokens: [Token, (string | number)?][]

        Expression tokens to parse.

      Returns AstNode[]

      A parsed subroutine.

    • Parses the version header and sets the parser version.

      Parameters

      • tokens: [Token, (string | number)?][]

        Tokens to parse.

      Returns Version

      A Version node representing the version statement.

    Properties

    gates: string[]

    The allowed gates.

    tokens: [Token, (string | number)?][]

    The tokens to parse.