Skip to content

Formatting java code with ebnf like grammar#26

Merged
Shopin-Igor merged 29 commits into
mainfrom
formatting-java-code-with-ebnf-like-grammar
May 18, 2026
Merged

Formatting java code with ebnf like grammar#26
Shopin-Igor merged 29 commits into
mainfrom
formatting-java-code-with-ebnf-like-grammar

Conversation

@Shopin-Igor

Copy link
Copy Markdown
Owner

No description provided.

Igor added 26 commits March 23, 2026 23:59
…Node - экземпляр нужного типа и на то, что объект соответствует Java типу
…ных конструкций (например может быть несколько разных типов Statement)
…добавил проверку на соответвие конкретному правилу из списка, вместо слепого bind, как раньше
…ку, либо возвращает что-то осмысленное
…ся грамматика вида <Name?> и <Name*>, тесты на это будут добавлены позже
…ваются, так что тесты с forStmt и methodDeclaration пока захардкожены
…ndings, то есть AppliedRuleValue, если нет выбранного DSL правила, то это RawValue и форматиравание происходит по заготовленному формату или через .toString(), если такого нет
… ни под одно не подходит, то матчинг сразу падает. Добавил логику: после неудачных DSL правил проверить, что значение всё равно является JavaParser типом Statement, и забиндить его raw значением для последующего вывода
…сначала пробую отрендерить по Java Parser классу ноды (через tryRender)
@Shopin-Igor Shopin-Igor changed the base branch from before-matching-nodes-with-java-parser-classes to main May 6, 2026 14:18
@Shopin-Igor Shopin-Igor requested a review from alexeyklimov May 9, 2026 11:51

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: мне казалось, что это было удалено N PR-ов назад

return false;
}
} catch (IllegalArgumentException e) {
return bindRawValue(ref.name(), value, bindings);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На 3 строки ниже такой же return. Предлагаю убрать копипасту

@alexeyklimov

alexeyklimov commented May 12, 2026

Copy link
Copy Markdown
Collaborator

Честно говоря, смотреть довольно тяжко (много кода). Не помешал бы документ, описывающий архитектуру. Она также нужна будет на защите

В этом документе рекомендую рисовать диаграммы. Чем рисовать:

  • WYSIWYG: miro, excalidraw, etc
  • markup language: mermaid, plantuml (устарело), d2lang, structurizr, kroki (это агрегатор других инструментов)
  • ASCII: см. список инструментов, которые поддерживает kroki

В случае, когда диаграмма определяется текстом, ее удобно генерить нейронкой по словесному описанию

@Shopin-Igor

Copy link
Copy Markdown
Owner Author

Окей, поправлю в новом пулл реквесте

@Shopin-Igor Shopin-Igor merged commit fe9b342 into main May 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants