Парсер кода ColdFusion? - PullRequest
       40

Парсер кода ColdFusion?

4 голосов
/ 06 августа 2009

Я пытаюсь создать приложение для поиска по базе кода моей компании ColdFusion. Я хотел бы иметь возможность выполнять интеллектуальный поиск, например: найти, где определена функция (и не нажимать везде, где вызывается функция). Для этого мне нужно проанализировать код ColdFusion, чтобы определить такие вещи, как объявления функций, вызовы функций, запросы к базе данных и т. Д.

Я изучал использование lex и yacc, но никогда раньше не использовал их, и кривая обучения кажется очень крутой. Я надеюсь, что уже есть что-то, что я мог бы использовать. Мой другой вариант - путаница сложного в обслуживании кода регулярных выражений-спагетти, которого я хочу избежать.

Ответы [ 3 ]

3 голосов
/ 28 августа 2009

Я использовал источник для CFEclipse , так как он с открытым исходным кодом и имеет синтаксический анализатор. Не уверен в законности этого, если бы мы продавали / распространяли его, но мы используем его только для внутреннего инструмента.

1 голос
/ 06 августа 2009

Написание синтаксических анализаторов для настоящих языков обычно затруднительно, потому что они содержат конструкции, с которыми Лекс и Як часто плохо справляются, например, язык не LALR (1). ColdFusion может быть проще, чем некоторые из-за его XML-подобного стиля.

Если вы хотите быстро создать сложный синтаксический анализатор, вы можете использовать наш Набор инструментов для реинжиниринга программного обеспечения DMS с поддержкой синтаксического анализа GLR.

Если вы хотите избегать написания своих собственных или взлома всех этих регулярных выражений, вы можете рассмотреть нашу систему поиска исходного кода . Он имеет чувствительные к языку парсеры и может очень быстро выполнять поиск по очень большим базам исходного кода. Одним из его «чувствительных к языку» синтаксических анализаторов является AdhocText, который предназначен для работы с «общими» языками программирования, такими как те, которые вы можете найти в произвольной книге программирования; он даже понимает XML-подобные теги, такие как ColdFusion. Вы можете скачать ознакомительную версию по ссылке, чтобы попробовать ее.

РЕДАКТИРОВАНИЕ 3/3/2010: недавно добавленная функция в SCSE - это возможность помечать определения и использовать отдельно. Это отвечало бы желанию ОП найти определение функции, а не все вызовы.

0 голосов
/ 06 августа 2009

Не существует. Поскольку ColdFusion больше похож на скрипты, чем на код, я думаю, что для него будет сложно написать парсер.

ColdFusion Builder может анализировать CFM / CFC для контура в Eclipse. Возможно, вам удастся выяснить, может ли плагин CF Builder делать то, что вы хотите.

...