示例#1
0
 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
 }
示例#2
0
 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;
 }
示例#3
0
        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
        }
示例#4
0
        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
        }
示例#5
0
 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));
 }