Estoy escribiendo un analizador en Emacs Lisp. Es un programa de análisis de archivos de texto con este aspecto:Análisis en Emacs Lisp
rule:
int: 1, 2, 3, ...
string: and, or, then, when
text:
----------
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque
in tellus. In pharetra consequat augue. In congue. Curabitur
pellentesque iaculis eros. Proin magna odio, posuere sed, commodo nec,
varius nec, tortor.
----------
more: ...
rule:
...
Realmente no me importa acerca de la clave (int, cadena, ...). Quiero el valor . Por lo tanto, para el archivo anterior int tiene el valor "1, 2, 3, ...", cadena "y, o, luego, cuando" y el texto "Lorem ..." (excluyendo los guiones).
Estoy pensando en dos soluciones diferentes, pero no sé cuál utilizar. Debería:
crear un analizador simple que recorre todas las líneas y para cada línea de partidos con un poco de expresiones regulares y luego agrupar las partes que quiero?
¿hace un analizador más sofisticado con un lexer y un analizador?
En este momento los archivos son muy simples y supongo que no necesito hacer algo tan adelantado como la segunda opción. Pero estos archivos pueden obtener un un poco más complicado, por lo que quiero que sea fácil de ampliar.
¿Cómo solucionaría esto?
Parece que estás reinventando YAML. – myfreeweb
No estoy inventando nada. Son archivos de registro de estaciones de viento. Aunque se parecen un poco a YAML. – rejeep