Как написать правила gnatcheck - PullRequest
2 голосов
/ 21 июня 2011

Можно ли написать свои собственные правила gnatcheck, и если да, может ли кто-нибудь указать мне хорошую ссылку?Я ищу конкретный «стиль», который используется, и мне было бы интересно, если бы я мог просто написать правило, которое говорит, что если вы видите указанный стиль, оно выдаст предупреждение или ошибку, таким образом мы можем пометить, когда этоне соответствует определенному стандарту.

Ответы [ 3 ]

2 голосов
/ 22 июня 2011

В дополнение к справке trashgod, я думаю, что раздел 7.1 этого PDF может быть полезным:

http://extranet.eu.adacore.com/articles/HighIntegrityAda.pdf

2 голосов
/ 27 июня 2011

Здесь может пригодиться немного фона. Несмотря на то, что проверки стиля дают многообещающие требования по соблюдению правил пользовательского стиля, это не совсем то, для чего они нужны.

Основная цель этих проверок состоит в том, чтобы применить стиль Ada Core (люди, которые поддерживают компилятор) к источникам самого компилятора Ada. Вы можете заметить, что проверки включаются автоматически, если вы попытаетесь скомпилировать один из собственных исходных файлов компилятора.

Это на самом деле не отвечает целям AdaCore, если стили, поддерживаемые самими проверками, настраиваются пользователем, поэтому они не добавили такую ​​функцию.

Ваш первый вариант, если вы хотите использовать его самостоятельно, - это просто придерживаться стиля кодирования AdaCore. Я не нашел это ужасным в прошлом, так что вы можете просто посмотреть на это.

Тем не менее, создание какой-либо конфигурации было бы действительно крутой возможностью для кого-то, чтобы добавить. Если вы пойдете по этому пути, вам, вероятно, придется сделать его настраиваемым (с текущим поведением по умолчанию), а не просто менять проверки. Причина в том, что для этого вам нужно изменить исходные коды компилятора, и, как я упоминал выше, компилятор включает проверки при компиляции. Вы действительно не хотите переформатировать кучу исходных файлов компилятора Gnat.

Мне бы очень хотелось, чтобы кто-то сделал это в какой-то момент, поскольку это сделало бы проверки гораздо более полезными для тех из нас, кто работает на кого-то, кроме AdaCore.

1 голос
/ 22 июня 2011

Для справки, существующая проверка стиля GNAT описана в Руководстве пользователя GNAT в §3.2.5 Style Checking. Поскольку правила применяются компилятором, дополнительные правила потребуют соответствующих изменений.

...