a variant of the flex fast lexical scanner
