私の会社では、Antlr3に文法言語が実装されています。現在、コードが生成されるとき、コメントはありません。カスタムコメントが表示されるようにコメントをコーディングしたいと思います。例えば:
/**
* 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
上記の文法は単なる例であり、完全な文法ではありません。コードがAntlrWorks3.4によって生成されたときに現在何が起こるか:
ExampleLexerとExampleParserの2つのJavaファイルを取得します。
ExampleLexerには、パッケージ情報はありません。ExampleParserにはパッケージcom.exampleが含まれているのに対し、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で検索しましたが、これについては何も見つかりませんでした。