Caradoc a Pragmatic Approach to PDF Parsing and Validation