对Nearley语法不太熟悉,不知道这里出了什么问题。这是我的语法,无论放在括号内的是什么。
@builtin "whitespace.ne"
with_in_brackets ->
"(" _ args _ ")" {% d => ({
type: 'inside_brackets',
argumentstring: d[2]
})%}
args -> .:* {% d => d[0].join("") %}(hello, " ", world){type: "inside_brackets", argumentstring: "hello, " ", world"}{type: "inside_brackets", argumentstring: "hello, " ", world"}注意-实际结果是将4个空格压缩为1个空格。不知道为什么会发生这种事。
有什么想法吗?我正在使用尼利游乐场在Safari v15浏览器上测试我的语法。
发布于 2022-09-04 09:24:26
您的代码运行良好,我们可以通过将结果发送到控制台来检查它。
with_in_brackets ->
"(" _ args _ ")" {% d => {
console.log(d[2]);
return {
type: 'inside_brackets',
argumentstring: d[2]
}
}%}如您所见,这只是浏览器将多个空间转换为一个“”的特定行为,除非涉及到<pre>标记或CSS。此外,使用()之间的空白,您将得到多个结果,因为_,所以请确保处理它。
https://stackoverflow.com/questions/69591899
复制相似问题