Sweet.js - 宏体中的括号

时间:2014-04-06 16:25:59

标签: javascript macros sweet.js

我想在宏体中使用括号来分组表达式。例如:

macro m {
  rule { ($x, $y) } => {
    $x >>> ($y * 5)
  }
}

Sweet.js删除所有括号:

m(6, 7) => 6 >>> 7 * 5

我期待下一个输出:

m(6, 7) => 6 >>> (7 * 5)

如何在宏体内转义括号?

1 个答案:

答案 0 :(得分:3)

Sweet.js(技术上,sweet.js用于codegen的escodegen)只删除多余的parens(即优先规则意味着6 >>> 7 * 5 === 6 >>> (7 * 5)所以不需要parens)所以你不应该需要做任何事情来逃避宏中的parens。