Yacc
NAZWA
Yacc - generator analizatorów składni LALR(1)
SKŁADNIA
yacc [ -dlrtv ] [ -b przedrostek_pliku ] [ -p przedrostek_symbolu ]
nazwapliku
OPIS
Yacc czyta opis gramatyki z pliku nazwapliku i generuje dla niej anal-
izator 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ą kompila-
torowi C wiązanie błędów w generowanym kodzie z oryginal-
nym 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 gen-
erowanych przez yacc na łańcuch określony przez prze-
drostek_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.