Laden...

Scriptsprache in C# Programm einbinden

Erstellt von Pioneer17 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.981 Views
P
Pioneer17 Themenstarter:in
148 Beiträge seit 2007
vor 13 Jahren
Scriptsprache in C# Programm einbinden

Hallo zusammen

ich bin auf der Suche nach einer Möglichtkeit eine einfache Scriptsprache in C# einbauen zu können.

Grundanforderung:
Eine laufende C# App bietet eine Texteingabemöglichkeit. In dieser kann z.B


Test $KeyF1 = 1
$Messagebox = "Test"
End

eingegeben werden.

Wenn dieses Script dann ausgeführt wird, sollte eine Messagebox mit der Meldung "Test" erscheinen wenn ich die Taste F1 drücke.

Eine Möglichkeit habe ich bereits gefunden, ich baue mir selber eine solche Klasse die mittels Keywörter wie Test den Text splittet und dementsprechen dann die Anweisungen ausführt.
Ich gehe aber davon aus, dass es bestimmt bereits Lösungsansätze gibt die weiter sind.

Im weiten Internet bin ich zwar auch schon fündig geworden, jedoch können diese zuviel und werden somit komplizierter.

Das Ziel ist, dass diese Scriptsprache dann mal logische Operatoren, "if-else", evtl. while... beherrscht.

nichts wildes einfach die ganz "einfachen" Befehle.

Für jeden Hinweis bin ich dankbar.

D
33 Beiträge seit 2010
vor 13 Jahren

Also du willst deine eigene Skriptsprache bauen oder wie? Weil es ist auch möglich c# code zur laufzeit zu kompilieren, weil müsstest du keine eigene schreiben. Eine alternative wäre Irony. Irony ist ein open source projekt mit dem man seine eigenen .NET sprachen definieren kann, dieses erstellt dann einen Kompiler der deine skript dateien in ausführbare exen oder dlls kompiliert

Natürlich kannst du auch deinen eigenen Parser schreiben das ist aber - sei dir versichert undglaublich komplex und zeitaufwändig. Und ich bin mir sicher es gibt auch implementierungen dafür.

Einfach mal c# skript parser googeln

M
1.439 Beiträge seit 2005
vor 13 Jahren

=> Dynamic Language Runtime, IronPython, IronRuby, ...

799 Beiträge seit 2007
vor 13 Jahren

Hallo, für andere Optionen als die DLR siehe auch Thema: Embedded Scripting Engine - Gibt es sowas?

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

Es kommt ja auch immer darauf an, für welche Zielgruppe bzw. welchen Einsatzzweck die neue Sprache dienen soll. Das Stichwort hier ist DSL (Domain specific language), also eine Sprache, die für einen bestimmten Zweck optimiert wurde (und somit oft auch nicht Turing-vollständig ist).

Zu diesem Thema gibt es eigene Forschungsbereiche, welche sich mit der dynamischen Generierung von Lexern und Parsern für DSL's beschäftigen. Zudem existieren bereits fertige OpenSource-Projekte, welche für einen vorgegebene Definition einer DSL automatisch entsprechende Komponenten generieren können (z.B. Grammatica, CSFlex, ...).

EDIT: SQL ist z.B. so eine Sprache. Dafür gibt es meines Wissens nach z.B. für Grammatica auch bereits Beispieldefinitionen.

Nobody is perfect. I'm sad, i'm not nobody 🙁