rexical is a lexical scanner generator for ruby