- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习“48 小时内为自己编写一个方案”教程。
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
这对于符号来说非常有用,但是如果我有一个关键字列表怎么办? (即结构体、整数)
oneOf可以适配列表吗?这正是我想要的,如下所示。
keywords :: Parser String
keywords = oneOf ["struct","int",..etc]
或者我应该导入 Text.Parsec.Char 并尝试在关键字列表上映射 M 字符串?
我正在尝试标记化,只是想知道走这条路的其他人的最佳实践是什么。
文档说要使用这样的东西:
divOrMod = string "div"
<|> string "mod"
http://hackage.haskell.org/packages/archive/parsec/3.0.0/doc/html/Text-Parsec-Char.html
最佳答案
其一般形式为the choice
combinator ,其类型如下:
choice :: Stream s m t => [ParsecT s u m a] -> ParsecT s u m a
基本上,你给它一个解析器列表,它会按顺序尝试它们,直到一个成功。 choice
使用 (<|>)
实现,因此与该方法相同。
在您的情况下,要匹配关键字列表但不匹配其他解析器,您可以只映射 string
超过 String
的列表s,然后使用 choice
关于这一点。
另一方面,mapM string
会做一些完全不同的事情 - 它会期望所有解析器按顺序成功。
关于parsing - Haskell Parsec,将 oneOf 改编为 [String],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026081/
我正在尝试将这个mysql CRUD示例改编为mssql。 http://teknosains.com/i/simple-crud-nodejs-mysql 这里是 git: https://gith
我有一个满足 C++ 随机数引擎要求的 PRNG,如所述 here . (它来自 PCG family )。也就是说,C++ 标准库分发类可以使用该引擎的一个实例来生成随机数: pcg_extras:
我是一名优秀的程序员,十分优秀!