Как реализовать анализатор статического кода на основе LSP с поддержкой многоязычной (C/C ++, Python, Fortran, Pascal, CPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как реализовать анализатор статического кода на основе LSP с поддержкой многоязычной (C/C ++, Python, Fortran, Pascal, C

Сообщение Anonymous »

Я работаю над инструментом SaaS, основанным на исследованиях, который анализирует устаревшие кодовые базы, извлекает их архитектуру и сохраняет результат в базе данных график (NEO4J) для дальнейшего использования с LLMS (например, для диаграммы UML или документации) . />
  • a модуль статического анализа, основанный на LSP (протокол языкового сервера) . /> Результат анализа должен быть Unified (например, последовательная схема JSON), поэтому я могу сохранить его как узлы и ребра в NeO4J :

    узлы: function , code , module РЕДЖ: вызовы < /code>, принадлежности < /code> и т. Д. < /li>
    < /ul>
    < /li>
    < /ul>

    Ограничения: < /p>

    Backend , не через редактор. />
    Что я попробовал: < /p>

    Просматривал joern < /strong>-мощный, но тяжелый и специфичный для DSL. < /p>
    < /li>
    Пробовал fraunhofer cpg < /li>-отлично для c /jvm, но не пробовал fraunhofer cpg < /li>- Распределите на другие языки. < /p>
    < /li>
    Найденные серверы LSP для различных языков: < /p>

    /pylsp для python
  • для c/c ++
  • для fortran
  • , cobol-lsp , perl-ls , vb-ls -но ограниченные документы и экосистемы


, где я застрял:
​​
​​{
"entities": [
{ "key": "src/foo.c::main", "kind": "Function", "name": "main", "file": "foo.c" }
],
"edges": [
["src/foo.c::main", "src/utils.c::init", "CALLS"]
]
}
< /code>
Это позволило бы мне преобразовать произвольный код в график и запросы Drive в LLMS на основе структурной значимости. < /p>

🙏 Я бы глубоко оценил: < /h4>
  • any parsers on glovers at logless < /h4>

    . Выход LSP в унифицированную модель
  • Рабочие примеры аналогичных инструментов анализа многоязычных графиков
  • Библиотеки или адаптеры, которые упрощают создание такого трубопровода


Подробнее здесь: https://stackoverflow.com/questions/796 ... ge-support
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»