BISON
Section: User Commands (1)
Updated: local
Index
Return to Main Contents
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:
-
bison -y "$@"
VEDERE ANCHE
yacc(1)
Il
Bison Reference Manual,
incluso come file
bison.texinfo
nella distribuzione sorgente di
bison
DIAGNOSTICA
Autoesplicativa.
Index
- NOME
-
- SINTASSI
-
- DESCRIZIONE
-
- OPZIONI
-
- VEDERE ANCHE
-
- DIAGNOSTICA
-
This document was created by
man2html,
using the manual pages.
Time: 23:03:51 GMT, June 17, 2008