2014-04-06 69 views
1

我想在宏體中使用括號來對錶達式進行分組。例如:Sweet.js - 宏體中的括號

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

Sweet.js刪除所有括號:

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

我期待下一次輸出:

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

我怎樣才能逃避內部的宏體括號?

回答

3

Sweet.js(sweet.js在codegen中使用的技術escodegen)只能刪除多餘的parens(即優先規則意味着6 >>> 7 * 5 === 6 >>> (7 * 5),所以不需要parens),所以你不需要做任何事情來逃避parens in宏。

+0

當你嘗試定義一個IIFE時,它似乎也會這樣做。 – Jonathon