簡體   English   中英

ANTLR不匹配空注釋

[英]ANTLR not matching empty comments

我正在使用ANTLR解析一種語言,該語言使用冒號作為注釋指示符,並作為“等於”分配的一部分。 因此,例如

Index := 2    :Set Index

我需要將第一部分識別為賦值語句,將第二個冒號之后的文本識別為注釋。 目前,我使用以下規則執行此操作:

COMMENT                 : ':'+ ~[:='\r\n']*;

這似乎確定除了當冒號后面緊跟着一個新的生產線工作。 例如在線

Index := 2    :

換行符緊接在第二個冒號之后。 在這種情況下,注釋無法識別,並且其余代碼未在正確的上下文中進行解析。 如果第二個冒號后面有一個空格,則該行將被正確解析。

我希望'\\ r'\\ n'可以解決這個問題,但是它似乎僅在注釋符號后至少有一個字符時才起作用-我是否從命令中遺漏了某些內容?

大括號表示不帶引號的字符集合。 因此,您的'\\ r \\ n'文字在那里不起作用(您應該得到一個警告,即在char范圍中多次包含撇號。

像這樣定義注釋:

COMMENT: ':'+ ~[:=\n\r]*;

暫無
暫無

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

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