JavaCC: слишком много предупреждений - PullRequest
2 голосов
/ 05 февраля 2011

Я использую JavaCC версии 5.0.с затмением Галилея.

Но когда я установил опцию «static = true» в моем jj-файле, сгенерированный файл TokenManager имеет много предупреждений, например «Статический метод readChar () из типа SimpleCharStream должен быть доступен статическим способом».Кроме того, все импортированные из моего файла jj были скопированы в TokenManager, где они помечены как неиспользуемые.Есть ли возможность предотвратить это?

Кажется, эта проблема была исправлена ​​в JavaCC v4.1 , тогда почему я до сих пор сталкиваюсь с этим?

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

JavaCC не удаляет существующие сгенерированные классы, когда вы переключаете его на статический.Это происходит в случае, если вы внесли изменения в классы или предоставили свои собственные версии.

Удалите все сгенерированные классы, установите «static = true» и начните заново.Все должно работать.

Если вы автоматизируете сборки (например, с помощью Ant), было бы неплохо всегда удалять и регенерировать сгенерированные JavaCC классы, просто чтобы убедиться, что то, что вы тестируете, воспроизводимо.

Что касается Eclipse ... Вы можете указать ему запускать ваш скрипт Ant, когда вы вносите изменения во входные файлы JavaCC.

0 голосов
/ 16 февраля 2011

Эти предупреждения связаны с кодом, который является правильным, но не рекомендуется. Так как не стоит исправлять сгенерированный код вручную, я предлагаю отключить эти предупреждения в Eclipse (Java> Compiler> Error / Warnings).

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

...