Пара вопросов по макросам
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 14.07.07 19:33
Оценка:
Первый вопрос. Почему не компилится вот такой код:

using Nemerle;
using Nemerle.Compiler;
using System;
using System.Collections.Generic;
using System.Text;


namespace Rsdn.ParserTools
{
  [MacroUsage (MacroPhase.WithTypedMembers, MacroTargets.Class,
    Inherited = true)]
  public macro AlgebraicType(t : TypeBuilder)
  {
    match (t.GetTydecl())
    {
      | <[decl: public variant $(nm : name) { $body } ]> =>
        Message.Warning($"$nm");
      | _ =>
        Message.Error($"Not a variant");
    }
  }
}


Вместо этого вылетает исключение.

Второй вопрос. Опишу задачу. Есть макрос, который должен брать некий тип A, и получать из него все публичные методы, такие, что типы параметров и тип возвращаемого значения могут быть либо bool, либо типа B. Причём, A и B должны быть найдены по имени (string). Как правильно решается данная задача? Как представлять A и B? Я в иерархии сборки Nemerle.Compiler.dll для одного только представления типа нашёл около 10 способов, и в чём фишка каждого не понятно.
... << RSDN@Home 1.2.0 alpha rev. 672>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.