} // SemErr // *** end of global SYN and SEM declarations from ATG *** private static void NT_MiniCpp() { for (;;) { switch (Syn.Interpret()) { case 0: return; case 1: // SEM NameList.Init(true); SymTab.Init(); break; case 2: NT_ConstDecl(); break; case 3: NT_VarDefOrFuncDeclOrDef(); break; case 4: // SEM if (!SymTab.MainFuncDefined()) { SemErr("no main func defined"); } break; } // switch } // for } // NT_MiniCpp
} // NameOf #if TEST_NAMELIST public static void Main(String[] args) { Console.WriteLine("START: NameList"); NameList.Init(true); int anneSpix1 = NameList.SpixOf("Anne"); Console.WriteLine("NameList.SpixOf(\"Anne\") " + anneSpix1); int patSpix = NameList.SpixOf("Pat"); Console.WriteLine("NameList.SpixOf(\"Pat\") " + patSpix); int anneSpix2 = NameList.SpixOf("ANNE"); Console.WriteLine("NameList.SpixOf(\"ANNE\") " + anneSpix2); Console.WriteLine("END"); Console.WriteLine("type [CR] to continue ..."); Console.ReadLine(); } // Main