COBOL старше нотации BNF и не может быть описан с помощью какой-либо грамматики типа LR(k). Большинство популярных стратегий лексического анализа/синтаксического анализа не работают для этого языка (по крайней мере, не без большого количества поздних ночей и птичьего языка). Следовательно, трудно найти качественные парсеры для COBOL. Те, что существуют, обычно стоят копейки.
Без надежных, свободно доступных синтаксических анализаторов ваши шансы найти бесплатные (как в речи, забудьте о пиве) инструменты для построения диаграмм для COBOL довольно малы. Все, с чем я столкнулся, (я здесь проявляю благотворительность) довольно слабое.
Создание собственных инструментов может оказаться непростой задачей. Ознакомьтесь с Грамматика COBOL. COBOL — большой язык, будьте готовы к серьезной работе.
Сначала займитесь серьезной математикой: сколько кода нужно преобразовать? Сколько стоит избавиться от COBOL? Если веские финансовые аргументы не могут быть приведены, просто живите с вашим текущим приложением COBOL.
Если у вас есть аргументы в пользу продолжения, попробуйте изучить OpenCobol в качестве отправной точки для своего кода. система анализа/преобразования. Тем не менее, вам нужно быть в курсе как C, так и COBOL, чтобы это работало. Если вы работаете с диалектом IBM COBOL и имеете доступ к компилятору мэйнфреймов IBM, загляните в параметр компилятора ADATA, это даст вам AST вашей программы. Это некоторые возможные отправные точки.
Альтернативой является получение коммерческого продукта преобразования/обновления COBOL. У меня нет большого личного опыта с этими продуктами, и я не могу рекомендовать какой-либо конкретный продукт вместо другого.
Если математика не поддерживает изучение COBOL достаточно хорошо, чтобы выполнить преобразование, тогда просто живите с существующим приложением COBOL. Вы не будете первым, кто придет к такому выводу!
person
NealB
schedule
09.04.2010