NOME¶
bison - Generatore GNU di analizzatore sintattico (sostituto di yacc)
SINTASSI¶
bison [
-b file-prefix ] [
--file-prefix=file-prefix ] [
-d ] [
--defines=defines-file ] [
-g ] [
--graph=graph-file ] [
-k ] [
--token-table ] [
-l ] [
--no-lines ] [
-n ] [
--no-parser ] [
-o outfile ] [
--output-file=outfile ] [
-p prefix ] [
--name-prefix=prefix ] [
-t ]
[
--debug ] [
-v ] [
--verbose ] [
-V ] [
--version ] [
-y ] [
--yacc ] [
-h ] [
--help ] [
--fixed-output-files ] file
yacc [
opzioni e operandi similari ]
DESCRIZIONE¶
Bison è un generatore di analizzatore sintattico nello stile di
yacc(1). Può essere retrocompatibile con file di input disegnati
per
yacc.
I file di input possono seguire la convenzione di
yacc di terminare con
.y. Diversamente da
yacc, i file generati non hanno nomi fissi,
ma usano invece il prefisso del file di input. Inoltre, se c'è la
necessità di inserire codice
C++ nel file di input, si può
terminare il nome con un'estensione in stile C++ (.ypp o .y++), e bison
seguirà la propria estensione per nominare il file di output (.cpp o
.c++). Per esempio, un file di descrizione grammaticale chiamato
parse.yxx produrrà l'analizzatore generato in un file chiamato
parse.tab.cxx, invece di quello usato da
yacc y.tab.c o
dalle vecchie versioni di
Bison parse.tab.c.
Questa descrizione delle opzioni che può essere data a
bison è
adattata dal nodo
Invocation nel manuale
bison.texinfo, che
può essere considerato autorevole.
Bison supporta entrambe le opzioni tradizionali a singola lettera e nomi
mnemonici di opzioni lunghe. I nomi di opzioni lunghe sono indicati con
-- invece che
-. Le abbreviazioni per nomi di opzioni sono
permesse a patto che siano uniche. Quando un'opzione lunga prende un
argomento, come
--file-prefix, connettere il nome di opzione e
l'argomento con
=.
OPZIONI¶
- -b file-prefix
-
- --file-prefix=file-prefix
- Specifica un prefisso da usare per tutti i nomi dei file di
output di bison. I nomi sono scelti come se il file di input si
chiamasse file-prefix.c.
- -d
-
Scrive un file di output extra contenente definizioni macro per i nomi di
tipo token definiti nel tipo di valore di grammatica e semantica
YYSTYPE, oltre ad alcune dichiarazioni di variabili esterne.
Se il file di output dell'analizzatore è chiamato name.c
allora questo file è chiamato name.h.
Questo file di output è essenziale se si desidera mettere la
definizione di yylex in un file sorgente separato, poiché
yylex deve poter fare riferimento ai codici di tipo token e alla
variabile yylval.
- --defines=defines-file
- Il comportamento di --defines è lo stesso
dell'opzione -d La sola differenza è che ha un argomento
opzionale che è il nome del nome del file di output.
- -g
-
Emette una definizione VCG dell'autome grammaticale LALR(1) calcolata da
Bison. Se il file grammaticale è foo.y , il file di output VCG
sarà foo.vcg.
- --graph=graph-file
- Il comportamento di --graph è lo stesso
dell'opzione -g è il nome del file di output graph.
- -k
-
- --token-table
- Questa opzione fa sì che il nome.tab.c
di output includa un elenco dei nomi token ordinati secondo i loro numeri
token; questo è definito nell'array yytname. Sono generate
anche #definizioni per YYNTOKENS, YYNNTS, YYNRULES, e
YYNSTATES.
- -l
-
- --no-lines
- Non mette alcuna #linea dei comandi del
preprocessore nel file dell'analizzatore sintattico. Normalmente
bison li mette nel file dell'analizzatore in modo tale che il
compilatore C e i debugger associeranno gli errori al rpoprio file
sorgente, il file grammaticale. questa opzione fa sì che essi
associno gli errori con il file analizzatore, trattandolo come un file
sorgente indipendente in sè stesso.
- -n
-
- --no-parser
- Non genera il codice analizzatore nell'output; genera solo
dichiarazioni. Il file generato con nome.tab.c avrà
solo dichiarazioni di costanti. In aggiunta è generato un file di
nome.act contenente una dichiarazione contenente tutte le
azioni tradotte.
- -o outfile
-
- --output-file=outfile
- Specifica il nome outfile per il file analizzatore.
Gli altri nomi di file di output sono costruiti da outfile come
descritto nelle opzioni -v e -d
- -p prefix
-
- --name-prefix=prefix
- Rinomina i somboli esterni usati nell'analizzatore in modo
che essi inizino con prefix invece che yy. L'elenco preciso
dei simboli rinominati è yyparse, yylex,
yyerror, yylval, yychar, e yydebug.
Per esempio, se si usa -p c, i nomi divengono cparse,
clex, e così via.
- -t
-
- --debug
- Nel file analizzatore definisce la macro YYDEBUG a 1
se non è già definita, in modo che vengano compilati i servizi
di debugging.
- -v
-
- --verbose
- Scrive un file di output extra contenente descrizioni
prolisse degli stati dell'analizzatore e cosa è fatto per ciascun
tipo di token look-ahead in quello stato.
Questo file descrive anche tutti i conflitti, sia quelli risolti dalla
precedenza degli operatori sia quelli irrisolti.
Il nome dei file è fatto rimuovendo .tab.c o .c dal nome
del file di output dell'analizzatore, e aggiungendo invece .output
Tuttavia, se il file di input è foo.y, allora il file
analizzatore parser è chiamato foo.tab.c per default. Come
conseguenza, il file di output prolisso è chiamato
foo.output.
- -V
-
- --version
- Stampa il numero di versione di bison ed esce.
- -h
-
- --help
- Stampa un sommario delle opzioni di bison ed
esce.
- -y
-
- --yacc
-
- --fixed-output-files
- Equivalente a -o y.tab.c; il file analizzatore di
output è chiamato y.tab.c, e gli altri output sono chiamati
y.output e y.tab.h. Lo scopo di questa opzione è di
imitare le convenzioni di yacc sul nome dei file di output.
Pertanto il seguente script di shell può essere un sostituto di
yacc ed è spesso installato come yacc:
VEDERE ANCHE¶
yacc(1)
Il
Bison Reference Manual, incluso come file
bison.texinfo nella
distribuzione sorgente di
bison
DIAGNOSTICA¶
Autoesplicativa.