我在玩 Scala 的 Parser 库。我正在尝试为指定长度后跟该长度消息的格式编写解析器。例如:
x.parseAll(x.message, "5helloworld") // result: "hello", remaining: "world"
我不确定如何使用组合器来做到这一点。我首先想到的是:
def message = length ~ body
但显然身体取决于长度,我不知道该怎么做:p
相反,您可以将消息解析器定义为单个解析器(而不是解析器的组合),我认为这是可行的(尽管我没有查看单个解析器是否可以拉多个 elem?)。
无论如何,我是一个 scala 菜鸟,我只是觉得这太棒了:)