Fixing compound_statement not to be quadratic in # of :s

`compound_statement` is quadratic in term of # of colons included in a line
This can be problematic for things like generated dictionaries.
I've made it not to be quadratic anymore.