1
2
3
4
5
6
7
8
9
|
------------------------------------------------------------------------------
-- Copyright (c) 2015, Natacha Porté --
-- --
-- Permission to use, copy, modify, and distribute this software for any --
-- purpose with or without fee is hereby granted, provided that the above --
-- copyright notice and this permission notice appear in all copies. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --
|
|
|
1
2
3
4
5
6
7
8
9
|
------------------------------------------------------------------------------
-- Copyright (c) 2015-2017, Natacha Porté --
-- --
-- Permission to use, copy, modify, and distribute this software for any --
-- purpose with or without fee is hereby granted, provided that the above --
-- copyright notice and this permission notice appear in all copies. --
-- --
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES --
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF --
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
Conjunction : in Boolean)
return Boolean;
-- Evaluate Element on all atoms of Arguments and combine them
function Contains (Context : in Strings.Context; Data : in Atom)
return Boolean;
-- Check whether Context contains Data
function Is_Prefix (Context : in Strings.Context; Data : in Atom)
return Boolean;
-- Check whether Context starts with Data
function To_Lower (Item : in Character) return Character
renames Ada.Characters.Handling.To_Lower;
|
>
>
>
>
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
Conjunction : in Boolean)
return Boolean;
-- Evaluate Element on all atoms of Arguments and combine them
function Contains (Context : in Strings.Context; Data : in Atom)
return Boolean;
-- Check whether Context contains Data
function Is_Equal_To (Context : in Strings.Context; Data : in Atom)
return Boolean;
-- Check whether Context is equal to Data
function Is_Prefix (Context : in Strings.Context; Data : in Atom)
return Boolean;
-- Check whether Context starts with Data
function To_Lower (Item : in Character) return Character
renames Ada.Characters.Handling.To_Lower;
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
Str_Value,
Str_Value'First,
Ada.Strings.Forward,
Ada.Characters.Handling.To_Lower'Access) > 0;
end if;
end Contains;
function Is_Prefix (Context : in Strings.Context; Data : in Atom)
return Boolean is
begin
if Context.Data.all'Length < Data'Length then
return False;
end if;
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
Str_Value,
Str_Value'First,
Ada.Strings.Forward,
Ada.Characters.Handling.To_Lower'Access) > 0;
end if;
end Contains;
function Is_Equal_To (Context : in Strings.Context; Data : in Atom)
return Boolean is
begin
if Context.Data.all'Length /= Data'Length then
return False;
end if;
if Context.Settings.Case_Sensitive then
return Context.Data.all = To_String (Data);
else
return Fixed.Translate (Context.Data.all, To_Lower'Access)
= Fixed.Translate (To_String (Data), To_Lower'Access);
end if;
end Is_Equal_To;
function Is_Prefix (Context : in Strings.Context; Data : in Atom)
return Boolean is
begin
if Context.Data.all'Length < Data'Length then
return False;
end if;
|
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
return Conditional_On_Atoms
(Context, Arguments, Contains'Access, True);
when Contains_Any =>
return Conditional_On_Atoms
(Context, Arguments, Contains'Access, False);
when Starts_With =>
return Conditional_On_Atoms
(Context, Arguments, Is_Prefix'Access, False);
end case;
end Parametric_Evaluate;
|
>
>
>
>
|
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
return Conditional_On_Atoms
(Context, Arguments, Contains'Access, True);
when Contains_Any =>
return Conditional_On_Atoms
(Context, Arguments, Contains'Access, False);
when Is_Equal_To =>
return Conditional_On_Atoms
(Context, Arguments, Is_Equal_To'Access, False);
when Starts_With =>
return Conditional_On_Atoms
(Context, Arguments, Is_Prefix'Access, False);
end case;
end Parametric_Evaluate;
|