with Values; use Values;
package Symbol_Resolvers is
-- A Symbol_Resolver is capable of resolving named values (symbols) into
-- Value objects. Symbol resolvers are used in expression evaluation when
-- the value of a variable needs to be to evaluated.
type Symbol_Resolver is interface;
type A_Symbol_Resolver is access all Symbol_Resolver'Class;
-- Resolves the symbol named 'symbol', returning the result. null will be
-- returned if the symbol can't be resolved.
function Resolve( this : access Symbol_Resolver;
symbol : String ) return A_Value is abstract;
end Symbol_Resolvers;