Esempio n. 1
0
    }         // NT_ActParList

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

            case 1: // SEM
                mc++;
                break;

            case 2:
                NT_Expr();
                break;

            case 3:
                NT_Stat();
                break;

            case 4: // SEM
                mc++;
                break;

            case 5:
                NT_Stat();
                break;
            } // switch
        }     // for
    }         // NT_IfStat
Esempio n. 2
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. 3
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. 4
0
    // *** end of global SYN and SEM declarations from ATG ***



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

            case 1:
                NT_ConstDecl();
                break;

            case 2:
                NT_VarDefOrFuncDeclOrDef();
                break;

            case 3: // SEM
                Console.WriteLine($"Lines of code:        {MiniCPPLex.tokenLine - 1}");
                Console.WriteLine($"Lines of statements:  {stc}");
                Console.WriteLine($"Complexity by McCabe: {mc}");

                break;
            } // switch
        }     // for
    }         // NT_MiniCPP
Esempio n. 5
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. 6
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. 7
0
    }         // NT_Type

    private static void NT_NonVoidType()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;
            } // switch
        }     // for
    }         // NT_NonVoidType
Esempio n. 8
0
    }         // NT_WhileStat

    private static void NT_BreakStat()
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;
            } // switch
        }     // for
    }         // NT_BreakStat
Esempio n. 9
0
    }         // NT_Block

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

            case 1: // SEM
                stc++;
                break;

            case 2:
                NT_IdentStat();
                break;

            case 3:
                NT_IfStat();
                break;

            case 4:
                NT_WhileStat();
                break;

            case 5:
                NT_BreakStat();
                break;

            case 6:
                NT_InputStat();
                break;

            case 7:
                NT_OutputStat();
                break;

            case 8:
                NT_DeleteStat();
                break;

            case 9:
                NT_ReturnStat();
                break;

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

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

            case 1:
                NT_Fact();
                break;
            } // switch
        }     // for
    }         // NT_NotFact
Esempio n. 12
0
    }         // NT_DeleteStat

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

            case 1:
                NT_Expr();
                break;
            } // switch
        }     // for
    }         // NT_ReturnStat
Esempio n. 13
0
    }         // NT_VarDef

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

            case 1:
                NT_FormParList();
                break;
            } // switch
        }     // for
    }         // NT_FuncHead
Esempio n. 14
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. 15
0
    public static void StartSem()
    {
        //-----------------------------------|----------------------------------------
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                NT_MiniCPP();
                break;
            } // switch
        }     // for
    }         // StartSem
Esempio n. 16
0
    }         // NT_RelExpr

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

            case 1:
                NT_Term();
                break;

            case 2:
                NT_Term();
                break;
            } // switch
        }     // for
    }         // NT_SimpleExpr
Esempio n. 17
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. 18
0
    }         // NT_FuncHead

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

            case 1:
                NT_FormParListRest();
                break;

            case 2:
                NT_NonVoidType();
                break;

            case 3:
                NT_FormParListRest();
                break;
            } // switch
        }     // for
    }         // NT_FormParList
Esempio n. 19
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
Esempio n. 20
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