Я тоже устал от того, что лексер не был помещен в сгенерированный каталог файлов, поэтому я просмотрел исходный код плагина, чтобы найти ответ.
Grammar-Kit использует собственную эвристику, чтобы решить, где хранить файл lexer, созданный JFlex, но эта эвристика явно ошибочно выбирается в обоих случаях.
Если вы хотите, чтобы сгенерированный лексер находился в сгенерированной папке, а Grammar-Kit этого не делает, это связано с тем, что GK-код не может находиться внутри исходного корня. Конечно, файл .flex
действительно является исходным файлом, но для целей GK он не может быть помечен таким образом - не если вы хотите, чтобы он сделал правильную вещь и поместил свой сгенерированный файл .java
в вашу назначенную сгенерированную папку [1].
Вместо этого переместите файл .flex из любых исходных папок и в корневой каталог контента, который не помечен как исходный каталог. GK теперь должен вести себя в основном должным образом [1]. Для собственного исходного файла, файла .bnf
, он не ведет себя таким странным образом; только с файлом .flex
.
[1]: (на самом деле, в моем скимминга, я думаю, что это, возможно, выглядело как это жёстко специально, чтобы войти в папку с именем «ген», но я только быстро скользя, так что не может быть Точно. В любом случае генерация в папку с именем «gen» (имя, которое большинство людей выбирает для своей сгенерированной папки в любом случае) должно быть как минимум достаточным, так как ваш сгенерированный flex lexer, по крайней мере, не будет смешиваться с вашими обычными исходными файлами .)
Hi *** self *** *! * – naki
^--- К сожалению, SO не разрешил мне обратиться к себе в ответ :( – naki