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