| Class | Description | 
                            | AbstractLexer | Because antlr4 does not support generating lexer with specified interface,
 we have to create a super class for it and implement the interface. | 
                            | AbstractParser | Because antlr4 does not support generating parser with specified interface,
 we have to create a super class for it and implement the interface. | 
                            | Antlr4ParserPlugin | A parser plugin for the new parser. | 
                            | Antlr4PluginFactory | A parser plugin factory for the new parser. | 
                            | AstBuilder | Builds the AST from the parse tree generated by Antlr4. | 
                            | GroovyLangLexer | The lexer for Groovy programming language, which is based on the lexer generated by Antlr4 | 
                            | GroovyLangParser | The parser for Groovy programming language, which is based on the parser generated by Antlr4 | 
                            | GroovydocManager | A utilities for managing groovydoc, e.g.
 1) extracting groovydoc from groovy AST;
 2) TODO extracting tags from groovydoc;
 3) attach groovydoc to AST node as metadata | 
                            | PositionInfo |  | 
                            | SemanticPredicates | Some semantic predicates for altering the behaviour of the lexer and parser | 
                            | TryWithResourcesASTTransformation | Transform try-with-resources to try-catch-finally
 Reference JLS "14.20.3. try-with-resources"(https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html) |