Questo è il comando yaccplan9 che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
yacc - ancora un altro compilatore-compilatore
SINOSSI
sì, sì [ opzione ... ] grammatica
DESCRIZIONE
Yacc converte una grammatica e un codice di traduzione senza contesto in un insieme di tabelle per
LR(1) parser e traduttore. La grammatica può essere ambigua; le regole di precedenza specificate sono
usato per rompere le ambiguità.
Il file di output, y.tab.c, deve essere compilato dal compilatore C per produrre un programma Questo
programma deve essere caricato con una funzione di analizzatore lessicale, yylex (vuoto) (spesso generato da
lex(1)), con a principale(int argc, serbatoio *argv[]) programma e con una routine di gestione degli errori,
errore(carattere*).
Le opzioni sono
-o produzione Output diretto al file specificato invece di y.tab.c.
-Dn Crea file y.debug, contenente messaggi di diagnostica. Per incorporarli in
il parser, compilalo con il simbolo del preprocessore yydebug definito. La quantità di
l'uscita diagnostica dal parser è regolata dal valore n. Il valore 0 riporta
errori; 1 riporta riduzioni; valori più alti (fino a 4) includono più informazioni
sulle transizioni di stato.
-v Crea file y.uscita, contenente una descrizione delle tabelle di parsing e di
conflitti derivanti da ambiguità nella grammatica.
-d Crea file y.tab.h, contenente #define affermazioni che associano sì, sì-assegnato
"codici token" con "nomi token" dichiarati dall'utente. Includilo nei file sorgente
diverso y.tab.c per dare accesso ai codici token.
-s stelo Cambia il prefisso dei nomi dei file y.tab.c, y.tab.h, y.debuge y.uscita a
stelo.
-S Scrivi un parser che usi Stdio invece di stampare routine in libc.
-l Disabilita le direttive #line nel parser generato.
-a Genera un parser che accetta un argomento di tipo Yyarg e passa questo argomento
ad ogni invocazione della funzione lexer, yylex. Yyarg contiene per istanza
state e un singolo membro visibile dall'utente, arg, di tipo void*.
La specifica di sì, sì stesso è essenzialmente lo stesso della versione UNIX descritta in
i riferimenti di seguito indicati. oltre al -D opzione, le principali differenze rilevanti sono:
L'interfaccia per l'ambiente C è per impostazione predefinita tramite anziché
; il -S opzione inverte questo.
Il parser accetta il testo di input UTF (vedi utf(7)), che ha un paio di effetti.
Innanzitutto, il valore restituito di yilex() non si adatta più a corto; secondo, l'inizio
il valore per i non terminali ora è 0xE000 anziché 257.
Il parser generato può essere ricorsivo: le azioni possono chiamare parse, ad esempio a
attuare una sorta di #includere dichiarazione in un interprete.
Infine, sono stati modificati alcuni meccanismi interni non documentati del parser, il che
può influenzare i programmi che conoscono troppo la sua struttura.
Usa yaccplan9 online utilizzando i servizi onworks.net