【发布时间】:2015-10-31 10:14:32
【问题描述】:
我正在使用解析器组合器库在 Scala 中编写一种简单的函数式编程语言。
这里指定语法:https://github.com/hejfelix/Frase/blob/master/src/main/scala/it/vigtig/lambda/ParserLike.scala
有一件事我无法通过实现解决:如何将语法定义与转换为 AST 节点分开?
如果将一个接近人类可读的语法直接作为解析器源,那真是太酷了,特别是考虑到我是项目 ATM 上唯一的程序员,它可以用作文档。
如何分离语法和 AST 特定的代码?
【问题讨论】:
标签: scala grammar abstract-syntax-tree parser-combinators