To jest polecenie yaccplan9, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
yacc - kolejny kompilator-kompilator
STRESZCZENIE
Yacc [ opcja ... ] gramatyka
OPIS
Jak konwertuje bezkontekstowy kod gramatyczny i tłumaczeniowy na zestaw tabel dla pliku
LR(1) parser i tłumacz. Gramatyka może być niejednoznaczna; określone zasady pierwszeństwa
używane do przełamywania niejasności.
Plik wyjściowy, y.tab.c, musi zostać skompilowany przez kompilator C, aby utworzyć program This
program musi być załadowany funkcją analizatora leksykalnego, yylex (pustka) (często generowane przez
lex(1)), z główny (wew argc, zwęglać *argv[]) programem i procedurą obsługi błędów,
yyerror(znak*).
Dostępne opcje:
-o wydajność Bezpośrednie wyjście do określonego pliku zamiast y.tab.c.
-Dn Utwórz plik debuguj, zawierający komunikaty diagnostyczne. Aby je włączyć
parser, skompiluj go z symbolem preprocesora yydebug zdefiniowany. Ilość
wyjście diagnostyczne z parsera jest regulowane przez wartość n. Wartość 0 raportuje
błędy; 1 zgłasza obniżki; wyższe wartości (do 4) zawierają więcej informacji
o przejściach stanowych.
-v Utwórz plik y.wyjście, zawierający opis tabel analizowania i
konflikty wynikające z niejasności gramatycznych.
-d Utwórz plik y.tab.h, zawierający #definiować wypowiedzi, które kojarzą Yacc-przydzielony
„kody tokenów” z „nazwami tokenów” zadeklarowanymi przez użytkownika. Dołącz go do plików źródłowych
inne niż y.tab.c aby dać dostęp do kodów tokenów.
-s trzon Zmień prefiks nazw plików y.tab.c, y.tab.h, debuguj, y.wyjście do
trzon.
-S Napisz parser używający Stdio zamiast procedury w libc.
-l Wyłącz dyrektywy #line w wygenerowanym parserze.
-a Wygeneruj parser, który pobiera argument typu Yyarg i przekazuje ten argument
do każdego wywołania funkcji leksykalnej, yylex. Yyarg zawiera instancje
stan i pojedynczy element widoczny dla użytkownika, arg, typu void*.
Specyfikacja Yacc sama w sobie jest zasadniczo taka sama jak wersja UNIX opisana w
referencje wymienione poniżej. Poza tym -D tej opcji, główne istotne różnice to:
Interfejs do środowiska C jest domyślnie poprzez zamiast
; -S opcja odwraca tę sytuację.
Parser akceptuje tekst wejściowy UTF (patrz utf(7)), co ma kilka skutków.
Po pierwsze, wartość zwracana przez yylex() nie pasuje już do A krótki; po drugie, początek
wartość dla terminali niebędących terminalami wynosi teraz 0xE000 zamiast 257.
Wygenerowany parser może być rekurencyjny: akcje mogą wywoływać parse, na przykład do
wdrożyć coś w rodzaju #zawierać wypowiedź w tłumaczu.
Wreszcie, niektóre nieudokumentowane wewnętrzne działanie parsera zostały zmienione, co
może mieć wpływ na programy, które wiedzą za dużo o jego strukturze.
Korzystaj z yaccplan9 online, korzystając z usług onworks.net