DirtyFriends

Top  Previous  Next

Beispielsprojekte > Reine Text-Parser > DirtyFriends

 

Das Projekt DirtyFriends.ttp erlaubt es speziellen Freunden ihre schmutzigen Phantasien auszudrücken, wenn sie sich namentlich dazu bekennen, d.h. die Mail mit ihrem Namen unterzeichnen.

Im Resultat wirkt dies Projekt sehr ähnlich wie das SpamAndNotSpam Projekt. Statt der NonSpam-Produktion gibt es hier eine Friends Produktion. Die Hauptregel ist so aufgebaut, dass sofort zum Ende des Textes gesprungen wird, wenn das Ergebnis feststeht. Der Nachteil ist allerdings, dass die Regel unübersichtlich ist.

 

{{

int iResult = 0;

}}

(

  SKIP?

  (

      Friends[iResult] SKIP?

    | Spam  

      ( 

        SKIP

        (   

            Friends[iResult] SKIP?

          | {{ iResult = -1; }}

        )  

      )

  )?    

)

{{

out << iResult;

}}  

 

Die Produktion Friends umfasst eine Liste der Freunde:.

 

 

(

    "Peter"

  | "Paul"

  | "Mary"   

)

{{

xiResult = 1;

}}  

 

Neu ist, dass die Friends-Produktion mit iResult als Parameter aufgerufen wird:

 

Friends[iResult]

.

Der Parameter muss dabei im TextTransformer in der Friends-Produktion so deklariert sein:

 

TTParameter_ge

 

Mit dem Parameter wird der Wert gewissermaßen aus der Friends-Produktion geholt, mit "xiResult = 1;"

 

Man beachte die vielen '?' in der Startregel. Sie sind nötig, um sicherzustellen, dass jeder Text geparst werden kann. Parserfehler können so nicht auftreten, auch, wenn z.B. die ganze Mail nur aus einem Spamwort besteht.