OberonCore https://forum.oberoncore.ru/ |
|
i21sysIn https://forum.oberoncore.ru/viewtopic.php?f=7&t=5397 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Пятница, 17 Апрель, 2015 17:13 ] |
Заголовок сообщения: | i21sysIn |
Код: PROCEDURE Name* ( OUT name: ARRAY OF CHAR );
BEGIN IF done THEN scanner.Scan; TextMappers.ScanQualIdent( scanner, name, Done ) <--- должна быть done вместо Done END; Done := done END Name; |
Автор: | Евгений Темиргалеев [ Пятница, 24 Апрель, 2015 00:28 ] |
Заголовок сообщения: | i21sysIn |
Цитата: VAR done- Приходится сталкиваться с ситуацией, когда структура вводимых данных проста и схема In.A(a); In.B(b); ...; ASSERT(In.done) устраивает, но местами требуются процедуры ввода данных специфического типа, которых в In нету. Эта проблема решалась бы дописыванием доп. процедур ввода, следующих логике In.done, если бы они имели возможность In.done менять (нужен полный экспорт вместо "на чтение").Значение этой переменная показывает, была ли успешной последняя операция ввода из числа процедур, определенных в этом модуле. Значение done устанавливается в TRUE при успешном вызове Open или Restart, и устанавливается в FALSE первой неуспешной операции ввода. Однажды установленная в FALSE, она сохраняет это значение до следующего вызова Open или Restart. NB Прямые обращения к методам сканера scanner не влияют на значение done. Поэтому для чтения потока ввода нужно либо использовать исключительно scanner, либо не использовать его вообще. VAR scanner Объект, выполняющий работу по сканированию потока ввода. Подсоединяется к копии вводимого текста при выполнении процедуры Open (см. правила определения вводимого текста в описании процедуры Open). Использовать scanner следует лишь в тех случаях, когда требуется детальный (посимвольный) анализ структуры вводимых данных, например, когда структура вводимых данных неизвестна или слишком сложна. Если же структура вводимых данных известна и достаточно проста, то следует избегать обращений к scanner напрямую и по возможности использовать процедуры, определенные в данном модуле. Откуда возникают вопросы. Логично ли с т.з. расширямости такое радикальное установление? Имеются ли соображения другого плана, которые перевешивают в пользу In.done только на чтение? |
Автор: | Info21 [ Пятница, 24 Апрель, 2015 21:56 ] |
Заголовок сообщения: | Re: i21sysIn |
Для специфических приложений нужно просто брать TextMappers.Scanner i21sysIn -- i21sysIn -- это всего лишь одно такое приложение: уточнение старого модуля In. |
Автор: | Евгений Темиргалеев [ Пятница, 24 Апрель, 2015 23:11 ] |
Заголовок сообщения: | Re: i21sysIn |
Таким общим ответом --- одно специфическое приложение естественным образом сосуществует со вторым, из него полученным, поскольку за стандартной библиотекой погони нет --- исходный специфический вопрос низводится до величины, которой можно пренебречь. И с первым, и со-вторым, не могу не согласиться. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |