private static void Program()
    {
        Check( program_ ); Check( ident );

        // Synchronization point
        if( !declStart.get(sym) )
        {
            Error( "invalid start of declaration" );
            while( !declFollow.get(sym) ) Scan();
        }

        while( declStart.get(sym) )
        {
            if( sym == final_ ) ConstDecl();
            else if( sym == class_ ) ClassDecl();
            else if( sym == ident ) VarDecl();
            else Error( "expecting final, class or ident" );
        }

        Check( lbrace );
        while( sym == ident || sym == void_ ) MethodDecl();
        Check( rbrace );
    }