modified lex.l parser.y