pyPEG

Screenshot Software:
pyPEG
Szczegóły programowe:
Wersja: 2.4.1
Filmu: 14 Apr 15
Wywoływacz: Volker Birk
Licencja: Wolny
Popularność: 29

Rating: 1.5/5 (Total Votes: 2)

Python jest językiem skryptowym miła. To nawet daje dostęp do własnej parsera i kompilatora. To również daje dostęp do różnych innych analizatorów do celów specjalnych, takich jak szablony XML i smyczkowych.
Ale czasami może chcesz mieć swój własny parser. To jest to, co jest pyPEG dla.
Aby uzyskać szybki pogląd na to, co się dzieje, przeczytaj ten artykuł na jak analizować dowolny język XML z pyPEG na moim blogu.
Co to jest PEG?
PEG oznacza wypowiedzi analizy gramatyki. To coś, co podoba mi się pomysł z wyrażeń regularnych do kontekstu wolnych językach; bardzo jasne wyjaśnienie znajdziesz w Wikipedii o PEG.
Z PEG można opisać te same języki jak z BNF (i są nawet podobne).
Co to jest parser-tłumacza?
Wspólne parser nie używasz PEG i odgórnie analizowania, ale LR (n) i LL (n) i oddolne analizy. Powoduje to, że pomysł wykonania generatory parser.
Ponieważ z LR (n) i LL (n) parserami trzeba obliczyć się do DFA pierwsze, zwykle pozwalasz parser generator zrobi to za Ciebie. Wynik jest wdrożenie parser dla gramatyki BNF, co było wejście. Można zadzwonić parser generator kompilatora z BNF do realizacji parsera.
Parser-tłumacza działa jako tłumacz, a nie jest taki kompilator. Wystarczy podać swoje gramatyki jako wejścia, i to analizuje opisane język z tekstem. Nie będzie Program generowane.
Korzystanie pyPEG
Oznacza to, że: za pomocą pyPEG jest bardzo proste;-) Jeśli znasz już wyrażenia regularne, nauczysz się szybko użyć pyPEG.
Mała próbka
Przykład: myślę o prostym językiem jak ten:
Funkcja fak (n) {
& Nbsp; if (n == 0) {// 0! jest 1 z definicji
& Nbsp; return 1;
& Nbsp;} else {
& Nbsp; return n * fak (n - 1);
& Nbsp;};
}
PyPEG dla tego języka wygląda następujący kod (patrz także przykładowy skrypt):
Komentarz def (): powrót [re.compile (r "//.*"), re.compile ("/*.*?*/", re.S)]
def dosłowne (): re.compile powrotu (".? *" r'd * .d * | | d + ")
Symbol def (): powrót re.compile (r "w +")
Operator def (): powrót re.compile (r "+ | - | * | / | ==")
Operacja def (): Symbol powrotu, operator, [dosłowne, FunctionCall]
Wyrażenie def (): powrót [dosłowne, praca, FunctionCall]
expressionlist def (): return wyrażenie, -1, ("", wyrażenie)
returnstatement def (): Hasło powrotu ("powrót"), ekspresja
ifstatement def (): Hasło powrotu ("jeśli"), "(", wyrażenie, ")", blok, słów kluczowych ("inni"), blok
Oświadczenie def (): powrót [ifstatement, returnstatement] ";"
Blok def (): powrót "{", -2, stwierdzenie, "}"
parameterlist def (): powrót "(", symbolem, -1, ("", symbolem), ")"
FunctionCall def (): powrót symbol "(" expressionlist ")"
Funkcja def (): Hasło powrotu ("Funkcja"), symbol, parameterlist, blok
def simpleLanguage (): Funkcja powrotu

Co nowego w tym wydaniu:

  • To jest wydanie porządki. Kod parse () i komponować () została ustalona.

Co nowego w wersji 1.4.

  • Ta wersja naprawia kilka błędów z packrat parsowania

Co nowego w wersji 1.3:

  • Wymiana krotki dla nazw w Pyast symbolem (lista ) Klasa, która jest w pełni kompatybilny, ale wspiera kodu bardziej opisowy w backendów kompilatora, też.

Co nowego w wersji 1.2.

  • Błędy z Unicode w obsługę błędów zostały ustalone

Co nowego w wersji 1.1.

  • Obsługa Unicode dodano

Co nowego w wersji 0.46:.

  • pyPEG.print_trace True
  • Konwersja do Python 3.x pyPEG teraz działa płynnie przy użyciu 2to3
  • zasady gramatyczne, które są stosowane mogą być opcjonalnie śledzone przez ustawienie
  • pyPEG wyświetli ten ślad na stderr.

Co nowego w wersji 0.45:.

  • Poprawki

Co nowego w wersji 0.44:

  • pyPEG teraz zdobi każdy obiekt Pyast z nazwy pliku źródłowego i linii Numer.

Wymagania :

  • Python

Podobne oprogramowanie

Gambas 3
Gambas 3

22 Jun 18

Flex
Flex

12 Jul 17

CmdOption
CmdOption

28 Sep 15

Inne programy z deweloperem Volker Birk

YML
YML

11 May 15

Komentarze do pyPEG

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!