summaryrefslogtreecommitdiff
path: root/src/kompsos-prelude.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/kompsos-prelude.adb')
-rw-r--r--src/kompsos-prelude.adb104
1 files changed, 52 insertions, 52 deletions
diff --git a/src/kompsos-prelude.adb b/src/kompsos-prelude.adb
index 58b80f4..89cc100 100644
--- a/src/kompsos-prelude.adb
+++ b/src/kompsos-prelude.adb
@@ -15,7 +15,7 @@ package body Kompsos.Prelude is
return World is
begin
return Result : World := This do
- Result.Unify (T (Term (Head_Term), T (Result.Fresh)), Full_List);
+ Result.Unify (T (Head_Term, Result.Fresh), Full_List);
end return;
end Head;
@@ -24,7 +24,7 @@ package body Kompsos.Prelude is
(This : in out World;
Full_List, Head_Term : in Term'Class) is
begin
- This := Head (This, Full_List, Head_Term);
+ This := This.Head (Full_List, Head_Term);
end Head;
@@ -36,7 +36,7 @@ package body Kompsos.Prelude is
return World is
begin
return Result : World := This do
- Result.Unify (T (T (Result.Fresh), Term (Tail_Term)), Full_List);
+ Result.Unify (T (Result.Fresh, Tail_Term), Full_List);
end return;
end Tail;
@@ -45,7 +45,7 @@ package body Kompsos.Prelude is
(This : in out World;
Full_List, Tail_Term : in Term'Class) is
begin
- This := Tail (This, Full_List, Tail_Term);
+ This := This.Tail (Full_List, Tail_Term);
end Tail;
@@ -57,7 +57,7 @@ package body Kompsos.Prelude is
return World is
begin
return Result : World := This do
- Result.Unify (T (Term (Head_Term), Term (Tail_Term)), Full_List);
+ Result.Unify (T (Head_Term, Tail_Term), Full_List);
end return;
end Cons;
@@ -66,7 +66,7 @@ package body Kompsos.Prelude is
(This : in out World;
Head_Term, Tail_Term, Full_List : in Term'Class) is
begin
- This := Cons (This, Head_Term, Tail_Term, Full_List);
+ This := This.Cons (Head_Term, Tail_Term, Full_List);
end Cons;
@@ -87,7 +87,7 @@ package body Kompsos.Prelude is
(This : in out World;
Nil_Term : in Term'Class) is
begin
- This := Nil (This, Nil_Term);
+ This := This.Nil (Nil_Term);
end Nil;
@@ -99,7 +99,7 @@ package body Kompsos.Prelude is
return World is
begin
return Result : World := This do
- Cons (Result, T (Result.Fresh), T (Result.Fresh), Pair_Term);
+ Result.Cons (Result.Fresh, Result.Fresh, Pair_Term);
end return;
end Pair;
@@ -108,7 +108,7 @@ package body Kompsos.Prelude is
(This : in out World;
Pair_Term : in Term'Class) is
begin
- This := Pair (This, Pair_Term);
+ This := This.Pair (Pair_Term);
end Pair;
@@ -119,18 +119,18 @@ package body Kompsos.Prelude is
List_Term : in Term'Class)
return World
is
- Result_Nil, Result_Pair : World := This;
- Ref_Term : constant Term := T (Result_Pair.Fresh);
+ One, Two : World := This;
+ Ref_Term : constant Term := Two.Fresh;
begin
- Nil (Result_Nil, List_Term);
+ One.Nil (List_Term);
- Pair (Result_Pair, List_Term);
- Tail (Result_Pair, List_Term, Ref_Term);
- if not Result_Pair.Failed then
- Linked_List (Result_Pair, Ref_Term);
+ Two.Pair (List_Term);
+ Two.Tail (List_Term, Ref_Term);
+ if not Two.Failed then
+ Two.Linked_List (Ref_Term);
end if;
- return Disjunct (Result_Nil, Result_Pair);
+ return Disjunct (One, Two);
end Linked_List;
@@ -138,7 +138,7 @@ package body Kompsos.Prelude is
(This : in out World;
List_Term : in Term'Class) is
begin
- This := Linked_List (This, List_Term);
+ This := This.Linked_List (List_Term);
end Linked_List;
@@ -149,17 +149,17 @@ package body Kompsos.Prelude is
Item_Term, List_Term : in Term'Class)
return World
is
- Result_Head, Result_Rest : World := This;
- Ref_Term : constant Term := T (Result_Rest.Fresh);
+ One, Two : World := This;
+ Ref_Term : constant Term := Two.Fresh;
begin
- Head (Result_Head, List_Term, Item_Term);
+ One.Head (List_Term, Item_Term);
- Tail (Result_Rest, List_Term, Ref_Term);
- if not Result_Rest.Failed then
- Member (Result_Rest, Item_Term, Ref_Term);
+ Two.Tail (List_Term, Ref_Term);
+ if not Two.Failed then
+ Two.Member (Item_Term, Ref_Term);
end if;
- return Disjunct (Result_Head, Result_Rest);
+ return Disjunct (One, Two);
end Member;
@@ -167,7 +167,7 @@ package body Kompsos.Prelude is
(This : in out World;
Item_Term, List_Term : in Term'Class) is
begin
- This := Member (This, Item_Term, List_Term);
+ This := This.Member (Item_Term, List_Term);
end Member;
@@ -178,23 +178,23 @@ package body Kompsos.Prelude is
Item_Term, List_Term, Out_Term : in Term'Class)
return World
is
- Result_Head, Result_Rest : World := This;
- Left : constant Term := T (Result_Rest.Fresh);
- Right : constant Term := T (Result_Rest.Fresh);
- Rest : constant Term := T (Result_Rest.Fresh);
+ One, Two : World := This;
+ Left : constant Term := Two.Fresh;
+ Right : constant Term := Two.Fresh;
+ Rest : constant Term := Two.Fresh;
begin
- Head (Result_Head, List_Term, Item_Term);
- Tail (Result_Head, List_Term, Out_Term);
+ One.Head (List_Term, Item_Term);
+ One.Tail (List_Term, Out_Term);
-- infinite loops if run in reverse with vars for item and list
-- probably needs lazy conjunction to work properly
- Cons (Result_Rest, Left, Right, List_Term);
- if not Result_Rest.Failed then
- Remove (Result_Rest, Item_Term, Right, Rest);
- Cons (Result_Rest, Left, Rest, Out_Term);
+ Two.Cons (Left, Right, List_Term);
+ if not Two.Failed then
+ Two.Remove (Item_Term, Right, Rest);
+ Two.Cons (Left, Rest, Out_Term);
end if;
- return Disjunct (Result_Head, Result_Rest);
+ return Disjunct (One, Two);
end Remove;
@@ -202,7 +202,7 @@ package body Kompsos.Prelude is
(This : in out World;
Item_Term, List_Term, Out_Term : in Term'Class) is
begin
- This := Remove (This, Item_Term, List_Term, Out_Term);
+ This := This.Remove (Item_Term, List_Term, Out_Term);
end Remove;
@@ -213,21 +213,21 @@ package body Kompsos.Prelude is
List_Term, Item_Term, Out_Term : in Term'Class)
return World
is
- Result_Nil, Result_Rest : World := This;
- Left : constant Term := T (Result_Rest.Fresh);
- Right : constant Term := T (Result_Rest.Fresh);
- Rest : constant Term := T (Result_Rest.Fresh);
- begin
- Nil (Result_Nil, List_Term);
- Unify (Result_Nil, Item_Term, Out_Term);
-
- Cons (Result_Rest, Left, Right, List_Term);
- Cons (Result_Rest, Left, Rest, Out_Term);
- if not Result_Rest.Failed then
- Append (Result_Rest, Right, Item_Term, Rest);
+ One, Two : World := This;
+ Left : constant Term := Two.Fresh;
+ Right : constant Term := Two.Fresh;
+ Rest : constant Term := Two.Fresh;
+ begin
+ One.Nil (List_Term);
+ One.Unify (Item_Term, Out_Term);
+
+ Two.Cons (Left, Right, List_Term);
+ Two.Cons (Left, Rest, Out_Term);
+ if not Two.Failed then
+ Two.Append (Right, Item_Term, Rest);
end if;
- return Disjunct (Result_Nil, Result_Rest);
+ return Disjunct (One, Two);
end Append;
@@ -235,7 +235,7 @@ package body Kompsos.Prelude is
(This : in out World;
List_Term, Item_Term, Out_Term : in Term'Class) is
begin
- This := Append (This, List_Term, Item_Term, Out_Term);
+ This := This.Append (List_Term, Item_Term, Out_Term);
end Append;