所以我找到了一种放弃的开源项目,它使用fparsec来解析一些graphql语法。但我需要它在.net核心,所以我试图移植它。但问题是,它使用的fparsec
库pipes
未移植到.net核心。因此,我想拆分仓库并删除管道库,这样我就可以将其余部分移植到.net核心,即使很难,我也不知道F#或有fparsec
的任何经验。
这是F#解析器: https://github.com/Lauchi/graphql-net/blob/master/GraphQL.Parser/Parsing/Parser.fs
我想我设法将一些东西翻译回fparsec,到目前为止我得到的是:
%[...]
是choice [...]
%% '#'
是pchar '#'
%% 'hello'
是pstring 'hello'
%% '[' -..-
类似于pchar '[' >>.
但到现在为止你们可能已经认为我实际上不知道我在做什么,因为语法对我来说非常混乱。我理解解析器和组合器在理论上是什么,我对函数式编程以及如何传递函数和参数有一些了解,但我无法读取语法并感到非常迷失。
任何有更多经验的人都可以给我一些关于如何将这个库改回普通fparsec代码的技巧吗?