Ejemplo n.º 1
0
        private static MNode lexInput(MInputStream input)
        {
            ByteAutomata ba = new ByteAutomata();

            automata = ba;
            defineTransitions(ba);
            ba.next((byte)1); // set first state
            root         = new MNode(null, 0, "<ROOT>");
            currentExpr  = root;
            currentBlock = null;
            currentToken = null;
            lastStart    = 0;
            ba.run(input);
            ba.step((byte)' '); // ended cleanly: last white space
            if (currentBlock != null)
            {
                MeanCS.print("closing parenthesis missing at the end");
                ba.ok = false;
            }
            if (!ba.ok)
            {
                ba.printError();
                root = null;
                return(null);
            }
            MeanCS.verbose("\nFINISHED!");
            return(root);
        }
Ejemplo n.º 2
0
 public void printTree(bool deep)
 {
     printTree(this, 0, deep);
     if (!deep)
     {
         MeanCS.verbose("");
     }
 }
Ejemplo n.º 3
0
 public void print()
 {
     for (int i = 0; i <= stateCounter; i++)
     {
         MeanCS.verbosen("state: ").print(i).print("\n");
         for (int n = 0; n < 256; n++)
         {
             byte foo = tr[(i * 256) + n];
             if (foo == 0xff)
             {
                 MeanCS.verbosen(".");
             }
             else
             {
                 MeanCS.verbosen(foo);
             }
         }
         MeanCS.verbose("");
     }
 }
Ejemplo n.º 4
0
        public void printTree(MNode _node, int depth, bool deep)
        {
            System.Diagnostics.Debug.Assert(_node != null, "<printTree: empty node>");
            MNode node = _node;

            for (int i = 0; i < depth; i++)
            {
                MeanCS.verbosen("  ");
            }
            MeanCS.verbosen("[").print(node.data).print("]");
            // if (node.numChildren > 0) { VR(" + ")X(node.numChildren); }
            if (deep)
            {
                MeanCS.verbose("");
            }
            if (node.child != null && deep)
            {
                printTree(node.child, depth + 1, deep);
            }
            if (node.next != null)
            {
                printTree(node.next, depth, deep);
            }
        }