//
        // RBBISymbolTable::print Debugging function, dump out the symbol table
        // contents.
        //
        // /CLOVER:OFF
        internal void RbbiSymtablePrint()
        {
            System.Console.Out
            .Write("Variable Definitions\n"
                   + "Name               Node Val     String Val\n"
                   + "----------------------------------------------------------------------\n");

            RBBISymbolTable.RBBISymbolTableEntry [] syms = new RBBISymbolTable.RBBISymbolTableEntry [0];
            ICollection t = fHashTable.Values;

            syms = (RBBISymbolTable.RBBISymbolTableEntry [])ILOG.J2CsMapping.Collections.Generics.Collections.ToArray(t, syms);

            for (int i = 0; i < syms.Length; i++)
            {
                RBBISymbolTable.RBBISymbolTableEntry s = syms[i];

                System.Console.Out.Write("  " + s.key + "  ");     // TODO: format output into
                // columns.
                System.Console.Out.Write("  " + s.val + "  ");
                System.Console.Out.Write(s.val.fLeftChild.fText);
                System.Console.Out.Write("\n");
            }

            System.Console.Out.WriteLine("\nParsed Variable Definitions\n");
            for (int i_0 = 0; i_0 < syms.Length; i_0++)
            {
                RBBISymbolTable.RBBISymbolTableEntry s_1 = syms[i_0];
                System.Console.Out.Write(s_1.key);
                s_1.val.fLeftChild.PrintTree(true);
                System.Console.Out.Write("\n");
            }
        }
        //
        // RBBISymbolTable::addEntry Add a new entry to the symbol table.
        // Indicate an error if the name already exists -
        // this will only occur in the case of duplicate
        // variable assignments.
        //
        internal void AddEntry(String key_0, RBBINode val_1)
        {
            RBBISymbolTable.RBBISymbolTableEntry e;
            e = (RBBISymbolTable.RBBISymbolTableEntry)ILOG.J2CsMapping.Collections.Collections.Get(fHashTable, key_0);
            if (e != null)
            {
                fRuleScanner.Error(IBM.ICU.Text.RBBIRuleBuilder.U_BRK_VARIABLE_REDFINITION);
                return;
            }

            e     = new RBBISymbolTable.RBBISymbolTableEntry();
            e.key = key_0;
            e.val = val_1;
            ILOG.J2CsMapping.Collections.Collections.Put(fHashTable, e.key, e);
        }