allow multi-character variable names
add boolean flag to statements to mark whether they're generating temporary values, so we can try to optimize them away