Руководство по CLI — stval
stval — бесплатный портативный валидатор ST-кода для командной строки. Это тот же
разбор, что выполняет редактор: реальный парсер OWEN Logic. Инструмент поставляется одним
self-contained файлом stval.exe и не требует установленного .NET Runtime.
Требования и поиск библиотек OWEN Logic
Для разбора кода нужен StParser.dll. Библиотеки OWEN Logic не распространяются
вместе с stval (это запрещено лицензией OWEN), поэтому инструмент ищет их так:
- переменная окружения
OWEN_LOGIC_ST_DIR, если задана; - иначе — папка рядом с
stval.exe, если в ней естьStParser.dll(портативный режим); - иначе — установленный OWEN Logic:
C:\Program Files\Owen\OWEN Logic\ST, затем%LOCALAPPDATA%\Programs\Owen\OWEN Logic\ST.
Каталог можно задать явно ключом --stdir. Если библиотека не найдена, инструмент
завершится с кодом 2 и подсказкой.
Запуск
stval [--json] [--tokens] [--stdir <каталог ST>] <file.st> [files...]
Самый простой случай:
stval program.st
Ключи
| Ключ | Назначение |
|---|---|
--json | Машиночитаемый отчёт в stdout (удобно для скриптов и CI). |
--tokens | Дамп токенов лексера — для отладки разбора. |
--stdir <каталог> | Явно указать каталог ST OWEN Logic (где лежит StParser.dll). |
Коды выхода
| Код | Значение |
|---|---|
0 | Ошибок нет. |
1 | Найдены ошибки: синтаксические и неизвестные типы. |
2 | Ошибка запуска: неверные аргументы, файл не найден, нет StParser.dll, исключение парсера. |
Точное число ошибок смотрите в тексте отчёта или в JSON-поле
totalErrors.
Форматы отчёта
Текстовый вывод:
FILE: program.st
ERRORS: 2
line 12, col 5: ...
line 20, col 9: ...
JSON (--json) — удобно разбирать скриптами:
{
"ok": false,
"totalErrors": 2,
"parserExceptions": 0,
"stDir": "C:\\Program Files\\Owen\\OWEN Logic\\ST",
"files": [
{
"file": "program.st",
"ok": false,
"errors": [
{ "line": 12, "column": 5, "message": "..." }
],
"parserException": null
}
]
}
Проверка нескольких файлов
Несколько файлов в одной команде проверяются как один проект: FUNCTION_BLOCK
из любого файла доступен как тип во всех остальных. Это повторяет поведение OWEN Logic.
stval motor.st logic.st common.st
Пример для CI
Проверка каталога сборки и остановка конвейера при ошибках (PowerShell):
$files = Get-ChildItem .\src -Filter *.st | ForEach-Object { $_.FullName }
stval --json @files > report.json
if ($LASTEXITCODE -ne 0) { throw "ST-код содержит ошибки (см. report.json)" }
Скачать stval.exe можно бесплатно в разделе
«Скачать».