Nachbesserung: '{' und '}' in Strings

Top  Previous  Next

Beispiele > Guard > Nachbesserung: '{' und '}' in Strings

 

Eine Komplikation ergibt sich, wenn geschweifte Klammern innerhalb eines in Anführungszeichen gesetzten Textes vorkommen, z.B. "{" oder "[{}]". Diese Zeichen würden dann fälschlich als öffnende oder schließende Klammer eines Code-Blocks interpretiert werden.

Die Alternativen innerhalb eines Blocks müssen daher um Strings erweitert werden:

 

STRING        "([^"]|\\")*"

 

Die block-Regel und entsprechend die outer_block Regel sehen dann so aus:

 

"{"

{{ print_at_enter(xState); }}

(

block   {{ out << xState.lp_copy(); }}

| STRING  {{ out << xState.copy(); }}

| SKIP    {{ out << xState.copy(); }}

)*

"}"

{{ print_at_exit(xState); }}

 

 

Mit dieser Verbesserung lässt sich auch der Code parsen, den TETRA aus dem guard-Projekt selbst erzeugt.

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English