> -- kolesiko писал(а):
> Я посмотрел исходник Oberon-2 Lexer (пару файлов по диагонали) и заметил слово ASSERT. Это контрактное программирование? А юнит-тесты применяете?Я плохо представляю, что такое контрактное программирование. ASSERT'ами я часто пресекаю вызов публичных функций с некорректными параметрами, либо защищаюсь от собственных ошибок, когда плохо понимаю, что пишу, либо когда нужно выразить какое-то согласование между частями программы, которое не выражается на данном языке программирования. Это чтобы при изменении и расширении чего-либо в будущем не позабыть, на каких условиях работает уже имеющееся.

В моих плагинах, по-моему, нет юнит-тестов, но вообще на при работе на Oberon-2 я автоматические тесты внедрял и использовал довольно активно.