Сейчас идет работа над созданием PEG-парсера, в связи с чем возникают вопросы.
Будет ли этот парсер использоваться для разбора кода Nemerle 2?
Если да, то будет ли он поддерживать расширяемую макросами грамматику? Насколько качественно он будет обрабатывать ошибки?
Имеются ли планы поддерживать питоноподобный стиль кода в Nemerle 2?
Здравствуйте, Аноним, Вы писали:
А>Будет ли этот парсер использоваться для разбора кода Nemerle 2?
Нет. Но он в том числе является полигоном для отработки идей для Nemerle 2.
А>Если да, то будет ли он поддерживать расширяемую макросами грамматику?
Да. Новая подсистема макросов должна позволить полностью менять синтаксис на разных уровнях грамматики. Будут так называемые точки расширения в которых можно будет менять синтаксис. Скорее всего это будут следующие уровне:
1. Уровень типов (внутри пространств имен и типов). Типы (такие как классы, варианты, с труктуры и перечисления) будут реализованы с помощью макросов этого уровня.
2. Внутри стандартных типов. Их можно будет применять, например, для реализации синтаксиса Design by contract.
3. Уровня членов.
4. Внутри стандартных членов.
5. Уровня выражения (без ограничений присущих современным макросам).
Это не считая макросов не меняющих синтаксис таких как мета-атрибуты и макросы уровня выражения выглядящие как вызов функций.
А>Насколько качественно он будет обрабатывать ошибки?
Без качественной обработки ошибок ни макрос, ни (тем более) компилятор смысла не имеют.
А>Имеются ли планы поддерживать питоноподобный стиль кода в Nemerle 2?
Постараемся его оставить. Это неизбежно приведет к некоторым ограничениям, но мы постараемся. В прочем, если будут выбор между расширяемостью и поддержкой отступного синтаксиса, то лично я предпочту расширяемость.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.