-
Notifications
You must be signed in to change notification settings - Fork 0
VIl1aIn/validator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Описание. Этот перловый скрипт предназначен для простой проверки синтаксиса файла с конфигурацией модели. Файл моделей это шаблон m4, по которому создаётся файл radsh, используемый при импорте в TBSM (IBM продукт). Описание см. проект model-creator https://github.com/VIl1aIn/model-creator Скрипт просто проверяет по словарю и базовый синтаксис, не более. Сделано, ну или будет: Проверяем только: - Орфографию слов по словарю - Минимальную корректность синтаксиса По результату проверки выдаст "OK" либо строку и слово, которое не понравилось. Вызов. скрипт проверки файлов шаблонов на орфографию вызов так: check-srv-syntax.pl [<имя mc файла> [<имя словаря>]] Файл словаря ищется в текущем каталоге. Если не задан, то используется имя dictionary.txt Описание начинки. Функция *okOut* Форматированный вывод в случае отсутствия ошибок в проверяемом файле Функция *errOut* Форматированный вывод трех параметров из массива @result: - Номер строки где есть ошибка - Слово где есть ошибка - Целиком ошибочная строка Функции *thinCheck* Выполняет "тонкую" проверку слов по алгоритму: Меняем символы в проверяемом слове на "@" по маске слова из словаря. Подсчитываем кол-во совпадений. Если совпадений нет или их меньше порога, считаем что это комментарий и ошибки нет. Иначе высока вероятность, что это ошибка в слове. Дополнительно проверяем длины слова и слова из словаря, чтобы исключить реакцию на создаваемые макросы типа: _template_AlertKey Функция *checkComment* Пропускает строки, не подлежащие проверке. Сейчас это: - Комментарии "# Text", "dnl Comment". - Пустые и незначимые строки - Строки, начинающиеся макросами, созданными внутри документа. По внутреннему соглашению это строки начинающиеся с "__" (двух подчеркиваний). Функция *checkSyntax* Получает на вход строку из файла шаблона и выполняет такие шаги: - Выделяет из строки первое и последнее слово по символам "(", ")", при этом дополнительно последнюю фразу делит на слова по символам " ". Требуется для проверки конструкции типа: dnl Здесь текст комментария MACROS(val1,val2,...,valN)dnl Тоже комментарии - Прогоняет слова на соответсвие словам из словаря. Если соответствия не найдено, то использует процедуру тонкой проверки *thinCheck* Возвращает строку: - "OK" если все нормально, ошибок нет - Ошибочные слово(а) в формате "[первое слово:][последнее слово]" (c) VIl 19.08.2016
About
Check model file from model-creator
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published