separate (Ratnest.Tests) package body Tokens is type My_Labels is (One, Two, Three); package My_Tokens is new Packrat.Tokens (My_Labels, Character, String); function Adjust_Check return Test_Result is A : My_Tokens.Token; begin declare B : My_Tokens.Token := My_Tokens.Create (One, 1, 3, "abc"); begin A := B; end; if not A.Initialized or else A.Value /= "abc" then return Fail; end if; return Pass; end Adjust_Check; function Equals_Check return Test_Result is use type My_Tokens.Token; A : My_Tokens.Token := My_Tokens.Create (One, 1, 3, "abc"); B : My_Tokens.Token := My_Tokens.Create (One, 1, 3, "abc"); begin if A /= B then return Fail; end if; return Pass; end Equals_Check; function Store_Check return Test_Result is T : My_Tokens.Token := My_Tokens.Create (One, 1, 3, "abc"); begin if not T.Initialized or else T.Label /= One or else T.Start /= 1 or else T.Finish /= 3 or else T.Value /= "abc" then return Fail; end if; return Pass; end Store_Check; end Tokens;