2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 На чем быстро написать парсер?
Сообщение08.04.2024, 14:23 


23/02/23
126
Добрый день,

имеется код, который писало много людей и много лет, примерно 8 миллионов строк кода, да не оговорился, восемь миллионов. Код рабочий и сейчас работает, может не весь, но по крайней мере весь залинкован в рабочей системе.

Код содержит примерно поровну классический С, (до 99-го стандарта), С++ (точно не 14, а скорей всего и не 11-ый, а еще раньше), Фортран, который 77, но с enddo/endif, и объектный 95-ый фортран, который с произвольными отступами и классами.

Моя задача написать парсер всего этого так, чтобы в каждую function, subroutine и entry первым оператором засунуть вызов моей функции с уникальным номером, а номер залинковать на название этой подпрограммы и сохранить в отдельную таблицу, причем сделать это на уровне ifdef, чтобы можно было бы включить-выключить или хотя бы чтобы на уровне препроцессинга включать-выключать.

Понимаю, как писать такое на С или С++, но как-то длинно получается, особенно если поддерживать весь этот зоопарк языков.

Накидайте, пожалуйста, идей, что использовать, чтобы не писать честные препроцессоры со всех этих вариантов языков. В самих этих языках и диалектах - разбираюсь хорошо, дополнительно немного знаю жаву с питоном, а также всякие перлы, баши и авк. При необходимости готов что-то не сложное освоить.

Спасибо!

 Профиль  
                  
 
 Re: На чем быстро написать парсер?
Сообщение08.04.2024, 14:29 
Заслуженный участник


18/09/21
1764
Пожно попробовать на perl/python скрипт сделать.
Если слишком сложно выходит, то можно готовый парсер взять (для C/C++ обычно Clang используют, как с фортраном там - не уверен) и в него встроить. Но это довольно трудоёмко.
Ещё можно парсер из GCC взять, но у него, говорят, струкутра тяжелее чем у Clang.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group