Unterscheidung Var.-Initialisierung & Funktionsaufruf



  • Hallo ihr da draussen,

    folgendes Problem stellt sich mir. Ich schreibe an einer ABC-Metrik für Java, C- und C++ Sourcecode.
    Die Variableninitialisierung in C++ die mir Probleme macht ist folgende :
    int x(8); // x wird der Wert 8 zugewiesen

    diese Variableninitialisierung muss unterschieden werden von einem Funktionsaufruf z.B.:
    aendere_x(8); // funktionsaufruf

    Wie kann ich beide voneinander unterscheiden, abgesehen davon, dass sie unterschiedliche Namen haben ?

    Bin über jeden Hinweis dankbar.

    Gruss
    Bastian



  • Was ist eine ABC-Metrik? Schreibst du einen Parser? Mir scheint fast, du bist dir nicht ganz im klaren, was du dir da aufgehalst hast. Ansonsten würdest du die Frage nicht bzw. anders stellen.



  • Original erstellt von Bastian-HD:
    Wie kann ich beide voneinander unterscheiden, abgesehen davon, dass sie unterschiedliche Namen haben ?

    Wenn es die Form
    typ Name (Name);
    hat, ist es eine variable

    Wenn es die Form
    typ Name (typ);
    hat, ist es eine Funktion

    Wenn es die Form
    Name (Name);
    hat, ist es ein Funktionsaufruf



  • Shade of Mine : THX(" Ich lasse es mir durch den Kopf gehen." )
    Eine Frage noch : Wie kann ich den Datentyp identifizieren, wenn dieser aus einer eigenen Klasse ist und kein primitiver Datentyp ?

    THX

    Bastian



  • Indem Du alle eingebauten Typen in einer Liste führst und damit abgleichst... allerdings wird es etwas problematisch, wenn Du auf Klassen aus der Standardbibliothek stößt... ist std::string nun ein "eingebauter" Typ oder eine "eigene" Klasse?



  • Um dem Dilemma zu entgehen kann man ja einfach
    Built-Ins
    und
    Non-Built-Ins
    nehmen dann ergibt sich die Frage nicht.


Anmelden zum Antworten