38 lines
984 B
Ada
38 lines
984 B
Ada
|
|
||
|
----
|
||
|
with Predicate2.Containers;
|
||
|
with Predicate2.Project.Registry.Attribute;
|
||
|
with Predicate2.Source_Reference;
|
||
|
|
||
|
private with Ada.Strings.Unbounded;
|
||
|
|
||
|
package Predicate2.Project.Name_Values is
|
||
|
|
||
|
use type Containers.Count_Type;
|
||
|
use all type Registry.Attribute.Value_Kind;
|
||
|
|
||
|
type Object is new Source_Reference.Object with private;
|
||
|
|
||
|
Undefined : constant Object;
|
||
|
|
||
|
subtype Value_Kind is Registry.Attribute.Value_Kind;
|
||
|
|
||
|
function Kind (Self : Object'Class) return Registry.Attribute.Value_Kind
|
||
|
with Pre => Object (Self) /= Undefined;
|
||
|
-- Returns the Kind for the Name/Values pair object
|
||
|
|
||
|
private
|
||
|
|
||
|
use Ada.Strings.Unbounded;
|
||
|
|
||
|
type Object is new Source_Reference.Object with record
|
||
|
Kind : Registry.Attribute.Value_Kind := List;
|
||
|
Name : Unbounded_String;
|
||
|
Values : Containers.Value_List;
|
||
|
end record;
|
||
|
|
||
|
Undefined : constant Object :=
|
||
|
Object'(Source_Reference.Object with others => <>);
|
||
|
|
||
|
end Predicate2.Project.Name_Values;
|