Список переменных
От: Flem1234  
Дата: 08.04.11 15:29
Оценка:
В целях тренировки хочу написать макрос, который будет сохранять состояние выполняемого метода (что-то типа континюэйшена).

Например так
class A
{
    public M(): void 
    {
        def a = "2 - test";
        WriteLine("1");
        save;
        WriteLine(a);
        save;
        WriteLine("1");
    }
}


Чтобы в местах save все локальные переменніе сохранялись в некой промежуточной структуре. Как к ним добраться?
Re: Список переменных
От: hardcase Пират http://nemerle.org
Дата: 08.04.11 15:32
Оценка: 2 (1)
Здравствуйте, Flem1234, Вы писали:

F>Чтобы в местах save все локальные переменніе сохранялись в некой промежуточной структуре. Как к ним добраться?


def typer = Macros.ImplicitCTX();

typer.LocalContext // контекст с переменными
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Список переменных
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.04.11 16:50
Оценка: 2 (1)
Здравствуйте, Flem1234, Вы писали:

F>В целях тренировки хочу написать макрос, который будет сохранять состояние выполняемого метода (что-то типа континюэйшена).


F>Чтобы в местах save все локальные переменніе сохранялись в некой промежуточной структуре. Как к ним добраться?


Такие вещи лучше делать так. Сначала типизировать все содержимое метода (в местах сохранения контекста оставить некие заглушки). О том как это сделать я только что писал
Автор: VladD2
Дата: 08.04.11
. А потом уже переписывать его как тебе надо (сгенерировать новый PExpr и назначить его телом метода.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.