Блог типа

Первый Прототип

Первый прототип языка, парсера и объектной модели готов, подробности в вики. По результату тестов можно отметить, что неявная квалификация даже в контексте текстовых человекочитаемых шаблонов есть фича неоднозначная.

В остальном всё довольно просто прошло, парсер -> объектная модель -> контекст. Даже немного боязно, не упустил ли чего за кажущейся простотой. Сомнения вызывает точка, как разделитель в квалификаторе, она не позволяет использовать точку, как часть идентификатора, хотя в роли квалификатора точка довольно органично смотрится. Сегодняшний формат выглядит примерно так:

module.class(id): content;

Куча вариантов было отброшено:

module>class(id)
[module]class(id)
module:class(id)

В последнем варианте двоеточие смотрится неплохо, как в xml namespace, но это сразу убивает возможность использования двоеточия, как негромоздкого символа, открывающего содержимое объекта.

UPD: Всё же не смог пожертвовать точкой в идентификаторе и на свежую голову придумал разделитель вместо точки: ~.

module~class(id): content;

Конечно, пока никаких языков программирования встроить не требовалось, да и задача постепенно усложняется, так как встраивание требует модификации парсера, что может серьёзно повредить его, простой как сапог, сути. Возможно, встраивание ЯП должно выглядеть иначе, чем задумывалось в посте с рассуждениями.