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