我有以下 javacc 语法。
规则 UnaryExpr 会创建一些实现yourproject\node_modules\react-navigation\src\views\Header.js
的匿名类
java.util.function.Predicate<>
当我使用javacc 7.0.2生成代码时,生成的java代码包含一些破坏代码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)
我有:
@Override public boolean test(final SAMRecord rec) {return rec.getDuplicateReadFlag();}
我该如何解决这个问题?谢谢。
答案 0 :(得分:1)
这是一种相当讨厌的行为。
你能忍受这个吗?
private Predicate<SAMRecord> UnaryExpr(): {
class A implements Predicate<SAMRecord> {
@Override public boolean test(final SAMRecord rec) {
return rec.getDuplicateReadFlag(); } }
class B implements Predicate<SAMRecord> {
@Override public boolean test(final SAMRecord rec) {
return rec.getReadUnmappedFlag(); } }
class C implements Predicate<SAMRecord> {
@Override public boolean test(final SAMRecord rec) {
return rec.getReadFailsVendorQualityCheckFlag(); } }
class D implements Predicate<SAMRecord> {
@Override public boolean test(final SAMRecord rec) {
return rec.getReadPairedFlag(); } }
}
{
( <DUPLICATE> { return new A() ; }
| <UNMAPPED> { return new B() ; }
| <FAILSVENDORQUALITY> { return new C() ; }
| <PROPERPAIR> { return new D() ; }
)
}