The compiler previously required a TOKEN_LINE after each statement in a block, causing parse failures for files missing a final newline. Changed consume() to match() with conditional break, and added a test case for no-trailing-newline files.