【发布时间】:2022-07-19 00:34:05
【问题描述】:
对于各种玩具项目,我希望能够将对象语言嵌入到 PolyML 顶层,例如 HOL 的反引号语法,其中反引号之间的表达式由自定义解析器解析。
我不介意特定的分隔语法:反引号 `...`、guillemets > 或类似 {|...|} 的东西。我只是希望能够在顶层编写表达式并让它们由自定义解析器解析。
例如,如果我有类似的数据类型
datatype expression =
Add of expression * expression
| Int of int
| Mul of expression * expression
我希望能够输入以下内容:
> `3 + 2 * 5`;
val it = Add (Int 3, Mul (Int 2, Int 5)): expression
这可能吗(以简单的方式)?
【问题讨论】: