Fixes #11, updated to a newer version of codegen.py to guarantee operator precedence is handled correctly