To the parser, the error isn't really manifest until "firm ground" is reached. A colon is a valid symbol, and so the _expression_ cannot be processed until a delimiter (;) or EOF is seen. Note that the lines below are a valid if rather useless awk program:
some text
# comment
# comment
is fine
(Remember Brian Kernighan's statement re awk's concatenation operator: "It seemed like a good idea at the time.")
If you like puzzles, here is one: If you add a BEGIN { ... } to this program, what is the minimum you need to insert at the ellipsis to make the program produce some output?
-W