Вставить строку в макросе
От: _nn_ www.nemerleweb.com
Дата: 16.03.07 19:56
Оценка:
Допустим есть макрос:
public macro M(a)
{
 def x = a.SomeFunction();

 // здесь я хочу вставить результат x как код.
 <[ $x ]> // не работает
}


Как правильно делается ?
Спасибо.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Вставить строку в макросе
От: Иванков Дмитрий Россия  
Дата: 16.03.07 20:13
Оценка: 11 (3)
Здравствуйте, _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"
}
Re: Вставить строку в макросе
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.03.07 22:34
Оценка: -1
Здравствуйте, _nn_, Вы писали:

__>Допустим есть макрос:

__>
__>public macro M(a)
__>{
__> def x = a.SomeFunction();

__> // здесь я хочу вставить результат x как код.
__> <[ $x ]> // не работает
__>}
__>


__>Как правильно делается ?


Откровенно говоря не ясно что ты хочешь сделть. Потому дать реальный ответ тяжело.
Что делает SomeFunction()? И главное, зачем?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Вставить строку в макросе
От: cl-user  
Дата: 19.03.07 08:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Откровенно говоря не ясно что ты хочешь сделть. Потому дать реальный ответ тяжело.

VD>Что делает SomeFunction()? И главное, зачем?

Не, тебя ничем не "перешибить" — ну что ты сразу наезжать начал? Выше ответ уже дали — и именно на вопрос. Мог бы просто к статье отправить — там это есть. Раз человек спрашивает — скорее всего не читал.

P.S. Где следующая статья?
Re[3]: Вставить строку в макросе
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.03.07 11:35
Оценка:
Здравствуйте, cl-user, Вы писали:

Давай я сам буду рзбираться, что говорить и т.п. ОК?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Вставить строку в макросе
От: cl-user  
Дата: 19.03.07 12:08
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Давай я сам буду рзбираться, что говорить и т.п. ОК?


Ок. Только оставь кусочек этого права и мне
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.