| Libraries |
| |
| The introduction of the import directive in a grammar allows reuse of common grammar files |
| as well as the ability to divide up functional components of large grammars. However it has |
| caused some confusion in regard to the fact that generated vocab files (<<<xxx.tokens>>>) can also |
| be searched for with the <<<<libDirectory>>>> directive. |
| |
| This has confused two separate functions and imposes a structure upon the layout of |
| your grammar files in certain cases. If you have grammars that both use the import |
| directive and also require the use of a vocab file then you will need to locate |
| the grammar that generates the .tokens file alongside the grammar that uses it. This |
| is because you will need to use the <<<<libDirectory>>>> directive to specify the |
| location of your imported grammars and ANTLR will not find any vocab files in |
| this directory. |
| |
| The .tokens files for any grammars are generated within the same output directory structure |
| as the .java files. So, whereever the .java files are generated, you will also find the .tokens |
| files. ANTLR looks for .tokens files in both the <<<<libDirectory>>>> and the output directory |
| where it is placing the geenrated .java files. Hence when you locate the grammars that generate |
| .tokens files in the same source directory as the ones that use the .tokens files, then |
| the Maven plugin will find the expected .tokens files. |
| |
| The <<<<libDirectory>>>> is specified like any other directory parameter in Maven. Here is an |
| example: |
| |
| +-- |
| <plugin> |
| <groupId>org.antlr</groupId> |
| <artifactId>antlr3-maven-plugin</artifactId> |
| <version>3.1.3-1</version> |
| |
| <executions> |
| |
| <execution> |
| <configuration> |
| <goals> |
| <goal>antlr</goal> |
| </goals> |
| <libDirectory>src/main/antlr_imports</libDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| +-- |
| |
| |
| |