Python - лексический анализ и токенизация
Я очень хочу ускорить процесс моего открытия здесь, так как это мое первое путешествие в мир лексического анализа. Может быть, это даже неправильный путь. Сначала я опишу мою проблему:
У меня есть очень большие файлы свойств (порядка 1000 свойств), которые, будучи дистиллированными, на самом деле представляют собой всего лишь 15 важных свойств, а остальные могут быть сгенерированы или редко когда-либо изменяться.
Так, например:
general {
name = myname
ip = 127.0.0.1
}
component1 {
key = value
foo = bar
}
Это тип формата, который я хочу создать, чтобы обозначить что-то вроде:
property.${general.name}blah.home.directory = /blah
property.${general.name}.ip = ${general.ip}
property.${component1}.ip = ${general.ip}
property.${component1}.foo = ${component1.foo}
в
property.mynameblah.home.directory = /blah
property.myname.ip = 127.0.0.1
property.component1.ip = 127.0.0.1
property.component1.foo = bar
Лексический анализ и токенизация звучат как мой лучший маршрут, но это очень простая форма. Это простая грамматика, простая замена, и я хотел бы убедиться, что я не принесу кувалду, чтобы вбить гвоздь.
Я мог бы создать свой собственный лексер и токенизатор, или ANTlr - возможность, но я не люблю заново изобретать колесо, и ANTlr звучит как излишнее.
Я не знаком с методами компиляции, поэтому указатели в правильном направлении и код были бы наиболее ценными.
ЗаметкаЯ могу изменить формат ввода.