Python - análisis léxico y tokenización

Estoy buscando acelerar un poco mi proceso de descubrimiento aquí, ya que esta es mi primera aventura en el mundo del análisis léxico. Quizás este sea incluso el camino equivocado. Primero, describiré mi problema:

Tengo archivos de propiedades muy grandes (del orden de 1,000 propiedades), que cuando se destilan, en realidad son solo alrededor de 15 propiedades importantes y el resto se puede generar o rara vez cambiar.

Así por ejemplo:

general {
  name = myname
  ip = 127.0.0.1
}

component1 {
   key = value
   foo = bar
}

Este es el tipo de formato que quiero crear para simular algo como:

property.${general.name}blah.home.directory = /blah
property.${general.name}.ip = ${general.ip}
property.${component1}.ip = ${general.ip}
property.${component1}.foo = ${component1.foo}

dentro

property.mynameblah.home.directory = /blah
property.myname.ip = 127.0.0.1
property.component1.ip = 127.0.0.1
property.component1.foo = bar

El análisis léxico y la tokenización suena como mi mejor ruta, pero esta es una forma muy simple. Es una gramática simple, una sustitución simple y me gustaría asegurarme de que no traiga un mazo para clavar un clavo.

Podría crear mi propio lexer y tokenizer, o ANTlr es una posibilidad, pero no me gusta reinventar la rueda y ANTlr suena como una exageración.

No estoy familiarizado con las técnicas de compilación, por lo que los punteros en la dirección y el código correctos serían muy apreciados.

Nota: Puedo cambiar el formato de entrada.