} // 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