ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
720950 Топик полностью
Evgeny_CD, Архитектор (16.12.2016 16:46, просмотров: 281) ответил Скрипач на Я много эксперементировал с "DSL как обертка С++". Главная проблема - сообщения о синтаксических ошибках. Компилятор-то, ничего о вашем DSL не знает. Вот и лезут static cast и прочие не имеющие никакого отношения к basic'у ужасы.
DSL без "IDE" - "водка без пива - деньги на ветер". Ошибки нада давить в зародыше. 1. Все теги исходника на DSL декларируются в самом начале. Все переменные, фукнции и проч. Использовать ты потом можешь, только нажав хоткей "Выбрать тег" и срисок выбора. Иерархия, запоминание последного доступа к уровням иерархии для удобства. 2. Исходник на DSL пишется в виде связного списка объектов. Т.е. тег, тип сущности или использования тега (левое использование переменной, правое, как использовать - по значению, ссылка, указатель и .д.) 3. Таким образом, этапы лексического анализа и поиска притивных ошибок устраняем. Для более сложных ошибок нужен уже интеллектуальный анализатор DSL, от этого никуда не дется. 4. Далее изоморфное отображение в С++, причем ошибок компиляции здесь уже возникать не должно.