OSLO, ANTLR или другая грамматика синтаксического анализатора, для анализа QUERY EXPRESSION - PullRequest
1 голос
/ 01 мая 2010

Привет

Я работаю над проектом, который требует, чтобы я писал запросы в текстовой форме, а затем преобразовывал их в некоторые легко обрабатываемые узлы для обработки в каком-то некорректном хранилище. Из всего, что меня интересует меньше всего, это часть, которая преобразует текст в узлы. Я надеюсь, что это уже где-то сделано.

Поскольку я готовлю вещи по ходу дела, я решил использовать синтаксис выражений LINQish.

from m in Movie select m.A, m.B

Я начал разбирать его вручную и получил основы, но это довольно глупо. Я ищу лучшее решение. Я добился определенного прогресса, используя MGrammar, но было бы неплохо, если бы такая вещь уже существовала. Кто-нибудь знает что-нибудь, что уже делает это? Я искал существующие шаблоны ANTLR, но не повезло.

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 01 мая 2010

Вы можете начать с полной грамматики C # и выбросить все, кроме синтаксиса LINQ: -}

DMS Software Reengineering Toolkit - это инструмент для создания синтаксических анализаторов / программных анализаторов / преобразователей с полным интерфейсом C # 4.0, включая весь синтаксис LINQ.

0 голосов
/ 27 августа 2010

Попробуйте этот пример со страницы Pyparsing wiki Примеры . Это должно дать вам начало.

...