powrót do strony głównej >>
Lingwistyka matematyczna, analiza składniowa
Formalizm bezkontekstowych gramatyk generacyjnych Chomsky'ego
Copyright © 2004 Robert Nowotniak
Na tej stronie znajdziesz translator zbioru reguł produkcji dowolnej
bezkontekstowej i deterministycznej gramatyki, podanego w postaci metajęzyka
BNF, na struktury grafowe,
sterujące ogólnym analizatorem syntaktycznym. Możesz zobaczyć
wygenerowany graf, sterujący analizatorem ogólnym, a także sprawdzić
determinizm podanej gramatyki (problem pustego słowa, lewostronne
rekurencje).
Ściąga z BNF'u znajduje się na dole tej strony.
Jednostkami leksykalnymi są tu pojedyncze znaki.
Kilka przykładów:
Jeśli chcesz sprawdzić działanie dla gotowej gramatyki i zdania,
to są one wpisana poniżej. Możesz także wpisać własną gramatykę.
Kliknij tutaj, by wyczyścić poniższe pola.
Zbiór reguł produkcji, oczekiwany przez analizator, musi być prawidłowym
zdaniem, należącym do metajęzyka BNF, określonego następująco:
|
<Sigma> ::= <Gramatyka> [ '.' <NowaLinia> ]
<Gramatyka> ::= <Prod> <Reszta>
<Reszta> ::= [ <NowaLinia> ( <Gramatyka> | PUSTE ) ]
<Prod> ::= <W> "<" <Ident> ">" <W> "::=" <W> <Wyrazenie>
<Wyrazenie> ::= <Skladnik> { "|" <W> <Skladnik> }
<Skladnik> ::= <Czynnik> { <Czynnik> }
<Czynnik> ::= "<" <Ident> ">" <W> | <Lancuch> <W> |
<JedenZnak> <W> |
"(" <W> <Wyrazenie> <W> ")" <W> |
"[" <W> <Wyrazenie> <W> "]" <W> |
"{" <W> <Wyrazenie> <W> "}" <W> |
"PUSTE" <W>
<Ident> ::= <Literka> { <Literka> | <Cyfra> }
<Lancuch> ::= '"' { <NieCudzyslow> } '"'
<JedenZnak> ::= ''' <DowolnyZnak> '''
<NieCudzyslow> ::= znak o kodzie z przedzialu 1 - 33 lub 35 - 255
<Literka> ::= "a" | ..... | "z" | "A" | ..... | "Z"
<NowaLinia> ::= Znak nowej linii
<Cyfra> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
<DowolnyZnak> ::= znak o kodzie z przedzialu 1 - 255
<SPC> ::= ' '
<W> ::= { <SPC> }
|
|
Jeżeli chcesz się dowiedzieć, jak działa analizator i ta strona, to tutaj możesz
pobrać cały kod źródłowy (język Ada95 i PHP):
ling.tgz
Rozmiar: 83.21 KB
Suma kontrolna: ae8f62569d24412fd9e929db878b0af0
Copyright ©
Robert Nowotniak
3 stycznia 2004