Как напечатать график грамматики YACC, начиная с определенного узла? - PullRequest
0 голосов
/ 03 июля 2019

У меня обширная грамматика YACC для обработки семейства связанных стандартов.Я хочу напечатать его график с помощью команды bison --graph, но сгенерированный файл .dot содержит более 40 тысяч строк.

График такой большой, что инструменты xdot и dot не могут его отобразить,Наконец мне удалось сгенерировать вывод с sfdp, но результирующее изображение занимает более 50 МБ и просто не понятно.

Resulting grammar graph

Меня интересует только визуализация части грамматики.предпочтительно подмножество, начинающееся с определенного правила грамматики.Есть ли способ добавить такие ограничения для генерации или рендеринга графа?

1 Ответ

2 голосов
/ 03 июля 2019

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

%start the_nonterminal

Вы получите множество бесполезных предупреждений о производстве и бесполезных нетерминалах, но вы 'Вы все равно получите график.

Если вы хотите ограничить его одним производством нетерминала, вы можете временно ввести новый стартовый нетерминал только для этого производства (при условии, что грамматика для оригиналанетерминал не является рекурсивным).

...