Sweet.js在模板中为匹配添加前缀

时间:2015-12-04 06:36:28

标签: sweet.js

鉴于此宏

macro type {
  case {_ $attr } => 
  {
   return #{ 
    var a = obj.some$attr
   }
  }
}

type Attr

我试图获得此输出:

var a = obj.someAttr;

但我得到的是

var a = obj.some$attr;

some$attr之间添加任何非字母数字字符都会正确输出绑定值。

1 个答案:

答案 0 :(得分:0)

好的,只是弄清楚如何做到这一点

enter code here

macro type {
  case { $mName $attr } => 
  {
    var wrapperName = makeIdent('some' + unwrapSyntax(#{$attr}), #{$mName});
    letstx $x = [wrapperName];
    return #{ 
       var a = obj.$x
    }
  }
}