Директивы определенные в реализации компилятора GNAT
| Abort_Defer; | - | откладывает принудительное завершение до конца блока инструкций (должна быть помещена в начале блока инструкций) | ||
| Ada_83; | - | использовать при компиляции исходного текста соглашения стандарта Ada83, даже если переключатели опций компилятора указывают обратное | ||
| Ada_95; | - | использовать при компиляции исходного текста соглашения стандарта Ada95, даже если переключатели опций компилятора указывают обратное | ||
| Annotate( identifier{, name|expression}); |
- | Добавить дополнительную информацию для внешних инструментальных средств | ||
| Assert( boolean_expression [, static_string_expression]); |
- | Вставить условие контрольной проверки | ||
| Ast_Entry(entry_identifier); | - | Реализована только для OpenVMS | ||
| C_Pass_By_Copy( [Max_Size =>] static_integer_expression); |
- | При вызове функции Си, использовать передачу параметра по значению (не по ссылке), если это возможно | ||
| Comment(static_string_expression); | - | То же самое, что и Ident | ||
| Common_Object( [Internal =>] local_name, [, [External =>] external_symbol] [, [Size =>] external_symbol] ) |
- | Для Фортрана. Создать переменную, которая использует общее пространство | ||
| Complex_Representation( [Entity =>] local_name); |
- | Использовать формат комплексных чисел gcc (для повышения скорости вычислений) | ||
| Component_Alignment( [Form =>] alignment_choice [, [Name =>] type_local_name]); |
- | Указывает как должно осуществляться выравнивание компонентов записи | ||
| CPP_Class([Entity =>] local_name); | - | Трактовать запись или тэговую запись как класс Си++ | ||
| CPP_Constructor( [Entity =>] local_name); |
- | Трактовать импортируемую функцию как конструктор класса Си++ | ||
| CPP_Destructor( [Entity =>] local_name); |
- | Трактовать импортируемую функцию как деструктор класса Си++ | ||
| CPP_Virtual( [Entity =>] entity, [, [Vtable_Ptr =>] vtable_entity,] [, [Position =>] static_integer_expression]); |
- | Импортировать виртуальную функцию Си++ | ||
| CPP_Vtable( [Entity =>] entity, [, [Vtable_Ptr =>] vtable_entity,] [, [Entry_Count =>] static_integer_expression]); |
- | Определить таблицу виртуальных функций | ||
| Debug(procedure_call_statement); | - | Определить вызов отладочной процедуры | ||
| Eliminate([Unit_Name =>] identifier); | - | Указать объект который не используется программой. Создается утлитой gnatelim | ||
| Export_Exception( [Internal =>] local_name, [, [External =>] external_symbol,] [, [Form =>] Ada | VMS] [, [Code =>] static_integer_expression]); |
- | Реализована только для OpenVMS | ||
| Export_Function( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Result_Type =>] result_subtype_mark] [, [Mechanism =>] mechanism] [, [Result_Mechanism =>] mechanism_name]); |
- | Экспортировать Ада-функцию с указанием дополнительной информации по отношению к информации представленной директивой Export | ||
| Export_Object( [Internal =>] local_name, [, [External =>] external_symbol] [, [Size =>] external_symbol]); |
- | Экспортировать тэговую запись Ады с указанием дополнительной информации по отношению к информации представленной директивой Export | ||
| Export_Procedure( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Result_Type =>] result_subtype_mark] [, [Mechanism =>] mechanism]); |
- | Экспортировать Ада-процедуру с указанием дополнительной информации по отношению к информации представленной директивой Export | ||
| Export_Valued_Procedure( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Result_Type =>] result_subtype_mark] [, [Mechanism =>] mechanism]); |
- | Экспортировать Ада-функцию обладающую побочными эффектами с указанием дополнительной информации по отношению к информации представленной директивой Export | ||
| Extend_System([Name =>] identifier); | - | устарела | ||
| External_Name_Casing( Uppercase | Lowercase [, Uppercase | Lowercase | As_Is]); |
- | Установить режим перевода в символы верхнего регистра для импорта в регистрозависимый язык. Может быть установлено в Uppercase, Lowercase или As_Is
(по-умолчанию для gnst). |
||
| Finalize_Storage_Only( first_subtype_local_name); |
- | Не выполнять очистку (Finalize) для объектов описанных на уровне библиотеки. Изначально предназначено для внутреннего использования в реализации компилятора gnat. | ||
| Float_Representation(float_rep); | - | Реализована только для OpenVMS | ||
| Ident(static_string_expression); | - | Строка идентификации объектного файла (в Linux, значения не имеет) | ||
| Import_Exception( [Internal =>] local_name, [, [External =>] external_symbol,] [, [Form =>] Ada | VMS] [, [Code =>] static_integer_expression]); |
- | Реализована только для OpenVMS | ||
| Import_Function( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Result_Type =>] result_subtype_mark] [, [Mechanism =>] mechanism] [, [Result_Mechanism =>] mechanism_name] [, [First_Optional_Parameter =>] identifier]); |
- | Импортирует функцию, описанную средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import. | ||
| Import_Object( [Internal =>] local_name, [, [External =>] external_symbol] [, [Size =>] external_symbol]); |
- | Импортирует объект, описанный средствами другого языка программирования, для использования его в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import. | ||
| Import_Procedure( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Mechanism =>] mechanism] [, [First_Optional_Parameter =>] identifier]); |
- | Импортирует процедуру, описанную средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import. | ||
| Import_Valued_Procedure( [Internal =>] local_name, [, [External =>] external_symbol] [, [Parameter_Types =>] parameter_types] [, [Mechanism =>] mechanism] [, [First_Optional_Parameter =>] identifier]); |
- | Импортирует функцию обладающую побочными эффектами, которая описана средствами другого языка программирования, для использования ее в Ада-программе. При этом указывает дополнительную информацию по отношению к информации представленной директивой Import. | ||
| Inline_Always(name[, name]); | - | Указывает, на необходимость выполнения межмодульной inline-подстановки не зависимо от состояния переключателей опций компилятора. | ||
| Inline_Generic(generic_package_name); | - | Введена для совместимости с другими Ада-компиляторами | ||
| Interface( [Convention =>] convention_identifier, [Entity =>] local_name [, [External_Name =>] static_string_expression], [, [Link_Name =>] static_string_expression]); |
- | Введена для совместимости с другими Ада-компиляторами | ||
| Interface_Name( [Entity =>] local_name [, [External_Name =>] static_string_expression] [, [Link_Name =>] static_string_expression]); |
- | Введена для совместимости с другими Ада-компиляторами | ||
| Linker_Alias( [Entity =>] local_name [Alias =>] static_string_expression); |
- | Определяет альтернативный компоновщик (linker) для указанного пакета (или другого компонуемого модуля). | ||
| Linker_Section( [Entity =>] local_name [Section =>] static_string_expression); |
- | Указание компоновщику gcc использовать соответствующую секцию для указанного имени | ||
| Long_Float(float_format); | - | Реализована только для OpenVMS | ||
| Machine_Attribute( [Attribute_Name =>] string_expression, [Entity =>] local_name); |
- | Определяет атрибуты машины для gcc. | ||
| Main_Storage( main_storage_option [, main_storage_option]); |
- | Реализована только для OpenVMS | ||
| No_Run_Time; | - | Указать компилятору gnat не использовать библиотеку времени выполнения (например, в случае написания драйвера устройства). | ||
| No_Return(procedure_local_name); | - | Указывает процедуру, которая преднамеренно не возвращает управление. Предназначена для подавления предупреждающих сообщений компилятора. | ||
| Passive([Semaphore | No]); | - | Введена для совместимости с другими Ада-компиляторами | ||
| Polling(On | Off); | - | Если включена, то разрешает опрос исключений | ||
| Propagate_Exceptions(subprogram_local_name); | - | Определяет импортированную подпрограмму, которая будет обрабатывать исключения Ады (без потерь производительности). | ||
| Psect_Object( [Internal =>] local_name, [, [External =>] external_symbol] [, [Size =>] external_symbol]); |
- | То же самое, что и Common_Object. | ||
| Pure_Function([Entity =>] function_local_name); | - | Указывает, что функция не имеет побочных эффектов. | ||
| Ravenscar; | - | Устанавливает политику реального времени RAVENSCAR | ||
| Restricted_Run_Time; | - | Подобно директиве Ravenscar, устанавливает некоторые ограничения на программирование задач реального времени | ||
| Share_Generic(name {, name}); | - | Введена для совместимости с другими Ада-компиляторами | ||
| Source_File_Name( [Unit_Name =>] unit_name, [FNAME_DESIG =>] string_literal); |
- | Переопределяет традиционные для реализации компилятора gnat правила именования файлов. | ||
| Source_Reference( integer_literal, string_literal); |
- | Применяется для совместного использования с утилитой gnatchop. | ||
| Stream_Convert( [Entity =>] type_local_name, [Read =>] function_name, [Write =>] function name); |
- | Упрощает создание подпрограмм потокового ввода/вывода для указанного типа данных | ||
| Style_Checks( string_literal | ALL_CHECKS | On | Off [, local_name]); |
- | Указывает реализации компилятора gnat выполнять проверку стиля оформления исходных текстов (если включено в процессе компиляции). | ||
| Subtitle([Subtitle =>] string_literal); | - | Введена для совместимости с другими Ада-компиляторами | ||
| Suppress_All; | - | Введена для совместимости с другими Ада-компиляторами | ||
| Suppress_Initialization([Entity =>] type_name); | - | Запретить инициализацию переменных указанного типа данных | ||
| Task_Info(expression); | - | Определяет информацию о задаче. | ||
| Task_Name(string_expression); | - | Определяет имя задачи.
Примечание: отсутствует в реализации GNAT V 3.13p. |
||
| Task_Storage( [Task_Type =>] local_name, [Top_Guard =>] static_integer_expression); |
- | Определяет "охранное" пространство для задачи. | ||
| Time_Slice(static_duration_expression); | - | Определяет квант времени задачи (tasking time slice) для главной программы | ||
| Title(titling_option [, titling option]); | - | Введена для совместимости с другими Ада-компиляторами | ||
| Unchecked_Union(first_subtype_local_name); | - | Трактовать запись как тип объединения (union) языка Си. | ||
| Unimplemented_Unit; | - | Предназначена для использования в не законченных модулях. Порождает генерацию ошибки при компиляции такого модуля. | ||
| Unreserve_All_Interrupts; | - | Позволяет переназначение прерываний, которые обычно обрабатываются реализацией компилятора gnat (например SIGINT). | ||
| Unsuppress(identifier [, [On =>] name]); | - | Обладает эффектом, противоположным директиве Suppress. | ||
| Use_VADS_Size | - | Для старого Ада-кода. атрибут 'Size
эквивалентен атрибуту 'VADS_Size. |
||
| Warnings(On | Off [, local_name]); | - | Включает или выключает генерацию предупредительных сообщений компилятором. | ||
| Weak_External([Entity =>] local_name); | - | Определяет объект, который не должен распознаваться компоновщиком. |
| Copyright (C) А.Гавва | V-0.4w май 2004 |