// // 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); }