Reorganising 'parsing' part of project.
Remove redundant rescue;

Kernel.loop catches StopIteration and causes the loop to terminate, therefore anything in this block would never have been called anyway.
Trigger user's response to :escape first.
Add exit event.
Update with more helpful (hopefully!) information.