问题标签 [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.
parsing - haskell 中的解析函数
我是 Haskell 的新手,我正在尝试解析表达式。我发现了 Parsec,也发现了一些文章,但我似乎不明白我必须做什么。我的问题是我想给出一个像 "x^2+2*x+3" 这样的表达式,结果是一个接受参数 x 并返回值的函数。如果这是一个简单的问题,我很抱歉,但我真的需要一些帮助。谢谢!我插入的代码来自您可以在此链接上找到的文章。
parsing - 最后解析带有可选数据的文本
请注意,在发布此问题后,我自己设法得出了一个解决方案。请参阅此问题的结尾以获取我的最终答案。
我目前正在为org-mode文档开发一个小解析器,在这些文档中,标题可以有一个标题,并且可以选择包含标题的标签列表:
但是,我很难为此编写解析器。以下是我现在正在使用的内容:
虽然我的简单tags
解析器有效,但它在上下文中不起作用,node
因为所有字符都用完了解析标题的标题 ( many1 anyChar
)。此外,我无法更改此解析器以使用noneOf ":"
,因为:
它在标题中有效。事实上,只有在 taglist 中,在行尾,它才是特别的。
有什么想法可以解析这些可选数据吗?
顺便说一句,这是我第一个真正的 Haskell 项目,所以如果 Parsec 甚至不是适合这项工作的工具 - 请随时指出这一点并提出其他选择!
好的,我现在有了一个完整的解决方案,但它需要重构。以下作品:
haskell - Parsec vs Yacc/Bison/Antlr:为什么以及何时使用 Parsec?
我是 Haskell 和 Parsec 的新手。读完第 16 章 Using Parsec of Real World Haskell后,我的脑海中出现了一个问题:为什么 Parsec 比 Yacc/Bison/Antlr 等其他解析器生成器更好?
我的理解是 Parsec 创建了一个很好的编写解析器的 DSL,而 Haskell 使它变得非常简单和富有表现力。但是解析是一种标准/流行的技术,值得拥有自己的语言,可以输出到多种目标语言。那么我们什么时候应该使用 Parsec 而不是从 Bison/Antlr 生成 Haskell 代码呢?
这个问题可能会超越技术,进入行业实践领域。从头开始编写解析器时,与 Bison/Antlr 或类似的东西相比,使用 Haskell/Parsec 有什么好处?
顺便说一句:我的问题与这个问题非常相似,但在那里没有得到令人满意的回答。
haskell - 一元类型混淆
我正在通过在 Haskell 中为自己编写一个计划。它是一个很棒的教程,但我遇到了一个解析练习:
使用以下方法重写 parseNumber:
- 做记号
- 使用 >>= 运算符的显式排序
我对 do-notation 没有任何问题:
对于#2,我尝试了很多变体,例如:
但我一直遇到类型错误。我有两个问题。
- 为什么我会收到类型错误?我误解了单子绑定运算符吗?
- 为什么我的 do-notation 解决方案没有出现类似的类型错误?
我觉得我缺少关于类型的基本概念?
haskell - 哈斯克尔秒差距问题
我是新手 haskell,在学习 parsec lib 中举了一个例子:
那么 n 或 m 是什么?为什么 n 和 m 是 int 并且大于 0?
f# - FParsec:如何在 fparsec 中解析日期(新手)
我正在使用关于如何使用 fparsec 解析分隔文件的Bill Casarin帖子,我正在简化逻辑以了解代码的工作原理。我正在将多行分隔的文档解析为单元格列表结构(目前),其中单元格是字符串或浮点数。我是这方面的新手。
我在解析浮点数时遇到问题 - 在典型情况下(由制表符分隔的单元格,包含数字)它可以工作。然而,当一个单元格恰好是一个以数字开头的字符串时 - 它就会分崩离析。
如何修改 pFloatCell 以将(尽管通过选项卡)解析为浮点数或什么都不解析?
谢谢
哎呀昨晚我迟到了。我的意思是发布数据。这第一个有效
虽然这会返回一个错误:
返回,无论是否有 ChaosP 的推荐:
ErrorMsg = "Ln 中的错误:1 Col: 3\r\n2011 年 3 月 10 日 18:28:11 GMT\r\n ^\r\n预期:文件结尾、换行符或 '\t'\r\n"
看起来尝试工作正常。在第二种情况下,它只抓取到 10 - 并且pfloat 的代码只查找到第一个空格。我需要说服 pfloat 它需要一直查找到下一个选项卡或换行符,无论它之前是否有空格;通过执行 Double.Parse 编写我自己的 pfloat 版本 - 但我宁愿依赖库。
haskell - 在 Parsec 中,有没有办法防止词素消耗换行符?
所有的解析器都Text.Parsec.Token
礼貌地lexeme
在令牌后使用空格。对我来说不幸的是,空格包含新行,我想将其用作表达式终止符。有没有办法说服lexeme
离开新线路?
xml - 为什么 parsecs“选择”组合器似乎停留在第一选择上?
在查看 Real World Haskell 中的 CSV 示例代码后,我尝试构建一个小的 XML 解析器。但是关闭标签会出现“意外的“/”错误。你能告诉我为什么我的“closeTag”解析器不起作用(或者可能从来没有被调用过)吗?谢谢!
haskell - 复杂的 Parsec 解析器
我完全不知道还能问什么。我想我在这里需要一般指导。我有这样的事情:
但是,当我测试该解析器时,我大多会遇到问题......就像我尝试解析时
它被lambda
解析器接受,但expr
解析器讨厌它。有时它甚至完全挂在永恒的规则中。
我已经通读了Write Yourself a Scheme,但它只解析 Scheme 的同源源。
也许我通常在错误的方向思考。
编辑:这里是内部解析器:
“讨厌它”是指它告诉我它需要一个整数或一个浮点数。
haskell - 在do块内输入'<-'解析错误?
我正在尝试使用 Parsec 在 Haskell 中进行一些解析。我的代码中有许多解析器,但其中一个出现错误:
错误是parse error on input '<-
,就a <- alternate
行了。
谁能解释我为什么会收到这个错误,以及如何解决它?
提前致谢。