"Адское" программирование Ada-95 -Компилятор GNAT

         

Управляющая программа gnat и файлы проектов



Управляющая программа gnat и файлы проектов

Кроме утилиты gnatmake, существуют другие инструментальные средства системы GNAT, которые ориентированы на обработку проектов.К таким инструментальным средствам относятся: gnatbind, gnatfind, gnatlink, gnatls и gnatxref. Следует однако заметить, что ни один из этих инструментов не может непосредственно использовать опцию указания файла проекта ("-P").Таким образом, необходимо осуществлять запуск этих инструментов с помощью управляющей программы gnat (или gnatcmd).

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

На платформах отличных от VMS, управляющая программа gnat принимает следующие команды (вне зависимости от регистра символов):

  • BIND для запуска gnatbind

  • CHOP для запуска gnatchop
  • COMP или COMPILE для запуска компилятора
  • ELIM для запуска gnatelim
  • FIND для запуска gnatfind
  • KR или KRUNCH для запуска gnatkr
  • LINK для запуска gnatlink
  • LS или LIST для запуска gnatls
  • MAKE для запуска gnatmake
  • NAME для запуска gnatname
  • PREP или PREPROCESS для запуска gnatprep
  • PSTA или STANDARD для запуска gnatpsta
  • STUB для запуска gnatstub
  • XREF для запуска gnatxref

Следует заметить, что запуск компилятора осуществляется с помощью команды "gnatmake -f -u".

Вслед за командой можно указать опции и аргументы, которые будут переданы соответствующему инструментальному средству:

gnat bind -C main.ali gnat ls -a main gnat chop foo.txt

Для команд: BIND, FIND, LS или LIST, LINK и XREF, - в дополнение к опциям, которые применимы для непосредственно вызываемого инструментального средства, могут быть использованы опции, которые характерны для файлов проектов (-P, -X and -vPx).

Для каждой из этих команд, в главном проекте возможно существование пакета, который соответствует запускаемому инструментальному средству:

  • "package Binder" - для команды BIND (запускает gnatbind)
  • "package Finder" - для команды FIND (запускает gnatfind)
  • "package Gnatls" - для команды LS или LIST (запускает gnatls)
  • "package Linker" - для команды LINK (запускает gnatlink)
  • "package Cross_Reference" - для команды XREF (запускает gnatlink)

Пакет Gnatls обладает уникальным атрибутом Switches, простая переменная со значением в виде списка строк. Атрибут содержит опции используемые при запуске gnatls.

project Proj1 is package gnatls is for Switches use ("-a", "-v"); end gnatls; end Proj1;

Все остальные пакеты обладают атрибутом Default_Switches, ассоциативный массив, который индексируется именем языка программирования (не зависит от регистра символов) и имеет значение в виде списка строк.Атрибут "Default_Switches ("Ada")" содержит опции, которые используются при запуске инструментального средства соответствующего пакету.

project Proj is for Source_Dirs use ("./**"); package gnatls is for Switches use ("-a", "-v"); end gnatls; package Binder is for Default_Switches ("Ada") use ("-C", "-e"); end Binder; package Linker is for Default_Switches ("Ada") use ("-C"); end Linker; package Finder is for Default_Switches ("Ada") use ("-a", "-f"); end Finder; package Cross_Reference is for Default_Switches ("Ada") use ("-a", "-f", "-d", "-u"); end Cross_Reference; end Proj;

Для показанного выше файла проекта, команды:

gnat ls -Pproj main gnat xref -Pproj main gnat bind -Pproj main.ali

будут правильно устанавливать рабочее окружение и осуществлять запуск инструментальных средств используя опции, которые указаны в пакетах соответствующих инструментальным средствам.



Содержание раздела








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