If I call:
java org.antlr.Tool -o outdir sources/com/example/Java5.g
…with antlr-3.1.3 the parser and lexer code will be generated in the directory outdir/sources/com/example
. But the generated classes don’t have any package
statement. I need them to life in the package com.example
.
Is there a way to specify the target package?
Answer
ANTLR provides a header tool which allows you to include package and imports. You include this in your *.g grammar file:
@header { package org.xmlcml.cml.converters.antlr; import java.util.HashMap; }
And you may need it in the Lexer as well:
@lexer::header {package org.xmlcml.cml.converters.antlr;}
and in case you need to add some members and code:
@members { HashMap<String, Object> objectMap = new HashMap<String, Object>(); //... private void addArrayValue(String content) { //... code required by snippets in the grammar } }