applicative <* 的一元等价物
阅读安东尼的回复后一个与样式相关的解析器问题,我正在尝试说服自己编写单体解析器仍然可以相当紧凑。 因此, reference :: Parser Transc reference…
Parsec-Parser 工作正常,但是可以做得更好吗?
我尝试这样做: 解析表单中的文本: 一些文本 #{0,0,0} 一些文本 #{0,0,0}#{0,0,0} 更多文本 #{0,0,0} 放入某些数据结构的列表中: [“某些文本”内,…
是否有用于编写词法分析器的 haskell EDSL?
将词法分析器和解析阶段混合在一个阶段有时会降低 Parsec 解析器的可读性,同时也会减慢它们的速度。一种解决方案是使用 Alex 作为标记器,然后使用 P…
秒差距 - 错误“组合符‘许多’”应用于接受空字符串的解析器”
我正在尝试使用 Parsec 编写一个解析器来解析有文字的 Haskell 文件,如下所示: The classic 'Hello, world' program. \begin{code} main = putStrLn…
秒差距错误 - 尝试似乎不起作用
我目前正在使用 文本.Parsec.Expr 模块用于解析脚本语言的子集。 基本上,这种语言有两种命令:$var = expr 形式的赋值和$var = $array[$index] 形式…
简单的秒差距示例会产生类型错误
我正在尝试编译这个微不足道的秒差距代码 import Text.Parsec simple = letter ,但我不断收到此错误 No instance for (Stream s0 m0 Char) arising f…
使用数组在 haskell 中解析方案向量
我正在尝试在 48 小时内为自己编写一个方案教程,作为 haskell 的新手,这相当困难。 我目前正在解决一个问题,我应该添加解析方案向量的能力(第 3.4…
Parsec 函数“parse”的类型签名和类“Stream”;
下面的类型声明中的约束 (Stream s Identity t) 意味着什么? parse :: (Stream s Identity t) => Parsec s () a -> SourceName -> s -> Either Parse…
parsec 无法为 endBy 函数定义规则
我在为一种语言编写秒差距规则时遇到问题 我有下一个语言定义(有问题的部分) COMMAND ::= ':' WS LITERAL WS {LITERAL WS}* ';' LITERAL ::= "[CHAR…
FParsec 中的递归语法
我决定查看 FParsec,并尝试为 λ 表达式编写一个解析器。事实证明,急切使得递归解析变得困难。我该如何解决这个问题? 代码: open FParsec type λ…