Issue #3 : Use ply.lex instead hand-writing codes