OberonCore https://forum.oberoncore.ru/ |
|
WITH! https://forum.oberoncore.ru/viewtopic.php?f=29&t=455 |
Страница 1 из 1 |
Автор: | Илья Ермаков [ Четверг, 10 Май, 2007 01:02 ] |
Заголовок сообщения: | WITH! |
Да, простой язык, но периодически все равно что-то новое для себя открываешь... Я, к примеру, не знал до настоящего момента, что в альтернативах WITH могут стоять разные имена переменных. Т.е. ищется не просто первое совпадение по типу для переменной, а первое соответствие среди заданных пар (переменная, тип). Код: WITH dest: StdView DO
| src: View DO END; |
Автор: | Wlad [ Четверг, 10 Май, 2007 10:09 ] |
Заголовок сообщения: | Re: WITH! |
Илья Ермаков писал(а): в альтернативах WITH могут стоять разные имена переменных. Т.е. ищется не просто первое совпадение по типу для переменной, а первое соответствие среди заданных пар (переменная, тип).
А плчему именно "пар"? Определеяющим является тип, а уж имя переменной - вторично, по-моему... ЗЫ Илья, а имеет ли смысл дублировать сообщения здесь и в Королевстве? Отвечать-то по идее то же в двух местах придётся... :о) Ленно, да и запутаться можно. Вдруг обсуждение по разным линиям пойдёт? |
Автор: | Илья Ермаков [ Четверг, 10 Май, 2007 10:15 ] |
Заголовок сообщения: | |
Я сказал "пар", потому что проверка идет строго последовательно, по вариантам. И в итоге выполняется первая ветка, в которой имеется корреляция между var и type: var IS type. По поводу ветки - может и не стоит дублировать, но хочется как-то оживить ветку про языки на КД |
Автор: | Wlad [ Четверг, 10 Май, 2007 10:45 ] |
Заголовок сообщения: | |
Нет, кажется именно вы правы... Хм... Действительно - несколько другой (то есть, совершенно другой! :о) ) угол зрения на конструкцию появился. Спасибо! :о) |
Автор: | Wlad [ Четверг, 10 Май, 2007 11:02 ] |
Заголовок сообщения: | |
Не знаю, насколько ценна будет мысль, но - поделюсь... :о) Данный аспект открывает интересную возможность построения "локально-централизованного" анализатора состояний каких-либо объектов обобщённо выражающееся через их текущий тип. Что-то родственное конструкции alt { ... } в Лимбо. Но там "прослушиваются" каналы, а здесь - обобщённо - объекты. |
Автор: | Илья Ермаков [ Четверг, 10 Май, 2007 11:11 ] |
Заголовок сообщения: | |
Вот и у меня ассоциации сразу в этом направлении пошли Только выяснить бы, откуда идет эта семантика? С Оберона? Или это в КП добавили, или - вообще недокументированная особенность ББ... Попробовать бы в других версиях, но я в Линуксе, кроме ББ там у меня ничего не живет |
Автор: | Wlad [ Четверг, 10 Май, 2007 11:40 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Только выяснить бы, откуда идет эта семантика? С Оберона? Или это в КП добавили, или - вообще недокументированная особенность ББ... А так ли это важно? Я думаю, интереснее взглянуть на БНФ описание этой части грамматики: Statement = ...| WITH [ Guard DO StatementSeq ] {"|" [ Guard DO StatementSeq ] } [ELSE StatementSeq] END .. Интересно, правда? В смысле того, что , если убрать то, что в {}, то получим WITH [ Guard DO StatementSeq ] [ELSE StatementSeq] END а теперь убираем "необязательное" в [] WITH END но это - гарантированный эксэпшн, потому, что, по логике, не один из вариантов не подошёл, а ELSE - тоже нету... :о) Мне интересно, это прокатывает на компиляции? (Я сегодня только вечером рц5 намереваюсь скачать...) Илья Ермаков писал(а): Попробовать бы в других версиях, но я в Линуксе, кроме ББ там у меня ничего не живет :(
А где бы мне позаиметь для федоры вариант? :о) |
Автор: | Илья Ермаков [ Четверг, 10 Май, 2007 11:59 ] |
Заголовок сообщения: | |
Хе, Вы думаете у меня какой-то особенный ББ? Рабочий - самый обычный 1.5. Нужен Wine от 0.9.16, проставить шрифты - и.. И три месяца уже проблем не знаем! Только еще в GNOME лучше работать, т.к. KDE слишком шустро какие-то сообщения от мышки на себя перехватывает, в результате ссылки могут не работать. |
Автор: | Александр Ильин [ Четверг, 10 Май, 2007 12:01 ] |
Заголовок сообщения: | |
Илья Ермаков писал(а): Только выяснить бы, откуда идет эта семантика? С Оберона? Или это в КП добавили, или - вообще недокументированная особенность ББ...
В XDS работает. Сообщению о языке тоже вроде не противоречит. Осталось только на Native проверить, если у кого установлен. |
Автор: | Trurl [ Четверг, 10 Май, 2007 12:03 ] |
Заголовок сообщения: | |
А в Oberon?2 синтаксис другой: WithStatement = WITH Guard DO StatementSequence {"|" Guard DO StatementSequence} [ELSE StatementSequence] END. |
Автор: | Wlad [ Четверг, 10 Май, 2007 12:12 ] |
Заголовок сообщения: | |
Trurl писал(а): А в Oberon?2 синтаксис другой:
WithStatement = WITH Guard DO StatementSequence {"|" Guard DO StatementSequence} [ELSE StatementSequence] END. МОжет опечатка якась? Я Это зрел в пособии инфо21 по ББ. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |