Ho aiutato ad aumentare un linguaggio proprietario di vent'anni nella mia azienda. È un linguaggio ampio, completo di Turing. Traducendolo in un altro regime grammaticale (come Antlr) non è un'opzione (non posso decidere di farlo).Ci sono debugger di grammatica Yacc?
Per la maggior parte, l'estensione della grammatica è avvenuta senza intoppi. Ma una volta ogni tanto vado a prendere un ridurre-ridurre o shift-ridurre tale
- è difficile da eliminare
- a volte solo non ha senso (per il mio cervello debole)
Dopo aver guardato con molta attenzione i file y.output e i refactories della grammatica sperimentale, di solito ho ottenuto dove volevo andare. A volte ho dovuto scendere a compromessi insoddisfacenti.
Quindi, ci sono strumenti là fuori che possono risucchiare una grammatica yacc, che migliora la navigazione, sperimenta e consente il debug delle modifiche?
Se aggiungo una produzione, mi piacerebbe vedere più della "produzione atomica che viene utilizzata ovunque" (think identifier) "conflitti con la regola foo" (sì, ci sono più informazioni, s/r, r/r, che, ma penso che tu prenda la mia direzione). Sarebbe bello avere qualche accenno all'interazione oltre a mettere il mio cappuccio pensante e provare a immaginare uno stack di simboli e una macchina a stati.
Aggiornamento: Credo che dovrei chiarire. Usiamo Berkeley Yacc. Ho provato usando una versione recente di Bison. Per l'output, ho compilato la grammatica con --report = set di articoli.
Il mio obiettivo con questo post è quello di cercare esterni strumenti che potenziati le strutture grammaticali di debug che nave con Yacc. Oggi è doloroso con il set predefinito. Aiutami a trovare strumenti interattivi migliori, come quelli che puoi utilizzare con Antlr.
Non sono sicuro di cosa intendi. Con entrambi i nostri yacc, -d significa "genera un file di intestazione per le macro token". Ho appena aggiunto ulteriori informazioni sull'utilizzo dello switch --report = set di elementi. È questo il genere di cosa che intendi? Genera un file, y.output pieno di tutte le informazioni sulla transizione di stato. Lo sto usando, ma speravo in uno strumento interattivo più potente. –
Jerry ha ragione, i conflitti S/R non sono necessariamente bug. Quasi ogni vera grammatica ha un sacco di loro. – DigitalRoss