Regelinterpreter

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
ABoehlke
Beiträge: 13
Registriert: Do 24. Jul 2008, 17:13

Regelinterpreter

Beitrag von ABoehlke »

Hallo Zusammen,

ich benötige in einem eigenen Programm die Möglichkeit "Verhaltensregeln" extern in einer Konfigurationsdatei zu hinterlegen.
In dieser sollen dann in irgendeiner Syntax Regeln in der Form [if x > y then doanything else doanotherthing] angegeben werden können.

Jetzt kann man sich sicher eine eigene Syntax hierfür überlegen. Ich bin aber sicher nicht der erste der so etwas benötigt.

Meine Frage:
Kennt jemand eine Komponente(Regelinterpreter) die einen gewissen Rahmen zur Verfügung stellt. Bzw. gibt es bestimmte Ansätze um ein solches Problem zu lösen?

Thandor
Beiträge: 153
Registriert: Sa 30. Jan 2010, 18:17
OS, Lazarus, FPC: Windows 10 64Bit/ lazarus 3.0 mit FPC 3.2.2 (32Bit + 64bit)
CPU-Target: 64Bit
Wohnort: Berlin

Re: Regelinterpreter

Beitrag von Thandor »

Das könnte man mit einer Scriptsprache wie Python oder lua machen.

ABoehlke
Beiträge: 13
Registriert: Do 24. Jul 2008, 17:13

Re: Regelinterpreter

Beitrag von ABoehlke »

Danke für die Info.
Ich werde mir Beide mal näher ansehen und mich wieder melden.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Regelinterpreter

Beitrag von Warf »

Thandor hat geschrieben:Das könnte man mit einer Scriptsprache wie Python oder lua machen.

Warum dann nicht gleich pascal Script, ich glaube die scriptsprache funktioniert mit fpc am besten

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Regelinterpreter

Beitrag von marcov »

Fuer einfache Formel kann man viel besser einen Expression Parser nutzen. FPC hat zwei davon. Beide verstehen glaube ich auch "boolean" typen.

ABoehlke
Beiträge: 13
Registriert: Do 24. Jul 2008, 17:13

Re: Regelinterpreter

Beitrag von ABoehlke »

@warf:
Das ich mit Pascal-Script experimentiert habe ist schon eine Zeitlang her. Ich meine mich aber zu erinnern das dieses letztendlich dann doch zur Ausführung kompiliert wurde.
Für mich ist es wichtig die Regeln in einer Konfigurationsdatei abzulegen um aus meinem Programm heraus diese abzuarbeiten.

@marcov: Welche Expression Parser meinst Du denn. Ich habe mir mal den RegEx-Parser angesehen und bin im ersten Eindruck der Meinung dass dieser nicht ausreicht. Aber vielleicht habe ich auch noch nicht alle Möglichkeiten erkannt.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Regelinterpreter

Beitrag von wp_xyz »

ABoehlke hat geschrieben:@warf:
@marcov: Welche Expression Parser meinst Du denn. Ich habe mir mal den RegEx-Parser angesehen und bin im ersten Eindruck der Meinung dass dieser nicht ausreicht. Aber vielleicht habe ich auch noch nicht alle Möglichkeiten erkannt.

Der eine ist "symbolic", mit dem ich selbst noch nicht gearbeitet habe. Für den anderen, "fpexprpars", habe ich mal ein Tutorial geschrieben: http://wiki.lazarus.freepascal.org/How_ ... sionParser

ABoehlke
Beiträge: 13
Registriert: Do 24. Jul 2008, 17:13

[solved]Re: Regelinterpreter

Beitrag von ABoehlke »

Ich habe mich die letzten Tage in die von Euch gemachten Vorschläge eingelesen und werde nun versuchen mit fpExprParser meine Anforderungen umzusetzen.

Danke noch mal für Eure Unterstützung :!:

Antworten