Я хочу развернуть токен на строку. Например, у меня есть этот макрос:Sweet.js - Развернуть токен как строку
macro String {
rule {
$x
} => {
"$x"
}
}
Я бы ожидать String 1
расширить до "1"
, однако он расширяется только 1;
Как я могу это сделать?
EDIT: Это, кажется, невозможное сделать с декларативным подходом, но должно быть возможным с императивным подходом (см this comment):
macro String {
case {_ $x } => {
return #{"$x"}
}
}
Но это все еще расширяется в кавычки.
Вы пытались использовать toString()? – felipekm
@FelipeKM Это просто расширит 'toString()' в результате. Кавычки должны быть добавлены макросом. – jviotti
@jviotti Я нашел эту проблему в Github от Sweet.js: https://github.com/mozilla/sweet.js/issues/45 Кажется, именно то, что вы хотите, но она была закрыта без каких-либо упоминаний о том, как на самом деле это делать , – ToastyMallows