gpt4 book ai didi

JavaCC 初学者 - 如何使程序仅接受没有重复项的情况?

转载 作者:行者123 更新时间:2023-12-02 13:36:46 26 4
gpt4 key购买 nike

所以我是 JavaCC 的初学者,我只想在没有重复项的情况下接受这个字符串。因此,如果输入如下:

A B C
A' B' C'
A'' B'' C''

只有当`B != B' != B''时解析器才会接受它

我觉得我错过了一些基本的东西,而且我在网上找不到很多易于解释的 JavaCC 教程。如果有人能指出我的写作方向,那就太好了。

提前致谢。`

编辑:我应该指出,目前我的解析器接受上面的输入,无论是否重复。

最佳答案

您可以执行以下操作。在解析器类中,声明一个字段

Set<String> seen = new HashSet<String>() ;

(这是假设一个非静态解析器。如果解析器是静态的,则该字段必须是静态的,并且必须在 reinit 函数中重新初始化。)

然后在你的作品中,你可以做这样的事情。

void start() : { Token t ;} {
( <A>
t = <B> { if( seen.contains( t.image ) ) {
throw new ParserException( "Duplicate" ) ; }
else { seen.add( t.image ) ; } }
<C>
)*
}

关于JavaCC 初学者 - 如何使程序仅接受没有重复项的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42950851/

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