making lexer use stateomat