PMD checks source code against rules and produces a report. Like this:
- Something passes a file name and a RuleSet into PMD
- PMD hands an InputStream to the file off to a JavaCC-generated parser
- PMD gets a reference to an Abstract Syntax Tree back from the parser
- Each Rule in the RuleSet gets to traverse the AST and check for problems
- The Report is now filled with RuleViolations, and those get printed out in XML or HTML or whatever
A paucity of detail, I'm sure you'd agree. If you think this document can be
improved, please post here and let me know how. Thanks!