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 rewinded. 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. NOTE: This procedure is an extension to The Oakwood Guidelines.*)

END In.
