I decided to make my interpreter a little more general than was strictly necessary for the description/input program that I had.
whereas the test data (and my input, as far as a quick visual scan of it can tell) is always of the pattern
<register1> <operation> <integer1> if <register2> <comparator> <integer2>
I coded as if <integer1>, <integer2> and <register2> could all be either integers OR registers. (essentially, I first try to feed them through int() and only if that throws an exception do I treat them as register names)