Lambda
This is version . It is not the current version, and thus it cannot be edited.
Back to current version   Restore this version

Lambda ist der Parser-Generator der Intersult.

Anwendung#

Einige Anwendungen können nicht in Java oder XML geschrieben werden, es wäre geschickter wenn man eine eigene Sprache hätte. Lambda vereinfacht die Implementierung einer Sprache extrem, zu wenigen Zeilen Code.

Der Parser enthält bereits eine Reihe von Parsern für bestimmte Ausdrücke, die durch eine Metasprache angewendet werden können.

Metasprache#

Diese Metasprache (auch Parser-Parser) ist eine Sprache zur Erzeugung von Sprachen und an die Backus-Naur-Form angelehnt.

Die grundlegenden Elemente sind:

Beispiel#

    Parsers parsers = Parsers.getGlobal().clone();
    parsers.create("test := operation-low + eof;");
    parsers.create("bracket-expression := '(' + operation-low + ')';");
    parsers.create("operand-high := symbol | bracket-expression;");");
    parsers.create("operation-high := operand-high #1 ('*'| '/');");
    parsers.create("operand-low := operation-high | symbol;");
    parsers.create("operation-low := operand-low #1 ('+' | '-')");)";

Parser-Klassen#

Parser können nicht nur über die Metasprache, sondern auch über Java-Klassen erzeugt werden. In der Praxis braucht man das nur, falls die Metasprache erweitert werden soll.
    new ChoiceParser(parsers, "sequence-element", "repetition-parser", "sequence-expression", "parser-element");