我正在尝试编写一个与Milner的CCS非常相似的语言的解析器。基本上,我解析到目前为止有以下几种形式的表现: aba1 A.0 的表达必须以字母开头(不含T),并可能有任意数量的第一个字母后面的字母(用'。'分隔)。表达式必须以数字结尾(为了简单起见,我现在选择0到2之间的数字)。我想使用Parser Combinators for Scala,但这是我第一次与他们合作。这是我到目前为止有: i
我一直在阅读关于解析器组合器的教程,并且我遇到了一个函数,我希望在尝试理解时有所帮助。 satisfy :: (Char -> Bool) -> Parser Char
satisfy p = item `bind` \c ->
if p c
then unit c
else (Parser (\cs -> []))
char :: Char -> Parser