Package name.jurgenei.gradle.antlr
Class DynamicAntlrXmlAstConverter
java.lang.Object
name.jurgenei.gradle.antlr.DynamicAntlrXmlAstConverter
Converts SQL input files to XML AST output using dynamically loaded ANTLR lexer/parser classes.
The converter supports both precompiled parser/lexer class names and grammar coordinates (`.g4`) that are generated and compiled at runtime (including HTTP(S) and protocol-less host/path locations).
When grammar-source mode is used, lexer/parser `superClass` options are supported as long as superclass types are available through the provided runtime classloader classpath.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classException raised when one or more file conversions fail.static final recordAggregate conversion statistics for a conversion run. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconvertFileTree(File sourceRoot, List<File> sourceFiles, File destinationRoot, String targetExtension, ClassLoader classLoader, String lexerClassName, String parserClassName, String startRule, boolean compression, boolean continueOnError, Consumer<String> outcomeLogger) Converts a list of source files relative to a source root into XML AST output files.convertFileTreeWithStats(File sourceRoot, List<File> sourceFiles, File destinationRoot, String targetExtension, ClassLoader classLoader, String lexerClassName, String parserClassName, String startRule, boolean compression, boolean continueOnError, String executionModelName, int configuredParallelism, Consumer<String> outcomeLogger) Converts files and returns aggregate conversion statistics.
-
Constructor Details
-
DynamicAntlrXmlAstConverter
public DynamicAntlrXmlAstConverter()Creates a converter instance.
-
-
Method Details
-
convertFileTree
public void convertFileTree(File sourceRoot, List<File> sourceFiles, File destinationRoot, String targetExtension, ClassLoader classLoader, String lexerClassName, String parserClassName, String startRule, boolean compression, boolean continueOnError, Consumer<String> outcomeLogger) Converts a list of source files relative to a source root into XML AST output files.- Parameters:
sourceRoot- root directory used to preserve relative output paths.sourceFiles- source files to parse.destinationRoot- output root directory receiving generated XML files.targetExtension- output extension appended to mapped source filenames.classLoader- class loader containing runtime dependencies and optionally parser/lexer classes.lexerClassName- lexer class name or `.g4` grammar coordinate.parserClassName- parser class name or `.g4` grammar coordinate.startRule- parser entry rule method name.compression- enables rule-chain compression and path index emission when true.continueOnError- when true, keeps converting remaining files and aggregates failures.outcomeLogger- optional per-file outcome logger; when null, logs to standard output.- Throws:
org.gradle.api.GradleException- when parsing or XML generation fails.
-
convertFileTreeWithStats
public DynamicAntlrXmlAstConverter.ConversionStats convertFileTreeWithStats(File sourceRoot, List<File> sourceFiles, File destinationRoot, String targetExtension, ClassLoader classLoader, String lexerClassName, String parserClassName, String startRule, boolean compression, boolean continueOnError, String executionModelName, int configuredParallelism, Consumer<String> outcomeLogger) Converts files and returns aggregate conversion statistics.- Parameters:
sourceRoot- root directory used to preserve relative output paths.sourceFiles- source files to parse.destinationRoot- output root directory receiving generated XML files.targetExtension- output extension appended to mapped source filenames.classLoader- class loader containing runtime dependencies and parser/lexer classes.lexerClassName- lexer class name or grammar coordinate.parserClassName- parser class name or grammar coordinate.startRule- parser entry rule method name.compression- enables rule-chain compression and path index emission when true.continueOnError- when true, keeps converting remaining files and aggregates failures.executionModelName- execution model name.configuredParallelism- configured parallelism for threaded models.outcomeLogger- optional per-file outcome logger; when null, logs to standard output.- Returns:
- conversion statistics for processed files.
-