Mine (QueryJ) is not simple either, but it uses ANTLR4 and ST. Basically, it is a meta-framework to generate code from database schemas, using user-provided StringTemplate files. Such templates have some metadata associated, which is defined using a simple ANTLR4-based DSL.
For example, the metadata [1] for a template called PerCustomResultTemplateBuildHandler [2], implemented a trivial ANTLR4 grammar [3], is:
/*
* PerCustomResultTemplatesFeature template metadata.
*/
// The template name (the filename).
name : PerCustomResultTemplatesFeature.stg;
// The type of template: per-table, per-repository, per-foreign-key, per-custom-result, per-custom-sql.
type : per-custom-result;
// The output flavor.
output: Cucumber;
// The filename builder.
filename builder : PerCustomResultTemplateBuildHandler.java;
// The package.
package: org.acmsl.queryj.templates.handlers;
Don't get confused by the details. Basically, parsing the .def files helps me find all available templates, and know how to instantiate them and write their output to disk.