我为我的公司在 Antlr 3 中实现了一种语法语言。目前,生成代码时没有注释。我想对注释进行编码,以便出现自定义注释。例如:
/**
* This class does something.
* @author name
*/
public class GrammarLanguageExample() {
}
如下所示的语法语言示例:
grammar Example;
options {
output=AST;
}
@header {
package com.example;
}
@rulecatch {
// ANTLR does not generate its normal rule try/catch
catch(RecognitionException e) {
throw e;
}
}
insert : 'INSERT INTO table' 'VALUES';
QUOTE : '"';
SPECIALCHAR : '-'|'~'|;
STRING : QUOTE('a'..'z'|'A'..'Z'|SPECIALCHAR|WS)+QUOTE;
WS: (' '|'\t'|'\f'|'\n'|'\r')+ { $channel = HIDDEN;}; // hide token from parser
上面的语法只是一个例子,并不是完整的语法。当代码由 AntlrWorks 3.4 生成时,当前会发生什么:
我得到两个 Java 文件:ExampleLexer 和 ExampleParser。
在 ExampleLexer 中,没有包信息。我希望它进入 com.example 包,而 ExampleParser 包含包 com.example。每次更改语法时,我都必须输入 com.example 以编译 Lexer 代码。如何更改语法中的代码以便添加包信息?
另外,我将如何添加自定义 JavaDoc 注释?我想要这种格式:
package com.example;
Then import statements;
/**
* This class is used for Lexer.
* @author name
*/
public class ExampleLexer() {
}
package com.example;
Then import statements
/**
* This class is used for parsing.
* @author
*/
public class ExampleParser() {
}
我还想在包信息之前删除自动生成的注释,它告诉语法是什么时候生成的。这怎么可能?
我希望你能帮忙。我在 Google 上进行了搜索,但找不到任何关于此的内容。