MeaningTree — это библиотека и консольное приложение на Java,
предоставляющие единый промежуточный формат (семантическое/универсальное AST‑дерево) для разбора,
анализа и трансляции исходного кода между разными языками программирования.
MeaningTree не является универсальным транспилятором. Проект намеренно ограничен подмножеством языковых конструкций, характерным для учебных примеров кода: базовые типы, выражения, ветвления, циклы, функции, простые классы, ввод‑вывод.
Такое ограничение — это осознанное проектное решение, а не временный недостаток.
Цель — детерминированная конвертация без ошибок и без «додумывания»: любая конструкция,
которая не может быть переведена в целевой язык корректно и однозначно, приводит к явной
ошибке (UnsupportedViewingException / SupportReport), а не к правдоподобному,
но неверному результату.
Именно поэтому трансляция здесь построена на явных правилах и разборе через tree-sitter, а не на LLM: языковая модель на таком материале даёт внешне корректный код, но допускает молчаливые смысловые расхождения и галлюцинации, недопустимые в обучающей системе, где сгенерированный код используется как эталон.
Практическое следствие: расширять поддержку конструкций следует только тогда, когда для них можно гарантировать корректный перевод во все поддерживаемые языки; в противном случае конструкция должна быть явно помечена как неподдерживаемая.
Вся документация находится в папке docs/.
Она организована по разделам:
- docs/index.md - детальное оглавление документации
- docs/application — пользовательское руководство по CLI‑приложению
- docs/common — описание формата и основных возможностей
- docs/languages — описание поддерживаемых языков и их возможностей
- docs/test — документация по тестировочному фреймворку