RLTK should use subclasses of StandardError instead of Exception. Exception is generally reserved for things which are fatal to Ruby itself and most application errors are under StandardError. Plus, the standard rescue without any argument catches any subclasses of StandardError, but not of Exception.
Subclass StandardError instead of Exception.
Thanks for the information. Given this new knowledge I would say your patch is about 90% correct. The InternalParserError and ParserConstructionError classes should really be subclasses of Exception, and as such renamed to indicate this. I've merged your repo and made the necessary changes. Thanks!