Analysieren in Emacs Lisp

Ich schreibe einen Parser in Emacs Lisp. Es ist ein Parser für Textdateien, die so aussehen:

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

Der Schlüssel ist mir eigentlich egal (int, string, ...). Ich möchte den Wert. Für die obige Datei hat int also den Wert "1, 2, 3, ...", string "und dann, wenn" und text "Lorem ..." (ohne die Bindestriche).

Ich denke über zwei verschiedene Lösungen nach, aber ich weiß nicht, welche ich verwenden soll. Sollte ich:

Erstellen Sie einen einfachen Parser, der alle Zeilen durchläuft und für jede Zeile einen regulären Ausdruck angibt. Gruppieren Sie dann die gewünschten Teile.

einen anspruchsvolleren Parser mit einem Lexer und einem Parser machen?

Im Moment sind die Dateien recht einfach und ich denke, ich muss nicht so viel vorantreiben wie die zweite Option. Da diese Dateien jedoch möglicherweise etwas komplizierter werden, möchte ich die Erweiterung vereinfachen.

Wie würden Sie das lösen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage