use lexical analysis lib