gpt4 book ai didi

parsing - 在 FParsec 的 OperatorPrecedenceParser 中生成错误

转载 作者:行者123 更新时间:2023-12-02 01:09:12 25 4
gpt4 key购买 nike

我需要在使用 FParsec 的 OperatorPrecedenceParsers 解析运算符时产生错​​误,特别是在映射阶段。假设我有以下代码:

let pOperatorExpr : ExpressionParser =
let opp = new OperatorPrecedenceParser<MyType, unit, unit>()
let arithmeticOperator a b ->
if someOperation a b then
// Fatal error! Abort!
else foobar a b

opp.AddOperator(InfixOperator("+", spaces, 1, Associativity.Left, arithmeticOperator)
opp.ExpressionParser

我应该怎么做才能在该特定位置产生错误?

最佳答案

运算符的映射函数不直接支持触发错误。

OPP reference 的“后字符串解析器的更多用途”部分您可以找到有关如何获取二元运算符的精确文本位置的示例。您还可以让您的术语解析器在其结果值中包含文本位置。获得位置后,您可以在 AST 中构建一个“错误节点”,然后稍后手动生成错误。

关于parsing - 在 FParsec 的 OperatorPrecedenceParser 中生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com