Semantische Aktionen

Top  Previous  Next

Beispiele > Cocor Import > Semantische Aktionen

 

Die semantischen Aktionen werden im transformierten Text durch die Klammern {_ und _} als nicht interpretierbarer Code eingeschlossen, da kaum anzunehmen ist, dass sie vom TextTransformer interpretierbar sind.

Es besteht auch die Möglichkeit die semantischen Aktionen ganz wegzulassen. Hierzu deaktiviert man im Projekt CC2TT.ttp in den lokalen Optionen der Produktionen Attribs und SemText die Berücksichtigung des in doppelt geschweiften Klammern "{{...}}" gesetzten Codes für den Interpreter. Dadurch wird im Interpreter die Ausführung dieses Codes, der die semantischen Teile in die Ausgabe schreibt, unterdrückt. So bleibt nach der Transformation eine reine Parserbeschreibung für den Import in den TextTransformer. Entsprechend ist natürlich auch möglich den C++-Code für einen Parser generieren zu lassen, der die semantischen Teile des Ausgangstextes überspringt.

 

 

Anmerkung:

 

Für die SemText-Produktion sind die lokalen Optionen bereits aktiviert, um das Testen aller literaler Token abzuschalten. Dies ist notwendig, da SemText im Pronzip aufgebaut ist als:

 

SemText ::=  "(." SKIP ".)"

 

Wenn nun auf die öffnende Klammer "(." das literale Token "(" im Text folgt, so würde dies als nächstes Token erkannt werden, da literale Token stets den Token einer SKIP-Erkennung vorgezogen werden. Wenn hingegen der Scanner den Text nur auf diejenigen Token hin testet, die gemäß der aktuellen Regel erwartet werden, bilden alle übrigen im Projekt definierten Token für die Erkennung von SemText kein Problem.



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English