pyPEG

Screenshot der Software:
pyPEG
Softwarebeschreibung:
Version: 2.4.1
Upload-Datum: 14 Apr 15
Entwickler: Volker Birk
Lizenz: Frei
Popularität: 29

Rating: 1.5/5 (Total Votes: 2)

Python ist eine schöne Skriptsprache. Es gibt auch den Zugriff auf einen eigenen Parser und Compiler. Es können Sie auch an verschiedenen anderen Parser für spezielle Zwecke wie XML und Zeichenketten-Templates.
Aber manchmal möchten Sie vielleicht Ihren eigenen Parser zu haben. Dies ist, was ist für pyPEG.
Um einen schnellen Überblick über das, was passiert ist, lesen Sie bitte diesen Artikel, wie Sie eine beliebige Sprache, um mit pyPEG Blog XML-Syntaxanalyse.
Was ist PEG?
PEG bedeutet Packrat Parser. Es ist so etwas wie die Idee der Regular Expressions für kontextfreie Sprachen; eine sehr klare Erklärung Sie im Wikipedia-Artikel über PEG finden.
Mit PEGs können Sie die gleichen Sprachen wie mit BNF beschreiben (und sie sind auch ähnlich).
Was ist ein Parser-Interpreter?
Gemeinsame Parser nicht mit PEGs und Top-down-Parsing, aber LR (n) oder LL (n) und Bottom-up-Analyse. Dies führt zu der Idee, die Umsetzung Parsergeneratoren.
Denn mit LR (n) oder LL (n) Parser Sie zuerst berechnen eine DFA müssen, in der Regel lassen Sie die Parser-Generator machen das für Sie. Das Ergebnis ist ein Parser Umsetzung für BNF-Grammatik, die der Eingang war. Man könnte ein Parser-Generator einen Compiler von BNF zu einem Parser Umsetzung nennen.
Ein Parser-Interpreter funktioniert als Dolmetscher anstatt wie ein Compiler. Geben Sie einfach Ihre Grammatik als Eingang, und es analysiert die beschriebenen Sprache aus Text. Es wird kein Programm erzeugt wird.
Mit pyPEG
Das bedeutet: mit pyPEG ist sehr einfach;-) Wenn Sie wissen, reguläre Ausdrücke schon, werden Sie lernen, pyPEG schnell zu verwenden.
Eine kleine Probe
Ein Beispiel: Man denke an eine einfache Sprache wie diese:
Funktion FAK (n) {
& Nbsp; if (n == 0) {// 0! ist per Definition 1
& Nbsp; return 1;
& Nbsp;} else {
& Nbsp; Rück n * fak (n - 1);
& Nbsp;};
}
Ein pyPEG für diese Sprache sieht wie folgt Code (siehe auch Beispielskript):
def Kommentar (): return [re.compile (r "//.*"), re.compile ("/*.*?*/", re.S)]
def wörtliche (): return re.compile (". *?" r'd * .d * | | d + ")
def-Symbol (): return re.compile (r "w +")
def operator (): return re.compile (r "+ | - | * | / | ==")
def-Betrieb (): return Symbol, Betreiber, [wörtliche, Function]
def Ausdruck (): return [wörtliche, Betrieb, Function]
def Ausdrucksliste (): return Ausdruck, -1, (",", Ausdruck)
def returnstatement (): return Schlüsselwort ("Return"), Ausdruck
def IFSTATEMENT (): return Schlüsselwort ("if"), "(" Ausdruck ")", block, Schlüsselwort ("else"), Block
def-Anweisung (): return [IFSTATEMENT, returnstatement] ";"
def Block (): return "{", -2, Aussage, "}"
def Parameterliste (): return "(" Symbol, -1, ("," Symbol), ")"
def Function (): return Symbol "(" Ausdrucksliste ")"
def function (): return Schlüsselwort ("Funktion"), Symbol, Parameterliste, Block
def simpleLanguage (): return Funktion

Was ist neu in dieser Pressemitteilung:

  • Das ist ein Cleanup Release. Der Code der parse () und verfassen () wurde behoben.

Was ist neu in der Version 1.4:.

  • Diese Version behebt einige Fehler mit packrat Parsing

Was ist neu in der Version 1.3:

  • Austausch des Tupels für Namen in Pyast durch die Symbol (Liste ) Klasse, die ziemlich kompatibel ist, unterstützt aber aussagekräftiger Code in Compiler-Backends, auch.

Was ist neu in der Version 1.2:.

  • Bugs mit Unicode in die Fehlerbehandlung wurden fixiert

Was ist neu in der Version 1.1:.

  • Unicode-Unterstützung wurde hinzugefügt

Was ist neu in Version 0.46:.

  • pyPEG.print_trace auf True
  • Konvertieren pyPEG zu Python 3.x jetzt arbeitet nahtlos mit 2to3
  • Die Grammatikregeln, die angewendet werden kann wahlweise zurückgeführt werden, indem
  • pyPEG folgende Ausgabe dieser Spur auf stderr aus.

Was ist neu in Version 0.45:.

  • Bugfixes

Was ist neu in Version 0.44:

  • pyPEG schmückt jetzt jedes Pyast Objekt mit Quelldateinamen und Zeilen Nummer.

Anforderungen :

  • Python

Ähnliche Software

refactor
refactor

2 Jun 15

FFC
FFC

17 Feb 15

LIOGO
LIOGO

3 Jun 15

SMOP
SMOP

11 May 15

Andere Software von Entwickler Volker Birk

YML
YML

11 May 15

Kommentare zu pyPEG

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!