Class AbstractAntlrMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, Environment
    Direct Known Subclasses:
    AntlrHtmlReport, AntlrPlugin

    public abstract class AbstractAntlrMojo
    extends org.apache.maven.plugin.AbstractMojo
    implements Environment
    Base class with majority of Antlr functionalities.
    Version:
    $Id: AbstractAntlrMojo.java 13111 2010-11-16 22:16:36Z pgier $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean debug
      Launch the ParseView debugger upon parser invocation.
      private boolean diagnostic
      Generate a text file from your grammar with a lot of debugging info.
      protected Grammar[] grammarDefs
      Grammar list presents in the sourceDirectory directory.
      protected java.lang.String grammars
      Comma separated grammar file names or grammar pattern file names present in the sourceDirectory directory.
      protected java.io.File outputDirectory
      Specifies the destination directory where Antlr should generate files.
      protected org.apache.maven.project.MavenProject project
      The Maven Project Object
      private org.apache.maven.project.MavenProjectHelper projectHelper
      The maven project's helper.
      protected java.io.File sourceDirectory
      Specifies the Antlr directory containing grammar files.
      private boolean trace
      Have all rules call traceIn/traceOut.
      private boolean traceLexer
      Have lexer rules call traceIn/traceOut.
      private boolean traceParser
      Have parser rules call traceIn/traceOut.
      private boolean traceTreeParser
      Have tree rules call traceIn/traceOut.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Field Detail

      • sourceDirectory

        @Parameter(defaultValue="${basedir}/src/main/antlr")
        protected java.io.File sourceDirectory
        Specifies the Antlr directory containing grammar files.
      • project

        @Parameter(property="project",
                   readonly=true)
        protected org.apache.maven.project.MavenProject project
        The Maven Project Object
      • projectHelper

        @Component(role=org.apache.maven.project.MavenProjectHelper.class)
        private org.apache.maven.project.MavenProjectHelper projectHelper
        The maven project's helper.
      • outputDirectory

        @Parameter(defaultValue="${project.build.directory}/generated-sources/antlr")
        protected java.io.File outputDirectory
        Specifies the destination directory where Antlr should generate files.
        See Command Line Options
      • grammars

        @Parameter(property="grammars")
        protected java.lang.String grammars
        Comma separated grammar file names or grammar pattern file names present in the sourceDirectory directory.
        See Command Line Options
      • grammarDefs

        @Parameter(property="grammarDefs")
        protected Grammar[] grammarDefs
        Grammar list presents in the sourceDirectory directory.
        See Command Line Options
        Example:
         <grammarDefs>
        <grammar>
        <name>myGrammar.g</name>
        <glib>mySuperGrammar.g;myOtherSuperGrammar.g</glib>
        </grammar>
        </grammarDefs>
      • debug

        @Parameter(property="debug",
                   defaultValue="false")
        private boolean debug
        Launch the ParseView debugger upon parser invocation.
        See Command Line Options
      • diagnostic

        @Parameter(property="diagnostic",
                   defaultValue="false")
        private boolean diagnostic
        Generate a text file from your grammar with a lot of debugging info.
        See Command Line Options
      • trace

        @Parameter(property="trace",
                   defaultValue="false")
        private boolean trace
        Have all rules call traceIn/traceOut.
        See Command Line Options
      • traceParser

        @Parameter(property="traceParser",
                   defaultValue="false")
        private boolean traceParser
        Have parser rules call traceIn/traceOut.
        See Command Line Options
      • traceLexer

        @Parameter(property="traceLexer",
                   defaultValue="false")
        private boolean traceLexer
        Have lexer rules call traceIn/traceOut.
        See Command Line Options
      • traceTreeParser

        @Parameter(property="traceTreeParser",
                   defaultValue="false")
        private boolean traceTreeParser
        Have tree rules call traceIn/traceOut.
        See Command Line Options
    • Constructor Detail

      • AbstractAntlrMojo

        public AbstractAntlrMojo()
    • Method Detail

      • executeAntlr

        protected void executeAntlr()
                             throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • performGeneration

        protected void performGeneration​(GenerationPlan plan,
                                         org.apache.maven.artifact.Artifact antlrArtifact)
                                  throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • generateClasspathForProcessSpawning

        private java.lang.String generateClasspathForProcessSpawning​(org.apache.maven.artifact.Artifact antlrArtifact)
      • executeAntlrInIsolatedClassLoader

        private void executeAntlrInIsolatedClassLoader​(java.lang.String[] args,
                                                       org.apache.maven.artifact.Artifact antlrArtifact)
                                                throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • addArgs

        protected abstract void addArgs​(java.util.List arguments)
        Add arguments to be included in Antlr call
        Parameters:
        arguments -
      • addArgIf

        protected static void addArgIf​(java.util.List arguments,
                                       boolean b,
                                       java.lang.String value)
        Convenience method to add an argument
        Parameters:
        arguments -
        b -
        value -
      • getGeneratedFile

        private java.io.File getGeneratedFile​(java.lang.String grammar,
                                              java.io.File outputDir)
                                       throws java.io.IOException
        Parameters:
        grammar -
        outputDir -
        Returns:
        generated file
        Throws:
        java.io.IOException
      • validateParameters

        private void validateParameters()
                                 throws org.apache.maven.plugin.MojoExecutionException
        grammars or grammarDefs parameters is required
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • getGrammars

        private Grammar[] getGrammars()
        Get the list of all grammars to be compiled. The grammars variable can be a list of file or patterns. For instance, one can use *.g instead of a full list of grammar names. Be aware that sometime the grammar order is important, and that patterns won't keep this order, but we can still combine both elements( ordered names first, then the patterns). File name won't be added twice in the list of files.
        Returns:
        an array of grammar from grammars and grammarDefs variables