private package Expressions.Literals is
type Literal is new Expression with private;
type A_Literal is access all Literal'Class;
function Create_Literal( token : not null A_Token ) return A_Literal;
private
type Literal is new Expression with
record
value : A_Value;
end record;
procedure Construct( this : access Literal;
loc : Token_Location;
value : in out A_Value );
procedure Delete( this : in out Literal );
function Evaluate( this : access Literal;
context : not null A_Eval_Context ) return A_Value;
end Expressions.Literals;