Как на макросах построить variant?
От: Ilya10k Россия  
Дата: 10.03.07 02:59
Оценка:
Правомерно ли использование DefineNestedType (выделено курсивом)?
Как добавить опцию варианта (выделено жирным)?
Как добавить потом в этот вариант поля?

using System;
using System.Console;

using Nemerle;
using Nemerle.Collections;
using Nemerle.Compiler;
using Nemerle.Compiler.Macros;
using Nemerle.Compiler.Parsetree;

namespace AttImportMacros
{
    [Nemerle.MacroUsage (Nemerle.MacroPhase.BeforeInheritance,
        Nemerle.MacroTargets.Class)]
    macro BuildAttRecord(tb: TypeBuilder)
    {
        def AttRecord()
        {
            <[ decl:
            public variant AttRecord
            {
            }
            ]>
        }

        def attRecordBuilder = tb.DefineNestedType(AttRecord());
        def it01 = attRecordBuilder.Define(<[ decl: | IT01) ]>);
        //it01.Compile();
        attRecordBuilder.Compile();
    }
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.