OberonCore https://forum.oberoncore.ru/ |
|
Значения основных типов https://forum.oberoncore.ru/viewtopic.php?f=29&t=542 |
Страница 1 из 1 |
Автор: | PGR [ Пятница, 29 Июнь, 2007 19:12 ] |
Заголовок сообщения: | Значения основных типов |
Почему NIL -- ключевое слово, а TRUE/FALSE -- предопределённые идентификаторы? |
Автор: | Илья Ермаков [ Пятница, 29 Июнь, 2007 20:02 ] |
Заголовок сообщения: | |
Пёс его знает, но это действительно так. Можно объявить CONST TRUE = 0 (правда, нормальный TRUE станет в модуле недоступен, зачем это нужно - ума не приложу), но нельзя сделать то же самое с NIL. |
Автор: | PGR [ Суббота, 30 Июнь, 2007 16:17 ] |
Заголовок сообщения: | |
А для атрибутов методов NEW -- идентификатор, а ABSTRACT, EMPTY, EXTENSIBLE -- ключевые слова. ![]() |
Автор: | Евгений Темиргалеев [ Понедельник, 02 Июль, 2007 11:36 ] |
Заголовок сообщения: | |
ИМХО, это не просто так, просто свои соображения Ominc в сообщение о языке не помещало ![]() Для TRUE/FALSE - есть WinApi.TRUE (INTEGER = 1) и WinApi.FALSE (INTEGER = 0). Если ключевое слово - то WinApi.TRUE/FALSE - не получится. Для NEW - есть еще и процедура NEW, которую можно переопределить. Может Ominc этим когда-то пользовалась? |
Автор: | Trurl [ Понедельник, 02 Июль, 2007 11:53 ] |
Заголовок сообщения: | |
PGR писал(а): А для атрибутов методов NEW -- идентификатор, а ABSTRACT, EMPTY, EXTENSIBLE -- ключевые слова.
![]() Почему ключевые слова? При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier. |
Автор: | PGR [ Понедельник, 02 Июль, 2007 14:30 ] |
Заголовок сообщения: | |
Trurl писал(а): Почему ключевые слова? При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier.
В Component Pascal Language Report так написано... Оказывается это неправда ![]() |
Автор: | PGR [ Понедельник, 02 Июль, 2007 17:41 ] |
Заголовок сообщения: | |
Евгений Темиргалеев писал(а): Для TRUE/FALSE - есть WinApi.TRUE (INTEGER = 1) и WinApi.FALSE (INTEGER = 0). Если ключевое слово - то WinApi.TRUE/FALSE - не получится. Это идёт ещё с Modula-2... Евгений Темиргалеев писал(а): Для NEW - есть еще и процедура NEW, которую можно переопределить. Может Ominc этим когда-то пользовалась?
Вообще предопределённые идентификаторы обычно использовались для встроенных процедур, типов и значений. Может для имени атрибута лучше было бы выбрать другое слово, вместо NEW... Кстати, в ISO Modula-2 NIL -- это предопределённый идентификатор. |
Автор: | PGR [ Понедельник, 02 Июль, 2007 17:48 ] |
Заголовок сообщения: | |
Trurl писал(а): При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier.
А вот CONST ABSTRACT = 999; проходит без проблем. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |