pgnlint parses files in the Portable Game Notation format. So far it doesn't do much more than that. Work in progress.
One of the reasons this project is taking a while to complete is that a proper PGN linter pretty much has to be able to see if a move is legal.