Example #1
0
 public void Clear()
 {
     deleteCount = 0;
     Sym12TernaryTable.Iter123 it = table.GetIter();
     while (!it.Done())
     {
         deleteList = Array.Append3(deleteList, deleteCount++, it.Get1(), it.Get2(), it.Get3());
         it.Next();
     }
 }
Example #2
0
        //////////////////////////////////////////////////////////////////////////////
        //////////////////////////////////////////////////////////////////////////////

        public static void Write(DataWriter writer, int fieldSymbId, Sym12TernaryTable[] tables, int indentation, bool indentFirstLine, bool writeSeparator)
        {
            string baseWs  = new string(Array.Repeat(' ', indentation));
            string entryWs = new string(Array.Repeat(' ', indentation + 2));

            int count = 0;

            for (int i = 0; i < tables.Length; i++)
            {
                count += tables[i].Size();
            }

            if (indentFirstLine)
            {
                writer.Write(baseWs);
            }
            writer.Write(SymbObj.IdxToStr(fieldSymbId));
            writer.Write(": [");

            if (count > 0)
            {
                writer.Write("\n");

                int written = 0;
                for (int i = 0; i < tables.Length; i++)
                {
                    Sym12TernaryTable      table    = tables[i];
                    SurrObjMapper          mapper12 = table.mapper12;
                    SurrObjMapper          mapper3  = table.mapper3;
                    Sym12TernaryTable.Iter it       = table.GetIter();
                    while (!it.Done())
                    {
                        writer.Write(entryWs);
                        Obj obj1 = mapper12(it.Get1());
                        Obj obj2 = mapper12(it.Get2());
                        Obj obj3 = mapper3(it.Get3());
                        ObjPrinter.PrintNoFlush(obj1, writer);
                        writer.Write(", ");
                        ObjPrinter.PrintNoFlush(obj2, writer);
                        writer.Write(", ");
                        ObjPrinter.PrintNoFlush(obj3, writer);
                        written++;
                        writer.Write(written < count || count == 1 ? ";\n" : "\n");
                        it.Next();
                    }
                }
                Debug.Assert(written == count);

                writer.Write(baseWs);
            }

            writer.Write(writeSeparator ? "],\n" : "]\n");
        }