Análise no Emacs Lisp

Estou escrevendo um analisador no Emacs Lisp. É um analisador de arquivos de texto parecido com este:

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:
  ...

Eu realmente não me importo com a chave (int, string, ...). Eu quero o valor. Portanto, para o arquivo acima, int tem o valor "1, 2, 3, ...", string "e, ou, então, quando" e o texto "Lorem ..." (excluindo os traços).

Estou pensando em duas soluções diferentes, mas não sei qual delas usar. Eu devo:

criar um analisador simples que circule por todas as linhas e para cada linha corresponda a algum regex e, em seguida, agrupe as partes que eu quero?

fazer um analisador mais sofisticado com um lexer e um analisador?

No momento, os arquivos são bastante simples e acho que não preciso fazer algo tão avançado quanto a segunda opção. Mas esses arquivos podem ficar um pouco mais complicados, por isso quero facilitar a extensão.

Como você resolveria isso?

questionAnswers(3)

yourAnswerToTheQuestion