1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
|
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
|
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
|
procedure Find_Token (Source : in Chunked_String;
Set : in Maps.Character_Set;
Test : in Ada.Strings.Membership;
First : out Positive;
Last : out Natural)
is
function Invert (M : Ada.Strings.Membership)
return Ada.Strings.Membership;
pragma Inline (Invert);
Invert : constant array (Ada.Strings.Membership)
of Ada.Strings.Membership
:= (Ada.Strings.Inside => Ada.Strings.Outside,
Ada.Strings.Outside => Ada.Strings.Inside);
N : Natural;
function Invert (M : Ada.Strings.Membership)
return Ada.Strings.Membership
is
use Ada.Strings;
begin
case M is
when Inside => return Outside;
when Outside => return Inside;
end case;
end Invert;
begin
N := Index (Source, Set, Test);
if N = 0 then
First := 1;
Last := 0;
else
|