Допустим есть макрос:
public macro M(a)
{
def x = a.SomeFunction();
// здесь я хочу вставить результат x как код.
<[ $x ]> // не работает
}
Как правильно делается ?
Спасибо.
Здравствуйте, _nn_, Вы писали:
__>Допустим есть макрос:
__>__>public macro M(a)
__>{
__> def x = a.SomeFunction();
__> // здесь я хочу вставить результат x как код.
__> <[ $x ]> // не работает
__>}
__>
__>Как правильно делается ?
__>Спасибо.
Можно подсмотреть в macros\io.n (spliced строки там реализованы).
Примерно так:
using Nemerle;
using Nemerle.Compiler;
macro f()
{
def x = "123";
def x = MainParser.ParseExpr(Macros.ImplicitCTX().Env, x);
<[ $x ]>;//получим число 123, а не строку "123"
}
Здравствуйте, _nn_, Вы писали:
__>Допустим есть макрос:
__>__>public macro M(a)
__>{
__> def x = a.SomeFunction();
__> // здесь я хочу вставить результат x как код.
__> <[ $x ]> // не работает
__>}
__>
__>Как правильно делается ?
Откровенно говоря не ясно что ты хочешь сделть. Потому дать реальный ответ тяжело.
Что делает SomeFunction()? И главное, зачем?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Здравствуйте, VladD2, Вы писали:
VD>Откровенно говоря не ясно что ты хочешь сделть. Потому дать реальный ответ тяжело.
VD>Что делает SomeFunction()? И главное, зачем?
Не, тебя ничем не "перешибить"
— ну что ты сразу наезжать начал? Выше ответ уже дали — и именно на вопрос. Мог бы просто к статье отправить — там это есть. Раз человек спрашивает — скорее всего не читал.
P.S. Где следующая статья?
Здравствуйте, cl-user, Вы писали:
Давай я сам буду рзбираться, что говорить и т.п. ОК?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Здравствуйте, VladD2, Вы писали:
VD>Давай я сам буду рзбираться, что говорить и т.п. ОК?
Ок. Только оставь кусочек этого права и мне