OSLO, ANTLR или другая грамматика синтаксического анализатора, для анализа QUERY EXPRESSION
Привет
Я работаю над проектом, который требует, чтобы я писал запросы в текстовой форме, а затем преобразовывал их в некоторые легко обрабатываемые узлы для обработки в каком-то некорректном хранилище. Из всего, что меня интересует меньше всего, это часть, которая преобразует текст в узлы. Я надеюсь, что это уже где-то сделано.
Поскольку я готовлю вещи по ходу дела, я решил использовать синтаксис выражений LINQish.
from m in Movie select m.A, m.B
Я начал разбирать его вручную и получил основы, но это довольно глупо. Я ищу лучшее решение. Я добился определенного прогресса, используя MGrammar, но было бы неплохо, если бы такая вещь уже существовала. Кто-нибудь знает что-нибудь, что уже делает это? Я искал существующие шаблоны ANTLR, но не повезло.
Спасибо за помощь.
2 ответа
Вы можете начать с полной грамматики C# и выбросить все, кроме синтаксиса LINQ:-}
DMS Software Reengineering Toolkit - это инструмент для создания анализаторов / программных анализаторов / преобразователей, который имеет полный интерфейс C# 4.0, включая весь синтаксис LINQ.
Попробуйте этот пример на странице примеров Pyparsing wiki. Это должно дать вам начало.