簡體   English   中英

如何使用 C++ 運行時從 CSS 中提取 ANTLR4 引用字符串

[英]How to extract ANTLR4 quoted string from CSS using C++ runtime

我正在使用來自https://github.com/antlr/grammars-v4/tree/master/css3的 ANTLR4 和 CSS 語法。 它大部分都在工作,但是當我在 CSS 中使用帶引號的字符串時遇到了問題。 例如,用下面的 CSS

.b1
{
  font-family: "Gill Sans", serif;
}

我想提取“Gill Sans”和“serif”,兩者都沒有引號。 當在字符串周圍使用引號時,解析器會生成一個KnownTermContext ,然后它有一個String()方法,該方法返回一個antlr4::tree::TerminalNode* 該返回對象的getText()方法返回字符串,包括引號。 似乎String()僅在引用字符串時才有效,因此理論上我可以在這種情況下手動刪除引號,但在使用像 ANTLR 這樣的解析器時似乎沒有必要這樣做。

有沒有辦法提取刪除引號的字符串,或者在這種情況下由調用者來刪除引號?

[...] 還是由調用者在這種情況下刪除引號?

是的,這是正確的。 ANTLR 中沒有辦法從標記中去除字符(即沒有目標特定代碼)。 這可以在遍歷偵聽器或訪問者中的解析樹時完成。

暫無
暫無

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

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