Директивы компилятора
Основные директивы, обрабатываемые препроцессором
{$apptype <тип приложения>} - Задание типа приложения (windows/console).
{$reference <имя файла>} - Подключение библиотеки.
{$gendoc <параметр>} - Генерация документации в XML формате. Параметры: true, false.
{$mainresource <имя файла>} - Подключение .res файла в качестве неуправляемого ресурса
{$resource <имя файла>} - Подключение файла в качестве управляемого ресурса
{$product <название продукта>} - Название продукта
{$version <версия продукта>} - Версия продукта
{$company <компания>} - Компания
{$copyright <копирайт>} - Копирайт
{$trademark <торговая марка>} - Торговая марка
{$include <имя файла>} - Включение в текст программы содержимого указанного файла.
{$define <идентификатор>} - Определение имени, используемого в директивах $ifdef, $ifndef.
{$undef <идентификатор>} - Исключение имени, используется для отмены действия директивы $define.
{$ifdef <идентификатор>} - Начало блока условной компиляции (проверяется условие: "идентификатор определен").
{$ifndef <идентификатор>} - Начало блока условной компиляции (проверяется условие: "идентификатор не определен").
{$else} - Директива "иначе" в блоке условной компиляции.
{$endif} - Завершение блока условной компиляции.
Директивы $ifdef, $ifndef совместно с директивами $else и $endif управлют условной компиляцией частей исходного файла. Каждой директиве $ifdef, $ifndef должна соответствовать завершающая ее директива $endif. Между директивами $ifdef, $ifndef и $endif допускается произвольное количество блоков условной компиляции (в том числе вложенных) и не более одной директивы $else.
Пример программы с использованием директив компилятора
{$apptype console} {$reference library.dll} {$define DEBUG} {$define GO} begin {$ifdef GO} {$ifndef DEBUG} writeln('Имя DEBUG не определено'); {$else} writeln('Имя DEBUG определено'); {$endif} {$endif} {$include test.pas} end.
Отключение препроцессора
Для отключения препроцессора необходимо закомментировать следующие строки в файле Core\Parsers\PascalABCParser\Parser.cs 216 225-228 237-238 246-247