Speicherverwaltung



  • skNiNe schrieb:

    Theoretisch müsste es auch ohne kompletter erneuten Analyse funktionieren. Schließlich hab ich am Ende nach der syntaktischen Prüfung einen AST. Darin sind alle Produktionen und letztendlich auch alle Tokens.

    In ein PST ja aber eigentlich nicht im AST.



  • skNiNe schrieb:

    müssen alle Stellen im AST

    Stimmt. Wenn eine Deklaration sich ändert oder den Verschwindibus macht, kann sie im AST jeden benachrichtigen, der sie verwendet hat.

    Wobei auch das Hinzukommen von Deklarationen, using-Direktiven, Makros das spätere Verhalten ändern kann. Hier mal eine weitere Überladung von f und schon ist h anders als g.

    #include <iostream>
    using namespace std;
    
    void f(...){
        cout<<"hello ";
    }
    
    void g(){
        f(0);
    }
    
    void f(void*){
        cout<<"world!\n";
    }
    
    void h(){
        f(0);
    }
    
    int main(){
        g();
        h();
    }
    

    Also auch für Überladungen die Namenslisten führen und wie war das nochmal mit dem König-Lookup http://de.wikipedia.org/wiki/Argument_dependent_name_lookup ?

    Klingt nach nen harten Broken programmierarbeit.

    Jup.



  • Aber im Endeffekt sind die nötigen Informationen irgendwo in irgendeiner Form vorhanden.


Anmelden zum Antworten