package Values is
type Value is abstract tagged private;
type Value_Ptr is tagged private;
function Get_Type
( | this | : Value ) return Value_Type is abstract; |
function Image
( | this | : Value ) return String is abstract; |
function Value_Input
( | stream | : access Root_Stream_Type'Class ) return Value is abstract; |
procedure Value_Read
( | stream | : access Root_Stream_Type'Class; |
obj | : out Value ) is abstract; |
procedure Value_Write
( | stream | : access Root_Stream_Type'Class; |
obj | : Value ) is abstract; |
function Refcount
( | this | : Value_Ptr'Class ) return Natural; |
function Image
( | this | : Value_Ptr'Class ) return String; |
function Is_Null
( | this | : Value_Ptr'Class ) return Boolean; |
function Not_Null
( | this | : Value_Ptr'Class ) return Boolean; |
function Value_Ptr_Input
( | stream | : access Root_Stream_Type'Class ) return Value_Ptr; |
procedure Value_Ptr_Output
( | stream | : access Root_Stream_Type'Class; |
this | : Value_Ptr ); |
function "="
( | l, r | : Value_Ptr ) return Boolean; |
function "<"
( | l, r | : Value_Ptr ) return Boolean; |
function ">"
( | l, r | : Value_Ptr ) return Boolean; |
function "<="
( | l, r | : Value_Ptr ) return Boolean; |
function ">="
( | l, r | : Value_Ptr ) return Boolean; |