public virtual void treeWalk(global::haxe.root.Array table, int p, int cd, int d, global::haxe.zip.Huffman t) { unchecked { #line 63 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" if ((t._hx_index == 1)) { #line 64 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman b = (t as global::haxe.zip.Huffman_NeedBit).right; #line 64 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman a = (t as global::haxe.zip.Huffman_NeedBit).left; if ((d > 0)) { #line 66 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" this.treeWalk(table, p, (cd + 1), (d - 1), a); this.treeWalk(table, (p | (1 << cd)), (cd + 1), (d - 1), b); } else { #line 69 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman __temp_expr2 = ((global::haxe.zip.Huffman)(table.__set(p, this.treeCompress(t)))); } } else { #line 71 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman __temp_expr1 = ((global::haxe.zip.Huffman)(table.__set(p, this.treeCompress(t)))); } } #line default }
public Huffman_NeedBit(global::haxe.zip.Huffman left, global::haxe.zip.Huffman right) : base(1) { #line 27 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" this.left = left; #line 27 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" this.right = right; }
public virtual global::haxe.zip.Huffman treeCompress(global::haxe.zip.Huffman t) { unchecked { #line 46 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int d = this.treeDepth(t); if ((d == 0)) { #line 48 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" return(t); } #line 49 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" if ((d == 1)) { #line 50 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" if ((t._hx_index == 1)) { #line 51 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman b = (t as global::haxe.zip.Huffman_NeedBit).right; #line 51 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman a = (t as global::haxe.zip.Huffman_NeedBit).left; #line 51 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" return(global::haxe.zip.Huffman.NeedBit(this.treeCompress(a), this.treeCompress(b))); } else { #line 52 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" throw global::haxe.lang.HaxeException.wrap("assert"); } } #line 54 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int size = (1 << d); global::haxe.root.Array table = new global::haxe.root.Array(); #line 56 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" { #line 56 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int _g = 0; #line 56 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int _g1 = size; #line 56 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" while ((_g < _g1)) { #line 56 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int i = _g++; table.push(global::haxe.zip.Huffman.Found(-1)); } } #line 58 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" this.treeWalk(table, 0, 0, d, t); return(global::haxe.zip.Huffman.NeedBits(d, table)); } #line default }
public virtual int treeDepth(global::haxe.zip.Huffman t) { unchecked { #line 35 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" switch (t._hx_index) { case 0: { #line 36 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int _g = (t as global::haxe.zip.Huffman_Found).i; #line 36 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" return(0); } case 1: { #line 38 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman b = (t as global::haxe.zip.Huffman_NeedBit).right; #line 38 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.zip.Huffman a = (t as global::haxe.zip.Huffman_NeedBit).left; int da = this.treeDepth(a); #line 40 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int db = this.treeDepth(b); return(1 + ((((da < db)) ? (da) : (db)))); } case 2: { #line 37 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" global::haxe.root.Array _g2 = (t as global::haxe.zip.Huffman_NeedBits).table; #line 37 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" int _g1 = (t as global::haxe.zip.Huffman_NeedBits).n; #line 37 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" throw global::haxe.lang.HaxeException.wrap("assert"); } } #line 34 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" return(default(int)); } #line default }
public static global::haxe.zip.Huffman NeedBit(global::haxe.zip.Huffman left, global::haxe.zip.Huffman right) { #line 27 "C:\\HaxeToolkit\\haxe\\std\\haxe\\zip\\Huffman.hx" return(new global::haxe.zip.Huffman_NeedBit(left, right)); }