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