- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在使用 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/
是否可以使用 OperatorPrecedenceParser 不区分大小写地解析非符号运算符(例如,AND、OR)? 最佳答案 OperatorPrecedenceParser 没有对非符号运算符的
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我需要在使用 FParsec 的 OperatorPrecedenceParsers 解析运算符时产生错误,特别是在映射阶段。假设我有以下代码: let pOperatorExpr : Expre
此代码将读取此输入“(WEEKEND-SUNDAY)”,然后返回“SATURDAY” 但是输入“WEEKEND-SUNDAY)”仍然返回“SATURDAY”=>这个解析器忽略最后一个')' let p
我正在实现一个解析器,它为我的一个项目实现特定领域的特定语言。 我遇到困难的一个方面是制作一个表达式(使用 FParsec 的 OperatorPrecedenceParser 实现)使得整个表达式是
我是一名优秀的程序员,十分优秀!