gpt4 book ai didi

haskell - 准引号转义

转载 作者:行者123 更新时间:2023-12-05 03:30:33 25 4
gpt4 key购买 nike

我想使用 Quasiquotes 将我的新语言添加到 Haskell,但该语言本身使用 |] 作为关键字。

有什么办法,如何:

a) 转义|],所以它被传递到我的语言

b) 让我的语言的解析器决定,当准引用结束时

谢谢。

最佳答案

简答:稍微修改嵌入语言。

User's Guide on QuasiQuoters解释说 |] 无法转义:

The quoted ⟨string⟩ finishes at the first occurrence of the two-character sequence "|]". Absolutely no escaping is performed. If you want to embed that character sequence in the string, you must invent your own escape convention (such as, say, using the string "|~]" instead), and make your quoter function interpret "|~]" as "|]".

您的解析器无法决定准引号何时结束,因为子字符串被传递给在 [<i>quasiquoter</i>|… 之后开始的准引号。部分和 …|] 之前部分。

因此,您应该稍微改变您的语言,例如使用翻译 |~] 的预处理器。 (这不被认为是准引号字符串的结尾)到 |]相反。

关于haskell - 准引号转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70812567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com