Re[5]: Написание своего DSL
От: Ночной Смотрящий Россия  
Дата: 11.09.20 17:39
Оценка:
Здравствуйте, Marty, Вы писали:

M>Ну, ок, возможно. Где бы еще посмотреть на что-то такое готовое, чтобы понять, как оно делается


Примеры к antlr? Можно начать с калькулятора.

M>>>2) Тесты — хм. На них нет времени.

НС>>Мне надо повторить тезис про технологический уровень?
M>Технологический уровень — как самоцель?

Как необходимое условие выдавать код качественно и быстро.

НС>>Зачем там знаки $ и #?

M>$ — признак директивы

Зачем?

M># — комент

M>// — тоже комент

Зачем два коммента и оба, судя по всему, однострочных?

M>#!rdlc в начале — шебанг


Зачем? Все равно ведь эту штуку только из билда надо запускать.

M>$include — это просто текстуальное включение внешнего файла, как в сишечке

M>$import — импорт другого устройства. Например, в роботе несколько плат, но пульт общается с одной мастер платой, однако ему нужно смотреть регистры других плат. Тогда мастер-плата их форвардит, включая регистры дочернего устройства (причем только нужные в данном устройстве, для экономии адресов).

Не многовато ли импортов для простенького файла?

M>На самом деле это было добавлено в самом конце, и стоило полкопейки.


Отличное оправдание. См. выше что я писал про экономию на разработке тула.

M>Язык для нас вполне понятный.


Понятный — не значит удобный. Домашнее задание: попробуй сократить размер своего примера хотя бы процентов на 30 без потери читаемости и семантического наполнения.

M> Префиксы — это если в текущем и импортируемом устройстве есть одинаковые регистры, то при импорте можно задать префикс, чтобы не было ошибок.


И неймпейсы, и префиксы. Опять миллион способов сделать одно и то же в простеньком языке.

НС>>А судя по тому что ниже — наоборот.

M>А это паскалевский стиль.

Нет. В паскале type <TypeName> = type definition; end;

M> Тип переменной можно опустить, тогда будет принят u8, как самый часто встречающийся. Ну, некоторая нелогичность наверное есть, но вот никто, кроме тебя, не обращал внимания. Вообще, по языку вопросов никто не задавал


Ну вот и получился поэтому не особо удачный результат.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.