Implement translateExpression
Implement translateExpression

This took a lot of doing becuase of the `applyRestriction` case and the
interaction between it and `translateBlock`; they have to be the same
return value, but a Block didn't at the time get translated into a Step.

oprdyn/technique,oprdyn/technique