| pragma-directive: | <pragma-option> |
| <pragma-itokens> | |
| <pragma-msg> | |
| <pragma-verblev> | |
| <pragma-include> | |
| <pragma-spansymb> |
| pragma-option: | pragma (option | parseroption) - <letter> (+ | -) [- <letter> (+ | -) ]... |
| pragma-itokens: | pragma (inlinestart | inlineend) <expr> |
| pragma-msg: | pragma (message | warning | error) <expr> |
| pragma-verblev: | pragma verboselevel <expr> |
| pragma-include: | pragma include <expr> |
| pragma-spansymb: | pragma spansymbol <expr> |
Инструкция pragma является специальной директивой. Пожалуйста, обратите внимание, если ISPP не удалось выполнить синтаксический анализ параметров этой директивы (в случае опечатки или неверно указанного параметра), то ошибки не произойдет, будет выдано только предупреждение. Это сделано для совместимости с другими препроцессорами, которые могут иметь собственные синтаксические лексемы директивы pragma.
Ключ pragma-option директивы pragma управляет параметрами, которые ISPP использует для чтения исходных данных. Каждому параметру соответствует определенная буква. Чтобы указать параметр, необходимо ввести имя группы (option или parseroption), а затем тире с последующим за ним буквой параметра. После буквы должен быть записан знак "плюс" (+) или "минус" (-). Знак "плюс" соответствует включению (on) параметра, а знак "минус" - отключению (off). Подобным образом можно одновременно указать несколько параметров в одной команде (см. синтаксис).
Первая группа параметров (option) управляет общими параметрами, тогда как вторая группа (parseroption) управляет параметрами, характерными для синтаксического анализа.
Ключ pragma-itokens используется для определения указателей директивы inline: начальный и конечный соответственно. После записи ключевого слова (inlinestart или inlineend) должно следовать выражение строкового типа (string), которое не должно возвращать пустую строку. Это позволяет использовать тот же самый ключ для начального и конечного указателя. По умолчанию используются {# (открывающая фигурная скобка и знак решётки) и } (закрывающая фигурная скобка) указатели.
Ключ pragma-msg предназначен для выдачи сообщения по
указанному ключевому слову, следующего за именем директивы (message,
warning или error). Все сообщения и предупреждения
передаются в окно сообщений компилятора. Ошибки отображаются при
помощи окон сообщений посредством компилятора. Выражение должно
быть строкового типа. Смотрите также директиву error.
Ключ pragma-verblev включает режим вывода сообщений и устанавливает их уровень детализации, который управляет важностью сообщений (см. ниже). Наименее значимые сообщения будут показаны только при установке самого высокого уровня.
Ключ pragma-include устанавливает переменную пути окружения.
Выражение может содержать несколько путей, разделенных между собой
точкой с запятой. Список этих каталогов используется ISPP при поиске
файлов, указанных директивой include.
Ключ pragma-spansymb устанавливает символ разделения длинных строк на более короткие. Выражение не должно возвращать пустую строку, из которой принимается только первый символ.
| c | Указывает на то, что данные вывода препроцессора должны передаваться компилятору после завершения предварительной обработки. По умолчанию: on (вкл.). |
| e | Указывает режим обработки пустых строк или строк с пробелами, должны ли они передаваться на выход препроцессора. По умолчанию: on (вкл.). |
| v | Включение/Отключение подробного режима вывода сообщений. По умолчанию: off (откл.). |
| b | Упрощенная оценка логических операторов. По умолчанию: on (вкл.). |
| m | Упрощенная оценка оператора умножения. (Выражение вида "0 * A" не будет вычисляться, т.к. результат уже и так известен - ноль.) По умолчанию: off (откл.). |
| p | Паскалевский стиль представления строк (Pascal strings). Если параметр отключен (off), то используется Си стиль представления строк (вместе с escape-последовательностями). По умолчанию: on (вкл.). |
| u | Разрешить не объявленные идентификаторы. Если встречается неизвестный идентификатор, то ISPP выводит сообщение об ошибке. В противном случае, когда параметр включен, автономный идентификатор (который не является вызовом функции) будет пустым. По умолчанию: off (откл.). |
| 0 | Только основные сообщения |
| 1 | Сообщения о временных файлах, созданных #file |
| 2 | Сообщения #insert и #append |
| 4 | Сообщения #dim, #define и #undef |
| 6 | Сообщения об условном включении |
| 8 | Сообщения #emit |
| 9 | Сообщения вызова макросов и функций |
| 10 | Сообщения о размещении Local массива макросов |
#pragma parseroption -b- -u+ #pragma option -c- #pragma warning "Variable value is: " + Str(MyVar) #pragma option -v+ #pragma verboselevel 9 #pragma inlinestart "$(" #pragma inlineend ")" #pragma include __INCLUDE__ + ";D:\INCLUDE" #pragma spansymbol "_"