# Class AntlrTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.SourceTask
org.gradle.api.plugins.antlr.AntlrTask

All Implemented Interfaces:
  `Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, PatternFilterable, Configurable<Task>`

@NullMarked @CacheableTask public abstract class AntlrTask extends SourceTask
Generates parsers from Antlr grammars.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Field Summary

  ### Fields inherited from interface Task

  `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AntlrTask()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute(InputChanges inputChanges)`
  Generate the parsers.
  `FileCollection`
  `getAntlrClasspath()`
  Returns the classpath containing the Ant ANTLR task implementation.
  `List<String>`
  `getArguments()`
  List of command-line arguments passed to the antlr process
  `protected abstract org.gradle.internal.file.Deleter`
  `getDeleter()`
  `String`
  `getMaxHeapSize()`
  The maximum heap size for the forked antlr process (ex: '1g').
  `File`
  `getOutputDirectory()`
  Returns the directory to generate the parser source files into.
  `abstract Property<String>`
  `getPackageName()`
  Sets the package to be used when generating the parser source files.
  `protected abstract ProjectLayout`
  `getProjectLayout()`
  `FileTree`
  `getSource()`
  Returns the source for this task, after the include and exclude patterns have been applied.
  `protected FileCollection`
  `getStableSources()`
  The sources for incremental change detection.
  `protected abstract org.gradle.process.internal.worker.WorkerProcessFactory`
  `getWorkerProcessBuilderFactory()`
  `boolean`
  `isTrace()`
  Specifies that all rules call `traceIn`/`traceOut`.
  `boolean`
  `isTraceLexer()`
  Specifies that all lexer rules call `traceIn`/`traceOut`.
  `boolean`
  `isTraceParser()`
  Specifies that all parser rules call `traceIn`/`traceOut`.
  `boolean`
  `isTraceTreeWalker()`
  Specifies that all tree walker rules call `traceIn`/`traceOut`.
  `protected void`
  `setAntlrClasspath(FileCollection antlrClasspath)`
  Specifies the classpath containing the Ant ANTLR task implementation.
  `void`
  `setArguments(List<String> arguments)`
  `void`
  `setMaxHeapSize(String maxHeapSize)`
  `void`
  `setOutputDirectory(File outputDirectory)`
  Specifies the directory to generate the parser source files into.
  `void`
  `setSource(Object source)`
  Sets the source for this task.
  `void`
  `setSource(FileTree source)`
  Sets the source for this task.
  `void`
  `setTrace(boolean trace)`
  `void`
  `setTraceLexer(boolean traceLexer)`
  `void`
  `setTraceParser(boolean traceParser)`
  `void`
  `setTraceTreeWalker(boolean traceTreeWalker)`

  ### Methods inherited from class SourceTask

  `exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, getPatternSetFactory, include, include, include, include, setExcludes, setIncludes, source`

  ### Methods inherited from class org.gradle.api.internal.ConventionTask

  `conventionMapping, conventionMapping, getConventionMapping`

  ### Methods inherited from class DefaultTask

  `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

  ### Methods inherited from class org.gradle.api.internal.AbstractTask

  `acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjects`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface Task

  `doNotTrackState, notCompatibleWithConfigurationCache`

- ## Constructor Details

  - ### AntlrTask

    public AntlrTask()

- ## Method Details

  - ### isTrace

    @Input public boolean isTrace()
    Specifies that all rules call `traceIn`/`traceOut`.

  - ### setTrace

    public void setTrace(boolean trace)

  - ### isTraceLexer

    @Input public boolean isTraceLexer()
    Specifies that all lexer rules call `traceIn`/`traceOut`.

  - ### setTraceLexer

    public void setTraceLexer(boolean traceLexer)

  - ### isTraceParser

    @Input public boolean isTraceParser()
    Specifies that all parser rules call `traceIn`/`traceOut`.

  - ### setTraceParser

    public void setTraceParser(boolean traceParser)

  - ### isTraceTreeWalker

    @Input public boolean isTraceTreeWalker()
    Specifies that all tree walker rules call `traceIn`/`traceOut`.

  - ### setTraceTreeWalker

    public void setTraceTreeWalker(boolean traceTreeWalker)

  - ### getMaxHeapSize

    @Internal public String getMaxHeapSize()
    The maximum heap size for the forked antlr process (ex: '1g').

  - ### setMaxHeapSize

    public void setMaxHeapSize(String maxHeapSize)

  - ### setArguments

    public void setArguments(List<String> arguments)

  - ### getArguments

    @Input public List<String> getArguments()
    List of command-line arguments passed to the antlr process
    Returns:
      The antlr command-line arguments

  - ### getOutputDirectory

    @OutputDirectory public File getOutputDirectory()
    Returns the directory to generate the parser source files into.
    Returns:
      The output directory.

  - ### setOutputDirectory

    public void setOutputDirectory(File outputDirectory)
    Specifies the directory to generate the parser source files into.
    Parameters:
      `outputDirectory` - The output directory. Must not be null.

  - ### getAntlrClasspath

    @Classpath public FileCollection getAntlrClasspath()
    Returns the classpath containing the Ant ANTLR task implementation.
    Returns:
      The Ant task implementation classpath.

  - ### setAntlrClasspath

    protected void setAntlrClasspath(FileCollection antlrClasspath)
    Specifies the classpath containing the Ant ANTLR task implementation.
    Parameters:
      `antlrClasspath` - The Ant task implementation classpath. Must not be null.

  - ### getWorkerProcessBuilderFactory

    @Inject protected abstract org.gradle.process.internal.worker.WorkerProcessFactory getWorkerProcessBuilderFactory()

  - ### getProjectLayout

    @Inject protected abstract ProjectLayout getProjectLayout()

  - ### execute

    public void execute(InputChanges inputChanges)
    Generate the parsers.
    Since:
      6.0

  - ### setSource

    public void setSource(FileTree source)
    Sets the source for this task. Delegates to `setSource(Object)`. If the source is of type `SourceDirectorySet`, then the relative path of each source grammar files is used to determine the relative output path of the generated source If the source is not of type `SourceDirectorySet`, then the generated source files end up flattened in the specified output directory.
    Overrides:
      `setSource` in class `SourceTask`
    Parameters:
      `source` - The source.
    Since:
      4.0

  - ### setSource

    public void setSource(Object source)
    Sets the source for this task. Delegates to `SourceTask.setSource(Object)`. If the source is of type `SourceDirectorySet`, then the relative path of each source grammar files is used to determine the relative output path of the generated source If the source is not of type `SourceDirectorySet`, then the generated source files end up flattened in the specified output directory.
    Overrides:
      `setSource` in class `SourceTask`
    Parameters:
      `source` - The source.

  - ### getSource

    @Internal("tracked via stableSources") public FileTree getSource()
    Returns the source for this task, after the include and exclude patterns have been applied. Ignores source files which do not exist.

    The `PathSensitivity` for the sources is configured to be `PathSensitivity.ABSOLUTE`. If your sources are less strict, please change it accordingly by overriding this method in your subclass.

    Overrides:
      `getSource` in class `SourceTask`
    Returns:
      The source.

  - ### getStableSources

    @SkipWhenEmpty @IgnoreEmptyDirectories @PathSensitive(RELATIVE) @InputFiles protected FileCollection getStableSources()
    The sources for incremental change detection.
    Since:
      6.0

  - ### getDeleter

    @Inject protected abstract org.gradle.internal.file.Deleter getDeleter()

  - ### getPackageName

    @Input @Optional @Incubating public abstract Property<String> getPackageName()
    Sets the package to be used when generating the parser source files. Supported only when using Antlr 4. This will add a "-package" argument to the ANTLR command line as well as adjust the target directory to generate sources into a package-specific subdirectory of `getOutputDirectory()`. For example, if the package name is set to "com.foo.bar" and the output directory is set to "path/to/output", the sources will be generated into "path/to/output/com/foo/bar".
    Since:
      9.1.0