Thun/implementations/SWIProlog/compiled_code.py

196 lines
4.6 KiB
Python

def abs(stack, expression, dictionary):
(v1, stack) = stack
v2 = abs(v1)
return (v2, stack), expression, dictionary
def ccons(stack, expression, dictionary):
(s1, (v1, (v2, stack))) = stack
return ((v2, (v1, s1)), stack), expression, dictionary
def cons(stack, expression, dictionary):
(s1, (v1, stack)) = stack
return ((v1, s1), stack), expression, dictionary
def decr(stack, expression, dictionary):
(i1, stack) = stack
i2 = i1 - 1
return (i2, stack), expression, dictionary
def dup(stack, expression, dictionary):
(v1, stack) = stack
return (v1, (v1, stack)), expression, dictionary
def dupd(stack, expression, dictionary):
(v1, (v2, stack)) = stack
return (v1, (v2, (v2, stack))), expression, dictionary
def dupdd(stack, expression, dictionary):
(v1, (v2, (v3, stack))) = stack
return (v1, (v2, (v3, (v3, stack)))), expression, dictionary
def first(stack, expression, dictionary):
((v1, s1), stack) = stack
return (v1, stack), expression, dictionary
def fourth(stack, expression, dictionary):
((v1, (v2, (v3, (v4, s1)))), stack) = stack
return (v4, stack), expression, dictionary
def incr(stack, expression, dictionary):
(i1, stack) = stack
i2 = i1 + 1
return (i2, stack), expression, dictionary
def non_negative(stack, expression, dictionary):
(i1, stack) = stack
v1 = i1 >= 0
return (v1, stack), expression, dictionary
def pop(stack, expression, dictionary):
(v1, stack) = stack
return stack, expression, dictionary
def popd(stack, expression, dictionary):
(v1, (v2, stack)) = stack
return (v1, stack), expression, dictionary
def popop(stack, expression, dictionary):
(v1, (v2, stack)) = stack
return stack, expression, dictionary
def popopd(stack, expression, dictionary):
(v1, (v2, (v3, stack))) = stack
return (v1, stack), expression, dictionary
def quoted(stack, expression, dictionary):
(v1, (v2, stack)) = stack
return (v1, ((v2, ()), stack)), expression, dictionary
def reco(stack, expression, dictionary):
((v1, s1), (v2, stack)) = stack
return ((v2, s1), stack), expression, dictionary
def rest(stack, expression, dictionary):
((v1, s1), stack) = stack
return (s1, stack), expression, dictionary
def rrest(stack, expression, dictionary):
((v1, (v2, s1)), stack) = stack
return (s1, stack), expression, dictionary
def second(stack, expression, dictionary):
((v1, (v2, s1)), stack) = stack
return (v2, stack), expression, dictionary
def shift(stack, expression, dictionary):
((v1, s1), (s2, stack)) = stack
return (s1, ((v1, s2), stack)), expression, dictionary
def sqr(stack, expression, dictionary):
(i1, stack) = stack
i2 = i1 * i1
return (i2, stack), expression, dictionary
def stackd(stack, expression, dictionary):
(v1, stack) = stack
stack = (stack, stack)
return (v1, stack), expression, dictionary
def swons(stack, expression, dictionary):
(v1, (s1, stack)) = stack
return ((v1, s1), stack), expression, dictionary
def third(stack, expression, dictionary):
((v1, (v2, (v3, s1))), stack) = stack
return (v3, stack), expression, dictionary
def truthy(stack, expression, dictionary):
(v1, stack) = stack
v2 = bool(v1)
return (v2, (v1, stack)), expression, dictionary
def tuckl(stack, expression, dictionary):
(v1, stack) = stack
return (v1, ((), stack)), expression, dictionary
def tuckld(stack, expression, dictionary):
(v1, (v2, stack)) = stack
return (v1, (v2, ((), stack))), expression, dictionary
def uncons(stack, expression, dictionary):
((v1, s1), stack) = stack
return (s1, (v1, stack)), expression, dictionary
def unit(stack, expression, dictionary):
(v1, stack) = stack
return ((v1, ()), stack), expression, dictionary
def unswons(stack, expression, dictionary):
((v1, s1), stack) = stack
return (v1, (s1, stack)), expression, dictionary
def gcd(stack, expression, dictionary):
(i1, (i2, stack)) = stack
v1 = True
while v1:
i3 = i2 % i1
v1 = i3 > 0
(i1, (i2, stack)) = (i3, (i1, stack))
return (i2, stack), expression, dictionary
def sum(stack, expression, dictionary):
(s1, stack) = stack
(i1, stack) = (0, stack)
while s1:
(i2, s1) = s1
i3 = i1 + i2
(i1, stack) = (i3, stack)
return (i1, stack), expression, dictionary
def product(stack, expression, dictionary):
(s1, stack) = stack
(i1, stack) = (1, stack)
while s1:
(i2, s1) = s1
i3 = i1 * i2
(i1, stack) = (i3, stack)
return (i1, stack), expression, dictionary
1 ?-