antlr grun зависает на неопределенный срок в команде Windows

#antlr #antlr4

#antlr #antlr4

Вопрос:

Я запустил « grun antlr.Expr prog testtest0.txt -gui amp; » в cmd (Windows) «он просто завис там, поэтому я завершил задание и запустил « grun antlr.Expr prog testtest0.txt testtree.txt -tree «, но результат тот же.

Грамматика:

введите описание изображения здесь

Тестовый пример:

введите описание изображения здесь

Структура каталогов:

введите описание изображения здесь

Комментарии:

1. @bartkiers Он не должен пытаться читать из stdin, когда вы даете ему имя файла в качестве аргумента, нет?

2. @sepp2k ах, да, я думал, что TestRig всегда работает с пользовательским вводом из stdin, но предоставление файла также работает, я только что видел.

3. @AbhishekMeshram Я никогда не использую TestRig, но вы можете попробовать выполнить команду в той же папке, что и грамматика. Я не думаю, что grun antlr.Expr ... это правильно. На домашней странице ANTLR написано grun Expr ...

4. @BartKiers packagename.GrammarName прав. Домашняя страница использует grun Expr , потому что грамматики нет в пакете в примере. Учитывая package antlr; в коде OP, antlr.Expr должно сработать. Тем не менее, я бы не рекомендовал использовать antlr в качестве имени пакета. В любом случае, если grun не удалось найти классы, на этот счет было бы сообщение об ошибке. Насколько мне известно, единственным способом, при котором ничего не происходило бы, был бы либо фактический бесконечный цикл, либо grun ожидание ввода, как вы подозревали, но я не понимаю, почему здесь так.

5. @AbhishekMeshram Можете ли вы рассказать нам, как настроен ваш grun ? Это псевдоним или скрипт и каково его содержимое? Единственное, о чем я могу думать, это о том, что у вас какой-то перепутанный сценарий оболочки, который не передает имя файла TestRig классу. На несвязанном примечании: В будущем, при публикации вашей грамматики или другого кода, пожалуйста, скопируйте и вставьте его в виде текста, а не изображения. Я не могу скопировать содержимое изображения в файл для тестирования, как я могу с текстом.