Типы
Кодовые страницы, значения cp
8-битное беззнаковое целое, 0..255.
Переменные
TRUE после каждого Open, FALSE после первой ошибки.
Done выражает успешность операции ввода. Если Done равно TRUE после операции ввода, то операция была успешной и её результат считается действительным. Неудачная операция ввода устанавливает значение Done в FALSE; оно остается FALSE до следующего вызова Open. В частности, Done устанавливается в FALSE, если была предпринята попытка чтения за пределы конца входного потока.
Процедуры
Инициализация
Open устанавливает текущую позицию в начало входного потока. Done указывает, была ли операция успешной.
Обратите внимание, что на Windows или Linux/Unix перемотка может быть невозможна. Кроме того, на этих ОС нет строгого требования вызывать Open перед любой другой операцией.
Операции ввода
Помещает в x
байт в текущей позиции
Помещает в ch
литеру в текущей позиции. Может считывать от 1 до 4 байт при декодировании из UTF-8 (в Linux/Unix и в Windows, если ввод перенаправляется).
Возвращает 64-битное целое число в текущей позиции согласно формату:
IntConst = [-] (digit {digit} | digit {hexDigit} "H").
Возвращает 32-битное целое число так же, как это делает HugeInt
Возвращает 16-битное целое число так же, как это делает HugeInt
Считывает строку литер до первого CR, LF или конца файла
Псевдоним для Int. Делает то же самое.
Считывает и помещает в x
64-битное вещественное число (LONGREAL) согласно формату:
["-"] digit {digit} [{digit} ["E" ("+" | "-") digit {digit}]].
Считывает имя s
в текущей позиции в соответствии с форматом имени файла операционной системы (например, "lib/My.Mod" под Unix). Пропускает 0AX в конце (если есть).
Считывает и помещает в x
32-битное вещественное число (REAL) согласно формату:
["-"] digit {digit} [{digit} ["E" ("+" | "-") digit {digit}]].
Считывает строковый литерал и помещает его в s
.
Строковый литерал — это заключенная в кавычки последовательность литер, которая может включать в себя пробелы, но не другие пробельные литеры
(табуляции, новые строки и т. п.). Кавычки могут быть одинарные или двойные. Строка должна начинаться и заканчиваться одинаковыми кавычками.
Читает слово и помещает его в s
.
Пропускает пробельные литеры, считывает литеры до следующей пробельной литеры и помещает прочитанное слово в s
, затем пропускает литеры до следующей непробельной литеры или литеры новой строки. Пропускает символ новой строки.
Модуль In предоставляет набор основных процедур для форматированного ввода литер, последовательностей литер, чисел и имён. Он предполагает наличие стандартного потока ввода с текущей позицией, которая может быть сброшена в начало потока (но не всегда это возможно в Linux/Unix или Windows).
Модуль In как в Oakwood Guidlines for Oberon-2 Compiler Developers, 1995.
Со следующими изменениями:
LongInt, Int, Int16 сначала читают и распознают знаки минус.
Char читает 2-байтовую литеру. В Linux он декодирует вводимые данные как UTF-8. В Windows используется вызов ReadConsoleW из WinAPI если консоль подключена, в противном случае используется ReadFile и ввод автоматически декодируется из UTF-8.
Open не может перематывать.
Дополнительные процедуры: Line, HugeInt, Int16.