我正在尝试创建一个解析器来识别预定义函数的名称,而不是一般/随机字符串文字。
我希望创建一个解析器,从以下代码开始作为函数defintion:let pArray (arr:'a[]) :Parser<'a> =
...但我不确定如何继续。
简而言之,我认为我需要以某种方式从CharStream
类型中获取Parser<'a>
(作为字符串),并将其与数组中包含的内容进行比较。只是不确定如何实现这一目标?
另一种方法是创建一个字符串解析器数组 - 一个用于数组的每个元素,并将它们与备用组合器<|>
一起应用/组合到一个解析器中。考虑到我有大约400个不同的功能,这似乎(没有证据)是严厉的。是否可以使用这么多替代方案创建解析器,或者性能是否会受到不适当的压力?
我在FParsec用户指南中搜索过但无法找到符合此情况的内容 - 我是在正确的道路上还是这不是我应该解决这个问题的方式?