Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Fpc 2.0.2 ошибка New

Автор: Altair 20.05.2006 15:45

Поробовал скомпилировать модуль list из faq'a, в fpc ошибка:
указывает на процедуру initlist,
new(n);

Цитата
First compilation of d:\soft\program files\fpc\bin\i386-win32\list.pas
list.pas(31,7) Error: Type identifier expected
list.pas(31,8) Error: Illegal expression
...


в чем может быть дело ? Я точно помню, что компилировал раньше этот модуль без проблемм.

настройки компилятора пробовал разные...
Цитата

Syntax Switches
[ ] Object pascal support [ ] Global C macros
[ ] C-like operators [X] TP/BP 7.0 compatibility
[ ] Stop after first error [ ] Delphi compatibility
[ ] Allow LABEL and GOTO [ ] Allow STATIC in objects
[ ] C++ styled inline


Ошибка наверняка какая-то глупая, но в чем ? smile.gif

Автор: volvo 20.05.2006 15:59

Чтобы подобных ошибок не возникало (мы с Romtek-ом уже как то сталкивались с подобным поведением компилятора) желательно использовать не процедурную, а функциональную форму записи New:

p := new(PType);


P.S. 2.0.0 компилирует "на ура" smile.gif

Автор: Altair 20.05.2006 16:02

Супер! Спасибо!

Автор: Romtek 23.05.2006 14:21

По-моему, просто надо указать директиву режима Турбо Паскаля: {$Mode TP}
Совместимость то была гарантирована!

Автор: lapp 23.05.2006 14:55

Цитата(Romtek @ 23.05.2006 11:21) *

По-моему, просто надо указать директиву режима Турбо Паскаля: {$Mode TP}
Совместимость то была гарантирована!

Я несколько раз замечал странности вот какого рода.
Указываю в среде (не в коде) опции на совместимость с TP и убираю совместимость с Delphi (обычно я это делаю, чтоб прошло присваивание значения имени функции). После этого обычно нужно перезагрузить код в окне, я это делаю, и все работает нормально некоторое время. Но потом вдруг опять начинает ругаться! Я проверяю опции - все Ок. Перегружаю окно (или всю среду) - и снова все работает..
Чистой воды глюк. Не встречали такое?
Может, и тут что-то похожее?

Автор: Altair 23.05.2006 17:51

Цитата
По-моему, просто надо указать директиву режима Турбо Паскаля: {$Mode TP}

Это первое что я делал.
В опциях ставил галку совместимость с TP, никакого эффекта не было.

Автор: Romtek 6.06.2006 17:06

Другие директивы пробовал?

{$Mode ObjFPC} например.