#html #syntax #grammar #rascal #parse-tree
#HTML #синтаксис #грамматика #негодяй #синтаксическое дерево
Вопрос:
Я довольно новичок в этом, но я начал кодировать Rascal и застрял надолго. Я пытаюсь получить грамматику дерева синтаксического анализа, но, похоже, мне не удается ее восстановить.
Вы знаете желтые прямоугольники с грамматиками, когда вы наводите курсор мыши на дерево синтаксического анализа здесь? http://tutor.rascal-mpl.org/Recipes/Visualization/ParseTree/ParseTree.html#/Recipes/Visualization/ParseTree/ParseTree.html
Я хочу каким-то образом получить это. Я пытаюсь визуализировать parsetree в html. И я почему-то думаю, что лучше всего получить грамматику, а затем самому нарисовать дерево в html, или есть лучший способ сделать это?
Любая помощь приветствуется!!
Ответ №1:
Каждый узел дерева синтаксического анализа содержит представление каждого используемого грамматического правила. В библиотечном модуле Parsetree
вы можете найти определение типа данных дерева. Каждое дерево синтаксического анализа имеет этот тип. У каждого appl
термина есть a Production
и список дочерних элементов типа list[Tree]
.
Используя сопоставление с образцом или проекцию поля, вы можете получить эти данные и нарисовать свое дерево.
Вы можете найти пример кода в vis::ParseTree
.
Также удобен модуль lang::rascal::format::Grammar
, который имеет функции для точной печати грамматического правила обратно в нотации Rascal.