отдельная процедура в ada

У меня очень большой проект, и я пытаюсь начать использовать GPS (Gnat Programming Studio) вместо того, что у меня есть.

Соглашения об именах проекта следующие:

something.1.ada для спецификации

что-то.2.ада для тела

parent.son.2.ada для отдельной процедуры/функции, где родитель — это место, где объявлена ​​отдельная функция/процедура, а сын — это имя отдельной функции/процедуры. Это может быть даже сложнее, как в grandparent.parent.son.2.ada.

Моя проблема в том, что я не могу настроить GPS для распознавания отдельных функций/процедур как исходных файлов в проекте.

Это огромный проект, поэтому изменение имен файлов или любое другое изменение в самом коде для меня не вариант, так как это вызовет слишком много проблем.

Как правильно настроить GPS?


person itay    schedule 20.08.2011    source источник


Ответы (2)


Вам нужен файл проекта GNAT с пакетом Naming. Ваша схема именования похожа на схему именования Apex, описанную в GPRbuild. Руководство пользователя – в частности, здесь.

Так что это было бы

package Naming is
   for Casing               use "lowercase";
   for Dot_Replacement      use ".";
   for Spec_Suffix ("Ada")  use ".1.ada";
   for Body_Suffix ("Ada")  use ".2.ada";
end Naming;

я не думаю, что тебе нужно

   for Separate_Suffix ("Ada") use ".2.ada";

потому что

Он обозначает суффикс, используемый в именах файлов, содержащих отдельные тела. Если он не указан, то по умолчанию используется то же значение, что и Body_Suffix ("Ada").

person Simon Wright    schedule 20.08.2011
comment
поэтому в моем случае я должен определить: корпус: замена точки в смешанном регистре: _ суффикс спецификации: .1.ada суффикс тела: .2.ada отдельный суффикс: .2.ada это правильно? Спасибо за помощь - person itay; 20.08.2011
comment
Ну, кажется, вам нужен нижний регистр, а не смешанный регистр. Я обновил ответ, а не комментировал, чтобы правильно отформатировать - person Simon Wright; 20.08.2011

Еще один вариант, о котором Саймон не упомянул, — запустить грызть в вашей программе. gnatchop — это программа, которая переименует все ваши файлы в имена, которые Gnat ищет по умолчанию.

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

person T.E.D.    schedule 23.08.2011
comment
спасибо, но решение simon отлично сработало для меня и сохранило все в проекте именно так, как они были. - person itay; 25.08.2011
comment
хорошо, я знаю, что должен опубликовать новый вопрос для этого, но форум утверждает, что он не соответствует стандартам качества ... поэтому я задам его здесь. проект использует более 20 библиотек extarnel. как мне добавить эти библиотеки в проект, чтобы он скомпилировался? большое спасибо - person itay; 25.08.2011
comment
@itay - Внешние (готовые) библиотеки в него не войдут. Если у вас есть еще исходный код Ады, который нужно скомпилировать, его тоже нужно будет перерезать. Если у вас есть решение, которое уже работает, я бы не стал беспокоиться. Просто помните, что вы можете сделать это для дальнейшего использования. - person T.E.D.; 25.08.2011
comment
+1 Я забыл про gnatchop и обратное ему cat. :-) - person trashgod; 06.09.2011