Вам нужно разобрать MDX.Степень сложности вашего анализатора зависит от усилий, которые вы можете инвестировать, от вашей терпимости к потенциальным ошибкам и, возможно, от вашего опыта в создании синтаксических анализаторов.
Просто набросок:
Вам следуетпоиск по ключевому слову FROM
.В грамматике MDX это может сопровождаться только именем куба или подвыбором.Подвыбор можно распознать через круглые скобки, за которыми следует ключевое слово SELECT
.И ключевые слова могут быть распознаны, так как они не содержатся в комментариях, строках или квадратных скобках.
Поскольку вложенные элементы должны быть правильно вложены, я думаю, вы, вероятно, даже могли бы просто искать последнее ключевое слово FROM
.За ним всегда должно следовать имя куба, либо в квадратных скобках, либо в качестве допустимого идентификатора.