[英]How to do exact word parsing with ANTLR4?
我有以下語法
grammar test;
expression : SALUTATION NAME;
SALUTATION:'Hello';
NAME: ('a'..'z'|'A'..'Z')+;
如果我有一個輸入字符串像
該語法將正確解析所有這些字符串
如何修改語法以使其僅解析如示例1中具有精確定義的語法的字符串,而在其他情況下(如示例2和3)失敗?
很簡單:
expression : SALUTATION NAME EOF;
添加EOF
將強制解析器嘗試匹配在令牌流末尾自動插入的EOF
(文件末尾)令牌。 因此,如果最后還有其他數據,它將失敗。
您還可以在文件的末尾添加以下詞法分析器規則:
UNKNOWN_CHAR: . ;
這將確保詞法分析器始終成功,並且所有錯誤都將在解析器中發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.