2017-01-19 1 views
3

Есть ли способ сообщить sloccount, что некоторые файлы уже не являются уже существующими языками, но новый (другой) язык (некоторые DSL, язык, не поддерживаемый sloccount, scala, go, ржавчина. ..), но не на основе расширения файла, а по их содержанию (например, содержат некоторые конкретные ключевые слова или определенный стиль комментариев, я мог бы предоставить полный список токенов для инструмента и т. д.).Добавить языковое сопровождение sloccount

Есть ли лучший инструмент (простой) для работы для этой конкретной задачи?

Заранее спасибо.

ответ

-2

Op пишет: Есть ли лучший инструмент (простой) для работы в этой конкретной задаче?

То, что вы хотите, это инструмент, который знает кое-что о самых разных языках, могут использовать расширение файла, как намек и использует содержимое файла в качестве проверки вменяемости или классификации, если расширение ISN» т.

Semantic Designs (моя компания) File Inventory инструмент сканирует большой набор файлов и классифицирует их таким образом. Расширения файлов указывают на контент. Если расширение файла отсутствует, для определения базовой классификации типа файла используется набор определяемых пользователем регулярных выражений. После того, как содержимое файла угадано, второй проход с использованием точных лексических сканеров языка используется для подтверждения того, что контент является тем, что, по его утверждению, обеспечивает доверительные факторы. (Он работает без лексических сканеров тоже ... вы просто получаете намеченный тип).

FileInventory не вычисляет показатели исходного кода самостоятельно. (Он вычисляет размер файла и количество строк для файлов, которые, как представляется, содержат текст). Но он создает файлы проектов для классифицированных файлов для управления нашим Source Code Search Engine (SCSE), инструментом поиска больших баз кода на нескольких языках. Побочным эффектом SCSE-сканирования базы кода для индексации его для быстрого доступа является вычисление основных показателей: строк, SLOC, комментариев, показателей Halstead, McCabe (example output).

Таким образом, сочетание этих двух, похоже, делает то, что вы хотите, в масштабе. Эти инструменты не то, что я бы назвал простым с точки зрения того, как это внутренне реализовано (делать что-либо, что знает подробности о языках программирования, на самом деле довольно сложно), но их очень просто настроить и запустить.

Смежные вопросы