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/ |