.\" {PTM/LK/0.1/29-09-1998/"generator parserów"} .\" Tłumaczenie: 29-09-1998 Łukasz Kowalczyk (lukow@tempac.okwf.fuw.edu.pl) .\" $Id: bison.1,v 1.2 2002/08/16 10:47:44 robert Exp $ .TH bison 1 local .SH NAZWA bison \- generator parserów w wersji GNU (zastępuje program yacc) .SH SKŁADNIA .B bison [ .BI \-b " przedrostek-nazwy-pliku" ] [ .BI \-\-file-prefix= przedrostek-nazwy-pliku ] [ .B \-d ] [ .B \-\-defines ] [ .B \-k ] [ .B \-\-token-table ] [ .B \-l ] [ .B \-\-no-lines ] [ .B \-n ] [ .B \-\-no-parser ] [ .BI \-o " plik-wyjściowy" ] [ .BI \-\-output-file= plik-wyjściowy ] [ .BI \-p " przedrostek" ] [ .BI \-\-name-prefix= przedrostek ] [ .B \-r ] [ .B \-\-raw ] [ .B \-t ] [ .B \-\-debug ] [ .B \-v ] [ .B \-\-verbose ] [ .B \-V ] [ .B \-\-version ] [ .B \-y ] [ .B \-\-yacc ] [ .B \-h ] [ .B \-\-help ] [ .B \-\-fixed-output-files ] plik .SH OPIS \fI Uwaga! To tłumaczenie może być nieaktualne!\fP .PP .I bison jest generatorem parserów w stylu programu .IR yacc (1) i powinien być zgodny z plikami wejściowymi stworzonym dla tego programu. .PP Pliki wejściowe powinny mieć rozszerzenie .B .y zgodnie z konwencją programu .IR yacc . W przeciwieństwie do plików tworzonych przez program .IR yacc , pliki wyjściowe nie mają stałego przedrostka nazw, lecz używają przedrostka nazwy pliku wejściowego. Na przykład, plik z opisem gramatyki o nazwie .B parse.y posłuży do stworzenia parsera w pliku o nazwie .BR parse.tab.c , zamiast .BR y.tab.c , jak w programie .IR yacc . .PP Ten opis opcji rozpoznawanych przez program .I bison został zaadaptowany z rozdziału .B Invocation pochodzącego z opisu .BR bison.texinfo , który powinien być traktowany jako autorytatywne źródło informacji. .PP .I bison rozpoznaje zarówno tradycyjne, jednoliterowe opcje, jak i łatwe do zapamiętania, długie nazwy opcji. Długie nazwy opcji rozpoczynają się od .BR \-\- , zamiast .BR \- . Mogą być one skracane do takiej długości, aby nadal były unikalne. Jeżeli po długiej opcji musi nastepować jej parametr, musi on być połączony z nazwą opcji znakiem .BR = . .SS OPCJE .TP .BI \-b " przedrostek-pliku" .br .ns .TP .BI \-\-file-prefix= "przedrostek pliku" Określa przedrostek nazwy pliku stosowany do wszystkich plików wyjściowych. Nazwy są tworzone zgodnie z następującym wzorem: \fIfile-prefix\fB.c\fR. .TP .B \-d .br .ns .TP .B \-\-defines Utwórz dodatkowy plik z definicjami makroinstrukcji dla nazw symboli terminalnych zdefiniowanych w pliku gramatyki oraz z definicją typu wartości semantycznej .BR YYSTYPE , jak również z deklaracjami zmiennych zewnętrznych. .sp Jeżeli plik z parserem nosi nazwę \fInazwa\fB.c\fR, to plik z definicjami zostanie nazwany \fInazwa\fB.h\fR. .sp Ten plik jest niezbędny, jeżeli chcesz umieścić definicję funkcji .B yylex w oddzielnym pliku źródłowym, ponieważ funkcja .B yylex musi mieć dostęp do kodów symboli terminalnych oraz do zmiennej .BR yylval . .TP .B \-r .br .ns .TP .B \-\-raw Numery symboli terminalnych znajdujące się w pliku \fInazwa\fB.h\fR są zazwyczaj kompatybilne z programem Yacc. Jeżeli podana zostanie ta opcja, użyta zostanie numeracja charakterystyczna dla programu Bison. (numeracja programu Yacc rozpoczyna się od 257, z wyjątkiem symboli jednoznakowych; Bison numeruje wszystkie symbole po kolei poczynając od liczby 3). .TP .B \-k .br .ns .TP .B \-\-token-table Ta opcja powoduje, że w pliku \fIname\fB.tab.c\fR znajdzie się lista symboli terminalnych posortowana pod względem wartości symboli (nie nazw); jest to zdefiniowane w tablicy .IR yytname . W pliku znajdą się również definicje stałych .IR YYNTOKENS , .IR YYNNTS , .IR YYNRULES , i .IR YYNSTATES . .TP .B \-l .br .ns .TP .B \-\-no-lines Nie umieszczaj w pliku z parserem poleceń .B #line dla preprocesora. Normalnie .I bison umieszcza je w tym pliku, aby kompilator oraz debuggery wykazywały błędy w kontekście twojego pliku źródłowego z gramatyką. Ta opcja powoduje, że błędy będą wykazywane w kontekście pliku zawierającego parser, traktując go jak niezależny plik na równych prawach. .TP .B \-n .br .ns .TP .B \-\-no-parser Nie generuj kodu parsera; generuj tylko deklaracje. Utworzony plik \fIname\fB.tab.c\fR będzie zawierał wyłącznie deklaracje stałych. Dodatkowo, w pliku \fIname\fB.act\fR znajdzie się wyrażenie switch zawierające wszystkie przetłumaczone definicje akcji. .TP .BI \-o " plik-wyjściowy" .br .ns .TP .BI \-\-output-file= plik-wyjściowy Określ nazwę .I "pliku wyjściowego" zawierającego definicję parsera. .sp Nazwy pozostałych plików są tworzone z nazwy .I "pliku wejściowego" zgodnie z zasadami opisanymi przy opcjach .B \-v i .BR \-d . .TP .BI \-p " przedrostek" .br .ns .TP .BI \-\-name-prefix= przedrostek Przedrostek nazw zewnętrznych symboli używanych przez parser. Zastępuje standardowy przedrostek .BR yy . Symbole, których nazwy ulegną zmianie, to .BR yyparse , .BR yylex , .BR yyerror , .BR yylval , .BR yychar , i .BR yydebug . .sp Na przykład, jeżeli użyjesz opcji .BR "\-p c" , wówczas powyższe nazwy będą miały postać .BR cparse , .BR clex , itd. .TP .B \-t .br .ns .TP .B \-\-debug Umieść w pliku z parserem makrodefinicję .B YYDEBUG aby skompilowany został kod pomagający diagnozować problemy (debug code). .TP .B \-v .br .ns .TP .B \-\-verbose Utwórz dodatkowy plik z dokładnym opisami stanów parsera i akcji podejmowanych dla każdego kolejnego symbolu w tych stanach. .sp Ten plik opisuje również wszystkie konflikty; zarówno te rozwikłane przez następstwo operatorów, jak i te nierozwikłane. .sp Nazwa pliku z opisem jest tworzona przez usunięcie .B .tab.c lub .B .c z nazwy pliku zawierającego parser i dodanie .BR .output . .sp Na przykład, jeżeli plikiem wejściowym jest .BR foo.y , wówczas plik zawierający parser nosi nazwę .BR foo.tab.c . Plik z opisem stanów będzie nazwany .BR foo.output . .TP .B \-V .br .ns .TP .B \-\-version Wypisz numer wersji i zakończ działanie programu .TP .B \-h .br .ns .TP .B \-\-help Wypisz spis opcji i zakończ działanie programu. .TP .B \-y .br .ns .TP .B \-\-yacc .br .ns .TP .B \-\-fixed-output-files Ma to samo działanie, co opcja .BR "\-o y.tab.c" ; Plik zawierający parser nosi nazwę .BR y.tab.c , a pozostałe pliki .B y.output i .BR y.tab.h . Ta opcja powoduje naśladowanie konwencji programu .I yacc nazywania plików. Poniższy skrypt może być używany jako program .IR yacc : .sp .RS .ft B bison \-y $* .ft R .sp .RE .PP Długie nazwy opcji mogą być również poprzedzane przez `+' zamiast `\-\-', ze względu na kompatybilność z poprzednimi wersjami. W przyszłości ta możliwość ma być usunięta, ponieważ jest niekompatybilna ze standardem POSIX.2 .SH PLIKI /usr/local/lib/bison.simple prosty parser .br /usr/local/lib/bison.hairy skomplikowany parser .SH ZOBACZ TAKŻE .IR yacc (1) .br Opis .IR "Bison Reference Manual" , zawarty w pliku .B bison.texinfo w dystrybucji źródłowej programu .I bison .SH DIAGNOSTYKA Wszystkiego można się łatwo domyślić. .SH "INFORMACJE O TŁUMACZENIU" Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i \fImoże nie być aktualne\fR. 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: .IP man \-\-locale=C 1 bison .PP Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages\-pl/.