Я пытаюсь сделать парсер, используя Sprache Я использую F #. Все примеры, которые я когда-либо видел для библиотеки, используют синтаксис запроса Linq. Я попытался перевести linq в f #, используя выражение вычисления запроса, но там я потерялся.как перевести запрос linq на вызовы метода
Вот образец, который я использовал.
[TestClass]
public class tests
{
[TestMethod]
public void test()
{
var input = "\"this is text\"";
var content = Class1.Quoted.Parse(input);
Assert.AreEqual("this is text", content);
}
}
public class Class1
{
public static readonly Parser<string> Quoted =
(from open in Parse.Char('"')
from content in Parse.CharExcept('"').Many().Text()
from close in Parse.Char('"')
select content);
public static readonly Parser<string> Quoted2 =
Parse.Char('"').SelectMany(open =>
Parse.CharExcept('"').Many().Text(),())
}
Очевидный способ сделать это, чтобы просто перевести LINQ вниз на вызовы методов, но я не знаю, как сделать это. Я попытался взглянуть на ILSpy, но это немного смутило меня.
Как выглядит запрос Linq как прямой вызов метода?
@Jashaszun сделаю. Я не эксперт, но я компетентен. То, что я не знаю, как это сделать, - это перевести запрос linq в вызовы методов. Я также не знаю, как перевести запрос linq в предмет запроса F #. Вот что я задаю в этом вопросе. – phil
@phil Это имеет смысл. Извините, я кажусь оскорбительным. – Jashaszun
@ FrédéricHamidi правда. Я редактировал вопрос в конце. Это лучше? – phil