gpt4 book ai didi

javaCC 插入不需要的语句

转载 作者:行者123 更新时间:2023-11-30 06:47:25 27 4
gpt4 key购买 nike

我有以下javacc语法。

规则UnaryExpr创建了一些实现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();}
};}
)
}

当我使用 javacc 7.0.2 生成代码时,生成的 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();}}

我该如何解决这个问题?谢谢。

最佳答案

这是一种相当烦人的行为。

你能忍受这个吗?

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() ; }
)
}

关于javaCC 插入不需要的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43469509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com