我在Antlr 3中爲我的公司實現了一種語法語言。目前,代碼生成時沒有評論。我想編碼評論,以便自定義評論出現。例如:在Antlr 3中生成自定義JavaDoci
/**
* 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包。每次語法發生變化時,我都必須輸入Lexer代碼的com.example進行編譯。如何更改語法中的代碼以便添加包信息?
另外,如何添加自定義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上搜索過,但找不到任何關於此的內容。
感謝您的幫助。 – user1646481 2013-02-14 12:01:28
@ user1646481不客氣。我希望你的項目進展順利。 – user1201210 2013-02-14 12:36:30