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 zugewiesendiese Variableninitialisierung muss unterschieden werden von einem Funktionsaufruf z.B.:
aendere_x(8); // funktionsaufrufWie 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 variableWenn es die Form
typ Name (typ);
hat, ist es eine FunktionWenn 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.