OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 31 Июль, 2021 09:53

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 03 Июнь, 2021 22:29 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1290
Вопрос, у которого наверняка есть ответ, который кто-то знает:

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

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


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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 03 Июнь, 2021 23:35 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1314
Откуда: Киев
Да, при чём, даже на уровне лексем, то есть, элементарным образом, так как в Обероне нет конструкций с подряд идущими именами, разделённых лишь пробелами. Из соображений ошибкоустойчивости этого, конечно, лучше не делать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 00:23 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1290
Спасибо!

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 05:51 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3124
Добавить неразрывный пробел в сканер не сложно...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 09:59 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4541
Откуда: Россия, Орёл
Иван Денисов писал(а):
Добавить неразрывный пробел в сканер не сложно...

Но не нужно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 12:00 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1649
budden писал(а):
можно ли поменять грамматику оберона так, чтобы были допустимы многословные идентификаторы.
Хорошо, что мы - не на фортовском форуме...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 14:14 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1290
Нет, не неразрывный пробел, а обычный. Вот о чём речь: viewtopic.php?f=28&t=6769


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 14:21 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 04 Июнь, 2021 14:39 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1290
Нет, не могут ключевые слова входить в состав многословных идентификаторов, потому и написал, что среда показывает ключевые слова - если чел по ошибке включит ключевое слово и попытается его использовать как имя, это сразу станет заметным.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2021, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB