问题标签 [parsec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2648 浏览

c++ - c++ 函数的解析器解析器?

是否有任何带有解析器的 C++ 函数的开源解析器实现?

找不到,不想使用 libClang,因为安装失败

0 投票
2 回答
3651 浏览

haskell - Text.ParserCombinators.Parsec 和 Text.Parsec 有什么区别

他们是一样的吗?

0 投票
1 回答
1911 浏览

parsing - FParsec 中的递归文法

我决定检查 FParsec,并尝试为 λ 表达式编写解析器。事实证明,渴望使递归解析变得困难。我该如何解决这个问题?

代码:

谢谢!

0 投票
4 回答
3629 浏览

haskell - 以秒为单位的输入意外结束

我想解析这样的文件:

我的代码如下:

但是在运行时,它会抛出异常:

我不明白,为什么它说第 11 行,而我的 data.test 文件只有 10 行。所以我在几次尝试后都没有解决这个问题。

0 投票
1 回答
337 浏览

haskell - parsec 无法为 endBy 函数定义规则

我在为一种语言编写 parsec 规则时遇到问题 我有下一种语言定义(有问题的部分)

其中 WS 代表空格,LITERAL 是除空格或可以包含空格的引号字符以外的任何字符,因此,我编写了下一个函数:

问题是符号';' 是一个有效的文字,所以 (1) 函数解析它,因此存在解析错误,因为 (2) 找不到 ';' 特点。

有什么办法可以克服这个问题:要么让文字函数不接受';' 作为文字或以某种方式修复(2)?


在 sclv 发表评论后,我找到了解决方案:

0 投票
2 回答
1634 浏览

haskell - Parsec 函数“parse”和“Stream”类的类型签名

(Stream s Identity t)下面的类型声明中的约束是什么意思?

下面的类声明是什么Stream,是什么意思。我完全迷路了。

当我使用 Parsec 时,我总是被类型签名 ( xxx :: yyy) 所困扰。我总是跳过签名,将 src 加载到 ghci 中,然后将类型签名复制回我的 .hs 文件。它有效,但我仍然不明白所有这些签名是什么。


编辑:更多关于我的问题的观点。

我仍然对类型签名的“上下文”感到困惑:

手段a必须是类的一个实例Show

这个“上下文”是什么意思,因为t=>


我有很多不同的解析器要运行,所以我编写了一个 warp 函数来运行任何带有真实文件的解析器。但问题来了:

这是我的代码,它无法加载,我怎样才能让它工作?

0 投票
2 回答
343 浏览

arrays - 使用数组解析haskell中的方案向量

我正在尝试在 48 小时内编写自己的计划教程,作为一个新的 haskell 人,这非常困难。我目前正在解决一个问题,我应该添加解析方案向量的能力(第 3.4 节练习 2)。

我正在使用这种数据类型:

要解析,我正在寻找 '#(' 然后尝试解析向量内容,将它们放入列表中并将该列表转换为数组。

我正在尝试使用我已经拥有并正在使用的列表解析功能,但它将方案列表解析到上面的 LispVal 列表中,我很难将其恢复到常规列表中。或者至少这就是我认为我的问题所在。

这是列表解析器:

有想法该怎么解决这个吗?谢谢,西蒙

-edit- 这是我得到的编译错误:

无法匹配预期类型a -> LispVal' against inferred typeParser LispVal' 在 parseList 的第二个参数中 (.)' namely' 在 lispValToList 的第二个参数中(.)' namely 。parseList' 在表达式中: listToArray 。lispValToList 。解析列表

0 投票
2 回答
3414 浏览

haskell - Parsec 中的用户状态

我正在使用 Parsec 解析表达式,并且我想使用 Parsec 中的用户状态来跟踪这些表达式中的变量。不幸的是,我真的不知道该怎么做。

给定以下代码:

因此,uinParsecT s u m a将是Set.Set. 但是我将如何将状态更新集成到 中var

我尝试了类似的东西modify $ Set.insert v,但这不起作用,因为Set.Set它不是状态单子。

0 投票
4 回答
871 浏览

haskell - Haskell:FRP 反应性 Parsec?

Haskell 中是否有(或可能有)反应式Parsec(或任何其他纯函数式解析器)?

简而言之,我想逐个字符地为解析器提供数据,并获得与我提供的足够多的结果一样多的结果。

或者更简单,我怎么能做到foldr或至少map

我们是否需要它们的不同版本来支持这种反应行为?

编辑

我的问题特别是关于 FRP。我以解析器为例,这是我能想到的最好的方法来澄清我的问题并全面了解我的需求。

我相信 FRP 不仅仅是关于 UI,对吧?

0 投票
1 回答
1497 浏览

haskell - 简单的解析示例会产生类型错误

我正在尝试编译这个微不足道的 parsec 代码

但我不断收到此错误