【问题标题】:Is there a way in Rascal to generate the syntax definition of a grammar from its corresponding datatype?Rascal 中有没有办法从其相应的数据类型生成语法的语法定义?
【发布时间】:2018-04-30 20:04:05
【问题描述】:

让问题更具体一点。我想知道我是否可以从内置的语法数据结构中生成 Rascal 可解析代码,这当然是解析的 rascal 代码。我想要这个,因为它更易于阅读,而且是一个不错的功能,因为它可以使这部分解析变得可转换。

从这个实例来看:

data Grammar = \grammar(set[Symbol] starts, map[Symbol sort, Production def] rules);

这样的:

start syntax E 
    = E "+" T
    | T
    ;

syntax T
    = T "*" F
    | F
    ;

syntax F
    = "(" E ")"
    | "a"
    ;

【问题讨论】:

    标签: context-free-grammar data-conversion rascal


    【解决方案1】:

    是的,该实用程序可以在 'lang:: rascal::format::Grammar' 中找到

    'grammar2rascal' 将整个语法格式化为定义相同语法的流氓程序。

    'topProd2rascal' 将单个规则映射回其以流氓符号表示的具体定义。

    【讨论】:

    • 谢谢!比预期的要容易:p 我倾向于迷失在图书馆的不同部分。还有一个 Grammar.rsc 和 in analysis 等等。这次导师没有帮我,所以我想也许 stackoverflow 是最简单的选择
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 2016-08-10
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多