pyPEG

Screenshot Software:
pyPEG
Detalii soft:
Versiune: 2.4.1
Incarca data: 14 Apr 15
Producător: Volker Birk
Licenţă: Gratuit
Popularitate: 29

Rating: 1.5/5 (Total Votes: 2)

Python este un limbaj de scripting frumos. Este chiar vă oferă acces la propria sa parser și compilator. De asemenea, vă oferă acces la diferite alte interpretoare pentru scopuri speciale, cum ar fi XML și coarde șabloane.
Dar, uneori, poate doriți să aibă propria parser. Aceasta este ceea ce este pyPEG pentru.
Pentru a obține o vizualizare rapidă asupra a ceea ce se întâmplă, vă rugăm să citiți acest articol pe cum pentru a analiza un limbaj arbitrar în XML cu pyPEG pe blog-ul meu.
Ce este PEG?
PEG înseamnă gramatică Exprimarea Parsing. E ceva de genul ideea de a expresiilor regulate pentru context limbi libere; o explicație foarte clară veți găsi în articolul Wikipedia despre PEG.
Cu PEG puteți descrie aceleași limbi ca de BNF (și sunt chiar similare).
Ce este un Parser-interpret?
Interpretoare comune nu sunt utilizați PEG și de sus în jos parsare, dar LR (n) sau LL (n) și parsarea de jos în sus. Acest lucru duce la ideea de punere în aplicare generatoare parser.
Deoarece cu LR (n) sau LL (n) interpretoare aveți nevoie pentru a calcula o DFA în primul rând, de obicei, l-ai lăsat generatorul parser face acest lucru pentru tine. Rezultatul este o implementare parser de gramatica ta BNF, care a fost de intrare. S-ar putea chema un generator de parser un compilator de la BNF la o punere în aplicare parser.
Un Parser-Interpret acționează ca un interpret în loc să fie o astfel de compilator. Doar da gramatica ta ca intrare, și analizează limbajul descris de text. Nu va fi nici un program generat.
Utilizarea pyPEG
Aceasta înseamnă: utilizarea pyPEG este foarte usor;-) Dacă știți expresii regulate deja, veți învăța să utilizați pyPEG repede.
O mică probă
Un exemplu: cred că de un limbaj simplu, ca aceasta:
Funcția FAK (n) {
& Nbsp; dacă (n == 0) {// 0! este de 1, prin definiție,
& Nbsp; a reveni 1;
& Nbsp;} else {
& Nbsp; revenire n * FAK (n - 1);
& Nbsp;};
}
O pyPEG pentru acea limbă arata ca următoarea codul (a se vedea, de asemenea, script probă):
def comentariu (): retur [re.compile (r "//.*"), re.compile ("/*.*?*/", re.S)]
def literal (): re.compile întoarcere (".? *" r'd * .d * | | d + ')
simbol def (): re.compile întoarcere (r "w +")
Operatorul def (): re.compile întoarcere (r "+ | - | * | / | ==")
operație def (): simbol întoarcere, operatorul, [literal, functioncall]
expresie def (): întoarcere [literal, operație, functioncall]
def expressionlist (): returna expresie, -1, (",", expresie)
def returnstatement (): cuvinte cheie întoarcere ("return"), expresie
def ifstatement (): cuvinte cheie întoarcere ("dacă"), "(", expresie, ")", bloc, cuvinte cheie ("altceva"), bloc
Declarație def (): întoarcere [ifstatement, returnstatement], ";"
bloc def (): întoarcere "{", -2, declarație, "}"
def parameterlist (): întoarcere "(", simbol, -1, (",", simbol), ")"
def functioncall (): întoarce simbol, "(", expressionlist, ")"
Funcția def (): cuvinte cheie întoarcere ("funcția"), simbol, parameterlist, bloc
def simpleLanguage (): Funcția de returnare

Ce este nou în această versiune:

  • Aceasta este o versiune de curățare. Codul de analizare () și compune () a fost stabilit.

Ce este nou în versiunea 1.4:.

  • Această versiune corectează unele bug-uri cu packrat parsare

Ce este nou în versiunea 1.3:

  • Înlocuirea tuplul de nume în pyAST de simbolul (listă ) de clasă, care este destul de compatibil, dar susține cod mai descriptiv în backend compilator, de asemenea.

Ce este nou în versiunea 1.2:.

  • Bug-uri cu Unicode în eroare de manipulare au fost fixate

Ce este nou în versiunea 1.1:.

  • a adăugat suport Unicode

Ce este nou în versiunea 0.46:.

  • pyPEG.print_trace la True
  • Conversia pyPEG la Python 3.x acum funcționează perfect folosind 2to3
  • Regulile gramaticale care sunt aplicate pot fi urmărite în mod opțional prin stabilirea
  • pyPEG va ieșire această urmă la stderr.

Ce este nou în versiunea 0,45:.

  • Remedieri de erori

Ce este nou în versiunea 0,44:

  • pyPEG decoreaza acum fiecare obiect pyAST cu nume de fișier sursă și linie Număr.

Cerințe :

  • Python

Software similare

IGCC
IGCC

14 Apr 15

Lua
Lua

17 Aug 18

Trad4
Trad4

11 May 15

Alte software-uri de dezvoltator Volker Birk

YML
YML

11 May 15

Comentarii la pyPEG

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!