我正在和sweetjs玩耍,因为我的生活无法弄清楚为什么this rule for parameterless multiline skinny arrow syntax不匹配
代码:
macro -> {
rule infix { () | { $body ... $last:expr } } => {
function( ) {
$body ...;
return $last
}
}
}
var fn = () -> {
var a = 1;
a + 2;
};
expect(fn()).to.equal(3);
结果
SyntaxError: [macro] Macro `-` could not be matched with `> {} ; expect ()...`
10: var fn = () -> {
^
答案 0 :(得分:2)
尝试删除闭包最后一行的分号,因为某些原因,sweetjs编译器在使用$ last和semi-colons时遇到问题。
macro -> {
rule infix { () | { $body ... $last:expr } } => {
function() {
$($body) ...
return $last
}
}
}
var fn = () -> {
var a = 1
a + 2
};