Re: Макросы в Nemerle
От: gerrCrazzy  
Дата: 12.12.06 16:50
Оценка:
Здравствуйте, Владислав Чистяков, Вы писали:

ВЧ>В статье на базе практических примеров разбирается, что такое макросы Nemerle, что они могут и как их создавать.


Влад, тема синтаксического сахара для уточнения параметров макроса не раскрыта
если изменить текст макроса(test-001.n) на
using System.Console;

macro TestMacro(hisName : string)
{ WriteLine(hisName.GetType()); }

то во время компиляции получим сообщение "System.String"
Внимание, ворос, как теперь мне пользовать параметр hisName?
Потому как если добавить в код макроса строчку
 <[ WriteLine("run-time\nparam=" + $hisName ) ]>

получим ругань от компилера во время компиляции макроса

test-003-macro.n:9:5:9:33: error: in argument #2 (tl) of list.Cons[System.Object-], needed a list[Nemerle.Compiler.Parsetree.PExpr.Literal-], got list.Cons[string-]: common super type of types [Nemerle.Compiler.Parsetree.PExpr.Literal, string] is just `System.Object', please upcast one of the types to `System.Object' if this is desired

P.S. ncc из svn-a, revision 7080
... << RSDN@Home 1.2.0 alpha rev. 669>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.