class_docstr: Class to form objects from Qasm lines
  
  >>> from sympy.physics.quantum.qasm import Qasm
  >>> q = Qasm('qubit q0', 'qubit q1', 'h q0', 'cnot q0,q1')
  >>> q.get_circuit()
  CNOT(1,0)*H(1)
  >>> q = Qasm('qubit q0', 'qubit q1', 'cnot q0,q1', 'cnot q1,q0', 'cnot q0,q1')
  >>> q.get_circuit()
  CNOT(1,0)*CNOT(0,1)*CNOT(1,0)
code: def add(self, *lines):
      for line in nonblank(lines):
          command, rest = fullsplit(line)
          if self.defs.get(
              command
          ):  # defs come first, since you can override built-in
              function = self.defs.get(command)
              indices = self.indices(rest)
              if len(indices) == 1:
                  self.circuit.append(function(indices[0]))
              else:
                  self.circuit.append(
                      function(indices[:-1], indices[-1])
                  )
          elif hasattr(self, command):
              function = getattr(self, command)
              function(*rest)
          else:
              print("Function %s not defined. Skipping" % command)
  
imports: from math import prod
  from sympy.physics.quantum.gate import H, CNOT, X, Z, CGate, CGateS, SWAP, S, T, CPHASE
  from sympy.physics.quantum.circuitplot import Mz
label_desc: Use image node_id 2 for calling the Qasm obj's underlying member method code with example usage: obj.add() without return types