绕过 Agda 中 Mixfix 运算符的空白要求?
Get around whitespace requirement for Mixfix operators in Agda?
有没有办法告诉 Agda 某个字符标志着新令牌的开始?例如,我有以下内容(带有花哨的 unicode 括号):
data Term where
_(_) : Term -> Term -> Term
我可以用作
f ( e⃗ )
但我真正喜欢的是将它用作
f(e⃗)
如果我这样做,Agda 认为它是一个单一的标识符,并给出一个不在范围内的错误。有解决办法吗?
Agda 将任何连续的字母数字和运算符字符序列解析为单个标识符。如果不更改 Agda 词法分析器,就无法解决这个问题。这一切都发生在名称解析之前,因此无法声明某些名称不需要 space。
您可以尝试使用其他 unicode space 字符来使您的代码看起来更紧凑,但我还没有找到任何有效的方法。零宽度 spaces 显然实际上不是 space 字符,emacs 呈现其他 spaces 与 ' '
.
相同
有没有办法告诉 Agda 某个字符标志着新令牌的开始?例如,我有以下内容(带有花哨的 unicode 括号):
data Term where
_(_) : Term -> Term -> Term
我可以用作
f ( e⃗ )
但我真正喜欢的是将它用作
f(e⃗)
如果我这样做,Agda 认为它是一个单一的标识符,并给出一个不在范围内的错误。有解决办法吗?
Agda 将任何连续的字母数字和运算符字符序列解析为单个标识符。如果不更改 Agda 词法分析器,就无法解决这个问题。这一切都发生在名称解析之前,因此无法声明某些名称不需要 space。
您可以尝试使用其他 unicode space 字符来使您的代码看起来更紧凑,但我还没有找到任何有效的方法。零宽度 spaces 显然实际上不是 space 字符,emacs 呈现其他 spaces 与 ' '
.