gpt4 book ai didi

java - 即使输入有额外的标记,ANTLR 3.5.2 也会匹配规则

转载 作者:行者123 更新时间:2023-12-02 03:33:04 25 4
gpt4 key购买 nike

我正在编写一个语法来解析sql语句。我有以下规则:

show_databases :
SHOW DATABASES { System.out.println("Showing databases");
;

当我的输入是显示数据库时,我收到消息。但是,当我的输入是“立即显示数据库”时,我确实看到了该消息。我正在构建一个 REPL,所有行都以 ; 结尾。我想得到一个错误,因为语法错误。有什么想法吗?

最佳答案

也匹配输入的结尾:

SHOW DATABASES ';'

SHOW DATABASES EOF

按照您的方式,解析器不知道稍后不能将“现在”作为另一个语句的一部分。事实上,它会在成功匹配规则时停止,并且如果不需要,甚至不会查看下一个标记。

关于java - 即使输入有额外的标记,ANTLR 3.5.2 也会匹配规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37796131/

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