В настоящее время я разрабатываю универсальный язык программирования на основе агентов (его syntaxt будет несколько вдохновлен Java, и мы также используем объект на этом языке).
С самого начала проекта мы сомневались в факте использования ANTLR или Xtext. В то время мы выяснили, что Xtext реализует подмножество функции ANTLR. Поэтому мы решили использовать ANLTR для нашего языка, потеряв возможность иметь полноценный редактор Eclipse бесплатно для нашего языка (такие приятные функции, предоставляемые Xtext).
Однако, насколько мне известно, этим летом проект Xtext сделал большой шаг вперед . Цитата из ссылки:
Каковы ограничения Xtext?
Sven: вы можете реализовать практически любой язык программирования или DSL с Xtext. Есть одно исключение, то есть если вам нужно использовать так называемый "Семантические предикаты", что довольно сложная вещь. не стоит здесь объяснять. Очень мало языков нужна эта концепция. Однако ярким примером является C/С++. Мы хотим просмотрите эту тему для следующего выпуска.
И это также усилено в Документация Xtext:
Что такое Xtext? Независимо от того, хотите ли вы создать небольшой текстовый доменный язык (DSL) или вы хотите реализовать полномасштабный язык программирования общего назначения. С помощью Xtext вы можете создать свой очень собственные языки. Также, если у вас уже есть но он не имеет достойной поддержки инструмента, вы можете использовать Xtext для создания сложная среда разработки на основе Eclipse, обеспечивающая опыт редактирования, известный из современных Java IDE, в удивительно короткие количество времени. Мы называем Xtext основой для развития языка.
Если Xtext избавился от своих прошлых ограничений, почему еще невозможно найти сложную грамматику Xtext для наиболее известных языков программирования (Java, С# и т.д.)?
На веб-сайте ANTLR вы можете найти множество таких примеров грамматики, поскольку для Xtext вместо этого единственным экземпляром, который я смог найти, является тот, который указан в документации. Так что, возможно, Xtext все еще не зрелый, чтобы его использовали для реализации языка программирования общего назначения? Я немного волнуюсь об этом... Я бы не стал переписывать грамматику в Xtext, чтобы потом признать, что это не подходит для этого.