2

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

我正在寻找从以下代码作为函数定义开始的解析器:let pArray (arr:'a[]) :Parser<'a> =...但我不确定如何继续。

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

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

我在 FParsec 用户指南中进行了搜索,但找不到与这种情况相匹配的内容 - 我是在正确的道路上还是这不是我应该解决这个问题的方式?

4

0 回答 0