with Packrat.Tokens; package body Rat_Tests.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_Type; begin declare B : My_Tokens.Token_Type := My_Tokens.Create (One, 1, "abc"); begin A := B; end; if My_Tokens.Value (A) /= "abc" then return Fail; end if; return Pass; end Adjust_Check; function Equals_Check return Test_Result is use type My_Tokens.Token_Type; A : My_Tokens.Token_Type := My_Tokens.Create (One, 1, "abc"); B : My_Tokens.Token_Type := My_Tokens.Create (One, 1, "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_Type := My_Tokens.Create (One, 1, "abc"); begin if My_Tokens.Label (T) /= One or else My_Tokens.Start (T) /= 1 or else My_Tokens.Value (T) /= "abc" then return Fail; end if; return Pass; end Store_Check; end Rat_Tests.Tokens;