Пример #1
0
        //-----------------------------------------------------------------------------
        //
        //   printSet    Debug function.   Print the contents of a set of Nodes
        //
        //-----------------------------------------------------------------------------

        internal virtual void PrintSet(ICollection <RBBINode> s)
        {
            foreach (RBBINode n in s)
            {
                RBBINode.PrintInt32(n.fSerialNum, 8);
            }
            Console.Out.WriteLine();
        }
Пример #2
0
        //-------------------------------------------------------------------------
        //
        //        print. Print out a single node, for debugging.
        //
        //-------------------------------------------------------------------------
        ////CLOVER:OFF
        internal static void PrintNode(RBBINode n)
        {
            if (n == null)
            {
                Console.Out.Write(" -- null --\n");
            }
            else
            {
                RBBINode.PrintInt32(n.fSerialNum, 10);
                RBBINode.PrintString(nodeTypeNames[n.fType], 11);
                RBBINode.PrintInt32(n.fParent == null ? 0 : n.fParent.fSerialNum, 11);
                RBBINode.PrintInt32(n.fLeftChild == null ? 0 : n.fLeftChild.fSerialNum, 11);
                RBBINode.PrintInt32(n.fRightChild == null ? 0 : n.fRightChild.fSerialNum, 12);
                RBBINode.PrintInt32(n.fFirstPos, 12);
                RBBINode.PrintInt32(n.fVal, 7);

                if (n.fType == varRef)
                {
                    Console.Out.Write(" " + n.fText);
                }
            }
            Console.Out.WriteLine("");
        }
Пример #3
0
        //CLOVER:ON


        //------------------------------------------------------------------------
        //
        //           printSets          A debugging function.
        //                              dump out all of the set definitions.
        //
        //------------------------------------------------------------------------
        ///CLOVER:OFF
        internal virtual void PrintSets()
        {
            int i;

            Console.Out.Write("\n\nUnicode Sets List\n------------------\n");
            for (i = 0; i < fRB.fUSetNodes.Count; i++)
            {
                RBBINode usetNode;
                RBBINode setRef;
                RBBINode varRef;
                String   setName;

                usetNode = fRB.fUSetNodes[i];

                //System.out.print(" " + i + "   ");
                RBBINode.PrintInt32(2, i);
                setName = "anonymous";
                setRef  = usetNode.fParent;
                if (setRef != null)
                {
                    varRef = setRef.fParent;
                    if (varRef != null && varRef.fType == RBBINode.varRef)
                    {
                        setName = varRef.fText;
                    }
                }
                Console.Out.Write("  " + setName);
                Console.Out.Write("   ");
                Console.Out.Write(usetNode.fText);
                Console.Out.Write("\n");
                if (usetNode.fLeftChild != null)
                {
                    usetNode.fLeftChild.PrintTree(true);
                }
            }
            Console.Out.Write("\n");
        }
Пример #4
0
        //-----------------------------------------------------------------------------
        //
        //   printStates    Debug Function.  Dump the fully constructed state transition table.
        //
        //-----------------------------------------------------------------------------

        internal virtual void PrintStates()
        {
            int c;    // input "character"
            int n;    // state number

            Console.Out.Write("state |           i n p u t     s y m b o l s \n");
            Console.Out.Write("      | Acc  LA    Tag");
            for (c = 0; c < fRB.fSetBuilder.NumCharCategories; c++)
            {
                RBBINode.PrintInt32(c, 3);
            }
            Console.Out.Write("\n");
            Console.Out.Write("      |---------------");
            for (c = 0; c < fRB.fSetBuilder.NumCharCategories; c++)
            {
                Console.Out.Write("---");
            }
            Console.Out.Write("\n");

            for (n = 0; n < fDStates.Count; n++)
            {
                RBBIStateDescriptor sd = fDStates[n];
                RBBINode.PrintInt32(n, 5);
                Console.Out.Write(" | ");

                RBBINode.PrintInt32(sd.fAccepting, 3);
                RBBINode.PrintInt32(sd.fLookAhead, 4);
                RBBINode.PrintInt32(sd.fTagsIdx, 6);
                Console.Out.Write(" ");
                for (c = 0; c < fRB.fSetBuilder.NumCharCategories; c++)
                {
                    RBBINode.PrintInt32(sd.fDtran[c], 3);
                }
                Console.Out.Write("\n");
            }
            Console.Out.Write("\n\n");
        }
Пример #5
0
        //-----------------------------------------------------------------------------
        //
        //   printRuleStatusTable    Debug Function.  Dump the common rule status table
        //
        //-----------------------------------------------------------------------------

        internal virtual void PrintRuleStatusTable()
        {
            int         thisRecord = 0;
            int         nextRecord = 0;
            int         i;
            IList <int> tbl = fRB.fRuleStatusVals;

            Console.Out.Write("index |  tags \n");
            Console.Out.Write("-------------------\n");

            while (nextRecord < tbl.Count)
            {
                thisRecord = nextRecord;
                nextRecord = thisRecord + tbl[thisRecord] + 1;
                RBBINode.PrintInt32(thisRecord, 7);
                for (i = thisRecord + 1; i < nextRecord; i++)
                {
                    int val = tbl[i];
                    RBBINode.PrintInt32(val, 7);
                }
                Console.Out.Write("\n");
            }
            Console.Out.Write("\n\n");
        }