Pypeg

ein PEG-Parser-Interpreter in Python
Jetzt downloaden

Pypeg Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Volker Birk
  • Website des Verlags:
  • http://fdik.org/

Pypeg Stichworte


Pypeg Beschreibung

Ein PEG-Parser-Interpreter in Python Python ist eine schöne Skriptsprache. Es gibt sogar Zugriff auf den eigenen Parser und den Compiler. Es gibt auch Zugriff auf verschiedene andere Parser zu speziellen Zwecken wie XML- und String-Vorlagen. Aber manchmal möchten Sie Ihren eigenen Parser haben. Dies ist das, was Pypeg for., um einen schnellen Anblick zu erhalten Es ist so etwas wie die Idee der regulären Ausdrücke für kontextfreie Sprachen; Eine sehr klare Erklärung, die Sie im Wikipedia-Artikel über PEG finden -Down-Analyse, aber LR (n) oder ll (n) und Bottom-up-Analyse. Dies führt zu der Idee, Parsergeneratoren implementieren zu können. Weil Sie mit LR (N) oder LL (N) -Parsern, die Sie benötigen, um zuerst eine DFA zu berechnen, in der normalerweise der Parsergenerator dies für Sie tun lassen. Das Ergebnis ist eine Parser-Implementierung für Ihre BNF-Grammatik, die die Eingabe war. Man könnte einen Parsergenerator ein Compiler von BNF an eine Parser-Implementierung anrufen. Parser-Interpreter funktioniert als Dolmetscher, anstatt ein solcher Compiler zu sein. Geben Sie einfach Ihre Grammatik als Eingabe an, und es wird die beschriebene Sprache außerhalb des Textes analysiert. Es wird kein Programm generiert. (n) {if (n == 0) {// 0! ist per Definitionsrückgabe 1; } else {return n * fak (n - 1); };} Ein Pypeg für diese Sprache sieht aus wie der folgende Code (siehe auch das Beispielskript): def Kommentar (): Return Def Literal (): Return re.compile (R'd * .d * | D + |". *? "') DEF Symbol (): Return re.compile (R" W + ") DEF-Operator (): Return Re.compile (R" + | - | * | / | == ") DEF-Operation (): Rücksendungssymbol, Bediener, DEF-Ausdruck (): Return Def ExpressionList (): Return Expression, -1, (",", Ausdruck) Def-Rückstellstatement (): Keyword ("Return"), ExpressionDef IFStatement (): Return Keyword ("if"), "( ", Ausdruck,") ", Block, Schlüsselwort (" else "), blockdef-Anweisung (): Return ,"; "def block (): return" {", -2, Anweisung"} " def parameterlist (): return "(", symbol, -1, (",", symbol), ")" def functioncall (): Return Symbol, "(" ExpressionList, ")" def Funktion (): Keyword Return Keyword ("Funktion"), Symbol, Parameterlist, Blockdef SimpleLanguage (): Return-Funktionsanforderungen: · Python


Pypeg Zugehörige Software