<  o  >

11.1.1  Uso dell'analizzatore sintattico e del convertitore HTML

L'analizzatore sintattico non è altro che la prima parte del programma di traduzione in HTML di un'edizione Mauro-TEX. È costituito da un programma scritto in linguaggio ANSI C, generato utilizzando il generatore di compilatori Bison ed il generatore di analizzatori lessicali Flex, e compilato utilizzando il compilatore GCC. Tutti questi strumenti sono liberamente disponibili (fanno tutti parte delle distribuzioni standard di Linux) e possono essere trovati all'indirizzo: http://www.gnu.org.

Per utilizzare l'analizzatore sintattico, bisogna installare il programma, che si chiama mcheck e che è disponibile in versione già compilata per Linux, Windows e MacOS (non è necessario installare anche tutti gli strumenti citati sopra), o in versione sorgente, sul sito di Maurolico (http://elabor.homelinux.org/mtex) . Sotto Linux, se si usa una shell di tipo bash, basta mettere il programma in una delle directory indicate nella variabile d'ambiente PATH; sotto Windows o MacOS, invece, si può utilizzare una cartella qualsiasi (eventualmente aggiungendo dei collegamenti da altre cartelle, se è comodo).

Una volta installato il programma, per eseguirlo basta dare il comando mchech <nome file> (sotto Windows e MacOS, bisogna fare un ``doppio click'' o un ``click'', dipende dalle impostazioni, sull'icona del programma o su quella un collegamento ad esso, e, alla richiesta del programma, inserire il nome del file), dove il nome del file NON deve contenere l'estensione (.tex). A questo punto, il programma stampa una riga di saluto, la lista degli errori o delle situazioni ``strane'' che ha trovato, ed una riga di commiato.

Se siete stati (molto) bravi, le righe di errore o avvertimento mancano del tutto e potete benissimo passare alle fasi successive del vostro lavoro. Siccome però succede spesso di commettere qualche svista, probabilmente, avrete anche qualche riga di errore; ciascuna di queste righe inizia col nome del file che è stato analizzato, seguito dal numero della riga nella quale è stato rilevato l'errore e da un messaggio di spiegazione (esistono editor che possono essere istruiti in modo da posizionarsi automaticamente sul punto indicato del file, a partire da messaggi di questo tipo).

C'è un'avvertenza importante per chi usa l'analizzatore sintattico: l'analizzatore sintattico è un po' più ``cattivo'' del LATEX e segnala errori anche dove quest'ultimo compila senza errori e produce una stampa impeccabile; questo è in generale dovuto all'utilizzazione di sintassi leggermente diverse da quelle specificate in questo manuale e che il LATEX ammette, ma che rendono molto più difficile rintracciare gli errori veri. La nostra scelta è stata, in questi casi, di essere un pochino più ``pedanti'', ma di dare un aiuto concreto nel rintracciare e correggere gli errori.

Anche se, in alcuni casi, ci sono dei messaggi di avvertimento che non sembrano avere alcuna implicazione pratica, vi consigliamo ``caldamente'' di cercare di eliminarli dai vostri sorgenti Mauro-TEX. I benefici di questo piccolo sforzo sono tutti per voi: in primo luogo, togliere di mezzo i messaggi poco significativi è un modo di individuare con ragionevole certezza quelli che, invece, significativi sono; in secondo luogo, l'analizzatore sintattico è la prima parte di tutta la catena di programmi che permettono l'analisi dell'edizione, come il programma che estrae i testimoni, quello che compila la lista delle varianti, quelli che permetteranno di effettuare ricerche per soggetto, ... eccetera (senza contare il programma di traduzione in HTML): se esso ha delle incertezze, queste non possono che riflettersi negativamente su tutte queste operazioni, che costituiscono parte non secondaria di avere un'edizione elettronica.

A proposito del traduttore HTML, il cui nome è m2hv, il suo uso è assolutamente identico a quello dell'analizzatore sintattico, che ne costituisce parte integrante (in effetti, se si vuole, si può benissimo utilizzare il traduttore HTML come analizzatore sintattico, tanto produce esattamente lo stesso output, oltre ai file HTML).



<  o  >