Здравствуйте, catbert, Вы писали:
C>Допустим, я хочу реализовать сишарповский dynamic в Nemerle 2. Для этого мне нужно перехватывать все вызовы методов для всех объектов типа dynamic в компилируемом проекте.
Мы как-то обсуждали это на англоязычном форуме и сошлись во мнении, что лучше не повторять реализацию MS, просто перевести на dynamic макрос
late. По функциональности разница будет не очень большая, но получится решение в стиле Немерла. Плюс реализовать можно без приседаний и изменений в компиляторе.
C>Или добавить Extension Method, который на самом деле был бы макросом.
Об этом мы думали, но так и не реализовали. В принципе возможность была бы полезной.
C>Для этого необходимо иметь возможность расширять Nemerle на уровне вызовов метода.
C>Еще я хочу создавать новые top-level сущности, как таблицы в Falcon-е. Это, по идее, позволяет новый парсер Nemerle.
С парсером особых проблем нет. Синтаксис ведь не меняется. Тут проблема в том, что у кода меняется семантика в зависимости от типа выражения. А это уже на синтаксисе не пропрешь.
Тут можно поступить так... Объявить dynamic как макрос оразующий область видимости. И уже в этой области видимости искать вхождения dynamic-переменной и менять код. Но это сложно.
C>Каких видов макросов, кроме трех стандартных видов макросов Nemerle, вам не хватает?
Думаю, что в 2.0 будет всего хватать. А пока что придется обходиться тем что есть.