pypeg

Een PEG-parser-tolk in Python
Download nu

pypeg Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • GPL
  • Prijs:
  • FREE
  • Naam uitgever:
  • Volker Birk
  • Uitgever website:
  • http://fdik.org/

pypeg Tags


pypeg Beschrijving

Een PEG-parser-tolk in Python Python is een leuke scripttaal. Het geeft je zelfs toegang tot zijn eigen parser en compiler. Het geeft je ook toegang tot verschillende andere parsers voor speciale doeleinden zoals XML- en string-sjablonen. Maar misschien wil je misschien je eigen parser hebben. Dit is waar Pypeg voor is om een snelle mening te krijgen over wat er gebeurt, lees dan dit artikel over het ontleden van een willekeurige taal met XML met PYPEG op mijn blog. Wat is PEG? PEG betekent parseren expressie-grammatica. Het is zoiets als het idee van reguliere uitdrukkingen voor contextvrije talen; Een zeer duidelijke uitleg die je vindt in het Wikipedia-artikel over Peg.met Pegs kun je dezelfde talen beschrijven zoals met BNF (en ze zijn zelfs vergelijkbaar). Wat is een parser-tolk? Gewone parsers gebruiken geen paren en top -down parsing, maar LR (N) of ll (n) en bottom-up parsing. Dit resulteert in het idee om parser generatoren te implementeren. Omdat de Parsers (n) of ll (n) parsers als eerste een DFA moet berekenen, laat je meestal de parser generator dit voor je doen. Het resultaat is een parser-implementatie voor uw BNF-grammatica, die de invoer was. Men zou een parser-generator een compiler van BNF kunnen bellen naar een parser-implementatie. Een parser-tolk werkt wel als een tolk in plaats van zo'n compiler te zijn. Geef je grammatica gewoon als input en het parseert de beschreven taal uit tekst. Er is geen programma gegenereerd. Gebruik PYPEGTHAT betekent: het gebruik van PYPEG is heel eenvoudig ;-) Als je al gewone expressies kent, leert je PYPEG snel te gebruiken. Een kleine Samplan Voorbeeld: Denk aan een eenvoudige taal zoals deze: functie FAK (n) {if (n == 0) {// 0! is 1 per definitie retour 1; } anders {return n * fak (n - 1); };} Een PYPEG voor die taal ziet eruit als de volgende code (zie ook het Sample Script): Def commentaar (): Retourneer Def literal (): Return Re.comPile (R'D * .d * | D + |" *? "') Def Symbol (): Return Re.Pile (R" W + ") Def operator (): Return Re.pile (R" + | - | * | / | == ") Def operatie (): retoursymbool, operator, Def expressie (): retourneren Def ExpressionList (): Return Expression, -1, (",", Expression) Def DetrouringStatement (): Return-trefwoord ("Return"), ExpressionDef IFStatement (): Retour trefwoord ("If"), " ", Expressie,") ", Blokkeer, trefwoord (" anders "), Blockdef-verklaring (): retourneren ,"; "Def Block (): Return" {", -2, verklaring,"} " Def ParameterList (): Return "(", symbool, -1, (",", symbool), ")" Def-functioncall (): retoursymbool, "(", ExpressionList ")" Def-functie (): Retourleutelwoord ("Functie"), Symbool, ParameterList, Blockdef SimpleLanguage (): Return-functie-vereisten: · Python


pypeg Gerelateerde software