blob: 1ad4c3fe647af824713084f0c5b2f5282466b230 [file] [log] [blame]
private with Ada.Strings.Unbounded;
package Predicate2.Source_Reference is
type Object is tagged private;
subtype Source_Reference is Object;
function "<" (Left, Right : Object) return Boolean;
Undefined : constant Object;
private
use Ada.Strings.Unbounded;
type Object is tagged record
Line : Natural;
Column : Natural;
Filename : Unbounded_String;
end record
with Dynamic_Predicate => Filename /= Null_Unbounded_String;
function "<" (Left, Right : Object) return Boolean is
(Left.Filename < Right.Filename
or else
(Left.Filename = Right.Filename and then Left.Line < Right.Line));
Undefined : constant Object :=
(0, 0, To_Unbounded_String ("@"));
end Predicate2.Source_Reference;