Поделиться через


Рекомендации по препроцессору GDL

Используйте следующие рекомендации при написании директив препроцессора GDL:

Чтобы предотвратить непредвиденные последствия, авторы файлов GDL должны соблюдать следующие рекомендации при определении символов и префиксов препроцессора.

Никогда не отменяйте никаких символов, которые не были явно определены в файле, и перед завершением файла всегда отменяйте все символы, определенные в файле. Другими словами, всегда оставляйте стеки символов и префиксов в том состоянии, в котором вы их обнаружили. Если следовать этому руководству, никогда не будет конфликтов пространств имен, связанных с препроцессором.

Интерфейс синтаксического анализа GDL позволит клиенту внедрить фрагмент текста GDL произвольного размера, который будет обработан перед корневым GDL-файлом. Эта возможность позволит клиентам определять любые символы препроцессора, необходимые для обработки соответствующих разделов GDL-файла. Этот фрагмент может включать другие стандартные шаблоны GDL или определять стандартные макросы.

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

Заметка Директивы и макросы препроцессора не влияют на конструкции switch/case, так как директивы оцениваются отдельно перед любыми конструкциями switch/case.

Логические операторы не поддерживаются в директивах препроцессора GDL. Дополнительные сведения об устранении этой ситуации см. в разделе "Проблемы с логическими операторами" в предварительной обработке GDL.