簡體   English   中英

即使輸入有額外的令牌,ANTLR 3.5.2也會匹配規則

[英]ANTLR 3.5.2 matches rule even though input has extra tokens

我正在編寫語法來解析sql語句。 我有以下規則:

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

當我的輸入是show databases ,我得到了消息。 但是,當我輸入的是show databases now ,我確實看到了消息。 我正在建立一個REPL,所有的行都以結尾; 我想得到一個錯誤,因為語法錯誤。 有任何想法嗎?

還要匹配輸入的結尾:

SHOW DATABASES ';'

要么

SHOW DATABASES EOF

擁有解析器的方式,解析器不知道以后再也不能作為另一個語句的一部分了。 實際上,它在成功匹配規則時停止,並且在不需要時甚至不查看下一個標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM