forked from JavaTX/JavaCompilerCore
23 lines
888 B
Plaintext
23 lines
888 B
Plaintext
|
|
||
|
%Mit Hilfe von Quelle: https://www.cs.uni-potsdam.de/~torsten/Papers/asp4ki.pdf
|
||
|
|
||
|
%Dieser Code generiert das Karthesische Produkt der Constraints des Inputs.
|
||
|
%und Constraints sind einfach weiterhin equals uns smallerDot
|
||
|
%oder constraints:
|
||
|
% oder(pointer, pointer)
|
||
|
%constraints innerhalb des oders müssen eingepackt sein:
|
||
|
% constraint(pointer, eigentlicher Constraint)
|
||
|
% um mehrere constraints als Und-Constraint innerhalb eines Oders zu verbinden kann die list(..) verwendet werden
|
||
|
|
||
|
%Die eigentliche Oder-Verknüpfung:
|
||
|
cons(Cons1), cons(Cons2) :- oder(C1, C2), constraint(C1, Cons1), constraint(C2, Cons2).
|
||
|
|
||
|
%Auspacken der constraints:
|
||
|
equals(X,Y) :- cons(equals(X,Y)).
|
||
|
smallerDot(X,Y) :- cons(smallerDot(X,Y)).
|
||
|
oder(X,Y) :- cons(oder(X,Y)).
|
||
|
list(X,Y) :- cons(list(X,Y)).
|
||
|
equals(X,Y) :- list(equals(X,Y), _).
|
||
|
smallerDot(X,Y) :- list(smallerDot(X,Y), _).
|
||
|
list(A,B) :- list(_, list(A,B)).
|