Я играю с библиотекой Scala Parser. Я пытаюсь написать синтаксический анализатор для формата, где указана длина, а затем сообщение этой длины. Например:
x.parseAll(x.message, "5helloworld") // result: "hello", remaining: "world"
Я не уверен, как это сделать с помощью комбинаторов. Сначала мой разум обращается к:
def message = length ~ body
Но, очевидно, тело зависит от длины, и я не знаю, как это сделать: p
Вместо этого вы можете просто определить парсер сообщений как один парсер (не комбинацию парсеров), и я думаю, что это выполнимо (хотя я не смотрел, может ли один парсер вывести несколько элементов?).
В любом случае, я - нянька-скала, я просто нахожу это классным:)