【问题标题】:How to get the the grammar from the parsetree in Rascal?如何从 Rascal 的分析树中获取语法?
【发布时间】:2020-12-04 21:44:54
【问题描述】:

我对此很陌生,但是我已经开始编写 Rascal 并且已经被困了很长时间。我正在尝试获取解析树的语法,但似乎无法检索它。

当您将鼠标悬停在解析树上方时,您知道带有语法的黄色框吗? http://tutor.rascal-mpl.org/Recipes/Visualization/ParseTree/ParseTree.html#/Recipes/Visualization/ParseTree/ParseTree.html

我想以某种方式得到它。我正在尝试在 html 上可视化分析树。而且我不知何故认为最好自己获取语法然后将树绘制成html,或者有更好的方法吗?

感谢任何帮助!

【问题讨论】:

    标签: html syntax grammar rascal parse-tree


    【解决方案1】:

    每个解析树节点都承载了所使用的每个语法规则的表示。在库模块Parsetree 中,您可以找到 Tree 数据类型的定义。每个解析树都是这种类型。每个appl 术语都有一个Production 和一个list[Tree] 类型的子项列表。

    使用模式匹配或字段投影,您可以获得这些数据并绘制您的树。

    您可以在vis::ParseTree 中找到示例代码。

    lang::rascal::format::Grammar 模块也很方便,它具有以 Rascal 表示法漂亮地打印语法规则的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多