Lua doesn't have do-while syntax. I was originally just copying the
expression from the "while" statement once more, and using it as the do
expression. However, it's possible to "break" from this do section as
well. It seems the best way to replicate this in lua is to emulate the
"do" block with a separate "while" statement that will automitically
break when it reaches the end... unless the generated code issues a
"break" first.