Class DynamicAntlrXmlAstConverter

java.lang.Object
name.jurgenei.gradle.antlr.DynamicAntlrXmlAstConverter

public final class DynamicAntlrXmlAstConverter extends Object
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.

  • 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.