Я пишу парсер в 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:
...
Меня не волнует ключ (int, string, ...). Я хочу
значение. Поэтому для указанного выше файла int имеет значение "1, 2, 3, ...", строка
«и, или, тогда, когда» и текст «Lorem ...» (исключая тире).
Я думаю о двух разных решениях, но не знаю, какое из них использовать. Должен ли я:
создать простой парсер, который перебирает все строки и для каждого
строка соответствует некоторому регулярному выражению, а затем группирует части, которые я хочу получить?
сделать более сложный парсер с лексером и парсером?
Прямо сейчас файлы довольно просты, и я думаю, мне не нужно делать
что-то заранее, как второй вариант. Но эти файлы могут получить
немного сложнее, поэтому я хочу облегчить его расширение.
Как бы вы решили это?