1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include"a.h" // ngn/k, (c) 2019-2024 ngn, GNU AGPLv3 - https://codeberg.org/ngn/k/raw/branch/master/LICENSE
#include"k.h"
C TK(K x)_(Tk[xt])
N NK(K x)_(xn)
V*dK(K x)_(xV)
Z V VK(C t,V*a,K x){I(xtZ,x=ct(t,x))MC(a,xV,(W)xn<<Tw[t]>>3);I(xtR,I(MINE(x),AZ(x))E(mRn(xn,xV)))x(0);}
// constructors accessors
// atom list atom list
K Kc(C v)_(ac(v)) K KC(C*a ,N n)_(a?aV(tC,n,a):an(n,tC)) C cK(K x)_(xv) V CK(C*a,K x){VK(tC,a,x);}
K Ks(C*s)_(sym(s)) K KS(C**a,N n)_(A x=aS(n);F(n,xi=sym(a[i]))x)
K Ki(I v)_(az(v)) K KI(I*a ,N n)_(a?aV(tI,n,a):an(tI,n)) I iK(K x)_(xv) V IK(I*a,K x){VK(tI,a,x);}
K Kf(F v)_(af(v)) K KF(F*a ,N n)_(a?aV(tF,n,a):an(n,tF)) F fK(K x)_(*xF) V FK(F*a,K x){VK(tF,a,x);}
K KL(K*a ,N n)_(a?aV(tA,n,a):aA(n)) V LK(K*a,K x){VK(tA,a,x);}
K Kp(V*p)_(al((L)p))
V KA(S s,K x){x=x(d8(A8(as(sym(s)),emp(tA),av,x),4));I(x,mr(x))}
V KR(S s,V*f,I n)_(KA(s,ax(f,n)))
K KE(S s)_(err0(s))
K ref(K x)_(xR)
V unref(K x){mr(x);}
K K0(K*p,S s,K*a,I n)_(k8(p,s,a,n))
|