Esempio n. 1
0
    }         // NT_InputStat

    private static void NT_OutputStat()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_Expr();
                break;

            case 2:
                Lex.GETstringAttr();
                break;

            case 3:
                NT_Expr();
                break;

            case 4:
                Lex.GETstringAttr();
                break;
            } // switch
        }     // for
    }         // NT_OutputStat
Esempio n. 2
0
    }         // NT_MiniCPP

    private static void NT_VarDefOrFuncDeclOrDef()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_Type();
                break;

            case 2:
                Lex.GETidentAttr();
                break;

            case 3:
                NT_VarDef();
                break;

            case 4:
                NT_FuncHead();
                break;

            case 5:
                NT_Block();
                break;
            } // switch
        }     // for
    }         // NT_VarDefOrFuncDeclOrDef
Esempio n. 3
0
    }         // NT_Stat

    private static void NT_IdentStat()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETidentAttr();
                break;

            case 2:
                NT_Expr();
                break;

            case 3:
                NT_Expr();
                break;

            case 4:
                NT_ActParList();
                break;
            } // switch
        }     // for
    }         // NT_IdentStat
Esempio n. 4
0
    }         // NT_NonVoidType

    private static void NT_Block()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_ConstDecl();
                break;

            case 2:
                NT_Type();
                break;

            case 3:
                Lex.GETidentAttr();
                break;

            case 4:
                NT_VarDef();
                break;

            case 5:
                NT_Stat();
                break;
            } // switch
        }     // for
    }         // NT_Block
Esempio n. 5
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
Esempio n. 6
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
Esempio n. 7
0
    }         // NT_OutputStat

    private static void NT_DeleteStat()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETidentAttr();
                break;
            } // switch
        }     // for
    }         // NT_DeleteStat
Esempio n. 8
0
    }         // NT_ConstDecl

    private static void NT_Init()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETnumberAttr();
                break;
            } // switch
        }     // for
    }         // NT_Init
Esempio n. 9
0
    }         // NT_NotFact

    private static void NT_Fact()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETnumberAttr();
                break;

            case 2:
                Lex.GETidentAttr();
                break;

            case 3:
                NT_Expr();
                break;

            case 4:
                NT_ActParList();
                break;

            case 5:
                NT_Type();
                break;

            case 6:
                NT_Expr();
                break;

            case 7:
                NT_Expr();
                break;
            } // switch
        }     // for
    }         // NT_Fact
Esempio n. 10
0
    }         // NT_FormParList

    private static void NT_FormParListRest()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETidentAttr();
                break;

            case 2:
                NT_Type();
                break;

            case 3:
                Lex.GETidentAttr();
                break;
            } // switch
        }     // for
    }         // NT_FormParListRest
Esempio n. 11
0
    }         // NT_Init

    private static void NT_VarDef()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_Init();
                break;

            case 2:
                Lex.GETidentAttr();
                break;

            case 3:
                NT_Init();
                break;
            } // switch
        }     // for
    }         // NT_VarDef