0
我該如何創建一個分析器,以允許字符恰好與開始/結束字符相同。使用以下示例:我將如何創建一個分析器,該分析器使用的字符也在開頭和結尾
'Isn't it hot'
第二個單引號應該被接受爲開始和結束單引號之間內容的一部分。我創造了這樣的解析器:
char("'").seq((word()|char("'")|whitespace()).plus()).seq(char("'"))
,但它失敗:
Failure[1:15]: "'" expected
如果我使用「任何()|字符(」「」),那麼它貪婪地佔用結束單引號引起錯誤也是如此。
會我需要創建一個實際的語法課?我試圖創建一個,但無法弄清楚如何使一個解析器不會嘗試貪婪地消耗結束標誌。
我想說,這個問題的一般解決方案是要求在中間引用單引號。請參閱c#的逐字字符串語法實例:https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx –