private with Ada.Strings.Unbounded;
private package Expressions.Variables is
type Variable is new Expression with private;
type A_Variable is access all Variable'Class;
function Create_Variable( token : not null A_Identifier_Token ) return A_Variable;
pragma Postcondition( Create_Variable'Result /= null );
private
use Ada.Strings.Unbounded;
type Variable is new Expression with
record
name : Unbounded_String;
end record;
procedure Construct( this : access Variable; loc : Token_Location; name : String );
function Evaluate( this : access Variable;
context : not null A_Eval_Context ) return A_Value;
end Expressions.Variables;