iTextSharp.text.pdf.hyphenation.TernaryTree.Iterator.Run C# (CSharp) Method

Run() private method

private Run ( ) : int
return int
            private int Run() {
                if (cur == -1)
                    return -1;

                bool leaf = false;
                for (; ; ) {
                    // first go down on low branch until leaf or compressed branch
                    while (cur != 0) {
                        if (parent.sc[cur] == 0xFFFF) {
                            leaf = true;
                            break;
                        }
                        ns.Push(new Item((char)cur, '\u0000'));
                        if (parent.sc[cur] == 0) {
                            leaf = true;
                            break;
                        }
                        cur = parent.lo[cur];
                    }
                    if (leaf)
                        break;
                    // nothing found, go up one node and try again
                    cur = Up();
                    if (cur == -1) {
                        return -1;
                    }
                }
                // The current node should be a data node and
                // the key should be in the key stack (at least partially)
                StringBuilder buf = new StringBuilder(ks.ToString());
                if (parent.sc[cur] == 0xFFFF) {
                    int p = parent.lo[cur];
                    while (parent.kv[p] != 0)
                        buf.Append(parent.kv[p++]);
                }
                curkey = buf.ToString();
                return 0;
            }