Итак, я нашел своего рода заброшенный проект с открытым исходным кодом, который использует 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?
по этому поводу уже есть пиар, но парень больше не отвечает: /
Что ж, вопрос, который вы задаете, действительно слишком широк для вопросов и ответов. Я не понимаю, как кто-то может помочь вам, кроме как просто переписать парсер для вас.
Почему бы вам не перенести библиотеку каналов на ядро .NET?