Не все ошибки в Java-программе являются синтаксическими ошибками.Ошибка типа public private
, например, может (как вы обнаружили) рассматриваться как семантическая ошибка.
В качестве другого примера, я уверен, что грамматика также допускает, например,
int i = "type error";
Тем не менее, это не правильный фрагмент кода Java.