Escribir gramáticas en LaTeX (latex-bnf)

Para la asignatura de Programación IV (Teoría de Lenguajes y Compilación) me ha tocado implementar un intérprete, al final me he decidido a utilizar ANTLR3. Al final como tengo que entregar un informe sobre la tarea, y como para todos mis informes de la Universidad utilizo LaTeX, pues me he puesto a buscar como escribir gramáticas en un documento de LaTeX, me encontré varios paquetes (simple búsqueda por grammar en la CTAN) sin embargo me decanté por latex-bnf la cuestión fue que cuando lo fuí a utilizar en mi Sistema (MacOS X 10.5.5 + MacTex 2007 + TextMate) y guiándome por el documento de ejemplo, me encuentro que daba error al tratar de utilizar pdflatex como generador del documento. 

La cuestión es que al parecer el paquete tiene su tiempito ya y en la documentación te especifican que para utilizarlo debes poner la línea:

\documentstyle[bnf]{article}

Sin embargo, cuando utilizamos esta línea en por ejemplo un artículo que estemos escribiendo, obtenemos el siguiente error:

Latex Error: ./untitled 2.tex:10 LaTeX Error: LaTeX2e command \usepackage in LaTeX 2.09 document.

En mi caso la solución que encontré luego de “trastear” un tiempo, fue que con un simple:

\documentclass{article}
\usepackage{bnf}

Teniendo el fichero: bnf.sty en el mismo directorio del documento que estemos redactando, o en su variante teniendo el paquete latex-bnf instalado correctamente en nuestro sistema LaTeX.

Advertisements

2 thoughts on “Escribir gramáticas en LaTeX (latex-bnf)

    1. Sip, realmente es una “obra de arte” y una de las características que posee es precisamente la variedad de lenguajes que soporta (dentro de ellos Python, uno que utilizo bastante). Además que el IDE que proveen facilita sobremanera la escritura de la gramática que implementaremos.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s