Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

На чем парсить большие объемы output из научных программ

24.04.18 15:24
На чем парсить большие объемы output из научных программ
 
  ilghiz знакомое лицо
Последний раз изменено 24.04.18 15:43 (ilghiz)

Добрый день,


есть незадачка, надо писать парсер текстовых и не очень файлов сторонних программ. То есть, есть много разных софтов, каждый из которых имеет свой формат вывода. Надо по возможности поддерживать много разных форматов сторонних производителей, зачитывая их в свой софт. Если кому-то что-то говорит, то надо поддерживать TopSpin, VNMRJ, JDF форматы + многие форматы с молекулярной механики и ab initio + и кучу разного рода текстовых и не очень настроек.


Раньше я похожим не занимался, но если что-то надо было зачитать, делал по старинке на C или С++, но форматов было мало и делалось часто для себя с предварительным парсингом ручками в vim.


Времени нет, от слова совсем. Надо быстро решить и забыть. Платформа - строго Линукс, более конкретно Линукс, поддерживаемый на Altera Cyclone-SoC, то есть дохлый процессор с дебьяном. Софтвер или библиотека для парсинга может быть опенсорсным, и желательно бесплатной или не дорогой.


Вопрос, скажите, пожалуйста, есть ли что-то удобное в виде С или С++ библиотек так, чтоб в этом можно было бы быстро разобраться и начать пользовать и Вы бы это могли бы порекомендовать?

Или есть ли что-то легко подцепляющееся к GNU-С/C++ библиотекам, так, чтоб можно было бы обмениваться большими массивами данных в памяти между парсером и С программой?


Мозги, руки есть, освоить смогу много, мой бекграунд - высокопроизводительная вычислительная математика где-то 25 лет опыта. Теорию компиляции когда-то в Универе по Ахо-Ульману учил и что-то до сих пор помню.


Мне нужно быстро, грубо говоря на изучение языка написания парсера есть неделя времени, плюс на само написание еще неделя. На С я поддержу это за месяц, а может и быстрее, но понимаю, что добавляя в дальнейшем форматы буду тратить больше времени. Также надеюсь, что продолжение этой работы в скором времени удастся делигировать на кого-то, поэтому написать сейчас на голом С/С++ - означает переписать это заново через пол-года - год.


Спасибо!

 

Перейти на