2

在阅读了https://github.com/sirthias/parboiled2上的文档后,我发现我可以使用以下规则从堆栈中弹出一些东西:

type PopRule[-L <: HList] = Rule[L, HNil]

但是当 L 不是字符串时,我找不到此类规则的工作示例。

例如,假设我有以下规则:

case class A()
case class B()
def foo = rule { push(A) }
def pop_rule:PopRule[A, HNil] = rule { pop(A)}

为了证明这一点,有一个 parboiled2 规则的一般定义:

class Rule[-I <: HList, +O <: HList]

它代表一个规则,从堆栈中弹出 I 中的值并将 O 中的值放入堆栈。

到目前为止,我想不出以下规则类型的示例实现:

def rule_of_interest:Rule[A, B] = rule { pops(A) ~> push(B)}
4

0 回答 0