私は次のものを持っていますjavacc文法。javaCCは不要なステートメントを挿入します
ルールUnaryExpr私はJavaCCの7.0.2を使用してコードを生成していたときにjava.util.function.Predicate<>
options {
static=false;
DEBUG_PARSER=false;
IGNORE_CASE=true;
JDK_VERSION="1.8";
}
(...)
private Predicate<SAMRecord> UnaryExpr(): { }
{
(
<DUPLICATE> { return new Predicate<SAMRecord>() {
@Override public boolean test(final SAMRecord rec) { return rec.getDuplicateReadFlag();}
};}
| <UNMAPPED> { return new Predicate<SAMRecord>() {
@Override public boolean test(final SAMRecord rec) { return rec.getReadUnmappedFlag();}
};}
| <FAILSVENDORQUALITY> { return new Predicate<SAMRecord>() {
@Override public boolean test(final SAMRecord rec) { return rec.getReadFailsVendorQualityCheckFlag();}
};}
| <PROPERPAIR> { return new Predicate<SAMRecord>() {
@Override public boolean test(final SAMRecord rec) { return rec.getReadPairedFlag();}
};}
)
}
を実装するいくつかの匿名クラスを作成し、生成されたJavaコードはコード{if ("" != null)
を破るいくつかの余分なステートメントが含まれています。 Javaの代わりに、ファイル、または私の元のコードでは:
@Override public boolean test(final SAMRecord rec) {return rec.getDuplicateReadFlag();}
私が持っている:
@Override public boolean test(final SAMRecord rec) { {if ("" != null) return rec.getDuplicateReadFlag();}}
私はこの問題を解決するにはどうすればよいですか?ありがとう。
クロスポスト:https://github.com/javacc/javacc/issues/24 – Pierre