Tobias: Klammerpaarung finden.

Hallo,

Ich arbeite gerade an einer Perl Implementierung für aussagenlogische Formeln. Und ich sitze verzweifelt an RegExp, um einzelne Fälle von Formelmustern abzufangen. Es würde glaube ich wesentlich einfacher gehen, wenn ich die Klammerstruktur der Formel besser ausdrücken könnte. Ich habe mir gedacht, dass ich hierfür die Klammerpaarungen von A-Z durchnummeriere. In einer Mathematischen Formel sähe das ganze dann so aus:

(((1+2):3)+4)
ABC1+2C:3B+4A

Ich habe schon einiges rumprobiert und komme einfach nicht weiter. Vielleicht kann mir hier einer mit ein paar Denkanstößen weiterhelfen.

schonmal vielen Dank
mfg Tobias

  1. Hallo Tobias,

    Reguläre Ausdrücke sind für die Beschreibung rekursiver Strukturen nicht geeignet.
    Bei so einfachen Ausdrücken könntest Du eine Parser, der Dir eine Baumstruktur für die Formel erstellt, von Hand schreiben.
    Alternativ gibt es im CPAN etliche Module um Parser aus kontextfreien Grammatiken zu erzeugen. Das könntest Du Dir alternativ ansehen. Das Aufwand, ein geeignetes Modul zu finden und zu verstehen könnte allerdings in dem Fall größer sein.

    Grüße

    Daniel