} // 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
} // 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
} // 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
// *** 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
} // 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
} // 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
} // NT_Type private static void NT_NonVoidType() { for (;;) { switch (Syn.Interpret()) { case 0: return; } // switch } // for } // NT_NonVoidType
} // NT_WhileStat private static void NT_BreakStat() { for (;;) { switch (Syn.Interpret()) { case 0: return; } // switch } // for } // NT_BreakStat
} // 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
} // NT_ConstDecl private static void NT_Init() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: Lex.GETnumberAttr(); break; } // switch } // for } // NT_Init
} // NT_Term private static void NT_NotFact() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: NT_Fact(); break; } // switch } // for } // NT_NotFact
} // NT_DeleteStat private static void NT_ReturnStat() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: NT_Expr(); break; } // switch } // for } // NT_ReturnStat
} // NT_VarDef private static void NT_FuncHead() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: NT_FormParList(); break; } // switch } // for } // NT_FuncHead
} // NT_OutputStat private static void NT_DeleteStat() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: Lex.GETidentAttr(); break; } // switch } // for } // NT_DeleteStat
public static void StartSem() { //-----------------------------------|---------------------------------------- for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: NT_MiniCPP(); break; } // switch } // for } // StartSem
} // 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
} // 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
} // 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
} // 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
} // 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