OberonCore
https://forum.oberoncore.ru/

Переопределение ABSTRACT, LIMITED, EXTENDED
https://forum.oberoncore.ru/viewtopic.php?f=29&t=6583
Страница 1 из 1

Автор:  adimetrius [ Среда, 11 Март, 2020 01:51 ]
Заголовок сообщения:  Переопределение ABSTRACT, LIMITED, EXTENDED

Коллеги, я обнаружил, почитывая DevCPT, что атрибуты записей и процедур
ABSTRACT LIMITED EXTENDED
компилятор позволяет переопределить, как и прочие предопределенные имена типа BITS, LEN, INTEGER и т.п.

Однако Language Report однозначно относит их к непереопределимым ключевым словам:
5. Operators and delimiters are the special characters, character pairs, or reserved words listed below. The reserved words consist exclusively of capital letters and cannot be used as identifiers.

+ := ABSTRACT EXTENSIBLE POINTER
- ^ ARRAY FOR PROCEDURE
* = BEGIN IF RECORD
/ # BY IMPORT REPEAT
~ < CASE IN RETURN
& > CLOSE IS THEN
. <= CONST LIMITED TO
, >= DIV LOOP TYPE
; .. DO MOD UNTIL
| : ELSE MODULE VAR
$ ELSIF NIL WHILE
( ) EMPTY OF WITH
[ ] END OR
{ } EXIT OUT

Я попробовал - действительно, позволяет
MODULE M;
CONST ABSTRACT = -1;
TYPE T = ABSTRACT(*err: identifier does not denote a type*) RECORD END;
END MM.

При этом NEW - не в списке из п. 5!

Что думаете? Это баг или фича?
Для "реализации" такой особенности в таблице символов введен отдельный режим объекта, а всего-то их существует 4 штуки - по одной для каждого атрибута.

Автор:  Info21 [ Среда, 11 Март, 2020 10:56 ]
Заголовок сообщения:  Re: Переопределение ABSTRACT, LIMITED, EXTENDED

Баг однозначно.

Автор:  Trurl [ Среда, 11 Март, 2020 12:55 ]
Заголовок сообщения:  Re: Переопределение ABSTRACT, LIMITED, EXTENDED

https://forum.blackboxframework.org/vie ... f=40&t=704

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/