pyPEG

Software screenshot:
pyPEG
Podrobnosti Software:
Verze: 2.4.1
Datum uploadu: 14 Apr 15
Vývojka: Volker Birk
Licence: Volný
Popularita: 29

Rating: 1.5/5 (Total Votes: 2)

Python je pěkná skriptovací jazyk. Dokonce vám umožní přístup k jeho vlastní parser a kompilátor. To také umožňuje přístup k různým jiným analyzátory pro speciální účely, jako je XML a smyčcové šablon.
Ale někdy budete chtít mít své vlastní analýzy. To je to, co je pro pyPEG.
Chcete-li získat rychlý přehled o tom, co se děje, přečtěte si tento článek o tom, jak analyzovat libovolný jazyk XML s pyPEG na mém blogu.
Co je PEG?
PEG znamená parsování Expression gramatika. Je to něco jako myšlenku regulárních výrazů pro bezkontextových jazyků; velmi jasné vysvětlení najdete ve Wikipedii článku o PEG.
S PEG můžete popsat stejné jazyky jako s BNF (a jsou dokonce podobné).
Co je analyzátor, Interpreter?
Běžné analyzátory nepoužíváte PEG a shora dolů rozebrat, ale LR (n) nebo LL (n) a bottom-up rozebrat. To vede k myšlence, kterým se provádí parser generátory.
Vzhledem k tomu, s LR (n) nebo LL (n) analyzátorů je třeba počítat ven DFA nejdříve, obvykle necháte parser generátor udělat za vás. Výsledkem je implementace parser pro vaši BNF gramatiky, který byl vstup. Dalo by se zavolat generátor analyzátoru kompilátor z BNF na implementaci parseru.
Parser-Interpreter funguje jako interpret místo je takový kompilátor. Stačí uvést gramatiku jako vstup, a analyzuje popsaného jazyka z textu. Nebude žádný program generován.
Použití pyPEG
To znamená, že: pomocí pyPEG je velmi snadné;-) Pokud víte, že regulární výrazy už se naučíte rychle používat pyPEG.
Malý vzorek
Příklad: myslet jednoduchého jazyka, jako je tento:
Funkce Fak (n) {
& Nbsp; if (n == 0) {// 0! 1 podle definice
& Nbsp; návrat 1;
& Nbsp;} else {
& Nbsp; return n * Fak (n - 1);
& Nbsp;};
}
PyPEG pro daný jazyk vypadá, že následující kód (viz též ukázkový skript):
def komentář (): return [re.compile (r "//.*"), re.compile ("/*.*?*/", re.S)]
def doslovný (): return re.compile (".? *" r'd * .d * | | d + ")
def symbol (): return re.compile (r "w +")
operátor def (): return re.compile (r "+ | - | * | / | ==")
def provoz (): return symbol, operátor, [doslovný, FunctionCall]
def výraz (): návrat [doslovný, provoz, FunctionCall]
def ExpressionList (): návrat výraz, -1, (",", výraz)
def returnstatement (): return klíčové slovo ("návrat"), výraz
def ifstatement (): return klíčové slovo ("pokud"), "(", výraz, ")", blok, klíčové slovo ("jinak"), blok
def prohlášení (): návrat [ifstatement, returnstatement] ";"
def blok (): return "{", -2, prohlášení, "}"
def parameterlist (): return "(", symbol, -1, ("," symbol), ")"
def FunctionCall (): návrat symbol, "(", ExpressionList, ")"
Funkce def (): return klíčové slovo ("funkce"), symbol, parameterlist, blok
def simpleLanguage (): return funkce

Co je nového v této verzi:

  • Toto je vydání vyčištění. Kód parse () a skládat (), byla opravena.

Co je nového ve verzi 1.4:.

  • Tato verze opravuje některé chyby se PackRat rozebrat

Co je nového ve verzi 1.3:

  • Výměna n-tice názvů v Pyast symbolem (seznam ), třída, což je docela kompatibilní, ale podporuje více popisný kód kompilátoru backends, taky.

Co je nového ve verzi 1.2:.

  • Chyby s Unicode zpracování chyb bylo opraveno

Co je nového ve verzi 1.1:.

  • byla přidána podpora Unicode

Co je nového ve verzi 0.46:.

  • pyPEG.print_trace True
  • Převod pyPEG na Python 3.x nyní funguje bez problémů pomocí 2to3
  • Na gramatická pravidla, která jsou použita může být volitelně vysledovat nastavení
  • pyPEG vypíše tato trasa na stderr.

Co je nového ve verzi 0.45:.

  • Opravy chyb

Co je nového ve verzi 0.44:

  • pyPEG nyní zdobí každý objekt Pyast s názvem zdrojového souboru a řádek Číslo.

Požadavky na :

  • Python

Podobný software

Go
Go

27 Sep 15

HGL Suite
HGL Suite

17 Feb 15

Linaro GCC
Linaro GCC

17 Feb 15

refactor
refactor

2 Jun 15

Ostatní software developer Volker Birk

YML
YML

11 May 15

Komentáře k pyPEG

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!