|
@@ -0,0 +1,25 @@
|
|
|
|
+---
|
|
|
|
+published: true
|
|
|
|
+layout: post
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+Первый прототип языка, парсера и объектной модели готов, подробности в [вики](https://github.com/kpmy/ot/wiki).
|
|
|
|
+По результату тестов можно отметить, что неявная квалификация даже в контексте текстовых человекочитаемых шаблонов есть фича неоднозначная.
|
|
|
|
+
|
|
|
|
+В остальном всё довольно просто прошло, парсер -> объектная модель -> контекст. Даже немного боязно, не упустил ли чего за кажущейся простотой.
|
|
|
|
+Сомнения вызывает точка, как разделитель в квалификаторе, она не позволяет использовать точку, как часть идентификатора, хотя в роли квалификатора точка довольно органично смотрится.
|
|
|
|
+Сегодняшний формат выглядит примерно так:
|
|
|
|
+
|
|
|
|
+ module.class(id): content;
|
|
|
|
+
|
|
|
|
+Куча вариантов было отброшено:
|
|
|
|
+
|
|
|
|
+ module>class(id)
|
|
|
|
+ [module]class(id)
|
|
|
|
+ module:class(id)
|
|
|
|
+
|
|
|
|
+В последнем варианте двоеточие смотрится неплохо, как в xml namespace, но это сразу убивает возможность использования двоеточия, как негромоздкого символа, открывающего содержимое объекта.
|
|
|
|
+
|
|
|
|
+Конечно, пока никаких языков программирования встроить не требовалось, да и задача постепенно усложняется, так как встраивание требует модификации парсера, что может серьёзно повредить его, простой как сапог, сути.
|
|
|
|
+Возможно, встраивание ЯП должно выглядеть иначе, чем задумывалось в посте с рассуждениями.
|
|
|
|
+
|