我使用的许多Parsec组合器都属于一种类型,例如:CharParser被定义为:因此,CharParser是一个涉及GenParser的类型同义词,它本身将定义为:然后,GenParser是另一种类型的同义词,使用Parsec指定,将定义为:
type Parsec s u = ParsecT s u Ident
我使用import Text.Parsec.Text和import Text.Parsec.Char来解析一些包含整数的数据。我使用下面的代码来解析整数。() Int
UPDATE我用Text.Parsec.String代替了Text.Parsec.Text,用Text.ParserCombinators.Parsec.Number的int替换了int这是不是意味着Parsec太慢了?Text/ParserCombinators/Parsec
我写了一个函数,它符合我的要求,但我不确定它是否按照我想要的方式工作,也不确定如何在终端中调用它。本质上,我希望获取一个字符串,如("age",5),("age",6),并将其转换为一个元组列表(“age1”,5)……我正在试着写一个用逗号分隔的函数,我只是不确定如何在终端中调用它,或者我做错了。items p = do { p <- sepBy strToTup (char ",");
作为学习使用Parsec的一个练习,我正在编写一个验证平衡括号的解析器。我只担心对()、[]和{},但不能让我的解析器处理第一个内的多个括号组。我的解析器看起来像:import Text.Parsec.Char
where between (char '(') (char ')') (skipMany1 go)但我知道错