pyPEG

Software kuvakaappaus:
pyPEG
Ohjelmiston tiedot:
Versio: 2.4.1
Lähetyksen päivämäärä: 14 Apr 15
Kehittäjä: Volker Birk
Lupa: Vapaa
Suosio: 108

Rating: 1.3/5 (Total Votes: 3)

Python on mukava scripting kieli. Se jopa antaa sinulle pääsyn se oma parseri ja kääntäjä. Se myös antaa sinulle pääsyn eri muita jäsentimiä erityisiin tarkoituksiin, kuten XML ja string malleja.
Mutta joskus voit olla oma parseri. Tämä on mitä pyPEG varten.
Saat nopean näkemys siitä, mitä tapahtuu, lue tämä artikkeli siitä, miten jäsentää mielivaltaista kieltä XML pyPEG blogiin.
Mikä on PEG?
PEG tarkoittaa jäsennys Expression Kielioppi. Se on jotain, kuten ajatus säännöllisiä lausekkeita varten yhteydessä kielten; hyvin selkeä selitys löydät Wikipedian artikkeli PEG.
Kun PEG voit kuvaavat samaa kieltä kuin kanssa BNF (ja he jopa samanlaisia).
Mikä on Parser-tulkki?
Yhteinen jäsentimiä eivät käytä PEG ja ylhäältä alas jäsentämiseen, mutta LR (n) tai LL (n) ja alhaalta ylös jäsentämiseen. Tämä johtaa ajatukseen täytäntöönpanoa parseri generaattorit.
Koska LR (n) tai LL (n) jäsentimet sinun täytyy laskea ulos DFA ensimmäinen, yleensä annat parseri generaattorin tehdä tämän sinulle. Tuloksena on jäsennin toteutus oman BNF kielioppi, joka oli panos. Sitä voisi kutsua parseri generaattori kääntäjä BNF ja parseri täytäntöönpanoa.
Parser-tulkki ei toimi tulkkina sen sijaan, että tällaisten kääntäjä. Vain antaa kielioppi syötteenä, ja se jäsentää kuvattu kielen pois tekstistä. Ei tule ohjelmaa syntyy.
käyttäminen pyPEG
Tämä tarkoittaa: käyttäen pyPEG on erittäin helppoa;-) Jos tiedät säännöllisiä lausekkeita jo, opit käyttämään pyPEG nopeasti.
Pieni näyte
Esimerkiksi: ajattele yksinkertaista kieltä kuten tämä:
toiminto FAK (n) {
& Nbsp; jos (n == 0) {// 0! on 1 määritelmän
& Nbsp; return 1;
& Nbsp;} else {
& Nbsp; paluu n * fak (n - 1);
& Nbsp;};
}
PyPEG kyseiselle kielelle näyttää seuraava koodi (katso myös mallikomentosarja):
def kommentti (): paluu [re.compile (r "//.*"), re.compile ("/*.*?*/", re.S)]
def kirjaimellinen (): paluu re.compile (r'd * .d * | d + | ". *?" ')
def symboli (): paluu re.compile (r "w +")
def operaattori (): paluu re.compile (r "+ | - | * | / | ==")
def toiminta (): paluu symboli, operaattori, [kirjaimellinen, functioncall]
def ilmaus (): paluu [kirjaimellinen, toiminta, functioncall]
def expressionlist (): palauttaa ilme, -1, ("", ilmaus)
def returnstatement (): paluu hakusana ("palaa"), ilmaisu
def ifstatement (): paluu hakusana ("jos"), "(", ilmaus ")", block, hakusana ("muu"), block
def lausunto (): paluu [ifstatement, returnstatement], ";"
def lohko (): paluu "{", -2, lausuma, "}"
def parameterlist (): return "(", symboli, -1, ("", symboli), ")"
def functioncall (): palauttaa symboli, "(", expressionlist, ")"
def toiminto (): paluu hakusana ("toiminto"), symboli, parameterlist, lohko
def simpleLanguage (): paluu toiminto

Mitä uutta tässä julkaisussa:

  • Tämä on siivous julkaisu. Koodi jäsentää () ja säveltää () on vahvistettu.

Mitä uutta versiossa 1.4:

  • Tämä versio korjaa joitakin bugeja kanssa packrat jäsentämiseen.

Mitä uutta versiossa 1.3:

  • vaihtaminen monikon varten nimet Pyast tunnuksella (luettelo ) luokka, joka on melko yhteensopiva, mutta tukee kuvaavampi koodin kääntäjä backends, too.

Mitä uutta versiossa 1.2:

  • Bugs kanssa Unicode virheiden käsittelyä vahvistettu.

Mitä uutta versio 1.1:

  • Unicode-tuki lisättiin.

Mitä uutta versiossa 0,46:

  • pyPEG.print_trace True.
  • Jalostus pyPEG Python 3.x nyt toimii saumattomasti käyttäen 2to3
  • kieliopin sääntöjä, joita sovelletaan voidaan mahdollisesti jäljittää asettamalla
  • pyPEG syöttävät tätä jäljittää stderr.

Mitä uutta versiossa 0,45:

  • Bugikorjauksia.

Mitä uutta versiossa 0.44:

  • pyPEG nyt koristettu Pyast objekti lähdetiedoston nimi ja linja numero.

Vaatimukset :

  • Python

Vastaavia ohjelmistoja

JBrownie
JBrownie

3 Jun 15

pkg-config
pkg-config

18 Feb 15

make utilities
make utilities

3 Jun 15

GNU Octave
GNU Octave

22 Jun 18

Muu ohjelmistojen kehittäjä Volker Birk

YML
YML

11 May 15

Kommentit pyPEG

Kommentteja ei löytynyt
Lisää kommentti
Ota kuvia!