tracking line locations , rewriting  parser engine