Antlrworks предоставляет визуализированное синтаксическое дерево для исходного файла исходного кода. Мне было интересно, есть ли какой-либо эквавалентный инструмент для javacc & jtb спасибоЕсть ли какой-либо инструмент для визуализации обработанного дерева для jtb и javacc как antlrworks
Q
Есть ли какой-либо инструмент для визуализации обработанного дерева для jtb и javacc как antlrworks
0
A
ответ
2
Прогулка по дереву. Выкопайте узлы и дуги в формате graphviz («точка»). Вызовите graphviz о результате.
Это не будет очень полезно для более чем сотни узлов, потому что это не очень плотно.
Примечательно, что более масштабируемый способ является печать вложенным S-expression, в следующем формате:
<depth_from_root*spaces> (<nodetype> <newline>
<childnode1_as_S-expression>
<childnode2_as_S-expression>
...
<childnodeN_as_S-expression>
)<nodetype>
Это фактически печатает дерево вбок, например, с корнем слева и детей к правильно. Вы можете распечатать очень большие деревья таким образом и все еще сможете их прочитать (если вы можете прокручивать вверх и вниз по тексту ).
В качестве примера: а * (B + C) -d:
(-
(*
(+
(variable b)
(variable c)
)+
)*
(constant 1)
)-
Это также легко сделать с деревом прогулки. Вы можете легко сделать напечатанную версию более плотной или добавить дополнительную информацию.
См. Примеры обоих из них, here.
Я думаю, что это своего рода ast, а не разобранное дерево. –
Не имеет значения, является ли это AST или деревом разбора; эта техника работает просто отлично. –
Да, согласен. Есть ли какой-либо инструмент/плагин для визуализации на основе JavaCC и JTB-грамматики? В случае разработки с нуля, Graphviz является хорошим вариантом. Большое вам спасибо за вашу рекомендацию –