я попытался определить sweet.js макрос, который позволяет другим повторяющиеся макросы должны быть определены более легко, но я нашел ошибку синтаксиса здесь:Можно ли макросам sweet.js определить другие макросы?
SyntaxError: [patterns] Ellipses level does not match in the template
11: { $($b...)... }
Это макрос, который произвел эту ошибку синтаксиса:
macro repeatingMacro{
rule{
$a {
$b...
} {
$c...
}
} => {
//the output of this macro should be another macro with repeating patterns
macro $a {
rule{
{ $($b...)... }
} => {
{ $($c...)... }
}
}
}
}
Если этот макрос был правильно определен, то это позволит другим макросы, которые будут созданы, как это:
repeatingMacro cond {
$a... { $b... }
}
{
if($a...){
$b...
}
}
var x = 1;
var y = 2;
cond {
(x > y) {
alert(x);
}
(x < y) {
alert(y)
}
}
This code can be edited online here.
Другими словами, можно определить макрос, который будет автоматически преобразовывать этот макрос:
macro cond {
rule {
$x... { $y... }
} => {
if($x...){
$y...
}
}
}
... в этот макрос?
macro cond {
rule {
{ $($x... { $y... })... }
} => {
$(if($x...){
$y...
})...
}
}
Чтобы ответить на титульный вопрос: Да. Например, см. Https://gist.github.com/natefaubion/f4be4c8531ef45de87b4. – Havvy