Exemplo n.º 1
0
    }         // NT_BinaryTree

    private static void NT_SubTree(ref BTree t)
    {
        BTree left  = new BTree();
        BTree right = new BTree();

        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_SubTree(ref left);
                break;

            case 2:
                Lex.GETnumberAttr(out num);
                break;

            case 3: // SEM
                t.Value = num;
                t.Left  = left;
                t.Right = right;

                break;

            case 4:
                NT_SubTree(ref right);
                break;
            } // switch
        }     // for
    }         // NT_SubTree
Exemplo n.º 2
0
    }         // Interpret

    public static bool Parse()
    {
        //-----------------------------------|----------------------------------------
        Lex.InitLex();
        sp           = 0;
        pc           = ROOTPC;
        altRoot      = pc;
        mustRead     = true;
        errDist      = MINERRDIST + 1;
        leaveOrEnter = false;
        leaveCnt     = 0;
        enterCnt     = 0;
        Sem.StartSem();
        return(Errors.NumOfSynErrors() == 0);
    } // Parse
Exemplo n.º 3
0
    }     // Pop

    private static void GetNextToken()
    {
        for (;;)
        {
            Lex.GetToken(); // updates Lex.token
            if (Lex.token <= LASTTERM)
            {
                return;
            }
  #if !CONTPRAGMAACTS
            if (NumOfSynErrors() == 0)
  #endif
            Sem.pragmaMethods[Lex.token - LASTTERM - 1]();
        } // for
    }     // GetNextToken