FParsec替代获取解析输入的解析器

时间:2017-01-15 19:14:42

标签: f# fparsec

使用替代解析器时,是否有选项可以获得哪个解析器匹配输入。

我的输入字符串可以是格式

{firstPart_number} {secondPart_operator_symbol} {thirdPart}

这里firstPart总是数字,第二部分是解析运算符的替代解析器,而thirdPart也是替代(数字,字符串列表)。

示例输入

 1 + 2 
 5 * 3 
 1 in {2,45,6}

由于我所区分的联合会的类型不同,我想知道哪个解析器匹配输入,以便基于该解析器我可以创建我的判别联合类型的实例?

如何在FParsec中处理这种情况,其中我的第一部分在解析器中是相同的,但第二和第三解析器是不同的并且基于使用|>>的实例化类型

1 个答案:

答案 0 :(得分:0)

我目前的问题是使用带有替代品的尝试解析器解决的。尝试将回溯如果它不匹配,下一个替代解析器将再次解析输入并匹配