Run threaded code in machine.

        Args:
            steps: If specified, run that many number of instructions before
            stopping.

def run(self, steps=None):
        """Run threaded code in machine.

        Args:
            steps: If specified, run that many number of instructions before
            stopping.
        """
        try:
            while self.instruction_pointer < len(self.code):
                self.step()

                if steps is not None:
                    steps -= 1
                    if steps == 0:
                        break
        except StopIteration:
            pass
        except EOFError:
            pass
        return self