1 : extern AFun symClosure;
2 :
3 66 : static inline ATerm makeClosure(ATermList e1, ATermList e2) {
4 66 : return (ATerm) ATmakeAppl2(symClosure, (ATerm) e1, (ATerm) e2);
5 : }
6 :
7 : #ifdef __cplusplus
8 215 : static inline bool matchClosure(ATerm e, ATermList & e1, ATermList & e2) {
9 215 : if (ATgetType(e) != AT_APPL || ATgetAFun(e) != symClosure) return false;
10 169 : e1 = (ATermList) ATgetArgument(e, 0);
11 169 : e2 = (ATermList) ATgetArgument(e, 1);
12 169 : return true;
13 : }
14 : #endif
15 :
16 :
17 : extern AFun symDerive;
18 :
19 69 : static inline ATerm makeDerive(ATermList e1, ATermList e2, ATerm e3, ATerm e4, ATermList e5, ATermList e6) {
20 69 : return (ATerm) ATmakeAppl6(symDerive, (ATerm) e1, (ATerm) e2, e3, e4, (ATerm) e5, (ATerm) e6);
21 : }
22 :
23 : #ifdef __cplusplus
24 46 : static inline bool matchDerive(ATerm e, ATermList & e1, ATermList & e2, ATerm & e3, ATerm & e4, ATermList & e5, ATermList & e6) {
25 46 : if (ATgetType(e) != AT_APPL || ATgetAFun(e) != symDerive) return false;
26 46 : e1 = (ATermList) ATgetArgument(e, 0);
27 46 : e2 = (ATermList) ATgetArgument(e, 1);
28 46 : e3 = ATgetArgument(e, 2);
29 46 : e4 = ATgetArgument(e, 3);
30 46 : e5 = (ATermList) ATgetArgument(e, 4);
31 46 : e6 = (ATermList) ATgetArgument(e, 5);
32 46 : return true;
33 : }
34 : #endif
35 :
36 :
37 : extern AFun symEnvBinding;
38 :
39 340 : static inline ATerm makeEnvBinding(ATerm e1, ATerm e2) {
40 340 : return (ATerm) ATmakeAppl2(symEnvBinding, e1, e2);
41 : }
42 :
43 : #ifdef __cplusplus
44 261 : static inline bool matchEnvBinding(ATerm e, ATerm & e1, ATerm & e2) {
45 261 : if (ATgetType(e) != AT_APPL || ATgetAFun(e) != symEnvBinding) return false;
46 261 : e1 = ATgetArgument(e, 0);
47 261 : e2 = ATgetArgument(e, 1);
48 261 : return true;
49 : }
50 : #endif
51 :
52 :
53 : extern AFun symClosureElem;
54 :
55 68 : static inline ATerm makeClosureElem(ATerm e1, ATermList e2) {
56 68 : return (ATerm) ATmakeAppl2(symClosureElem, e1, (ATerm) e2);
57 : }
58 :
59 : #ifdef __cplusplus
60 174 : static inline bool matchClosureElem(ATerm e, ATerm & e1, ATermList & e2) {
61 174 : if (ATgetType(e) != AT_APPL || ATgetAFun(e) != symClosureElem) return false;
62 174 : e1 = ATgetArgument(e, 0);
63 174 : e2 = (ATermList) ATgetArgument(e, 1);
64 174 : return true;
65 : }
66 : #endif
67 :
68 :
69 : void initStoreExprHelpers();
70 :
71 1238 : static inline const char * aterm2String(ATerm t) {
72 1238 : return (const char *) ATgetName(ATgetAFun(t));
73 : }
74 :
|