gradle-antlr-plsql-plugin provides preconfigured XML AST task support for PL/SQL parsing workflows.
It builds on name.jurgenei.gradle.antlr and offers task defaults tailored for PlSqlLexer/PlSqlParser use cases.
- Convert large PL/SQL corpora to XML AST for lineage extraction
- Validate parser compatibility in CI against benchmark SQL files
- Run parser checks with sensible defaults and minimal Gradle setup
- Keep conversion as first-class Gradle tasks (repeatable and automatable)
plugins {
id 'name.jurgenei.gradle.antlr.plsql'
}XmlAstPlsqlGradleTasktask typeplsqlXmlAstpre-registered task- Runtime classpath and
classesdependency wiring whenjavaplugin is present
Default task conventions:
grammar = plsqlparserClassName = name.jurgenei.parsers.PlSqlParserlexerClassName = name.jurgenei.parsers.PlSqlLexerstartRule = scriptincludes = ['**/*.sql', '**/*.pks', '**/*.pkb', '**/*.pls']
plugins {
id 'java'
id 'name.jurgenei.gradle.antlr.plsql'
}
tasks.named('plsqlXmlAst', name.jurgenei.grammars.plsql.XmlAstPlsqlGradleTask) {
sourceDirectory.set(layout.projectDirectory.dir('src/test/resources/plsql'))
destinationDirectory.set(layout.buildDirectory.dir('xmlast-plsql'))
targetExtension.set('.xml')
continueOnError.set(true)
}S-expression output variant:
tasks.named('plsqlXmlAst', name.jurgenei.gradle.antlr.XmlAstPlsqlGradleTask) {
targetExtension.set('.xir')
outputFormat.set('beautified')
}targetExtension:.xml(default) or.xiroutputFormat:compact(default) orbeautified
Run:
./gradlew plsqlXmlAstRun repeatable benchmark/profile matrix with JFR capture:
./scripts/profile-xmlast.shFast-mode profiling default disables per-file line-count reread (enableLineCountMetrics=false).
Set DECISION_PROFILING=true to emit grammar decision hotspots in report.
Guide and tunables: PERF_PROFILING.md
ClassNotFoundExceptionfor parser/lexer classes:- Ensure
compileAntlrSourcesran - Ensure runtime classpath includes generated classes
- Ensure
- Parse starts but no output files:
- Verify
sourceDirectoryandincludes - Set
force = truefor a full pass
- Verify
- Start rule issues:
- Confirm parser entry method exists (default is
script)
- Confirm parser entry method exists (default is