ParseGen is a C++17 library for parsing complex text file formats. What makes ParseGen special is that it is implemented purely as a C++ API, so the description of the text format itself as a formal grammar is a C++ object and the resulting generated parser is a C++ object. Since both are created at runtime, this allows your project to have reliable parsing capabilities without the need for “auto-generated source code” which complicates build systems and limits possibilities. ParseGen is used today to parse YAML files, parse custom input formats for production codes, and provide a math language interpreter for user-defined initial and boundary conditions. By being a pure C++ library ParseGen is designed to integrate well into existing HPC software applications. By using formal language theory on regular expressions and context-free language parsing, ParseGen ensures reliable parsing and theoretically sound file formats (no ambiguity). This presentation covers the theory and implementation of ParseGen as a good introduction for potential users.