В настоящее время я использую регулярные выражения для анализа текстового отчета, чтобы извлекать различные биты информации. Хотя этот подход работает, становится все труднее поддерживать регулярное выражение. Мне интересно, сможет ли Antlr обеспечить лучший способ выполнить задачу в конечном итоге. Кстати, я раньше не использовал Antlr.ANTLR подходит для синтаксического анализа текстовых отчетов?
AFAIK, Antlr в основном используется для разбора языков, но мой отчет не является языком. С другой стороны, отчет следует некоторым шаблонам, и я могу использовать регулярное выражение для извлечения информации.
Подробнее о моем текстовом отчете: в отчете есть несколько разделов, и меня интересуют только некоторые разделы, игнорируя остальные. Например, есть раздел нити свалки:
===Start===
(some text I do not care about.)
thread <thread-number> <owning-proc-name> <proc-id>
<resource-owned-by-thread> (optional line)
...
===End===
И тогда есть завершившееся приложение раздел:
===Start===
(some text I do not care about, followed by the stack trace of the app)
<app-name>
<stack-layer1>
<stack-layer2>
...
===End===
Я надеюсь выйти из разбора отчета является объектом данных с геттер методы к различным данным в отчете.
Соответствующая задача для Antlr или я должен искать в другом месте? Большое спасибо!