我正在创建一个新的面向对象系统,我需要访问宏父变量的变量。我有以下几点:
macro module {
rule { $i:ident { $e ... } } => {
var $i = {
$e ...
}
}
}
macro fn {
rule { $i:ident { $e ... } } => {
$e ...
}
}
module x {
fn name {
}
}我希望能够在fn macro中使用module名称,在本例中是x,因为我可能想做一些类似于$parentModule.prototype.myFunc的事情。但是如果我做了$e$e,它就不能正常工作。有可能吗?
发布于 2014-08-19 19:27:36
有几种方法可以做到这一点,但我认为最简单的方法是使用名为模式的
macro module {
rule {
$i:ident {
$mbody:(fn $name:ident { $body ...}) ...
}
} => {
$i.prototype.$mbody$name ...
}
}
module x {
fn name {
}
}https://stackoverflow.com/questions/25390210
复制相似问题