Re[5]: Рефакторинг и макросы Nemerle
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.03.06 05:12
Оценка:
Здравствуйте, ie, Вы писали:
ie>Этот ход пройдет, если рефакторинг идет от макроса к применению результатов работы этого макроса, а вот наоборот, вряд ли. Как узнает рефакторер, что для того, что бы поменять имя свойства, которое я "вот тут" использую, требуется изменить имя парамерта у макроса?
А-а... Ну, в общем случае, это, имхо, неразрешимая задача. Просто далеко не все макросы позволят вообще отследить, что откуда взялось. Поэтому изобретать такую сложную систему, имхо, не имеет особого смысла — все равно пользоваться ей удастся только в экзотических случаях.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Рефакторинг и макросы Nemerle
От: xhalt Украина  
Дата: 14.03.06 12:09
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>А-а... Ну, в общем случае, это, имхо, неразрешимая задача. Просто далеко не все макросы позволят вообще отследить, что откуда взялось. Поэтому изобретать такую сложную систему, имхо, не имеет особого смысла — все равно пользоваться ей удастся только в экзотических случаях.

Про неразрешимость в _общем_ случае уже неоднократно сказали. Есть предложение ограничиться конкретными случаями, и даже больше уделить внимание интеллисенсу (как более необходимому и более простому в реализации).
Но даже для того чтобы сделать корректный интеллисенс в теле цикла макроса for
есть варианты:
1. Научить инструмент распознавать и обрабатывать конкретный макрос for
2. Сделать более-менее универсальный механизм, который будет справляться с подобными макросами
3. Предусмотреть возможность расширения инструмента, если поведения по умолчанию не достаточно.
(можно, впрочем, и совмещать)

Самое сложное из — этого п.2.
В чём сложность даже для тупого автокомплита? Нужно знать в какой контекст попадёт тот фрагмент AST который мы "интеллисенсим".... Кто сказал, допустим, что в теле некого myfor, будут доступны локальные переменные? А вдруг макрос отдельный метод класса генерирует и туда тело помещает?
К слову, for и генерирует функцию, правда локальную.
Т.е. тут снова та же залача — определить в какой контекст попадают переданные аргументами куски AST.
Имхо, в частных случаях (for и прочие макросы не перекраивающие свои параметры), это вполне разрешимо, путём выполнения макроса и анализа результата.
... << RSDN@Home 1.2.0 alpha rev. 0>>


Предлагаю работу в Киеве
Автор:
Дата: 04.05.06
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.