Разбор S-выражений

Я столкнулся сэтот вопрос раньше сегодня:

Пример ввода: Я столкнулся с Джо и Джилл, а затем мы пошли за покупками
Пример вывода: [TOP [S [S [NP [PRP I]] [VP [VBD побежал] [PP [IN в] [NP [NNP Джо] [CC и] [NNP Jill]]]]] [CC и] [S [ ADVP [RB затем]] [NP [PRP мы]] [VP [VBD пошел] [NP [NN покупки]]]]]]

Я хотел предложить просто проанализировать ожидаемый результат (как это выглядит как s-выражение) в объекте (в нашем случае в дереве), а затем использовать простые методы LINQ для его обработки. Однако, к моему удивлению, мне не удалось найти синтаксический анализатор выражений C #.

Единственное, о чем я могу подумать, это использовать Clojure для его анализа, поскольку он компилируется в clr, но я не уверен, что это хорошее решение.

Кстати, я не против ответа на вывод типаdynamic, Только ответы, которые я нашел здесь, были для десериализации в конкретную схему.

Подводя итог моему вопросу:Мне нужно десериализовать s-выражения в C # (сериализация подойдет для будущих читателей этого вопроса)

Ответы на вопрос(2)

Ваш ответ на вопрос