Parameter |
Top Previous Next |
Skripte > Klassen-Elemente und C++-Befehle > Eingabemaske für Klassenelemente > Parameter
Je nachdem, ob in der Werkzeugleiste
das Klassenelement als Variable bestimmt ist oder nicht, ist das Parameterfeld unsichtbar oder sichtbar. Für die Parameter einer Klassenmethode gilt im wesentlichen das gleiche, was für die Parameter der Produktionen beschrieben ist.
Impliziter xState-Parameter
Ein Problem gibt es beim Aufruf der Methode, wenn er sowohl für den Interpreter als auch für den exportierten C++-Code gültig sein soll. Im erzeugten Code der Parserklasse wird in die Deklaration der Methode automatisch als erster Parameter die xState-Variable eingefügt. Z.B.
void Method(state_type& xState);
Im Interpreter-Code eines Aufrufs der Methode kann die Übergabe des xState-Parameters zur Bequemlichkeit aber unterbleiben.
{- Method( ); -}
Im Interpreter wird dieser Code geparst und der fehlende Parameter wird automatisch ergänzt. Wenn der Code aber exportiert wird, wird er schlicht kopiert, so dass der xState-Parameter explizit mit angegeben sein muss:
{_ Method(xState); _}
Soll der semantische Code sowohl intern als auch extern gültig sein, so sollte der Methode xState übergeben werden:
{= Method(xState); =}
Seit der Version 0.9.8.1 wird der xState-Parameter automatisch in den generierten Code eingefügt, wenn nicht die Nur kopieren Option gesetzt ist, und wenn es sich nicht um einen Code-Teil handelt, der nur exportierbar ist.
Durch Setzen der entsprechenden Projekt-Option kann die Erzeugung von Warnmeldungen aktiviet werden, die erscheinen, wenn ein solcher xState-Parameter fehlt. |
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |