1 #include <OOC/Repository/FileSystem.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4
OOC_Repository_FileSystem__New(OOC_Repository__Repository baseRep,URI__HierarchicalURI baseDir)5 OOC_Repository_FileSystem__Repository OOC_Repository_FileSystem__New(OOC_Repository__Repository baseRep, URI__HierarchicalURI baseDir) {
6 register OOC_INT64 i0,i1,i2,i3,i4;
7 OOC_Repository_FileSystem__Repository rep;
8 URI__URI relative;
9
10 i0 = (OOC_INT64)RT0__NewObject(_td_OOC_Repository_FileSystem__Repository.baseTypes[0]);
11 rep = (OOC_Repository_FileSystem__Repository)i0;
12 i1 = (OOC_INT64)baseRep;
13 i2 = (OOC_INT64)baseDir;
14 OOC_Repository__Init((OOC_Repository__Repository)i0, (OOC_Repository__Repository)i1, (URI__HierarchicalURI)i2);
15 i1 = (OOC_INT64)URI_Scheme_File__GetCwd();
16 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 1778)))), URI__HierarchicalURIDesc_MakeRelative)),URI__HierarchicalURIDesc_MakeRelative)((URI__HierarchicalURI)i2, (URI__HierarchicalURI)i1);
17 relative = (URI__URI)i1;
18 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 1827));
19 i3 = i3==0;
20 if (i3) goto l3;
21 i3=0u;
22 goto l5;
23 l3:
24 i3 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1863)))), &_td_URI_Scheme_File__URIDesc);
25
26 l5:
27 if (i3) goto l7;
28 i3=0u;
29 goto l9;
30 l7:
31 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1906)))), &_td_URI_Scheme_File__URIDesc, 1906)), 1910))+24);
32 i3 = i3!=0;
33
34 l9:
35 if (i3) goto l11;
36 i3=0u;
37 goto l13;
38 l11:
39 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1955)))), &_td_URI_Scheme_File__URIDesc, 1955)), 1959))+24);
40 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 1955)))), &_td_URI_Scheme_File__URIDesc, 1955)), 1959))+24);
41 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 1969))+8);
42 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 1969))+8);
43 i3 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 1977)))), Object__StringDesc_Equals)),Object__StringDesc_Equals)((Object__String)i3, (Object__Object)((OOC_INT64)_c0));
44 i3 = !i3;
45
46 l13:
47 if (i3) goto l15;
48 *(OOC_INT64*)((_check_pointer(i0, 2066))+24) = i2;
49 goto l16;
50 l15:
51 *(OOC_INT64*)((_check_pointer(i0, 2005))+24) = (_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2042)))), &_td_URI_Scheme_File__URIDesc, 2042));
52 l16:
53 return (OOC_Repository_FileSystem__Repository)i0;
54 ;
55 }
56
OOC_Repository_FileSystem__InitModule(OOC_Repository_FileSystem__Module m,OOC_Repository_FileSystem__Repository origin,const Msg__String name__ref,OOC_LEN name_0d,URI__HierarchicalURI srcFileOverride)57 static void OOC_Repository_FileSystem__InitModule(OOC_Repository_FileSystem__Module m, OOC_Repository_FileSystem__Repository origin, const Msg__String name__ref, OOC_LEN name_0d, URI__HierarchicalURI srcFileOverride) {
58 register OOC_INT64 i0,i1,i2;
59 OOC_ALLOCATE_VPAR(name,OOC_CHAR8 ,name_0d)
60
61 OOC_INITIALIZE_VPAR(name__ref,name,OOC_CHAR8 ,name_0d)
62 i0 = (OOC_INT64)srcFileOverride;
63 i1 = (OOC_INT64)origin;
64 i2 = (OOC_INT64)m;
65 OOC_Repository__InitModule((OOC_Repository__Module)i2, (OOC_Repository__Repository)i1, (void*)(OOC_INT64)name, name_0d, (URI__HierarchicalURI)i0);
66 return;
67 ;
68 }
69
OOC_Repository_FileSystem__NewModule(OOC_Repository_FileSystem__Repository origin,const Msg__String name__ref,OOC_LEN name_0d,URI__HierarchicalURI srcFileOverride)70 static OOC_Repository_FileSystem__Module OOC_Repository_FileSystem__NewModule(OOC_Repository_FileSystem__Repository origin, const Msg__String name__ref, OOC_LEN name_0d, URI__HierarchicalURI srcFileOverride) {
71 register OOC_INT64 i0,i1,i2;
72 OOC_ALLOCATE_VPAR(name,OOC_CHAR8 ,name_0d)
73
74 OOC_INITIALIZE_VPAR(name__ref,name,OOC_CHAR8 ,name_0d)
75 i0 = (OOC_INT64)origin;
76 i1 = (OOC_INT64)srcFileOverride;
77 i2 = (OOC_INT64)RT0__NewObject(_td_OOC_Repository_FileSystem__Module.baseTypes[0]);
78 OOC_Repository_FileSystem__InitModule((OOC_Repository_FileSystem__Module)i2, (OOC_Repository_FileSystem__Repository)i0, (void*)(OOC_INT64)name, name_0d, (URI__HierarchicalURI)i1);
79 return (OOC_Repository_FileSystem__Module)i2;
80 ;
81 }
82
OOC_Repository_FileSystem__ModuleToFileName(const OOC_CHAR8 name__ref[],OOC_LEN name_0d)83 Object__String8 OOC_Repository_FileSystem__ModuleToFileName(const OOC_CHAR8 name__ref[], OOC_LEN name_0d) {
84 register OOC_INT64 i0,i1;
85 OOC_ALLOCATE_VPAR(name,OOC_CHAR8 ,name_0d)
86
87 OOC_INITIALIZE_VPAR(name__ref,name,OOC_CHAR8 ,name_0d)
88 i0 = *(OOC_UINT8*)((OOC_INT64)name+(_check_index(0, name_0d, OOC_UINT32, 2749)));
89 i0 = i0!=0u;
90 if (!i0) goto l11;
91 i0=0;
92 l3_loop:
93 i1 = *(OOC_UINT8*)((OOC_INT64)name+(_check_index(i0, name_0d, OOC_UINT32, 2776)));
94 i1 = i1==58u;
95 if (!i1) goto l6;
96 *(OOC_UINT8*)((OOC_INT64)name+(_check_index(i0, name_0d, OOC_UINT32, 2804))) = 47u;
97 l6:
98 i0 = i0+1;
99 i1 = *(OOC_UINT8*)((OOC_INT64)name+(_check_index(i0, name_0d, OOC_UINT32, 2749)));
100 i1 = i1!=0u;
101 if (i1) goto l3_loop;
102 l11:
103 i0 = (OOC_INT64)Object__NewLatin1((void*)(OOC_INT64)name, name_0d);
104 return (Object__String8)i0;
105 ;
106 }
107
OOC_Repository_FileSystem__RepositoryDesc_GetModule(volatile OOC_Repository_FileSystem__Repository rep,const OOC_CHAR8 moduleName__ref[],volatile OOC_LEN moduleName_0d,volatile URI__HierarchicalURI srcFileOverride)108 OOC_Repository_FileSystem__Module OOC_Repository_FileSystem__RepositoryDesc_GetModule(volatile OOC_Repository_FileSystem__Repository rep, const OOC_CHAR8 moduleName__ref[], volatile OOC_LEN moduleName_0d, volatile URI__HierarchicalURI srcFileOverride) {
109 register OOC_INT64 i0,i1;
110 OOC_ALLOCATE_VPAR(moduleName,OOC_CHAR8 ,moduleName_0d)
111 volatile URI__URI uri;
112 auto URI__URI OOC_Repository_FileSystem__RepositoryDesc_GetModule_GetURI(OOC_INT8 fileId);
113 jmp_buf _target0, _target1;
114 Exception__Context _context0, _context1;
115
116 URI__URI OOC_Repository_FileSystem__RepositoryDesc_GetModule_GetURI(OOC_INT8 fileId) {
117 register OOC_INT64 i0,i1,i2;
118 ADT_StringBuffer__StringBuffer sb;
119 Object__String string;
120
121 i0 = (OOC_INT64)rep;
122 i1 = fileId;
123 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3387)))), OOC_Repository__RepositoryDesc_GetDefaultSubdir)),OOC_Repository__RepositoryDesc_GetDefaultSubdir)((OOC_Repository__Repository)i0, i1);
124 i0 = (OOC_INT64)ADT_StringBuffer__New((Object__String)i0);
125 sb = (ADT_StringBuffer__StringBuffer)i0;
126 i2 = *(OOC_INT32*)((_check_pointer(i0, 3437))+4);
127 i2 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3427)))), ADT_StringBuffer__StringBufferDesc_CharAt)),ADT_StringBuffer__StringBufferDesc_CharAt)((ADT_StringBuffer__StringBuffer)i0, (i2-1));
128 i2 = i2!=47u;
129 if (!i2) goto l4;
130 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3470)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)((OOC_INT64)_c1));
131 l4:
132 i2 = (OOC_INT64)OOC_Repository_FileSystem__ModuleToFileName((void*)(OOC_INT64)moduleName, moduleName_0d);
133 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3503)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)i2);
134 i2 = (OOC_INT64)rep;
135 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 3561)))), OOC_Repository__RepositoryDesc_GetDefaultSuffix)),OOC_Repository__RepositoryDesc_GetDefaultSuffix)((OOC_Repository__Repository)i2, i1);
136 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3550)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)i1);
137 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3608)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i0);
138 string = (Object__String)i0;
139 i1 = (OOC_INT64)rep;
140 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3678))+8);
141 i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3665)))), &_td_Object__String8Desc, 3665)), (URI__HierarchicalURI)i1);
142 return (URI__URI)i0;
143 ;
144 }
145
146
147 OOC_INITIALIZE_VPAR(moduleName__ref,moduleName,OOC_CHAR8 ,moduleName_0d)
148 {
149 Exception__PushContext(&_context0, &_target0);
150 if (!setjmp(_target0)) goto l7;
151 Exception__PopContext(1);
152 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_Exception__ParseErrorDesc);
153 if (i0) goto l5;
154 Exception__ActivateContext();
155 goto l6;
156 l5:
157 return (OOC_Repository_FileSystem__Module)(OOC_INT64)0;
158 l6:
159 Exception__Clear();
160 goto l8;
161 l7:
162 i0 = (OOC_INT64)OOC_Repository_FileSystem__RepositoryDesc_GetModule_GetURI(0);
163 uri = (URI__URI)i0;
164 Exception__PopContext(1);
165 l8:;
166 }
167 i0 = (OOC_INT64)srcFileOverride;
168 i1 = i0!=(OOC_INT64)0;
169 if (i1) goto l27;
170 i1 = (OOC_INT64)uri;
171 i1 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4055)))), &_td_URI_Scheme_File__URIDesc, 4055)));
172 i1 = OS_Files__Exists((Object__String)i1);
173 if (i1) goto l25;
174 {
175 Exception__PushContext(&_context1, &_target1);
176 if (!setjmp(_target1)) goto l19;
177 Exception__PopContext(1);
178 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_Exception__ParseErrorDesc);
179 if (i0) goto l17;
180 Exception__ActivateContext();
181 goto l18;
182 l17:
183 return (OOC_Repository_FileSystem__Module)(OOC_INT64)0;
184 l18:
185 Exception__Clear();
186 goto l20;
187 l19:
188 i0 = (OOC_INT64)OOC_Repository_FileSystem__RepositoryDesc_GetModule_GetURI(1);
189 uri = (URI__URI)i0;
190 Exception__PopContext(1);
191 l20:;
192 }
193 i0 = (OOC_INT64)uri;
194 i0 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4384)))), &_td_URI_Scheme_File__URIDesc, 4384)));
195 i0 = OS_Files__Exists((Object__String)i0);
196 if (i0) goto l23;
197 return (OOC_Repository_FileSystem__Module)(OOC_INT64)0;
198 goto l28;
199 l23:
200 i0 = (OOC_INT64)srcFileOverride;
201 i1 = (OOC_INT64)rep;
202 i0 = (OOC_INT64)OOC_Repository_FileSystem__NewModule((OOC_Repository_FileSystem__Repository)i1, (void*)(OOC_INT64)moduleName, moduleName_0d, (URI__HierarchicalURI)i0);
203 return (OOC_Repository_FileSystem__Module)i0;
204 goto l28;
205 l25:
206 i1 = (OOC_INT64)rep;
207 i0 = (OOC_INT64)OOC_Repository_FileSystem__NewModule((OOC_Repository_FileSystem__Repository)i1, (void*)(OOC_INT64)moduleName, moduleName_0d, (URI__HierarchicalURI)i0);
208 return (OOC_Repository_FileSystem__Module)i0;
209 goto l28;
210 l27:
211 i1 = (OOC_INT64)rep;
212 i0 = (OOC_INT64)OOC_Repository_FileSystem__NewModule((OOC_Repository_FileSystem__Repository)i1, (void*)(OOC_INT64)moduleName, moduleName_0d, (URI__HierarchicalURI)i0);
213 return (OOC_Repository_FileSystem__Module)i0;
214 l28:
215 _failed_function(2937); return 0;
216 ;
217 }
218
OOC_Repository_FileSystem__RepositoryDesc_GetResource(volatile OOC_Repository_FileSystem__Repository rep,const OOC_CHAR8 package__ref[],volatile OOC_LEN package_0d,const OOC_CHAR8 path__ref[],volatile OOC_LEN path_0d)219 URI__URI OOC_Repository_FileSystem__RepositoryDesc_GetResource(volatile OOC_Repository_FileSystem__Repository rep, const OOC_CHAR8 package__ref[], volatile OOC_LEN package_0d, const OOC_CHAR8 path__ref[], volatile OOC_LEN path_0d) {
220 register OOC_INT64 i0,i1;
221 OOC_ALLOCATE_VPAR(package,OOC_CHAR8 ,package_0d)
222 OOC_ALLOCATE_VPAR(path,OOC_CHAR8 ,path_0d)
223 volatile Object__String string;
224 volatile ADT_StringBuffer__StringBuffer sb;
225 volatile URI__URI uri;
226 jmp_buf _target0;
227 Exception__Context _context0;
228
229 OOC_INITIALIZE_VPAR(package__ref,package,OOC_CHAR8 ,package_0d)
230 OOC_INITIALIZE_VPAR(path__ref,path,OOC_CHAR8 ,path_0d)
231 i0 = (
232 _cmp8((const void*)(OOC_INT64)package,(const void*)(OOC_CHAR8*)""))==0;
233 if (i0) goto l10;
234 i0 = (OOC_INT64)rep;
235 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4958)))), OOC_Repository__RepositoryDesc_GetDefaultSubdir)),OOC_Repository__RepositoryDesc_GetDefaultSubdir)((OOC_Repository__Repository)i0, 21);
236 i0 = (OOC_INT64)ADT_StringBuffer__New((Object__String)i0);
237 sb = (ADT_StringBuffer__StringBuffer)i0;
238 i1 = *(OOC_INT32*)((_check_pointer(i0, 5008))+4);
239 i1 = i1!=0;
240 if (i1) goto l5;
241 i1=0u;
242 goto l7;
243 l5:
244 i1 = *(OOC_INT32*)((_check_pointer(i0, 5036))+4);
245 i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5026)))), ADT_StringBuffer__StringBufferDesc_CharAt)),ADT_StringBuffer__StringBufferDesc_CharAt)((ADT_StringBuffer__StringBuffer)i0, (i1-1));
246 i1 = i1!=47u;
247
248 l7:
249 if (!i1) goto l9;
250 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5069)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)((OOC_INT64)_c2));
251 l9:
252 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5102)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (void*)(OOC_INT64)package, package_0d);
253 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5134)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i0, (Object__Object)((OOC_INT64)_c3));
254 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5156)))), ADT_StringBuffer__StringBufferDesc_AppendLatin1)),ADT_StringBuffer__StringBufferDesc_AppendLatin1)((ADT_StringBuffer__StringBuffer)i0, (void*)(OOC_INT64)path, path_0d);
255 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5195)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i0);
256 string = (Object__String)i0;
257
258 goto l11;
259 l10:
260 i0 = (OOC_INT64)Object__NewLatin1((void*)(OOC_INT64)path, path_0d);
261 string = (Object__String)i0;
262
263 l11:
264 {
265 Exception__PushContext(&_context0, &_target0);
266 if (!setjmp(_target0)) goto l18;
267 Exception__PopContext(1);
268 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_Exception__ParseErrorDesc);
269 if (i0) goto l16;
270 Exception__ActivateContext();
271 goto l17;
272 l16:
273 return (URI__URI)(OOC_INT64)0;
274 l17:
275 Exception__Clear();
276 goto l19;
277 l18:
278 i1 = (OOC_INT64)rep;
279 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 5420))+8);
280 i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5407)))), &_td_Object__String8Desc, 5407)), (URI__HierarchicalURI)i1);
281 uri = (URI__URI)i0;
282 Exception__PopContext(1);
283 l19:;
284 }
285 i0 = (OOC_INT64)uri;
286 i1 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5530)))), &_td_URI_Scheme_File__URIDesc, 5530)));
287 i1 = OS_Files__Exists((Object__String)i1);
288 if (i1) goto l22;
289 return (URI__URI)(OOC_INT64)0;
290 goto l23;
291 l22:
292 return (URI__URI)i0;
293 l23:
294 _failed_function(4632); return 0;
295 ;
296 }
297
OOC_Repository_FileSystem__RepositoryDesc_DumpContent(OOC_Repository_FileSystem__Repository rep,TextRider__Writer w)298 void OOC_Repository_FileSystem__RepositoryDesc_DumpContent(OOC_Repository_FileSystem__Repository rep, TextRider__Writer w) {
299 register OOC_INT64 i0,i1,i2;
300
301 i0 = (OOC_INT64)w;
302 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5701)))), TextRider__WriterDesc_WriteString)),TextRider__WriterDesc_WriteString)((TextRider__Writer)i0, (OOC_CHAR8*)" <file-system>", 16);
303 i1 = (OOC_INT64)rep;
304 i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 5759))+8);
305 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 5759))+8);
306 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 5767)))), URI__URIDesc_ToString)),URI__URIDesc_ToString)((URI__URI)i1);
307 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5741)))), TextRider__WriterDesc_WriteObject)),TextRider__WriterDesc_WriteObject)((TextRider__Writer)i0, (Object__Object)i1);
308 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5786)))), TextRider__WriterDesc_WriteString)),TextRider__WriterDesc_WriteString)((TextRider__Writer)i0, (OOC_CHAR8*)"</file-system>", 15);
309 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5825)))), TextRider__WriterDesc_WriteLn)),TextRider__WriterDesc_WriteLn)((TextRider__Writer)i0);
310 return;
311 ;
312 }
313
OOC_Repository_FileSystem__RepositoryDesc_GetLocalPath(OOC_Repository_FileSystem__Repository rep,OOC_Repository__Module m,OOC_INT8 fileId)314 Object__String8 OOC_Repository_FileSystem__RepositoryDesc_GetLocalPath(OOC_Repository_FileSystem__Repository rep, OOC_Repository__Module m, OOC_INT8 fileId) {
315 register OOC_INT64 i0,i1,i2,i3,i4;
316 ADT_StringBuffer__StringBuffer sb;
317 Object__String string;
318
319 i0 = (OOC_INT64)rep;
320 i1 = fileId;
321 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6048)))), OOC_Repository__RepositoryDesc_GetDefaultSubdir)),OOC_Repository__RepositoryDesc_GetDefaultSubdir)((OOC_Repository__Repository)i0, i1);
322 i2 = (OOC_INT64)ADT_StringBuffer__New((Object__String)i2);
323 sb = (ADT_StringBuffer__StringBuffer)i2;
324 i3 = *(OOC_INT32*)((_check_pointer(i2, 6086))+4);
325 i3 = i3!=0;
326 if (i3) goto l3;
327 i3=0u;
328 goto l5;
329 l3:
330 i3 = *(OOC_INT32*)((_check_pointer(i2, 6114))+4);
331 i3 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6104)))), ADT_StringBuffer__StringBufferDesc_CharAt)),ADT_StringBuffer__StringBufferDesc_CharAt)((ADT_StringBuffer__StringBuffer)i2, (i3-1));
332 i3 = i3!=47u;
333
334 l5:
335 if (!i3) goto l7;
336 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6145)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i2, (Object__Object)((OOC_INT64)_c4));
337 l7:
338 i3 = i1==19;
339 if (i3) goto l10;
340 i3 = (OOC_INT64)m;
341 i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 6368))+8);
342 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 6368))+8);
343 i4 = OOC_ARRAY_LENGTH((_check_pointer(i4, 6373)), 0);
344 i3 = (OOC_INT64)OOC_Repository_FileSystem__ModuleToFileName((void*)(_check_pointer(i3, 6373)), i4);
345 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6342)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i2, (Object__Object)i3);
346 goto l11;
347 l10:
348 i3 = (OOC_INT64)m;
349 i4 = *(OOC_INT8*)((_check_pointer(i3, 6225))+32);
350 _assert((i4==4), 127, 6217);
351 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6270)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i2, (Object__Object)((OOC_INT64)_c5));
352 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 6303))+24);
353 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 6310))+104);
354 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6294)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i2, (Object__Object)i3);
355 l11:
356 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6404)))), OOC_Repository__RepositoryDesc_GetDefaultSuffix)),OOC_Repository__RepositoryDesc_GetDefaultSuffix)((OOC_Repository__Repository)i0, i1);
357 OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6393)))), ADT_StringBuffer__StringBufferDesc_Append)),ADT_StringBuffer__StringBufferDesc_Append)((ADT_StringBuffer__StringBuffer)i2, (Object__Object)i0);
358 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 6449)))), ADT_StringBuffer__StringBufferDesc_ToString)),ADT_StringBuffer__StringBufferDesc_ToString)((ADT_StringBuffer__StringBuffer)i2);
359 string = (Object__String)i0;
360 return (Object__String8)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6487)))), &_td_Object__String8Desc, 6487));
361 ;
362 }
363
OOC_Repository_FileSystem__ModuleDesc_GetURI(volatile OOC_Repository_FileSystem__Module m,volatile OOC_INT8 fileId,volatile OOC_CHAR8 allowRelative)364 URI__HierarchicalURI OOC_Repository_FileSystem__ModuleDesc_GetURI(volatile OOC_Repository_FileSystem__Module m, volatile OOC_INT8 fileId, volatile OOC_CHAR8 allowRelative) {
365 register OOC_INT64 i0,i1,i2,i3,i4;
366 volatile URI__HierarchicalURI huri;
367 volatile Object__String8 path;
368 volatile URI__URI uri;
369 jmp_buf _target0;
370 Exception__Context _context0;
371
372 i0 = fileId;
373 i1 = (OOC_INT64)m;
374 i2 = allowRelative;
375 i3 = (OOC_INT64)OOC_Repository__ModuleDesc_GetURI((OOC_Repository__Module)i1, i0, i2);
376 huri = (URI__HierarchicalURI)i3;
377 i4 = i3==(OOC_INT64)0;
378 if (i4) goto l3;
379 return (URI__HierarchicalURI)i3;
380 goto l24;
381 l3:
382 i3 = i0==0;
383 if (i3) goto l6;
384 i3=0u;
385 goto l8;
386 l6:
387 i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 6852))+16);
388 i3 = i3!=(OOC_INT64)0;
389
390 l8:
391 if (i3) goto l22;
392 i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 6944));
393 i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 6944));
394 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 6951)))), OOC_Repository__RepositoryDesc_GetLocalPath)),OOC_Repository__RepositoryDesc_GetLocalPath)((OOC_Repository__Repository)i4, (OOC_Repository__Module)i1, i0);
395 path = (Object__String8)i0;
396 {
397 Exception__PushContext(&_context0, &_target0);
398 if (!setjmp(_target0)) goto l17;
399 Exception__PopContext(1);
400 i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG(((OOC_INT64)Exception__Current()))), &_td_Exception__ParseErrorDesc);
401 if (i0) goto l14;
402 Exception__ActivateContext();
403 goto l15;
404 l14:
405 _assert(0u, 127, 7309);
406 l15:
407 Exception__Clear();
408 goto l21;
409 l17:
410 if (i2) goto l19;
411 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 7160));
412 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 7167))+8);
413 i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)i0, (URI__HierarchicalURI)i1);
414 uri = (URI__URI)i0;
415 goto l20;
416 l19:
417 i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 7064));
418 i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7072)))), &_td_OOC_Repository_FileSystem__RepositoryDesc, 7072)), 7083))+24);
419 i0 = (OOC_INT64)URI_Parser__NewURI((Object__String8)i0, (URI__HierarchicalURI)i1);
420 uri = (URI__URI)i0;
421 l20:
422 Exception__PopContext(1);
423 l21:;
424 }
425 i0 = (OOC_INT64)uri;
426 return (URI__HierarchicalURI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7361)))), &_td_URI__HierarchicalURIDesc, 7361));
427 goto l24;
428 l22:
429 i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 6898))+16);
430 return (URI__HierarchicalURI)i0;
431 l24:
432 _failed_function(6540); return 0;
433 ;
434 }
435
OOC_Repository_FileSystem__ModuleDesc_GetTimeStamp(OOC_Repository_FileSystem__Module m,OOC_INT8 fileId,struct Time__TimeStamp * ts,RT0__Struct ts__tag)436 void OOC_Repository_FileSystem__ModuleDesc_GetTimeStamp(OOC_Repository_FileSystem__Module m, OOC_INT8 fileId, struct Time__TimeStamp *ts, RT0__Struct ts__tag) {
437 register OOC_INT64 i0,i1,i2;
438 URI__URI uri;
439 Object__String path;
440 Object__CharsLatin1 chars;
441 Msg__Msg res;
442
443 i0 = fileId;
444 i1 = (OOC_INT64)m;
445 i0 = (OOC_INT64)OOC_Repository_FileSystem__ModuleDesc_GetURI((OOC_Repository_FileSystem__Module)i1, i0, 0u);
446 uri = (URI__URI)i0;
447 i0 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7683)))), &_td_URI_Scheme_File__URIDesc, 7683)));
448 path = (Object__String)i0;
449 i0 = (OOC_INT64)OS_Path__Encode((Object__String)i0);
450 chars = (Object__CharsLatin1)i0;
451 i1 = OOC_ARRAY_LENGTH((_check_pointer(i0, 7757)), 0);
452 i2 = (OOC_INT64)ts__tag;
453 Files__GetModTime((void*)(_check_pointer(i0, 7757)), i1, (void*)(OOC_INT64)ts, (RT0__Struct)i2, (void*)(OOC_INT64)&res);
454 i0 = (OOC_INT64)res;
455 i0 = i0!=(OOC_INT64)0;
456 if (!i0) goto l3;
457 Time__InitTimeStamp((void*)(OOC_INT64)ts, (RT0__Struct)i2, 2147483647, 0);
458 l3:
459 return;
460 ;
461 }
462
OOC_Repository_FileSystem__ModuleDesc_FileExists(OOC_Repository_FileSystem__Module m,OOC_INT8 fileId)463 OOC_CHAR8 OOC_Repository_FileSystem__ModuleDesc_FileExists(OOC_Repository_FileSystem__Module m, OOC_INT8 fileId) {
464 register OOC_INT64 i0,i1;
465 URI__URI uri;
466
467 i0 = fileId;
468 i1 = (OOC_INT64)m;
469 i0 = (OOC_INT64)OOC_Repository_FileSystem__ModuleDesc_GetURI((OOC_Repository_FileSystem__Module)i1, i0, 0u);
470 uri = (URI__URI)i0;
471 i0 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8042)))), &_td_URI_Scheme_File__URIDesc, 8042)));
472 i0 = OS_Files__Exists((Object__String)i0);
473 return i0;
474 ;
475 }
476
OOC_Repository_FileSystem__ModuleDesc_GetInputBuffer(OOC_Repository_FileSystem__Module m)477 OOC_Scanner_InputBuffer__Buffer OOC_Repository_FileSystem__ModuleDesc_GetInputBuffer(OOC_Repository_FileSystem__Module m) {
478 register OOC_INT64 i0,i1,i2;
479 URI__URI modURI;
480 Object__String str;
481 OOC_Error__List errList;
482
483 i0 = (OOC_INT64)m;
484 i0 = (OOC_INT64)OOC_Repository_FileSystem__ModuleDesc_GetURI((OOC_Repository_FileSystem__Module)i0, 0, 1u);
485 modURI = (URI__URI)i0;
486 i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8379)))), &_td_URI_Scheme_File__URIDesc);
487 if (i1) goto l3;
488 i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8472)))), URI__URIDesc_ToString)),URI__URIDesc_ToString)((URI__URI)i0);
489 str = (Object__String)i1;
490
491 goto l4;
492 l3:
493 i1 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8428)))), &_td_URI_Scheme_File__URIDesc, 8428)));
494 str = (Object__String)i1;
495
496 l4:
497 i1 = (OOC_INT64)OOC_Error__NewList((Object__String)i1);
498 errList = (OOC_Error__List)i1;
499 i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8584)))), URI__URIDesc_GetChannel)),URI__URIDesc_GetChannel)((URI__URI)i0, 2);
500 OOC_Logger__ReadFile((URI__URI)i0);
501 i0 = (OOC_INT64)OOC_Scanner_InputBuffer__New((IO__ByteChannel)i2, (OOC_Error__List)i1);
502 return (OOC_Scanner_InputBuffer__Buffer)i0;
503 ;
504 }
505
OOC_Repository_FileSystem__ModuleDesc_CreateOutputDir(OOC_Repository_FileSystem__Module m,OOC_INT8 fileId)506 void OOC_Repository_FileSystem__ModuleDesc_CreateOutputDir(OOC_Repository_FileSystem__Module m, OOC_INT8 fileId) {
507 register OOC_INT64 i0,i1;
508 URI__URI uri;
509
510 i0 = fileId;
511 i1 = (OOC_INT64)m;
512 i0 = (OOC_INT64)OOC_Repository_FileSystem__ModuleDesc_GetURI((OOC_Repository_FileSystem__Module)i1, i0, 1u);
513 uri = (URI__URI)i0;
514 i0 = (OOC_INT64)URI_Scheme_File__URIDesc_GetPath((URI_Scheme_File__URI)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8903)))), &_td_URI_Scheme_File__URIDesc, 8903)));
515 i0 = (OOC_INT64)OS_Path__DirName((Object__String)i0);
516 OS_Files__MakeDirs((Object__String)i0, 511);
517 return;
518 ;
519 }
520
OOC_Repository_FileSystem__ModuleDesc_GetOutputChannel(OOC_Repository_FileSystem__Module m,OOC_INT8 fileId,OOC_CHAR8 makeTmp)521 IO__ByteChannel OOC_Repository_FileSystem__ModuleDesc_GetOutputChannel(OOC_Repository_FileSystem__Module m, OOC_INT8 fileId, OOC_CHAR8 makeTmp) {
522 register OOC_INT64 i0,i1;
523 URI__URI uri;
524
525 i0 = fileId;
526 i1 = (OOC_INT64)m;
527 OOC_Repository_FileSystem__ModuleDesc_CreateOutputDir((OOC_Repository_FileSystem__Module)i1, i0);
528 i0 = (OOC_INT64)OOC_Repository_FileSystem__ModuleDesc_GetURI((OOC_Repository_FileSystem__Module)i1, i0, 1u);
529 uri = (URI__URI)i0;
530 OOC_Logger__WriteFile((URI__URI)i0);
531 i1 = makeTmp;
532 if (i1) goto l3;
533 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9360)))), URI__URIDesc_GetChannel)),URI__URIDesc_GetChannel)((URI__URI)i0, 0);
534 return (IO__ByteChannel)i0;
535 goto l4;
536 l3:
537 i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9305)))), URI__URIDesc_GetChannel)),URI__URIDesc_GetChannel)((URI__URI)i0, 1);
538 return (IO__ByteChannel)i0;
539 l4:
540 _failed_function(9009); return 0;
541 ;
542 }
543
OOC_OOC_Repository_FileSystem_init(void)544 void OOC_OOC_Repository_FileSystem_init(void) {
545 register OOC_INT64 i0;
546 _c0 = Object__NewLatin1Region((OOC_CHAR8*)"..", 3, 0, 2);
547 _c1 = Object__NewLatin1Char(47u);
548 _c2 = Object__NewLatin1Char(47u);
549 _c3 = Object__NewLatin1Char(47u);
550 _c4 = Object__NewLatin1Char(47u);
551 _c5 = Object__NewLatin1Region((OOC_CHAR8*)"lib", 4, 0, 3);
552
553 i0 = (OOC_INT64)URI_Scheme_File__GetCwd();
554 OOC_Repository_FileSystem__baseURI = (URI__HierarchicalURI)i0;
555 return;
556 ;
557 }
558
OOC_OOC_Repository_FileSystem_destroy(void)559 void OOC_OOC_Repository_FileSystem_destroy(void) {
560 }
561
562 /* --- */
563