Нужен доброволец - создать шаблонов для макросов
От: VladD2 Российская Империя www.nemerle.org
Дата: 16.04.10 18:25
Оценка:
Всем привет.

Создавая 25-й раз проект для тестирования макросов подумал, что хорошо было бы иметь набор заранее подготовленных шаблонов макросов где был бы уже написан минимальный код.

Что нужно. Для каждого типа макроса (т.е. для обычного макроса и для макро-атричутов всех типов) хорошо бы создать по шаблоу. Скажем шаблон для простого макроса уровня выражения должен выглядеть как-то так:

namespace CompilerEventsMacro
{
  public macro Macro1(arg)
  {
    Impl.DoWork(Nemerle.Macros.ImplicitCTX(), arg);
  }
  
  module Impl
  {
    public DoWork(typer : Typer, arg : PExpr) : void
    {
      <[ () ]>
    }
  }
}

а для метаатрибута на параметре так:
  [Nemerle.MacroUsage (Nemerle.MacroPhase.WithTypedMembers, Nemerle.MacroTargets.Parameter)]
   macro _N_ExtensionMethodOnThisParameter (tb : TypeBuilder, mb : MethodBuilder, p : ParameterBuilder)
   {
     Impl.DoWork(Nemerle.Macros.ImplicitCTX(), tb, mb, p);
   }

    public DoWork(typer : Typer, tb : TypeBuilder, mb : MethodBuilder, p : TParameter) : void
    {
    }


Еще лучше было бы сделать небольшое диалоговое окошко (аля визард) которое позволяло бы выбрать тип макроса, описать список дополнительных параметров и при нажатии ОК генерировало бы требуемый каркас для макроса.

Задача, думаю, не сложная, но очень полезная!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Нужен доброволец - создать шаблонов для макросов
От: hardcase Пират http://nemerle.org
Дата: 17.04.10 06:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Всем привет.


VD>Создавая 25-й раз проект для тестирования макросов подумал, что хорошо было бы иметь набор заранее подготовленных шаблонов макросов где был бы уже написан минимальный код.


Хм. Я тоже как-то задолбался, потому в #develop уже вкрутил подобный шаблон. Гораздо полезнее было бы сделать комплексный шаблон: приложение + макробиблиотека.
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.