' I have to look into it a bit more, but LALR parsers (like those generated by CUP) are supposedly O( n ) time and space.'
Currently parsing is done during deploy. The parsed Par is then stored in a Deploy element along with DeployData and evaluated during propose.
The way forward here would be to do parsing again during propose, so that lexing and parsing costs do not need to be calculated during deploy (no need to add complexity by injecting the cost accounting algebra). The next step would be the removal of Par from Deploy (or even complete removal of Deploy from protobuf, as after the removal it would only contain DeployData)