pelyg.

Un interprete-parser PEG in Python
Scarica ora

pelyg. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • GPL
  • Prezzo:
  • FREE
  • Nome editore:
  • Volker Birk
  • Sito web dell'editore:
  • http://fdik.org/

pelyg. Tag


pelyg. Descrizione

Un interprete-parser di PEG in Python Python è un bel linguaggio di scripting. Ti dà anche accesso al proprio parser e compilatore. Ti dà anche accesso a diversi altri parser per scopi speciali come XML e modelli stringa.BUS a volte potresti voler avere il tuo parser. Questo è ciò che è in Pypeg. Per ottenere una breve visione su ciò che sta accadendo, leggi questo articolo su come analizzare una lingua arbitraria a XML con Pypeg sul mio blog. Qual è il PEG? PEG significa analizzare la grammatica di espressione. È qualcosa come l'idea di espressioni regolari per il contesto Lingue libere; Una spiegazione molto chiara che troverai nell'articolo di Wikipedia su PEG.with Pegs puoi descrivere le stesse lingue come con BNF (e sono ancora simili). Qual è un interpretato di parser? I parsermatori comuni non stanno usando PAGS e TOP -down Parsing, ma lr (n) o ll (n) e analisi dal basso verso l'alto. Ciò si traduce nell'idea di implementare i generatori di parser.Perché con i parser LR (N) o LL (n) è necessario calcolare prima un DFA, di solito si lascia che il generatore del parser faccia questo per te. Il risultato è un'implementazione del parser per la tua grammatica BNF, che era l'input. Si potrebbe chiamare un generatore di parser un compilatore da BNF a un implementazione parser. Un interprete del parser funziona come interprete invece di essere un tale compilatore. Basta dare la tua grammatica come input, e analizza il linguaggio descritto dal testo. Non ci sarà un programma generato.Usuazione di Pypegthat significa: l'utilizzo di Pypeg è molto semplice ;-) Se conosci già espressioni regolari, imparerai ad usare Pypeg rapidamente. Un piccolo esempio samplean: Pensa a un linguaggio semplice come questo: funzione fak (n) {if (n == 0) {// 0! è 1 per definizione ritorno 1; } else {return n * fak (n - 1); };} A Pypeg per quella lingua sembra il seguente codice (consultare anche lo script di esempio): Def Commento (): return DEF Letterale (): return re.compile (r'd * .d * | d + |". *? "') Simbolo def (): return re.comPile (R" w + ") Operatore di DEF (): return re.compile (R" + | operazione, functioncall] def expressionlist (): espressione di ritorno, -1, (",", espressione) def returnstatement (): Parola chiave di ritorno ("ritorno"), ExpressionDef IFStatement (): Parola chiave di ritorno ("( ", espressione,") ", blocco, parola chiave (" Else "), Dichiarazione BlockDeF (): restituzione ,"; "DEF BLOCK (): return" {", -2, Dichiarazione"} " Parameterlist di DEF (): Ritorno "(", Symbol, -1, (",", Simbolo), ")" DEF FunctionCall (): Simbolo di ritorno, "(", ExpressionList, ")" Funzione DEF (): Torna ("Funzione"), Symbol, Parameterlist, BlockDef SimpleLanguage (): Requisiti della funzione di ritorno: · Python.


pelyg. Software correlato