簡體   English   中英

Antlr4:防止規則和令牌沖突

[英]Antlr4: Prevent rule and token conflicts

給出以下語法:

grammar minimal;

rule: '(' rule_name body ')';
rule_name : NAME;
body : '(' AT NAME ')';

AT : 'at';
NAME: LETTER ANY_CHAR*;
fragment LETTER: 'a' .. 'z' | 'A' .. 'Z';
fragment ANY_CHAR: LETTER | '0' .. '9' | '-' | '_';
WHITESPACE: ( ' ' | '\t' | '\r' | '\n' )+ -> skip;

如何在不重新排列語法的情況下與at匹配(在(在(欄)處))作為有效的函數名稱,而又不會與正文中的AT令牌沖突?

要消除沖突並保留預期的令牌類型:

rule_name : ( NAME | AT ) -> type(NAME) ;

暫無
暫無

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

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