【发布时间】:2020-06-02 13:47:19
【问题描述】:
我想要一些更通用的解析器,例如paren,它将接受一个解析器并用括号括起来:
paren(Parser, Result) -->
"(", some_magic_dcg_call(Parser, Result), ")".
:- phrase(paren(number, N), "(123)").
123
:- phrase(paren(someatom, A), "(a)").
a
我尝试了call 和dcg_call,但它们似乎无法解决问题。如何在另一个解析器中运行任意解析器?
【问题讨论】:
-
只调用顶层生产
-
我想你误解了我的意思。我想创建一个适用于任何给定产品的通用解析器组合器