我希望将解析树的一部分抽象为地图。具体来说,我想要一些具体的东西:
syntax RecType = RECORD: "{" {(Ident "=" Num) ";"}* "}"
我们分别只说Ident
和Num
以及str
和int
。
被抽象为:
public data RECTYPE = RECORD(map[str, int] rec);
这有可能吗?我从这里得到一些构造函数错误。
谢谢!
答案 0 :(得分:1)
你有两个问题:
implode
函数,您可以使用它将解析树转换为ast。然而,AST必须密切模拟你的语法。如果我是正确的,这不会将您的键值对转换为地图。您必须手动将转换写入所需的AST。 (这并不难,请查看this recipe for an example)