DEFINITION In; (*Input from the standard input stream Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Compiler Developers". All read operations except Char and Line skips over preceding whitespace.*) VAR Done: BOOLEAN; (*status of last operation*) PROCEDURE Open; (*included for compatibility with "The Oakwood Guidelines". On a typical Unix-like system, stdin cannot be rewound. If Open is called when the file position is not at the beginning of stdin, the program aborts.*) PROCEDURE Char(VAR ch: CHAR); (*returns in ch the character at the current position*) PROCEDURE Int(VAR i: INTEGER); (*returns in i the integer constant at the current position according to the format integer = digit {digit} | digit {hexDigit} "H". hexDigit = digit | "A" | "B" | "C" | "D" | "E" | "F". *) PROCEDURE Real(VAR x: REAL); (*returns in x the real constant at the current position according to the format real = digit {digit} "." {digit} [ScaleFactor]. ScaleFactor = "E" ["+" | "-"] digit {digit}. *) PROCEDURE String(VAR str: ARRAY OF CHAR); (*returns in str the string at the current position according to the format string = """ {character} """ | digit {hexdigit} "X" . *) PROCEDURE Name(VAR name: ARRAY OF CHAR); (*Name(s) returns in s the sequence of graphical (non-whitespace) characters at the current position*) PROCEDURE Line(VAR line: ARRAY OF CHAR); (*Line(s) returns in s the sequence of characters from the current position to the end of the line. If the size of s is not large enough to hold the result of the operation, the result is truncated so that s is always terminated with a 0X, the rest of the line is consumed and Done is set to FALSE. NOTE: This procedure is an extension to The Oakwood Guidelines.*) END In.