Я хочу немного ускорить процесс открытия, так как это мое первое предприятие в мире лексического анализа. Возможно, это даже неправильный путь. Во-первых, я опишу свою проблему:
У меня очень большие файлы свойств (порядка 1000 свойств), которые при дистилляции на самом деле составляют примерно 15 важных свойств, а остальные могут генерироваться или редко меняться.
Итак, например:
general {
name = myname
ip = 127.0.0.1
}
component1 {
key = value
foo = bar
}
Это тип формата, который я хочу создать для tokenize что-то вроде:
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 звучит как overkill.
Я не знаком с методами компилятора, поэтому наиболее ценятся указатели в правильном направлении и коде.
Примечание. Я могу изменить формат ввода.