Хороший ocaml синтаксический анализатор? [закрытый]

Во-первых, попытайтесь получить правильный правильно сформированный JSON. Вы можете использовать этот инструмент для украшения кода . Затем вы можете автоматически создать класс C #, используя json2csharp . Наконец, поскольку у вас есть класс C #, вы можете применить операторы if и проверить, имеет ли свойство значение null.

Сгенерированная оболочка C #:

public class Id
{
    public string _type { get; set; }
    public string Class { get; set; }
    public string RollId { get; set; }
}

public class Datum
{
    public string _type { get; set; }
    public string Class { get; set; }
    public Id Id { get; set; }
    public object Data { get; set; }
}

public class Elements
{
    public string _type { get; set; }
    public List _data { get; set; }
}

public class Root
{
    public string _type { get; set; }
    public string Class { get; set; }
    public Elements Elements { get; set; }
}

public class RootObject
{
    public int encoding_version { get; set; }
    public Root root { get; set; }
}

13
задан duane 21 November 2008 в 01:10
поделиться

2 ответа

Вот одна библиотека через Google. (Который также поднял это и это, которое перечисляет еще несколько звучащих соответствующим образом библиотек.)

Когда я записал combinator синтаксический анализатор в ML, это оказалось довольно громоздким для использования из-за ограничения значения и нетерпеливой оценки, которая вынудила Вас к ЭТА - разворачивают Ваши грамматические правила. Ocaml, как говорят, более ослабляется об ограничении значения, хотя - возможно, Вы будете сэкономлены часть той боли.

11
ответ дан 2 December 2019 в 00:32
поделиться

В мире OCaml синтаксические анализаторы на основе потоков и Camlp4 являются следующими двумя наиболее распространенными альтернативами. Оба были описаны подробно в предыдущих Статьях в журнале OCaml.

Одноместный синтаксический анализатор combinators сравнительно редок в OCaml, в основном потому что существует несколько более высоких уровней и значительно более эффективных доступных библиотек.

3
ответ дан 2 December 2019 в 00:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: