1 : #include <aterm2.h>
2 : #ifdef __cplusplus
3 : namespace nix {
4 : #endif
5 :
6 :
7 : extern AFun symDerive;
8 :
9 : static inline ATerm makeDerive(ATermList e1, ATermList e2, ATermList e3, ATerm e4, ATerm e5, ATermList e6, ATermList e7) __attribute__ ((pure, nothrow));
10 518 : static inline ATerm makeDerive(ATermList e1, ATermList e2, ATermList e3, ATerm e4, ATerm e5, ATermList e6, ATermList e7) {
11 518 : ATerm array[7] = { (ATerm) e1, (ATerm) e2, (ATerm) e3, e4, e5, (ATerm) e6, (ATerm) e7};
12 518 : return (ATerm) ATmakeApplArray(symDerive, array);
13 : }
14 :
15 : #ifdef __cplusplus
16 440 : static inline bool matchDerive(ATerm e, ATermList & e1, ATermList & e2, ATermList & e3, ATerm & e4, ATerm & e5, ATermList & e6, ATermList & e7) {
17 440 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symDerive) return false;
18 440 : e1 = (ATermList) ATgetArgument(e, 0);
19 440 : e2 = (ATermList) ATgetArgument(e, 1);
20 440 : e3 = (ATermList) ATgetArgument(e, 2);
21 440 : e4 = ATgetArgument(e, 3);
22 440 : if (ATgetType(e4) != AT_APPL) return false;
23 440 : e5 = ATgetArgument(e, 4);
24 440 : if (ATgetType(e5) != AT_APPL) return false;
25 440 : e6 = (ATermList) ATgetArgument(e, 5);
26 440 : e7 = (ATermList) ATgetArgument(e, 6);
27 440 : return true;
28 : }
29 : #endif
30 :
31 :
32 : extern AFun symEnvBinding;
33 :
34 : static inline ATerm makeEnvBinding(ATerm e1, ATerm e2) __attribute__ ((pure, nothrow));
35 3481 : static inline ATerm makeEnvBinding(ATerm e1, ATerm e2) {
36 3481 : return (ATerm) ATmakeAppl2(symEnvBinding, e1, e2);
37 : }
38 :
39 : #ifdef __cplusplus
40 3032 : static inline bool matchEnvBinding(ATerm e, ATerm & e1, ATerm & e2) {
41 3032 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symEnvBinding) return false;
42 3032 : e1 = ATgetArgument(e, 0);
43 3032 : if (ATgetType(e1) != AT_APPL) return false;
44 3032 : e2 = ATgetArgument(e, 1);
45 3032 : if (ATgetType(e2) != AT_APPL) return false;
46 3032 : return true;
47 : }
48 : #endif
49 :
50 :
51 : extern AFun symDerivationInput;
52 :
53 : static inline ATerm makeDerivationInput(ATerm e1, ATermList e2) __attribute__ ((pure, nothrow));
54 197 : static inline ATerm makeDerivationInput(ATerm e1, ATermList e2) {
55 197 : return (ATerm) ATmakeAppl2(symDerivationInput, e1, (ATerm) e2);
56 : }
57 :
58 : #ifdef __cplusplus
59 295 : static inline bool matchDerivationInput(ATerm e, ATerm & e1, ATermList & e2) {
60 295 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symDerivationInput) return false;
61 295 : e1 = ATgetArgument(e, 0);
62 295 : if (ATgetType(e1) != AT_APPL) return false;
63 295 : e2 = (ATermList) ATgetArgument(e, 1);
64 295 : return true;
65 : }
66 : #endif
67 :
68 :
69 : extern AFun symDerivationOutput;
70 :
71 : static inline ATerm makeDerivationOutput(ATerm e1, ATerm e2, ATerm e3, ATerm e4) __attribute__ ((pure, nothrow));
72 518 : static inline ATerm makeDerivationOutput(ATerm e1, ATerm e2, ATerm e3, ATerm e4) {
73 518 : return (ATerm) ATmakeAppl4(symDerivationOutput, e1, e2, e3, e4);
74 : }
75 :
76 : #ifdef __cplusplus
77 440 : static inline bool matchDerivationOutput(ATerm e, ATerm & e1, ATerm & e2, ATerm & e3, ATerm & e4) {
78 440 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symDerivationOutput) return false;
79 440 : e1 = ATgetArgument(e, 0);
80 440 : if (ATgetType(e1) != AT_APPL) return false;
81 440 : e2 = ATgetArgument(e, 1);
82 440 : if (ATgetType(e2) != AT_APPL) return false;
83 440 : e3 = ATgetArgument(e, 2);
84 440 : if (ATgetType(e3) != AT_APPL) return false;
85 440 : e4 = ATgetArgument(e, 3);
86 440 : if (ATgetType(e4) != AT_APPL) return false;
87 440 : return true;
88 : }
89 : #endif
90 :
91 :
92 : extern AFun symOldClosure;
93 :
94 : static inline ATerm makeOldClosure(ATermList e1, ATermList e2) __attribute__ ((pure, nothrow));
95 : static inline ATerm makeOldClosure(ATermList e1, ATermList e2) {
96 : return (ATerm) ATmakeAppl2(symOldClosure, (ATerm) e1, (ATerm) e2);
97 : }
98 :
99 : #ifdef __cplusplus
100 : static inline bool matchOldClosure(ATerm e, ATermList & e1, ATermList & e2) {
101 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symOldClosure) return false;
102 : e1 = (ATermList) ATgetArgument(e, 0);
103 : e2 = (ATermList) ATgetArgument(e, 1);
104 : return true;
105 : }
106 : #endif
107 :
108 :
109 : extern AFun symOldClosureElem;
110 :
111 : static inline ATerm makeOldClosureElem(ATerm e1, ATermList e2) __attribute__ ((pure, nothrow));
112 : static inline ATerm makeOldClosureElem(ATerm e1, ATermList e2) {
113 : return (ATerm) ATmakeAppl2(symOldClosureElem, e1, (ATerm) e2);
114 : }
115 :
116 : #ifdef __cplusplus
117 : static inline bool matchOldClosureElem(ATerm e, ATerm & e1, ATermList & e2) {
118 : if (ATgetType(e) != AT_APPL || (AFun) ATgetAFun(e) != symOldClosureElem) return false;
119 : e1 = ATgetArgument(e, 0);
120 : if (ATgetType(e1) != AT_APPL) return false;
121 : e2 = (ATermList) ATgetArgument(e, 1);
122 : return true;
123 : }
124 : #endif
125 :
126 :
127 : void initDerivationsHelpers();
128 :
129 10882 : static inline const char * aterm2String(ATerm t) {
130 10882 : return (const char *) ATgetName(ATgetAFun(t));
131 : }
132 :
133 : #ifdef __cplusplus
134 : }
135 : #endif
136 :
137 :
|