OberonCore
https://forum.oberoncore.ru/

многословные идентификаторы в Оберонах возможны ли?
https://forum.oberoncore.ru/viewtopic.php?f=6&t=6768
Страница 1 из 1

Автор:  budden [ Четверг, 03 Июнь, 2021 22:29 ]
Заголовок сообщения:  многословные идентификаторы в Оберонах возможны ли?

Вопрос, у которого наверняка есть ответ, который кто-то знает:

можно ли поменять грамматику оберона так, чтобы были допустимы многословные идентификаторы. Например, вместо

Цитата:
PROCEDURE ПоложиЛожкуНаСтол(ложка: столовыйПрибор; стол: предметМебели);
BEGIN
стол.ЧтоСодержит.Добавь(ложка)
END ПоложиЛожкуНаСтол;


можно было бы писать так:
Цитата:
PROCEDURE Положи ложку на стол(ложка: столовый прибор; стол: предмет мебели);
BEGIN
стол.что содержит.добавь(ложка)
END Положи ложку на стол;


В плане реализации представляется как некий предварительный этап, который склеивает все идущие подряд лексемы идентификаторов (отличные от ключевых слов).

Автор:  Comdiv [ Четверг, 03 Июнь, 2021 23:35 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Да, при чём, даже на уровне лексем, то есть, элементарным образом, так как в Обероне нет конструкций с подряд идущими именами, разделённых лишь пробелами. Из соображений ошибкоустойчивости этого, конечно, лучше не делать.

Автор:  budden [ Пятница, 04 Июнь, 2021 00:23 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Спасибо!

На интуитивном уровне согласен, что да, ошибкоустойчивость может пострадать, но всё же задам наивный вопрос: какой первый пример возможных грабель пришёл в голову Вам? Считаем, что среда разработки показывает ключевые слова.

Автор:  Иван Денисов [ Пятница, 04 Июнь, 2021 05:51 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Добавить неразрывный пробел в сканер не сложно...

Автор:  Борис Рюмшин [ Пятница, 04 Июнь, 2021 09:59 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Иван Денисов писал(а):
Добавить неразрывный пробел в сканер не сложно...

Но не нужно.

Автор:  Wlad [ Пятница, 04 Июнь, 2021 12:00 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

budden писал(а):
можно ли поменять грамматику оберона так, чтобы были допустимы многословные идентификаторы.
Хорошо, что мы - не на фортовском форуме...

Автор:  budden [ Пятница, 04 Июнь, 2021 14:14 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Нет, не неразрывный пробел, а обычный. Вот о чём речь: viewtopic.php?f=28&t=6769

Автор:  Comdiv [ Пятница, 04 Июнь, 2021 14:21 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

budden писал(а):
На интуитивном уровне согласен, что да, ошибкоустойчивость может пострадать, но всё же задам наивный вопрос: какой первый пример возможных грабель пришёл в голову Вам? Считаем, что среда разработки показывает ключевые слова.
Раз Вы пишете о ключевых словах, то подразумеваете, что ключевые слова могут входить в состав многословных имён. В таком случае многословные имена уже не могут оставаться на лексическом уровне, так как подряд идущие ключевые слова и имена в Oberon, конечно, есть, и чтобы разобраться, что есть что, уже нужна таблица имён. Тогда ошибкоустойчивость ещё понижается даже при выделении ключевых слов - так уж устроены ошибки.

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

Автор:  budden [ Пятница, 04 Июнь, 2021 14:39 ]
Заголовок сообщения:  Re: многословные идентификаторы в Оберонах возможны ли?

Нет, не могут ключевые слова входить в состав многословных идентификаторов, потому и написал, что среда показывает ключевые слова - если чел по ошибке включит ключевое слово и попытается его использовать как имя, это сразу станет заметным.

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