如何从 Rascal 的解析树中获取语法?
How to get the the grammar from the parsetree in Rascal?
我对此很陌生,但我已经开始编写 Rascal 代码,而且我已经被困了很长时间。我正在尝试获取解析树的语法,但我似乎无法设法检索它。
当您将鼠标悬停在此处的解析树上方时,您知道带有语法的黄色框吗?
http://tutor.rascal-mpl.org/Recipes/Visualization/ParseTree/ParseTree.html#/Recipes/Visualization/ParseTree/ParseTree.html
我想以某种方式得到它。我正在尝试在 html 上可视化分析树。而且我不知何故认为最好先掌握语法,然后自己将树绘制成 html,或者有更好的方法吗?
感谢任何帮助!!
每个语法分析树节点都表示使用的每个语法规则。在库模块 Parsetree
中,您可以找到 Tree 数据类型的定义。每个分析树都是这种类型。每个 appl
项都有一个 Production
和一个 list[Tree]
.
类型的子项列表
使用模式匹配或场投影,您可以获得这些数据并绘制您的树。
您可以在 vis::ParseTree
中找到示例代码。
模块 lang::rascal::format::Grammar
也很方便,它具有以 Rascal 表示法漂亮地打印语法规则的功能。
我对此很陌生,但我已经开始编写 Rascal 代码,而且我已经被困了很长时间。我正在尝试获取解析树的语法,但我似乎无法设法检索它。
当您将鼠标悬停在此处的解析树上方时,您知道带有语法的黄色框吗? http://tutor.rascal-mpl.org/Recipes/Visualization/ParseTree/ParseTree.html#/Recipes/Visualization/ParseTree/ParseTree.html
我想以某种方式得到它。我正在尝试在 html 上可视化分析树。而且我不知何故认为最好先掌握语法,然后自己将树绘制成 html,或者有更好的方法吗?
感谢任何帮助!!
每个语法分析树节点都表示使用的每个语法规则。在库模块 Parsetree
中,您可以找到 Tree 数据类型的定义。每个分析树都是这种类型。每个 appl
项都有一个 Production
和一个 list[Tree]
.
使用模式匹配或场投影,您可以获得这些数据并绘制您的树。
您可以在 vis::ParseTree
中找到示例代码。
模块 lang::rascal::format::Grammar
也很方便,它具有以 Rascal 表示法漂亮地打印语法规则的功能。