Home Manuale (1) Polecenia Standardowe [man 1] bison - generator parserów w wersji GNU (zastępuje program yacc)
11 | 12 | 2019
bison - generator parserów w wersji GNU (zastępuje program yacc)
(1) Polecenia Standardowe [man 1]
Wpisany przez n/a   

bison

Section: User Commands (1)
Updated: local
Index Return to Main Contents


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

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:

 

bison -y $*

 

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

 


Index

NAZWA
SKŁADNIA
OPIS
OPCJE
PLIKI
ZOBACZ TAKŻE
DIAGNOSTYKA

This document was created by man2html, using the manual pages.

 
Linki sponsorowane

W celu realizacji usług i funkcji na witrynach internetowych ZUI "ELPRO" stosujemy pliki cookies. Korzystanie z witryny bez zmiany ustawień dotyczących plików cookies oznacza, że będą one zapisywane w urządzeniu wyświetlającym stronę internetową. Więcej szczegółów w Polityce plików cookies.

Akceptuję pliki cookies z tej witryny.