作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Text.Parsec.Token
中的所有解析器礼貌使用 lexeme
在 token 后吃空格。对我来说不幸的是,空格包含新行,我想将其用作表达式终止符。有没有办法说服lexeme
离开一个新行?
最佳答案
不它不是。这是相关的代码。
来自 Text.Parsec.Token :
lexeme p
= do{ x <- p; whiteSpace; return x }
--whiteSpace
whiteSpace
| noLine && noMulti = skipMany (simpleSpace <?> "")
| noLine = skipMany (simpleSpace <|> multiLineComment <?> "")
| noMulti = skipMany (simpleSpace <|> oneLineComment <?> "")
| otherwise = skipMany (simpleSpace <|> oneLineComment <|> multiLineComment <?> "")
where
noLine = null (commentLine languageDef)
noMulti = null (commentStart languageDef)
whitespace
的 where 子句中注意到唯一的选项看着处理评论。
lexeme
函数使用
whitespace
它在
parsec.token
的其余部分中被大量使用.
关于haskell - 在 Parsec 中,有没有办法防止词素消耗换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672142/
我是一名优秀的程序员,十分优秀!