LisaacTM Platform

INPUT_STREAM


This abstract class is the superclass of all classes representing an input stream of bytes.
Inherit/Insert Summary
parent_object No developed.
 
Slot Summary
push_back_flag
True if one char is already pushed back.
last_integer
Last integer read using read_integer.
last_string
Access to the unique common buffer to get for example the result computed by read_line, read_word, newline, etc. This is a once function (the same common buffer is used for all streams).
is_connected
True when the corresponding stream is connected to some physical input device.
end_of_input
Has end-of-input been reached ? True when the last character has been read.
last_real
Last real read with read_real.
last_double
Last double read with read_double.
 
To read one character at a time:
read_character
Read a character and assign it to last_character.
last_character
Last character read with read_character.
unread_character
Un-read the last character read.
 
Skipping separators:
skip_separators
Skip all separators (see is_separator of class CHARACTER) and make the first non-separator available in last_character. This non-separator character is pushed back into the stream (see unread_character) to be available one more time (the next read_character will consider this non-separator). When end_of_input occurs, this process is automatically stopped.
skip_separators_using
Same job as skip_separators using the separators set.
skip_remainder_of_line
Skip all the remainder of the line including the end of line character itself.
 
To read one number at a time:
read_integer
Read an integer according to the Lisaac syntax. Make result available in last_integer. Heading separators are automatically skipped using is_separator of class CHARACTER. Trailing separators are not skipped.
read_real
Read a REAL and make the result available in last_real and in last_double. The integral part is available in last_integer.
read_double
Read a DOUBLE and make the result available in last_double.
 
To read one line or one word at a time:
read_line
Read a complete line ended by '\n' or end_of_input. Make the result available in last_string common buffer. The end of line character (usually '\n') is not added in the last_string buffer.
read_word
Read a word using is_separator of class CHARACTER. Result is available in the last_string common buffer. Heading separators are automatically skipped. Trailing separators are not skipped (last_character is left on the first one). If end_of_input is encountered, Result can be the empty string.
newline
Consume input until newline ('\n') is found. Corresponding STRING is stored in last_string common buffer.
reach_and_skip
Try to skip enough characters in order to reach the keyword which is skipped too. If the keyword is not in the remainder of this stream, the process is stopped as soon as end_of_input occurs. As for skip_separators the following character of the keyword is available in last_character and not yet read.
 
Other features:
read_line_in
Same jobs as read_line but storage is directly done in buffer.
read_word_using
Same jobs as read_word using separators.
read_tail_in
Read all remaining character of the file in str.
 

Inherit/Insert Detail

parent_object

.../base/io/low_level/input_stream.li line #13

Section:
Inherit

Profile:
- SelfSELFparent_object : OBJECT

Detail slot

push_back_flag

.../base/io/low_level/input_stream.li line #17

Section:
Public

Profile:
- SelfSELFpush_back_flag : BOOLEAN

Description:
True if one char is already pushed back.

last_integer

.../base/io/low_level/input_stream.li line #20

Section:
Public

Profile:
- SelfSELFlast_integer : INTEGER

Description:
Last integer read using read_integer.

last_string

.../base/io/low_level/input_stream.li line #23

Section:
Public

Profile:
- SelfSELFlast_string : STRING

Description:
Access to the unique common buffer to get for example the result computed by read_line, read_word, newline, etc. This is a once function (the same common buffer is used for all streams).

is_connected

.../base/io/low_level/input_stream.li line #32

Section:
Public

Profile:
- SelfSELFis_connected : BOOLEAN

Description:
True when the corresponding stream is connected to some physical input device.

end_of_input

.../base/io/low_level/input_stream.li line #39

Section:
Public

Profile:
- SelfSELFend_of_input : BOOLEAN

Description:
Has end-of-input been reached ? True when the last character has been read.

last_real

.../base/io/low_level/input_stream.li line #209

Section:
Public

Profile:
- SelfSELFlast_real : REAL

Description:
Last real read with read_real.

last_double

.../base/io/low_level/input_stream.li line #300

Section:
Public

