public static string normalize(string path) { unchecked { #line 211 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string slash = "/"; path = global::haxe.lang.StringExt.split(path, "\\").@join(slash); #line 213 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" if ((path == slash)) { #line 214 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" return(slash); } #line 216 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" global::haxe.root.Array target = new global::haxe.root.Array(new object[] {}); #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" { #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int _g = 0; #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" global::haxe.root.Array _g1 = global::haxe.lang.StringExt.split(path, slash); #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" while ((_g < _g1.length)) { #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string token = global::haxe.lang.Runtime.toString(_g1.__get(_g)); #line 218 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" ++_g; if ((((token == "..") && (target.length > 0)) && (global::haxe.lang.Runtime.toString(target.__get((target.length - 1))) != ".."))) { #line 220 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string __temp_expr1 = global::haxe.lang.Runtime.toString(target.pop()); } else if ((token == "")) { #line 222 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" if (((target.length > 0) || global::haxe.lang.Runtime.eq(global::haxe.lang.StringExt.charCodeAt(path, 0), 47))) { #line 223 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" target.push(token); } } else if ((token != ".")) { #line 226 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" target.push(token); } } } #line 230 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string tmp = target.@join(slash); global::haxe.root.StringBuf acc = new global::haxe.root.StringBuf(); #line 232 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" bool colon = false; bool slashes = false; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" { #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int _g2_offset = 0; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string _g2_s = tmp; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" while ((_g2_offset < _g2_s.Length)) { #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" string s = _g2_s; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int index = _g2_offset++; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int c = ((((bool)((((uint)(index)) < s.Length)))) ? (((int)(s[index]))) : (-1)); #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" if (((c >= 55296) && (c <= 56319))) { #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int index1 = (index + 1); #line 606 "C:\\HaxeToolkit\\haxe\\std\\StringTools.hx" c = (((c - 55232) << 10) | ((((((bool)((((uint)(index1)) < s.Length)))) ? (((int)(s[index1]))) : (-1))) & 1023)); } #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int c1 = c; #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" if ((c1 >= 65536)) { #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" ++_g2_offset; } #line 235 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int c2 = c1; switch (c2) { case 47: { #line 244 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" if (!(colon)) { #line 245 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" slashes = true; } else { #line 246 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int i = c2; #line 246 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" { #line 247 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" colon = false; if (slashes) { #line 249 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" acc.b.Append(((string)("/"))); slashes = false; } #line 252 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" acc.addChar(i); } } #line 244 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" break; } case 58: { #line 242 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" acc.b.Append(((string)(":"))); colon = true; #line 241 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" break; } default: { #line 246 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" int i1 = c2; #line 246 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" { #line 247 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" colon = false; if (slashes) { #line 249 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" acc.b.Append(((string)("/"))); slashes = false; } #line 252 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" acc.addChar(i1); } #line 246 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" break; } } } } #line 256 "C:\\HaxeToolkit\\haxe\\std\\haxe\\io\\Path.hx" return(acc.b.ToString()); } #line default }