Переменная доступа к родителям в Sweet.js
Я создаю новую систему ориентации объектов, и мне нужно получить доступ к переменным родителя макроса. У меня есть следующее:
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
это не работает должным образом. Является ли это возможным?
1 ответ
Решение
Есть несколько способов сделать это, но я думаю, что самое простое - использовать именованные шаблоны:
macro module {
rule {
$i:ident {
$mbody:(fn $name:ident { $body ...}) ...
}
} => {
$i.prototype.$mbody$name ...
}
}
module x {
fn name {
}
}