Skip to content

Ocaml: parse, visualize and analyze java code AST

License

Notifications You must be signed in to change notification settings

weebatt/oparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oparser

OCaml Menhir Python HTML5

oparser — инструмент для парсинга Java-кода и визуализации его AST дерева. Проект состоит из двух модулей:

  • parser — анализ исходного кода.
  • visualize — генерация и отображение AST дерева.

Содержание


О проекте

oparser создан для автоматизации анализа исходного кода Java и визуализации его абстрактного синтаксического дерева (AST). Благодаря разделению на два модуля — parser и visualize — проект помогает быстро понять структуру кода, облегчая анализ, отладку и документирование.


Технологии

Проект использует следующие инструменты:

  • OCaml
  • Menhir
  • Python
  • HTML5

Начало работы

Перед тем как приступить к работе с oparser, убедитесь, что у вас установлен OCaml.

Далее установите Menhir через opam:

opam install menhir

Сборка и запуск

  1. Подготовка файлов

Перед сборкой необходимо удалить тела методов в тестовом классе. Выполните следующую команду:

python3 visualize/remove_method_bodies.py parser/test/TestClass.java parser/test/TestClassStripped.java
  1. Сборка проекта

Соберите проект с помощью dune:

dune build
  1. Запуск парсера

Запустите парсер, который обработает исходный файл и сгенерирует AST в формате JSON:

dune exec ./parser/bin/main.exe parser/test/TestClassStripped.java visualize/ast.json
  1. Запуск HTTP сервера

Запустите простой HTTP сервер для просмотра визуализации:

python3 -m http.server 8000

Откройте в браузере https://localhost:8080 и наслаждайтесь визуализацией AST дерева.

Документация

Чтобы ознакомиться с документацией модуля parser, выполните следующие шаги:

  1. Установите odoc:
opam install odoc
  1. Соберите документацию:
dune build @doc
  1. Откройте сгенерированную документацию:
open _build/default/_doc/_html/index.html

Контакты

Telegram:

  • @weebat - по всем вопросам не связанным с работой обитаю тут
  • @batapejka - рабочий аккаунт Email: batareyka.work@gmail.com

Лицензия

Этот проект распространяется под лицензией MIT License. См. файл LICENSE.txt для подробной информации.

About

Ocaml: parse, visualize and analyze java code AST

Resources

License

Stars

Watchers

Forks

Packages

No packages published