-- part of ParserTools, (c) 2017 Felix Krause
-- released under the terms of the MIT license, see the file "copying.txt"
with Ada.Finalization;
package Lexer.Source is
pragma Preelaborate;
-- a Source is anything that provides a character stream. Sources are always
-- single-use objects; the lexer takes ownership of sources and deallocates
-- them.
type Instance is abstract new Ada.Finalization.Limited_Controlled with
null record;
type Pointer is access all Instance'Class;
procedure Read_Data (S : in out Instance; Buffer : out String;
Length : out Natural) is abstract;
end Lexer.Source;