class EL_PARSER_OUTPUT_MEDIUM
Document parser output medium
note
description: "Document parser output medium"
author: "Finnian Reilly"
copyright: "Copyright (c) 2001-2022 Finnian Reilly"
contact: "finnian at eiffel hyphen loop dot com"
license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
date: "2022-11-15 19:56:06 GMT (Tuesday 15th November 2022)"
revision: "7"
deferred class
EL_PARSER_OUTPUT_MEDIUM
inherit
IO_MEDIUM
undefine
dispose
redefine
is_plain_text
end
feature {NONE} -- Initialization
make
--
do
create last_string.make (100)
end
feature -- Output
put_string, putstring (string: STRING)
--
local
last_char: CHARACTER
do
last_string.append (string)
if not string.is_empty then
last_char := string @ string.count
if (last_char = '%N' or last_char = '>') and then is_correct then
parse_string_and_set_error (last_string, False)
last_string.wipe_out
end
end
end
feature -- Status setting
close
-- Close medium.
do
is_closed := true
end
open
-- Open medium.
do
is_closed := false
end
feature -- Status report
is_correct: BOOLEAN
-- i s parser in a valid state without error
deferred
end
is_plain_text: BOOLEAN
-- Is file reserved for text (character sequences)?
do
Result := true
end
exists: BOOLEAN = true
-- Does medium exist?
is_open_read: BOOLEAN
-- Is this medium opened for input
do
end
is_open_write: BOOLEAN
-- Is this medium opened for output
do
end
is_readable: BOOLEAN
-- Is medium readable?
do
end
is_executable: BOOLEAN
-- Is medium executable?
do
end
is_writable: BOOLEAN
-- Is medium writable?
do
end
readable: BOOLEAN
-- Is there a current item that may be read?
do
end
extendible: BOOLEAN = true
-- May new items be added?
is_closed: BOOLEAN
support_storable: BOOLEAN = false
feature {NONE} -- Implementation
parse_string_and_set_error (a_data: STRING; is_final: BOOLEAN)
--
deferred
end
feature {NONE} -- Unused
put_new_line, new_line
-- Write a new line character to medium
do
end
put_character, putchar (c: CHARACTER)
--
do
end
put_real, putreal (r: REAL)
--
do
end
put_integer, putint, put_integer_32 (i: INTEGER)
--
do
end
put_integer_8 (i: INTEGER_8)
--
do
end
put_integer_16 (i: INTEGER_16)
--
do
end
put_integer_64 (i: INTEGER_64)
--
do
end
put_boolean, putbool (b: BOOLEAN)
-- Write `b' to medium.
do
end
put_double, putdouble (d: DOUBLE)
-- Write `d' to medium.
do
end
put_natural_8 (n: NATURAL_8)
--
do
end
put_natural_16 (n: NATURAL_16)
--
do
end
put_natural, put_natural_32 (n: NATURAL_32)
--
do
end
put_natural_64 (n: NATURAL_64)
--
do
end
put_managed_pointer (p: MANAGED_POINTER; start_pos, nb_bytes: INTEGER)
-- Put data of length `nb_bytes' pointed by `start_pos' index in `p' at
-- current position.
do
end
basic_store (object: ANY)
-- Produce an external representation of the
-- entire object structure reachable from `object'.
-- Retrievable within current system only.
do
end
general_store (object: ANY)
-- Produce an external representation of the
-- entire object structure reachable from `object'.
-- Retrievable from other systems for same platform
-- (machine architecture).
--| This feature may use a visible name of a class written
--| in the `visible' clause of the Ace file. This makes it
--| possible to overcome class name clashes.
do
end
independent_store (object: ANY)
-- Produce an external representation of the
-- entire object structure reachable from `object'.
-- Retrievable from other systems for the same or other
-- platform (machine architecture).
do
end
handle: INTEGER
-- Handle to medium
do
end
handle_available: BOOLEAN
-- Is the handle available after class has been
-- created?
do
end
read_real, readreal
-- Read a new real.
-- Make result available in `last_real'.
do
end
read_double, readdouble
-- Read a new double.
-- Make result available in `last_double'.
do
end
read_character, readchar
-- Read a new character.
-- Make result available in `last_character'.
do
end
read_integer, readint, read_integer_32
-- Read a new integer.
-- Make result available in `last_integer'.
do
end
read_integer_8
-- Read a new 8-bit integer.
-- Make result available in `last_integer_8'.
do
end
read_integer_16
-- Read a new 16-bit integer.
-- Make result available in `last_integer_16'.
do
end
read_integer_64
-- Read a new 64-bit integer.
-- Make result available in `last_integer_64'.
do
end
read_natural_8
-- Read a new 8-bit natural.
-- Make result available in `last_natural_8'.
do
end
read_natural_16
-- Read a new 16-bit natural.
-- Make result available in `last_natural_16'.
do
end
read_natural, read_natural_32
-- Read a new 32-bit natural.
-- Make result available in `last_natural'.
do
end
read_natural_64
-- Read a new 64-bit natural.
-- Make result available in `last_natural_64'.
do
end
read_stream, readstream (nb_char: INTEGER)
-- Read a string of at most `nb_char' bound characters
-- or until end of medium is encountered.
-- Make result available in `last_string'.
do
end
read_line, readline
-- Read characters until a new line or
-- end of medium.
-- Make result available in `last_string'.
do
end
read_to_managed_pointer (p: MANAGED_POINTER; start_pos, nb_bytes: INTEGER)
-- Read at most `nb_bytes' bound bytes and make result
-- available in `p' at position `start_pos'.
do
end
name: STRING
retrieved: ANY
-- Retrieved object structure
-- To access resulting object under correct type,
-- use assignment attempt.
-- Will raise an exception (code `Retrieve_exception')
-- if content is not a stored Eiffel structure.
do
end
end