Можно ли написать свои собственные правила gnatcheck, и если да, то может ли кто-нибудь указать мне хорошую ссылку? Я ищу определенный «стиль», который используется, и мне бы очень хотелось, чтобы я мог просто написать правило, которое говорит, что если вы видите указанный стиль, он выдаст предупреждение или ошибку, таким образом, мы можем отметить, когда это не следует определенному стандарту.
Как написать правила gnatcheck
Ответы (3)
Здесь может быть полезно немного предыстории. Несмотря на то, что проверки стиля многообещающи для обеспечения соблюдения рекомендаций по пользовательскому стилю, они предназначены не совсем для этого.
Основная цель этих проверок — обеспечить соблюдение стиля Ada Core (люди, которые поддерживают компилятор). в исходниках самого компилятора Ады. Вы можете заметить, что проверки автоматически включаются, если вы пытаетесь скомпилировать один из собственных исходных файлов компилятора.
На самом деле это вообще не служит целям AdaCore, если стили, применяемые самими проверками, настраиваются пользователем, поэтому они не добавили такой функции.
Ваш первый вариант, если вы хотите использовать его самостоятельно, — просто придерживаться стиля кодирования AdaCore. Я не находил это ужасным в прошлом, так что вы можете просто посмотреть на это.
Тем не менее, создание какой-то настраиваемости было бы действительно крутой функцией для кого-то. Если вы пойдете по этому пути, вам, вероятно, придется сделать его настраиваемым (с текущим поведением по умолчанию), а не просто изменить проверки. Причина в том, что для этого вам придется модифицировать исходные коды компилятора, и, как я упоминал выше, компилятор включает проверки при компиляции. Вы на самом деле не хотите переформатировать кучу работающих исходных файлов компилятора Gnat.
Я бы очень хотел, чтобы кто-нибудь сделал это в какой-то момент, так как это сделало бы проверки гораздо более полезными для тех из нас, кто работает на кого-то помимо AdaCore.
В дополнение к ссылке на trashgod, я думаю, что раздел 7.1 этого PDF-файла может быть полезен:
http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf
Для справки: существующая проверка стиля GNAT описана в Руководстве пользователя GNAT. в разделе §3.2.5 Style Checking
а>. Поскольку правила применяются компилятором, дополнительные правила потребуют соответствующих модификаций.