Как заставить XText работать - PullRequest
2 голосов
/ 15 мая 2010

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

Лектор показал нам шаги, и все у него сработало ... Он сказал: «Это так просто, это будет 10-минутная работа для вас». И я этому поверил. Однако дома почти ничего не работает, как ожидалось. И, конечно, больше нет лекций, чтобы пройти, меня ждет только экзамен, где я должен показать, что я сделал, чтобы пройти. Более того, электронное письмо, которое я послал ему, отскочило назад от почтового демона ...

Я получил Xtext вместе с Eclipse IDE с веб-сайта xtext, распаковал его и выполнил шаги в официальном руководстве, чтобы заставить работать шаблон проекта по умолчанию. Учебник находится здесь: http://wiki.eclipse.org/Xtext/GettingStarted

Теперь я на шаге «Модель». Там написано "MyModel.mydsl", я делаю это, но редактор не открывается. Он сказал:

"Не удалось открыть редактор. Не удалось создать экземпляр класса редактора. Обычно это указывает на отсутствующий конструктор без аргументов или на то, что имя класса редактора было неправильно напечатано в plugin.xml."

Поскольку все генерируется, сообщение об ошибке мне не помогло ... Была возможность посмотреть на трассировку стека (она была длиной в милю), а сверху было исключение:

java.lang.IllegalStateException: комплект еще не активирован. Убедитесь, что Manifest.MF содержит «Bundle-ActivationPolicy: lazy».

Я открыл Manifast.MF и Bundle-ActivationPolicy: ленивый был установлен ...

Я гуглил решение, но безрезультатно. Это сводило меня с ума, и я сдался.

У меня нет опыта работы с Eclipse, Java и XText, я просто хочу сделать свою домашнюю работу и забыть все, пока она мне снова не понадобится ...

Кто-нибудь имеет опыт работы с XText?

Любая помощь приветствуется.

ps: я тоже буду на нем и могу решить проблему через несколько часов. Но сейчас я в растерянности.

Ответы [ 4 ]

1 голос
/ 23 мая 2011

У меня возникали точно такие же проблемы (возникла ошибка «Не удалось открыть редактор: не удалось создать экземпляр класса редактора»), когда я попытался просмотреть DSL в затмении.

Затем я прошели попробовал все, чтобы изменить файлы конфигурации в eclipse и xtext, но безуспешно.

Мое единственное решение - переустановить все.Я использую 64-битную версию Windows (64-битную Vista), но только 32-битную JVM и JDK.Таким образом, eclipse и xtext были обновлены до последних 64-битных версий, и только тогда все заработало нормально.

Я подозреваю, что это проблема с eclipse, а не с xtext, и обновление до Helios (64-битное затмение)вероятно, что имело значение.

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

Одна возможность. На этапе развертывания проверьте, действительно ли вы создали три плагина, посмотрев каталог установки Xtext внутри папки плагинов? Если они размещены в другом месте, вы можете переместить их в папку с плагинами. И перезапустили ли вы Xtext Eclipse после установки этих плагинов? Платформа не распознает эти плагины (и редактор MyDsl), пока вы не перезапустите его.

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

Я наконец смог решить проблему. Я понял, что могу пропустить весь шаг развертывания, мне не нужно делать плагин проверки синтаксиса для моего DSL. Я обнаружил, что все должно работать, и мне нужно назначить все свои токены.

Так

SomeDeclaration:
   'declare' STRING

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

SomeDeclaration
    'declare' declaredStuff=STRING

будет.

Это был долгий путь ... Я выполнил 10-минутную работу за 8 часов ...

Надеюсь, это поможет другим начать работу с XText.

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

Кажется, проблема в вашей установке eclipse / XText. Как вы это установили? Если вы получили Eclipse и впоследствии добавили плагин, вам необходимо убедиться, что версии совместимы.

В комплекте есть дистрибутив здесь

...