Modified version of re2c utility (http://re2c.org/)