Итак, вы хотите разработать новый язык, создать для него парсер, а затем преобразовать результат в вызовы SQL.
Вам следует проверить Генераторы синтаксического анализатора, особенно ссылку на сравнение генераторов парсеров
При разработке языка вам нужен самый надежный и простой в использовании генератор парсеров для проверки ваших грамматик, потому что вы будете его много менять. Если вы выберете слабый генератор синтаксического анализатора, вы обнаружите, что тратите больше энергии на изменение формы грамматики, чтобы сделать инструмент генератора синтаксического анализатора счастливым, чем вы думаете о том, какая грамматика имеет смысл.
Но, имея четко определенный, доступный для синтаксического анализа язык, вы обнаруживаете, что существует значительная жизнь, выходящая за рамки синтаксического анализа.
При реализации языка вам необходимо захватить его внутреннее представление (например, дерево синтаксического анализа или AST), найти способ его анализа для особых случаев и средства преобразования его в язык вывода. . По большому счету, инструменты генератора парсеров здесь вам не помогут, но это самая сложная часть проблемы. А собрать все эти дополнительные вещи самому - гораздо труднее, чем думает большинство людей.
На самом деле вам нужна интегрированная система инструментов, которые анализируют, создают AST, могут их анализировать, переводить и т. Д. Таких инструментов не так много. Наш DMS Software Reengineering Toolkit предоставляет все необходимое оборудование в качестве основы. Возможно, вы действительно не захотите использовать его, но вы должны знать об этом виде инструмента, чтобы вы могли сделать сознательный выбор и сделать все самостоятельно.
person
Ira Baxter
schedule
29.07.2011