NAZWA¶
Yacc - generator analizatorów składni LALR(1)
SKŁADNIA¶
yacc [ -dlrtv ] [ -b przedrostek_pliku ] [ -p
przedrostek_symbolu ] nazwapliku
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
Yacc czyta opis gramatyki z pliku
nazwapliku i generuje dla niej
analizator składni LR(1). Analizatory składają się
z zestawu tabel analizy LALR(1) i procedury sterującej napisanej w
języku C.
Yacc zazwyczaj zapisuje tabele analizy i
funkcję sterującą do pliku
y.tab.c.
Dostępne są następujące opcje:
- -b przedrostek_pliku
- Opcja -b zmienia przedrostek, który jest doklejany do
wyjściowych nazw plików. Nowym przedrostkiem staje
się przedrostek_pliku. Domyślnym przedrostkiem jest
znak y.
- -d
- Opcja -d powoduje zapisanie pliku nagłówkowego
y.tab.h.
- -l
- Jeśli nie poda się opcji -l, yacc wstawi do
generowanego kodu dyrektywy #line. Dyrektywy te umożliwiają
kompilatorowi C wiązanie błędów w generowanym
kodzie z oryginalnym kodem użytkownika. Jeśli podana jest
opcja -l, yacc nie będzie wstawiał dyrektyw
#line. Dyrektywy #line, podawane przez użytkownika zostaną
zachowane.
- -p przedrostek_symbolu
- Opcja -p zmienia przedrostek doklejany do symboli generowanych
przez yacc na łańcuch określony przez
przedrostek_symbolu. Domyślnym przedrostkiem jest
łańcuch yy.
- -r
- Opcja -r powoduje, że yacc tworzy oddzielne pliki z
kodem i tabelami. Plik z kodem jest nazywany y.code.c, a plik z
tabelami y.tab.c.
- -t
- Opcja -t zmienia dyrektywy preprocesora, generowane przez
yacc tak, że do skompilowanego kodu zostaną
załączone instrukcje debuggujące.
- -v
- Opcja -v powoduje wyświetlenie czytelnego dla
człowieka opisu generowanego analizatora do pliku
y.output.
Jeśli ustawiona jest zmienna środowiskowa TMPDIR, to
łańcuch wskazany przez TMPDIR będzie używany jako
nazwa katalogu plików tymczasowych.
PLIKI¶
y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXX
/tmp/yacc.tXXXXXX
/tmp/yacc.uXXXXXX
DIAGNOSTYKA¶
Jeśli istnieją nieredukowalne reguły, to ich liczba jest
zgłaszana na stderr. Jeśli istnieją konflikty z LALR(1),
to ich liczba zgłaszana jest na stderr.
Powyższe tłumaczenie pochodzi z nieistniejącego już
Projektu Tłumaczenia Manuali i
może nie być
aktualne. W razie zauważenia różnic między
powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
funkcji, prosimy o zapoznanie się z oryginalną
(angielską) wersją strony podręcznika za pomocą
polecenia:
- man --locale=C 1 yacc
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.