} // 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
} // 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_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_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
} // 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
} // 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
} // NT_OutputStat private static void NT_DeleteStat() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: Lex.GETidentAttr(); break; } // switch } // for } // NT_DeleteStat
} // NT_ConstDecl private static void NT_Init() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: Lex.GETnumberAttr(); break; } // switch } // for } // NT_Init
} // 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_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
} // 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