haskell 如何正确阅读Parsec的停止词?

j1dl9f46  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(117)

我不知道如何用秒差距读文本到停止字,我知道你可以做这样的事情

paramBlockExpr :: Parser ParamBlock
paramBlockExpr = do
  p <- paramExpr
  txt <- many1 anyChar 
  _ <- string "stop_word"
  return $ ParamBlock p txt

但随后parsec将移动托架,stop_word不再可读,我读了一些关于lookAHead的内容,但不明白它是否适用于此处
附言
顺便说一下,这个例子也不起作用,anyChar将吸收stop_word

szqfcxe2

szqfcxe21#

就像这样:

absorbToStopWord :: Parser String
absorbToStopWord = try ("" <$ string "stop_word")
               <|> liftA2 (:) anyChar absorbToStopWord

相关问题