如何避免使用 FParsec 回溯解析 SQL?
作者:lamg 提问时间:9/23/2023
我正在使用 FParsec 解析 SQL (Sqlite),并且在解析像 .由于用于识别标识符的解析器也识别关键字,因此我必须确保首先尝试解析关键字,并且只有在失败时才继续使用标识符。为此,我正在使用...
SEC 问答列表
作者:lamg 提问时间:9/23/2023
我正在使用 FParsec 解析 SQL (Sqlite),并且在解析像 .由于用于识别标识符的解析器也识别关键字,因此我必须确保首先尝试解析关键字,并且只有在失败时才继续使用标识符。为此,我正在使用...
作者:lamg 提问时间:9/19/2023
我正在解析 SQL 表达式,并且一直在看这个例子。到目前为止,我专注于布尔运算符,如 、 、 和 。前四个似乎很容易实现,但是我不确定该怎么做:ANDORNOTINNOT INNOT IN type...
作者:bookofproofs 提问时间:9/10/2023
我正在尝试在 FParsec 中编写自定义尝试解析器。我试过了,但我是 F# / FParsec 初学者,并且迷失在我产生的 F# 编译器错误中。这是我迄今为止最好的猜测: let customAt...
作者:Roald 提问时间:11/8/2021
我正在尝试使用 FParsec 解析固定字符串。例如,从文档中解析 null: open FParsec type Json = JNull let jnull : Parser<_> = str...
作者:Friedrich Gretz 提问时间:1/4/2022
我有一个问题,在解析流的过程中,我通过多次(按顺序)应用特定解析器来指向需要解析下一个 N 个字符的位置。 (剥离玩具)例: 17<tag><anothertag><a42... ^ |- I...
作者:Chechy Levas 提问时间:3/3/2022
以前的问题,我无法用它来让它工作 FParsec 中的递归语法 似乎是一个在添加到FParsec之前被问到的老问题createParserForwardedToRef AST 似乎不像我的那么可怕...
作者:Stelios Adamantidis 提问时间:3/31/2022
举个例子,我将以 Phillip Trelford 的这个简单的 C# 解析器为例。为了解析一个标识符,他写了这个(略有改动): let reserved = ["for";"do"; "while...
作者:Foxy 提问时间:7/27/2022
我通常将 FParsec 用于 LL 语法,但有时在整个语法中只有一个元素需要左递归解析(因此语法不再是 LL)。目前我有这样的情况,我有一个用 FParsec 实现的大型 LL 语法,但是一个小的语...
作者:bookofproofs 提问时间:8/16/2023
我是 F# 和 FParsec 的新手,在使用 VS 2022 社区版 DotNet 6.0 将我的 FParsec 代码移动到 F# 模块时遇到问题。 我的用例是这样的:我的控制台应用程序解决方案...
作者:bookofproofs 提问时间:8/21/2023
我正在尝试使用 FParsec 编写一个解析器来解析嵌套的布尔表达式,例如: false true and(false,true,true,true,true) or(true,true) and(...