Manpages

NOME

Yacc − un generatore di analizzatori sintattici (parser) per grammatiche di tipo LALR(1)

SINOSSI

yacc [ -dlrtv ] [ -b prefisso_file ] [ -p prefisso_simbolo ] nomefile

DESCRIZIONE

Yacc legge le specifiche di una grammatica dal file nomefile e genera per essa un analizzatore sintattico (parser) LR(1). Il parser consiste di un insieme di tabelle di parsing di tipo LALR(1) e di una routine di gestione scritta nel linguaggio di programmazione C. Yacc normalmente scrive le tabelle di parsing e la routine di gestione nel file y.tab.c.

Sono disponibili le seguenti opzioni:

-b prefisso_file

L’opzione -b assegna la stringa prefisso_file al prefisso aggiunto ai nomi dei file di output. Il prefisso predefinito è il carattere y.

-d

L’opzione -d causa la scrittura del file header y.tab.h.

-l

Se l’opzione -l non è specificata, yacc inserirà delle direttive #line nel codice generato. Le direttive #line mettono in relazione errori nel codice generato con il codice originale dell’utente. Se viene specificata l’opzione -l yacc non inserirà direttive #line. Le direttive #line specificate dall’utente saranno mantenute.

-p prefisso_simbolo

L’opzione -p cambia il prefisso aggiunto ai simboli generati da yacc nella stringa denotata da prefisso_simbolo. Il prefisso predefinito è la stringa yy.

-r

L’opzione -r richiede a yacc di produrre file separati per il codice e le tabelle. Il nome del file contenente il codice sarà y.code.c, quello del file contenente le tabelle y.tab.c.

-t

L’opzione -t cambia le direttive per il preprocessore generate da yacc in modo che nel codice compilato vengano incorporate frasi per il debug.

-v

L’opzione -v determina la scrittura nel file y.output di una descrizione intellegibile del parser generato.

Se è impostata la variabile di ambiente TMPDIR, la stringa denotata da TMPDIR sarà usata come nome della directory in cui verranno creati i file temporanei.

FILE

y.code.c
y.tab.c
y.tab.h
y.output
/tmp/yacc.aXXXXXX
/tmp/yacc.tXXXXXX
/tmp/yacc.uXXXXXX

DIAGNOSTICA

Se vi sono regole che non vengono mai ridotte, il numero di tali regole viene riportato sullo standard error. Se vi sono conflitti LALR(1), il numero di conflitti viene riportato sullo standard error.