YACC(1)

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 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.