Profile:
- SelfSELFlast_double : DOUBLE

Description:
Last double read with read_double.

To read one character at a time:

read_character

.../base/io/low_level/input_stream.li line #50

Section:
Public

Profile:
- SelfSELFread_character : CHARACTER

Description:
Read a character and assign it to last_character.

last_character

.../base/io/low_level/input_stream.li line #60

Section:
Public

Profile:
- SelfSELFlast_character : CHARACTER

Description:
Last character read with read_character.

unread_character

.../base/io/low_level/input_stream.li line #67

Section:
Public

Profile:
- SelfSELFunread_character 

Description:
Un-read the last character read.

Skipping separators:

skip_separators

.../base/io/low_level/input_stream.li line #77

Section:
Public

Profile:
- SelfSELFskip_separators 

Description:
Skip all separators (see is_separator of class CHARACTER) and make the first non-separator available in last_character. This non-separator character is pushed back into the stream (see unread_character) to be available one more time (the next read_character will consider this non-separator). When end_of_input occurs, this process is automatically stopped.

skip_separators_using

.../base/io/low_level/input_stream.li line #93

Section:
Public

Profile:
- SelfSELFskip_separators_using   separators : STRING

Description:
Same job as skip_separators using the separators set.

skip_remainder_of_line

.../base/io/low_level/input_stream.li line #106

Section:
Public

Profile:
- SelfSELFskip_remainder_of_line 

Description:
Skip all the remainder of the line including the end of line character itself.

To read one number at a time:

read_integer

.../base/io/low_level/input_stream.li line #128

Section:
Public

Profile:
- SelfSELFread_integer 

Description:
Read an integer according to the Lisaac syntax. Make result available in last_integer. Heading separators are automatically skipped using is_separator of class CHARACTER. Trailing separators are not skipped.

read_real

.../base/io/low_level/input_stream.li line #199

Section:
Public

Profile:
- SelfSELFread_real 

Description:
Read a REAL and make the result available in last_real and in last_double. The integral part is available in last_integer.

read_double

.../base/io/low_level/input_stream.li line #212

Section:
Public

Profile:
- SelfSELFread_double 

Description:
Read a DOUBLE and make the result available in last_double.

To read one line or one word at a time:

read_line

.../base/io/low_level/input_stream.li line #305

Section:
Public

Profile:
- SelfSELFread_line 

Description:
Read a complete line ended by '\n' or end_of_input. Make the result available in last_string common buffer. The end of line character (usually '\n') is not added in the last_string buffer.

read_word

.../base/io/low_level/input_stream.li line #316

Section:
Public

Profile:
- SelfSELFread_word 

Description:
Read a word using is_separator of class CHARACTER. Result is available in the last_string common buffer. Heading separators are automatically skipped. Trailing separators are not skipped (last_character is left on the first one). If end_of_input is encountered, Result can be the empty string.

newline

.../base/io/low_level/input_stream.li line #337

Section:
Public

Profile:
- SelfSELFnewline 

Description:
Consume input until newline ('\n') is found. Corresponding STRING is stored in last_string common buffer.

reach_and_skip

.../base/io/low_level/input_stream.li line #356

Section:
Public

Profile:
- SelfSELFreach_and_skip   keyword : STRING

Description:
Try to skip enough characters in order to reach the keyword which is skipped too. If the keyword is not in the remainder of this stream, the process is stopped as soon as end_of_input occurs. As for skip_separators the following character of the keyword is available in last_character and not yet read.

Other features:

read_line_in

.../base/io/low_level/input_stream.li line #413

Section:
Public

Profile:
- SelfSELFread_line_in   buffer : STRING

Description:
Same jobs as read_line but storage is directly done in buffer.

read_word_using

.../base/io/low_level/input_stream.li line #421

Section:
Public

Profile:
- SelfSELFread_word_using   separators : STRING

Description:
Same jobs as read_word using separators.

read_tail_in

.../base/io/low_level/input_stream.li line #438

Section:
Public

Profile:
- SelfSELFread_tail_in   str : STRING

Description:
Read all remaining character of the file in str.