如何创建一个FParsec解析器来检查字符串是否包含在数组中?

时间:2015-08-07 13:52:10

标签: parsing f# fparsec

我正在尝试创建一个解析器来识别预定义函数的名称,而不是一般/随机字符串文字。

我希望创建一个解析器,从以下代码开始作为函数defintion:let pArray (arr:'a[]) :Parser<'a> = ...但我不确定如何继续。

简而言之,我认为我需要以某种方式从CharStream类型中获取Parser<'a>(作为字符串),并将其与数组中包含的内容进行比较。只是不确定如何实现这一目标?

另一种方法是创建一个字符串解析器数组 - 一个用于数组的每个元素,并将它们与备用组合器<|>一起应用/组合到一个解析器中。考虑到我有大约400个不同的功能,这似乎(没有证据)是严厉的。是否可以使用这么多替代方案创建解析器,或者性能是否会受到不适当的压力?

我在FParsec用户指南中搜索过但无法找到符合此情况的内容 - 我是在正确的道路上还是这不是我应该解决这个问题的方式?

0 个答案:

没有答案