Как избежать зарезервированного слова в Free-Pascal?

На самом деле я работаю над переводом некоторых библиотек на свободный паскаль. поэтому проблема в том, что в delphi можно использовать символ амперсанда (&) для экранирования зарезервированного слова, но в free-pascal это не работает. компилятор жалуется на это сообщение
ForLibDx.pas(72,13) Fatal: illegal character "'&'" ($26)

при включении символа амперсанда.

на самом деле я использую {$MODE DELPHI} для компиляции моих модулей под free-pascal

FPC 2.2.4

Лазарь 0.9.28.2

заранее спасибо.


person Salvador    schedule 21.12.2010    source источник


Ответы (1)


Насколько я помню, компилятор FPC не имеет средств для экранирования зарезервированных слов.
Амперсанд (&) в качестве escape-символа для экранирования зарезервированных слов является особенностью языка Delphi только для компилятора Delphi.

Вы можете обойти это, используя полное имя (включая модуль и имя класса), как предлагает Роб Кеннеди здесь.

NB: Рекомендуется избегать этих экранирований амперсанда в Delphi для несгенерированного кода, поскольку не все инструменты IDE и сторонних производителей могут с этим справиться.

- Джерун

person Jeroen Wiert Pluimers    schedule 21.12.2010
comment
Есть, но только в разрабатываемой версии (2.5.1). bugs.freepascal.org/view.php?id=18339 Afaik & было в основном добавляется для IDispatch, кстати? COM-объекты могут иметь имена полей / методы, которые являются ключевыми словами / зарезервированными словами. - person Marco van de Voort; 01.01.2011
comment
Эта версия стала золотой как версия 2.6.0. - person Marco van de Voort; 18.10.2012