Regelinterpreter
Regelinterpreter
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?
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?
-
- 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
Das könnte man mit einer Scriptsprache wie Python oder lua machen.
Re: Regelinterpreter
Danke für die Info.
Ich werde mir Beide mal näher ansehen und mich wieder melden.
Ich werde mir Beide mal näher ansehen und mich wieder melden.
-
- Beiträge: 2120
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Regelinterpreter
Warum dann nicht gleich pascal Script, ich glaube die scriptsprache funktioniert mit fpc am bestenThandor hat geschrieben:Das könnte man mit einer Scriptsprache wie Python oder lua machen.
-
- Beiträge: 1102
- 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
Fuer einfache Formel kann man viel besser einen Expression Parser nutzen. FPC hat zwei davon. Beide verstehen glaube ich auch "boolean" typen.
Re: Regelinterpreter
@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.
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.
Re: Regelinterpreter
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_ ... sionParserABoehlke 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.
[solved]Re: Regelinterpreter
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
Danke noch mal für Eure Unterstützung
