NAZWA¶
bison - generator parserów w wersji GNU (zastępuje program yacc)
SKŁADNIA¶
bison [
-b przedrostek-nazwy-pliku ] [
--file-prefix=przedrostek-nazwy-pliku ] [
-d ] [
--defines ] [
-k ] [
--token-table ] [
-l ] [
--no-lines ] [
-n ] [
--no-parser ] [
-o
plik-wyjściowy ] [
--output-file=plik-wyjściowy ] [
-p
przedrostek ] [
--name-prefix=przedrostek ] [
-r ] [
--raw ] [
-t ] [
--debug ] [
-v ] [
--verbose ] [
-V ] [
--version ] [
-y ] [
--yacc ] [
-h ] [
--help ] [
--fixed-output-files
] plik
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
bison jest generatorem parserów w stylu programu
yacc(1) i
powinien być zgodny z plikami wejściowymi stworzonym dla tego
programu.
Pliki wejściowe powinny mieć rozszerzenie
.y zgodnie z
konwencją programu
yacc. W przeciwieństwie do
plików tworzonych przez program
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
parse.y posłuży do stworzenia parsera
w pliku o nazwie
parse.tab.c, zamiast
y.tab.c, jak w programie
yacc.
Ten opis opcji rozpoznawanych przez program
bison został
zaadaptowany z rozdziału
Invocation pochodzącego z opisu
bison.texinfo, który powinien być traktowany jako
autorytatywne źródło informacji.
bison rozpoznaje zarówno tradycyjne, jednoliterowe opcje, jak i
łatwe do zapamiętania, długie nazwy opcji. Długie
nazwy opcji rozpoczynają się od
--, zamiast
-.
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
=.
OPCJE¶
- -b przedrostek-pliku
-
- --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: file-prefix.c.
- -d
-
- --defines
- Utwórz dodatkowy plik z definicjami makroinstrukcji dla nazw
symboli terminalnych zdefiniowanych w pliku gramatyki oraz z
definicją typu wartości semantycznej YYSTYPE, jak
również z deklaracjami zmiennych zewnętrznych.
Jeżeli plik z parserem nosi nazwę nazwa.c, to
plik z definicjami zostanie nazwany nazwa.h.
Ten plik jest niezbędny, jeżeli chcesz umieścić
definicję funkcji yylex w oddzielnym pliku
źródłowym, ponieważ funkcja yylex musi
mieć dostęp do kodów symboli terminalnych oraz do
zmiennej yylval.
- -r
-
- --raw
- Numery symboli terminalnych znajdujące się w pliku
nazwa .h 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).
- -k
-
- --token-table
- Ta opcja powoduje, że w pliku name.tab.c znajdzie
się lista symboli terminalnych posortowana pod względem
wartości symboli (nie nazw); jest to zdefiniowane w tablicy
yytname. W pliku znajdą się również
definicje stałych YYNTOKENS, YYNNTS, YYNRULES,
i YYNSTATES.
- -l
-
- --no-lines
- Nie umieszczaj w pliku z parserem poleceń #line dla
preprocesora. Normalnie 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.
- -n
-
- --no-parser
- Nie generuj kodu parsera; generuj tylko deklaracje. Utworzony plik
name .tab.c będzie zawierał
wyłącznie deklaracje stałych. Dodatkowo, w pliku
name .act znajdzie się wyrażenie switch
zawierające wszystkie przetłumaczone definicje akcji.
- -o plik-wyjściowy
-
- --output-file=plik-wyjściowy
- Określ nazwę pliku wyjściowego
zawierającego definicję parsera.
Nazwy pozostałych plików są tworzone z nazwy pliku
wejściowego zgodnie z zasadami opisanymi przy opcjach -v
i -d.
- -p przedrostek
-
- --name-prefix=przedrostek
- Przedrostek nazw zewnętrznych symboli używanych przez
parser. Zastępuje standardowy przedrostek yy. Symbole,
których nazwy ulegną zmianie, to yyparse,
yylex, yyerror, yylval, yychar, i
yydebug.
Na przykład, jeżeli użyjesz opcji -p c,
wówczas powyższe nazwy będą miały
postać cparse, clex, itd.
- -t
-
- --debug
- Umieść w pliku z parserem makrodefinicję
YYDEBUG aby skompilowany został kod pomagający
diagnozować problemy (debug code).
- -v
-
- --verbose
- Utwórz dodatkowy plik z dokładnym opisami stanów
parsera i akcji podejmowanych dla każdego kolejnego symbolu w tych
stanach.
Ten plik opisuje również wszystkie konflikty; zarówno
te rozwikłane przez następstwo operatorów, jak i te
nierozwikłane.
Nazwa pliku z opisem jest tworzona przez usunięcie .tab.c lub
.c z nazwy pliku zawierającego parser i dodanie
.output.
Na przykład, jeżeli plikiem wejściowym jest
foo.y, wówczas plik zawierający parser nosi
nazwę foo.tab.c. Plik z opisem stanów będzie
nazwany foo.output.
- -V
-
- --version
- Wypisz numer wersji i zakończ działanie programu
- -h
-
- --help
- Wypisz spis opcji i zakończ działanie programu.
- -y
-
- --yacc
-
- --fixed-output-files
- Ma to samo działanie, co opcja -o y.tab.c; Plik
zawierający parser nosi nazwę y.tab.c, a
pozostałe pliki y.output i y.tab.h. Ta opcja powoduje
naśladowanie konwencji programu yacc nazywania
plików. Poniższy skrypt może być
używany jako program yacc:
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
PLIKI¶
/usr/local/lib/bison.simple prosty parser
/usr/local/lib/bison.hairy skomplikowany parser
ZOBACZ TAKŻE¶
yacc(1)
Opis
Bison Reference Manual, zawarty w pliku
bison.texinfo w
dystrybucji źródłowej programu
bison
DIAGNOSTYKA¶
Wszystkiego można się łatwo domyślić.
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 bison
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.